diff options
author | Thiago Santos <thiagoss@osg.samsung.com> | 2015-07-14 00:03:10 -0300 |
---|---|---|
committer | Thiago Santos <thiagoss@osg.samsung.com> | 2015-07-14 00:11:59 -0300 |
commit | 9c2e08c54d4a9021dd915b1c8f25fc034f73aeb4 (patch) | |
tree | 7dde4ddbb942ac5c2959293a5e251a99a12d5080 /gst/playback/gstdecodebin2.c | |
parent | 1d1bebd7692cb1412d53c5557f2b8b9475e5e4c7 (diff) | |
download | gstreamer-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.c | 8 |
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; + } } } |