diff options
Diffstat (limited to 'ext/speex')
-rw-r--r-- | ext/speex/gstspeexdec.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/ext/speex/gstspeexdec.c b/ext/speex/gstspeexdec.c index 035e8b77..da53dd98 100644 --- a/ext/speex/gstspeexdec.c +++ b/ext/speex/gstspeexdec.c @@ -574,15 +574,22 @@ gst_speexdec_set_property (GObject * object, guint prop_id, static GstStateChangeReturn speex_dec_change_state (GstElement * element, GstStateChange transition) { + GstStateChangeReturn ret; GstSpeexDec *vd = GST_SPEEXDEC (element); switch (transition) { case GST_STATE_CHANGE_NULL_TO_READY: - break; case GST_STATE_CHANGE_READY_TO_PAUSED: - break; case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + default: break; + } + + ret = parent_class->change_state (element, transition); + if (ret != GST_STATE_CHANGE_SUCCESS) + return ret; + + switch (transition) { case GST_STATE_CHANGE_PLAYING_TO_PAUSED: break; case GST_STATE_CHANGE_PAUSED_TO_READY: @@ -595,5 +602,5 @@ speex_dec_change_state (GstElement * element, GstStateChange transition) break; } - return parent_class->change_state (element, transition); + return ret; } |