summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Kiagiadakis <george.kiagiadakis@collabora.com>2014-08-07 17:12:38 +0300
committerEdward Hervey <bilboed@bilboed.com>2014-10-27 09:43:52 +0100
commit471d6bf1835f5536790a766fd3194b7d014deb04 (patch)
tree44c3e8331e3b9e9a26ff3fc3d148c108dafa59be
parent65acd83a864e7ae05f86a64c5b865f95bf8778e7 (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.c11
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,