summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2015-10-17 22:20:31 +0300
committerSebastian Dröge <sebastian@centricular.com>2015-10-20 10:15:50 +0300
commit70c8bf65ed63bf2929bf30c8ead7831d595409a8 (patch)
tree547f79e359a1d3af278fe8a8c7f110b6705dec97
parent9948019e089fdf9528e97a9dedc5e536b4ac950a (diff)
downloadgstreamer-plugins-base-70c8bf65ed63bf2929bf30c8ead7831d595409a8.tar.gz
playsink: Immediately error out if state change fails
Otherwise we chain up to the parent class' change_state function and might override the failure with SUCCESS. https://bugzilla.gnome.org/show_bug.cgi?id=756611
-rw-r--r--gst/playback/gstplaysink.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
index 6250134e9..6c5a2cfeb 100644
--- a/gst/playback/gstplaysink.c
+++ b/gst/playback/gstplaysink.c
@@ -4769,8 +4769,10 @@ gst_play_sink_change_state (GstElement * element, GstStateChange transition)
ret = GST_STATE_CHANGE_ASYNC;
/* block all pads here */
- if (!gst_play_sink_reconfigure (playsink))
+ if (!gst_play_sink_reconfigure (playsink)) {
ret = GST_STATE_CHANGE_FAILURE;
+ goto activate_failed;
+ }
break;
case GST_STATE_CHANGE_PAUSED_TO_READY:
/* unblock all pads here */