summaryrefslogtreecommitdiff
path: root/gst/playback/gstdecodebin2.c
diff options
context:
space:
mode:
authorThiago Santos <thiagoss@osg.samsung.com>2015-07-14 00:03:10 -0300
committerThiago Santos <thiagoss@osg.samsung.com>2015-07-14 00:11:59 -0300
commit9c2e08c54d4a9021dd915b1c8f25fc034f73aeb4 (patch)
tree7dde4ddbb942ac5c2959293a5e251a99a12d5080 /gst/playback/gstdecodebin2.c
parent1d1bebd7692cb1412d53c5557f2b8b9475e5e4c7 (diff)
downloadgstreamer-plugins-base-9c2e08c54d4a9021dd915b1c8f25fc034f73aeb4.tar.gz
decodebin: only try to expose complete groups
When switching to a new chain it might be that this new chain is not yet ready to be exposed so check it before exposing. Can happen with mpegts that might delay adding pads or pushing data until it has found the PMT/PAT/PCR and that may take a while depending on the stream. It happened frequently with HLS: http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch1/appleman.m3u8
Diffstat (limited to 'gst/playback/gstdecodebin2.c')
-rw-r--r--gst/playback/gstdecodebin2.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c
index 6f72dd34e..cc36c9f38 100644
--- a/gst/playback/gstdecodebin2.c
+++ b/gst/playback/gstdecodebin2.c
@@ -4352,8 +4352,12 @@ retry:
&drained, &switched);
GST_ELEMENT_WARNING (dbin, STREAM, FAILED, (NULL),
("all streams without buffers"));
- if (switched)
- goto retry;
+ if (switched) {
+ if (gst_decode_chain_is_complete (dbin->decode_chain))
+ goto retry;
+ else
+ return FALSE;
+ }
}
}