diff options
author | Thiago Santos <thiagoss@osg.samsung.com> | 2015-09-15 10:00:43 -0300 |
---|---|---|
committer | Thiago Santos <thiagoss@osg.samsung.com> | 2015-09-15 12:46:31 -0300 |
commit | 0ed501ab035b7b00124bf8bfbac431413667e9c5 (patch) | |
tree | dad567bc1aba8a331e26b2b38557a6290d907188 /gst-libs | |
parent | bd710e5e1b3df5c4b4cc9f48fc64478dc33a8ae6 (diff) | |
download | gstreamer-plugins-bad-0ed501ab035b7b00124bf8bfbac431413667e9c5.tar.gz |
adaptivedemux: Only overwrite last return if it was OK
Prevents overwriting other conditions that would be more important,
such as EOS.
https://bugzilla.gnome.org/show_bug.cgi?id=755042
Diffstat (limited to 'gst-libs')
-rw-r--r-- | gst-libs/gst/adaptivedemux/gstadaptivedemux.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c index 429d62907..6e0d88dfd 100644 --- a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c +++ b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c @@ -1649,16 +1649,17 @@ gst_adaptive_demux_stream_fragment_download_finish (GstAdaptiveDemuxStream * g_mutex_lock (&stream->fragment_download_lock); stream->download_finished = TRUE; + GST_DEBUG_OBJECT (stream->pad, "Download finish: %d %s - err: %p", ret, + gst_flow_get_name (ret), err); + /* if we have an error, only replace last_ret if it was OK before to avoid * overwriting the first error we got */ - if (err) { - if (stream->last_ret == GST_FLOW_OK) { - stream->last_ret = ret; + if (stream->last_ret == GST_FLOW_OK) { + stream->last_ret = ret; + if (err) { g_clear_error (&stream->last_error); stream->last_error = g_error_copy (err); } - } else { - stream->last_ret = ret; } g_cond_signal (&stream->fragment_download_cond); g_mutex_unlock (&stream->fragment_download_lock); @@ -1931,7 +1932,8 @@ gst_adaptive_demux_stream_download_uri (GstAdaptiveDemux * demux, } ret = stream->last_ret; - GST_DEBUG_OBJECT (stream->pad, "Fragment download finished: %s", uri); + GST_DEBUG_OBJECT (stream->pad, "Fragment download finished: %s %d %s", + uri, stream->last_ret, gst_flow_get_name (stream->last_ret)); } g_mutex_unlock (&stream->fragment_download_lock); } else { |