[4/4] gstreamer: Reduce indentation in gst_libcamera_create_video_pool()
diff mbox series

Message ID 20250522125521.6465-5-laurent.pinchart@ideasonboard.com
State New
Headers show
Series
  • gstreamer: Miscellaneous cleanups + one fix
Related show

Commit Message

Laurent Pinchart May 22, 2025, 12:55 p.m. UTC
Now that video pool creation is handled by a dedicated function, the
logic can be simplified by returning early instead of nesting scopes. Do
so to decrease indentation and improve readability.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/gstreamer/gstlibcamerasrc.cpp | 50 ++++++++++++++-----------------
 1 file changed, 23 insertions(+), 27 deletions(-)

Patch
diff mbox series

diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp
index 380f8368af8b..e0eb6e7b4227 100644
--- a/src/gstreamer/gstlibcamerasrc.cpp
+++ b/src/gstreamer/gstlibcamerasrc.cpp
@@ -528,47 +528,43 @@  gst_libcamera_create_video_pool(GstLibcameraSrc *self,
 {
 	g_autoptr(GstQuery) query = NULL;
 	const gboolean need_pool = true;
-	gboolean has_video_meta = false;
 	GstBufferPool *video_pool = NULL;
 
 	gst_libcamera_extrapolate_info(info, stream_cfg.stride);
 
 	query = gst_query_new_allocation(caps, need_pool);
-	if (!gst_pad_peer_query(srcpad, query))
+	if (!gst_pad_peer_query(srcpad, query)) {
 		GST_DEBUG_OBJECT(self, "Didn't get downstream ALLOCATION hints");
-	else
-		has_video_meta = gst_query_find_allocation_meta(query, GST_VIDEO_META_API_TYPE, NULL);
+		return { NULL, 0 };
+	}
 
-	if (!has_video_meta) {
-		GstBufferPool *pool = NULL;
+	if (gst_query_find_allocation_meta(query, GST_VIDEO_META_API_TYPE, NULL))
+		return { NULL, 0 };
 
-		if (gst_query_get_n_allocation_pools(query) > 0)
-			gst_query_parse_nth_allocation_pool(query, 0, &pool, NULL, NULL, NULL);
+	if (gst_query_get_n_allocation_pools(query) > 0)
+		gst_query_parse_nth_allocation_pool(query, 0, &video_pool, NULL, NULL, NULL);
 
-		if (pool)
-			video_pool = pool;
-		else {
-			GstStructure *config;
-			guint min_buffers = 3;
-			video_pool = gst_video_buffer_pool_new();
+	if (!video_pool) {
+		GstStructure *config;
+		guint min_buffers = 3;
 
-			config = gst_buffer_pool_get_config(video_pool);
-			gst_buffer_pool_config_set_params(config, caps, info->size, min_buffers, 0);
+		video_pool = gst_video_buffer_pool_new();
+		config = gst_buffer_pool_get_config(video_pool);
+		gst_buffer_pool_config_set_params(config, caps, info->size, min_buffers, 0);
 
-			GST_DEBUG_OBJECT(self, "Own pool config is %" GST_PTR_FORMAT, config);
+		GST_DEBUG_OBJECT(self, "Own pool config is %" GST_PTR_FORMAT, config);
 
-			gst_buffer_pool_set_config(GST_BUFFER_POOL_CAST(video_pool), config);
-		}
+		gst_buffer_pool_set_config(GST_BUFFER_POOL_CAST(video_pool), config);
+	}
 
-		GST_WARNING_OBJECT(self, "Downstream doesn't support video meta, need to copy frame.");
+	GST_WARNING_OBJECT(self, "Downstream doesn't support video meta, need to copy frame.");
 
-		if (!gst_buffer_pool_set_active(video_pool, true)) {
-			gst_caps_unref(caps);
-			GST_ELEMENT_ERROR(self, RESOURCE, SETTINGS,
-					  ("Failed to active buffer pool"),
-					  ("gst_libcamera_src_negotiate() failed."));
-			return { NULL, -EINVAL };
-		}
+	if (!gst_buffer_pool_set_active(video_pool, true)) {
+		gst_caps_unref(caps);
+		GST_ELEMENT_ERROR(self, RESOURCE, SETTINGS,
+				  ("Failed to active buffer pool"),
+				  ("gst_libcamera_src_negotiate() failed."));
+		return { NULL, -EINVAL };
 	}
 
 	return { video_pool, 0 };