[PATCH] gstreamer: Merge initControls_ with request controls
Umang Jain
umang.jain at ideasonboard.com
Fri Nov 1 18:22:20 CET 2024
It turns out there a few pipeline-handler/IPA that do not honor
the controls passed during start() phase. For instance, he gstreamer
libcamerasrc element, passes the target framerate during start() to
libcamera. As rkisp1 pipeline-handler/IPA doesn't do anything with
controls passed during start(), the target fps is unable to take
effect on rkisp1 platform.
Hence, merge the initControls_ with request controls with
ControlList::MergePolicy::KeepExisting. This way, the controls passed
by libcamerasrc during start(), can atleast get honoured on the
platform through requests' control.
Signed-off-by: Umang Jain <umang.jain at ideasonboard.com>
---
src/gstreamer/gstlibcamerasrc.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp
index 912a8d55..0d615f4a 100644
--- a/src/gstreamer/gstlibcamerasrc.cpp
+++ b/src/gstreamer/gstlibcamerasrc.cpp
@@ -208,6 +208,7 @@ int GstLibcameraSrcState::queueRequest()
}
GST_TRACE_OBJECT(src_, "Requesting buffers");
+ wrap->request_.get()->controls().merge(initControls_, ControlList::MergePolicy::KeepExisting);
cam_->queueRequest(wrap->request_.get());
{
--
2.45.0
More information about the libcamera-devel
mailing list