From c591b98864a25fcee865978142d8b79216aac76c Mon Sep 17 00:00:00 2001 From: Sebastian Dröge Date: Fri, 27 Aug 2010 20:45:19 +0200 Subject: uridecodebin: Only enable progressive downloading if the upstream duration in bytes is known Otherwise we might try to enable it for live streams, where this would cause playback to fail completely. Fixes bug #628028. --- gst/playback/gsturidecodebin.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gst/playback/gsturidecodebin.c b/gst/playback/gsturidecodebin.c index 391678d2a..1df1bb61e 100644 --- a/gst/playback/gsturidecodebin.c +++ b/gst/playback/gsturidecodebin.c @@ -1477,6 +1477,14 @@ type_found (GstElement * typefind, guint probability, /* remember if we need download buffering */ decoder->is_download = IS_DOWNLOAD_MEDIA (media_type) && decoder->download; + /* only enable download buffering if the upstream duration is known */ + if (decoder->is_download) { + GstFormat fmt = GST_FORMAT_BYTES; + gint64 dur; + + decoder->is_download = (gst_element_query_duration (typefind, &fmt, &dur) + && fmt == GST_FORMAT_BYTES && dur != -1); + } dec_elem = make_decoder (decoder); if (!dec_elem) -- cgit v1.2.3