summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Santos <thiagoss@osg.samsung.com>2015-09-15 10:00:43 -0300
committerThiago Santos <thiagoss@osg.samsung.com>2015-09-15 12:46:31 -0300
commit0ed501ab035b7b00124bf8bfbac431413667e9c5 (patch)
treedad567bc1aba8a331e26b2b38557a6290d907188
parentbd710e5e1b3df5c4b4cc9f48fc64478dc33a8ae6 (diff)
downloadgstreamer-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
-rw-r--r--gst-libs/gst/adaptivedemux/gstadaptivedemux.c14
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 {