diff options
author | Thiago Santos <thiagoss@osg.samsung.com> | 2015-07-08 18:35:55 +0300 |
---|---|---|
committer | Thiago Santos <thiagoss@osg.samsung.com> | 2015-07-09 05:23:53 +0300 |
commit | 38520a1e122928030b69374b88b8888cc556bab3 (patch) | |
tree | 0b52dc773a355a5a355905e3c5ba21cac0566de4 | |
parent | 6e7c724afadd6a4d04d6e68938d314e1be570f9e (diff) |
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.
-rw-r--r-- | gst/isomp4/qtdemux.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index 76bac2aac..920fc644a 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; |