v4l2bufferpool: Cleanly handle v4l2_allocator_new failure
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Thu, 12 Jun 2014 20:36:24 +0000 (16:36 -0400)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Thu, 12 Jun 2014 20:41:09 +0000 (16:41 -0400)
sys/v4l2/gstv4l2bufferpool.c

index 72405df..f5c74c8 100644 (file)
@@ -1418,6 +1418,8 @@ gst_v4l2_buffer_pool_new (GstV4l2Object * obj, GstCaps * caps)
 
   pool->vallocator =
       gst_v4l2_allocator_new (GST_OBJECT (pool), obj->video_fd, &obj->format);
+  if (pool->vallocator == NULL)
+    goto allocator_failed;
 
   gst_object_ref (obj->element);
 
@@ -1435,6 +1437,11 @@ dup_failed:
     GST_ERROR ("failed to dup fd %d (%s)", errno, g_strerror (errno));
     return NULL;
   }
+allocator_failed:
+  {
+    GST_ERROR_OBJECT (pool, "Failed to create V4L2 allocator");
+    return NULL;
+  }
 }
 
 static GstFlowReturn