[PATCH] gstreamer: Merge initControls_ with request controls
Nicolas Dufresne
nicolas at ndufresne.ca
Fri Nov 1 20:02:06 CET 2024
Hi Umang,
Le vendredi 01 novembre 2024 à 22:52 +0530, Umang Jain a écrit :
> 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.
I'm not sure what to think of this, I'm literally hesitant if that should just
be merged or given a hard NAK (no joke). This is in my opinion an severe
interoperability issue if one method completely fail with a different ISP
implementation. Have we discussed the implication of letting the IPA do whatever
they want before patching the applications ?
regards,
Nicolas
>
> 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());
>
> {
More information about the libcamera-devel
mailing list