From 9dd48c503c5e6b78dd5834a4821d23da5ff05c87 Mon Sep 17 00:00:00 2001 From: George Kiagiadakis Date: Thu, 7 Aug 2014 17:12:38 +0300 Subject: [PATCH] qtdemux: forward DISCONT from upstream to the output streams This makes sense in DASH reverse playback, where the upstream dashdemux will download DASH segments in reverse order, but push their buffers forward to qtdemux and mark each segment start as DISCONT. This needs to be forwarded downstream to the parser/decoder, otherwise it won't work. https://bugzilla.gnome.org/show_bug.cgi?id=734443 --- gst/isomp4/qtdemux.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index 009685797c..3f5565f513 100644 --- a/gst/isomp4/qtdemux.c +++ b/gst/isomp4/qtdemux.c @@ -4618,6 +4618,17 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf) GstQTDemux *demux; demux = GST_QTDEMUX (parent); + + if (GST_BUFFER_FLAG_IS_SET (inbuf, GST_BUFFER_FLAG_DISCONT)) { + gint i; + + GST_DEBUG_OBJECT (demux, "Got DISCONT, marking all streams as DISCONT"); + + for (i = 0; i < demux->n_streams; i++) { + demux->streams[i]->discont = TRUE; + } + } + gst_adapter_push (demux->adapter, inbuf); GST_DEBUG_OBJECT (demux,