v4l2object: Ensure size before configuring the pool
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Tue, 8 Apr 2014 21:34:19 +0000 (17:34 -0400)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Thu, 8 May 2014 19:56:36 +0000 (15:56 -0400)
sys/v4l2/gstv4l2object.c

index 586a7cc..78fbb46 100644 (file)
@@ -3128,6 +3128,17 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
       break;
   }
 
+  /* Size field is mandatory and we have no size if now using our own pool and
+   * downstream didn't provide one. */
+  if (size == 0) {
+    GstVideoInfo info;
+
+    gst_video_info_init (&info);
+    gst_video_info_from_caps (&info, caps);
+
+    size = GST_VIDEO_INFO_SIZE (&info);
+  }
+
   if (pool) {
     GstStructure *config;
 
@@ -3144,17 +3155,6 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query)
     gst_buffer_pool_set_config (pool, config);
   }
 
-  /* Size field is mandatory and we have no size if now using our own pool and
-   * downstream didn't provide one. */
-  if (size == 0) {
-    GstVideoInfo info;
-
-    gst_video_info_init (&info);
-    gst_video_info_from_caps (&info, caps);
-
-    size = GST_VIDEO_INFO_SIZE (&info);
-  }
-
   if (update)
     gst_query_set_nth_allocation_pool (query, 0, pool, size, min, max);
   else