diff options
author | George Kiagiadakis <george.kiagiadakis@collabora.com> | 2014-08-07 17:12:38 +0300 |
---|---|---|
committer | Edward Hervey <bilboed@bilboed.com> | 2014-10-27 09:43:52 +0100 |
commit | 471d6bf1835f5536790a766fd3194b7d014deb04 (patch) | |
tree | 44c3e8331e3b9e9a26ff3fc3d148c108dafa59be | |
parent | 65acd83a864e7ae05f86a64c5b865f95bf8778e7 (diff) |
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
-rw-r--r-- | gst/isomp4/qtdemux.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index ae1491e15..be01e41d2 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, |