wrappercamerabinsrc: handle when source creation fail
authorThiago Santos <thiagoss@osg.samsung.com>
Fri, 1 May 2015 22:39:58 +0000 (19:39 -0300)
committerThiago Santos <thiagoss@osg.samsung.com>
Fri, 1 May 2015 22:45:00 +0000 (19:45 -0300)
Remember to set the source to NULL state as adding it to the pipeline
will set it to the READY state.

gst/camerabin2/gstwrappercamerabinsrc.c

index caae45fd0bfc47986a34164af7d7ad085868ff11..40d785831bdbb55edd4e12257ba0d1ff1b80c90b 100644 (file)
@@ -487,18 +487,18 @@ check_and_replace_src (GstWrapperCameraBinSrc * self)
               self->app_vid_src, "autovideosrc", DEFAULT_VIDEOSRC,
               "camerasrc-real-src"))) {
     self->src_vid_src = NULL;
-    return FALSE;
+    goto fail;
   }
 
   if (!gst_bin_add (cbin, self->src_vid_src)) {
-    return FALSE;
+    goto fail;
   }
 
   /* check if we already have the next element to link to */
   if (self->src_crop) {
     if (!gst_element_link_pads (self->src_vid_src, "src", self->src_crop,
             "sink")) {
-      return FALSE;
+      goto fail;
     }
   }
 
@@ -511,6 +511,11 @@ check_and_replace_src (GstWrapperCameraBinSrc * self)
   }
 
   return TRUE;
+
+fail:
+  if (self->src_vid_src)
+    gst_element_set_state (self->src_vid_src, GST_STATE_NULL);
+  return FALSE;
 }
 
 /**