From 38520a1e122928030b69374b88b8888cc556bab3 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Wed, 8 Jul 2015 12:35:55 -0300 Subject: [PATCH] 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. --- gst/isomp4/qtdemux.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index 76bac2aac2..920fc644a3 100644 --- a/gst/isomp4/qtdemux.c +++ b/gst/isomp4/qtdemux.c @@ -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;