Commit b2ff8042 authored by Philip Jägenstedt's avatar Philip Jägenstedt Committed by Sebastian Dröge

matroskademux: Ignore keyframe flag for non-video streams

When the keyframe bit of SimpleBlock Flags wasn't set, the buffer was being
marked with GST_BUFFER_FLAG_DELTA_UNIT, causing all buffers to be skipped
after a seek. This may be a problem with the Sorenson Squish encoder, but
arguably the keyframe bit should only be applied to video.

Fixes bug #620358.
parent 0fe56cc0
......@@ -4815,7 +4815,9 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux,
gst_matroska_demux_sync_streams (demux);
if (is_simpleblock) {
if (flags & 0x80)
/* bit 0 of SimpleBlock Flags is "Keyframe, set when the Block
contains only keyframes" */
if (flags & 0x80 || stream->type != GST_MATROSKA_TRACK_TYPE_VIDEO)
GST_BUFFER_FLAG_UNSET (sub, GST_BUFFER_FLAG_DELTA_UNIT);
else
GST_BUFFER_FLAG_SET (sub, GST_BUFFER_FLAG_DELTA_UNIT);
......
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