diff --git a/src/gstreamer/gstkvssink.cpp b/src/gstreamer/gstkvssink.cpp index 7f74748f..c58ccb77 100644 --- a/src/gstreamer/gstkvssink.cpp +++ b/src/gstreamer/gstkvssink.cpp @@ -1609,6 +1609,16 @@ gst_kvs_sink_change_state(GstElement *element, GstStateChange transition) { case GST_STATE_CHANGE_READY_TO_PAUSED: gst_collect_pads_start (kvssink->collect); break; + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state(element, transition); + if (ret == GST_STATE_CHANGE_FAILURE) { + goto CleanUp; + } + + switch (transition) { case GST_STATE_CHANGE_PAUSED_TO_READY: LOG_INFO("Stopping kvssink for " << kvssink->stream_name); gst_collect_pads_stop (kvssink->collect); @@ -1631,8 +1641,6 @@ gst_kvs_sink_change_state(GstElement *element, GstStateChange transition) { break; } - ret = GST_ELEMENT_CLASS (parent_class)->change_state(element, transition); - CleanUp: if (ret != GST_STATE_CHANGE_SUCCESS) {