mxfdemux: Allow filler and other KLV packets between index table segments

While only filler packets should be allowed, for good measure also skip
any other KLV packets in the range where there could be index table
segments.

This fixes parsing of partitions with multiple index table segments,
which are separated by a filler packet, or other packets.
This commit is contained in:
Sebastian Dröge 2017-07-04 20:01:37 +03:00
parent 2db4ff751f
commit 72b7794798

View file

@ -2016,8 +2016,15 @@ read_partition_header (GstMXFDemux * demux)
return;
}
while (mxf_is_index_table_segment (&key)) {
gst_mxf_demux_handle_index_table_segment (demux, &key, buf, demux->offset);
while (demux->offset <
demux->run_in +
demux->current_partition->partition.this_partition +
demux->current_partition->partition.header_byte_count +
demux->current_partition->partition.index_byte_count) {
if (mxf_is_index_table_segment (&key)) {
gst_mxf_demux_handle_index_table_segment (demux, &key, buf,
demux->offset);
}
demux->offset += read;
gst_buffer_unref (buf);