Commit fb5d50cd authored by Philippe Normand's avatar Philippe Normand Committed by Sebastian Dröge

qtdemux: don't push encrypted buffer without cenc metadata

When the cenc metadata is stored outside of the moof box and the
stream is exposed it is possible that the cenc metadata hasn't been
processed yet while the first buffer is being pushed. When this
happens the buffer can't possibly be decrypted downstream so don't
push it.

https://bugzilla.gnome.org/show_bug.cgi?id=762516
parent 459ef195
...@@ -4971,6 +4971,12 @@ gst_qtdemux_decorate_and_push_buffer (GstQTDemux * qtdemux, ...@@ -4971,6 +4971,12 @@ gst_qtdemux_decorate_and_push_buffer (GstQTDemux * qtdemux,
gst_pad_push_event (stream->pad, event); gst_pad_push_event (stream->pad, event);
} }
if (qtdemux->cenc_aux_info_offset > 0 && info->crypto_info == NULL) {
GST_DEBUG_OBJECT (qtdemux, "cenc metadata hasn't been parsed yet");
gst_buffer_unref (buf);
goto exit;
}
index = stream->sample_index - (stream->n_samples - info->crypto_info->len); index = stream->sample_index - (stream->n_samples - info->crypto_info->len);
if (G_LIKELY (index >= 0 && index < info->crypto_info->len)) { if (G_LIKELY (index >= 0 && index < info->crypto_info->len)) {
/* steal structure from array */ /* steal structure from array */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment