gstreamer: Improve logging for buffer pool activation

If the negotiation is going to fail, log the GST_ELEMENT_ERROR in
gst_libcamera_src_negotiate(), instead of logging in downstream method
chain.

Signed-off-by: Umang Jain <uajain@igalia.com>
Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Umang Jain
2025-11-03 21:30:13 +00:00
committed by Kieran Bingham
parent f6f5bd28dc
commit 41767e3bd8

View File

@@ -574,12 +574,8 @@ gst_libcamera_create_video_pool(GstLibcameraSrc *self, GstPad *srcpad,
gst_buffer_pool_set_config(GST_BUFFER_POOL_CAST(pool), config);
}
if (!gst_buffer_pool_set_active(pool, true)) {
GST_ELEMENT_ERROR(self, RESOURCE, SETTINGS,
("Failed to active buffer pool"),
("gst_libcamera_src_negotiate() failed."));
if (!gst_buffer_pool_set_active(pool, true))
return { nullptr, -EINVAL };
}
return { std::exchange(pool, nullptr), 0 };
}
@@ -680,8 +676,12 @@ gst_libcamera_src_negotiate(GstLibcameraSrc *self)
std::tie(video_pool, ret) =
gst_libcamera_create_video_pool(self, srcpad,
caps, &info);
if (ret)
if (ret) {
GST_ELEMENT_ERROR(self, RESOURCE, SETTINGS,
("Failed to create video pool: %s", g_strerror(-ret)),
("gst_libcamera_src_negotiate() failed."));
return false;
}
}
GstLibcameraPool *pool = gst_libcamera_pool_new(self->allocator,