qtdemux: push data from adapter before starting new segment

The adapter might have data remaining from the previous segment,
push it all before clearing the adapter and starting a new segment.

It can accumulate data if it had pushed and got not-linked, returning
immediately without processing all the data. Before starting a new
segment this data should be handled.
This commit is contained in:
Thiago Santos 2015-07-08 12:35:55 -03:00
parent 6e7c724afa
commit 38520a1e12

View file

@ -2006,16 +2006,9 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent,
segment.stop = MAX (segment.stop, segment.start);
}
} else if (segment.format == GST_FORMAT_TIME) {
/* NOP */
#if 0
gst_qtdemux_push_event (demux, gst_event_ref (event));
gst_event_new_new_segment_full (segment.update, segment.rate,
segment.arate, GST_FORMAT_TIME, segment.start, segment.stop,
segment.start);
gst_adapter_clear (demux->adapter);
demux->neededbytes = 16;
goto exit;
#endif
/* push all data on the adapter before starting this
* new segment */
gst_qtdemux_process_adapter (demux, TRUE);
} else {
GST_DEBUG_OBJECT (demux, "unsupported segment format, ignoring");
goto exit;