diff --git a/gst/camerabin/gstcamerabin.c b/gst/camerabin/gstcamerabin.c index 7070903b40..99b1b54d18 100644 --- a/gst/camerabin/gstcamerabin.c +++ b/gst/camerabin/gstcamerabin.c @@ -3851,8 +3851,12 @@ gst_camerabin_change_state (GstElement * element, GstStateChange transition) case GST_STATE_CHANGE_PAUSED_TO_READY: /* all processing should stop and those elements could have their state * locked, so set them explicitly here */ - gst_element_set_state (camera->imgbin, GST_STATE_READY); - gst_element_set_state (camera->vidbin, GST_STATE_READY); + if (GST_STATE (camera->imgbin) != GST_STATE_NULL) { + gst_element_set_state (camera->imgbin, GST_STATE_READY); + } + if (GST_STATE (camera->vidbin) != GST_STATE_NULL) { + gst_element_set_state (camera->vidbin, GST_STATE_READY); + } break; case GST_STATE_CHANGE_READY_TO_NULL: gst_element_set_locked_state (camera->imgbin, FALSE);