[libcamera-devel] [PATCH v1 1/6] pipeline: raspberrypi: Avoid over-allocation for ISP Output 1
David Plowman
david.plowman at raspberrypi.com
Thu Mar 10 11:34:37 CET 2022
Hi Naush
Thanks for this patch!
On Mon, 7 Mar 2022 at 12:46, Naushir Patuck via libcamera-devel
<libcamera-devel at lists.libcamera.org> wrote:
>
> The V4L2DeviceFormat structure for the ISP Output 1 node was a copy of what is
> used ISP Output 1 node, but with the size changed. However, the plane size and
> stride values were not updated. So there is a possibility that the buffer might
> be over-sized for the requested resolution.
>
> Fix this by only copying the relevent fields from the ISP Output 0
> V4L2DeviceFormat structure, and let the device driver size the planes as needed.
>
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> ---
> src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> index 29bff9d6eee4..d604c473c26c 100644
> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> @@ -844,11 +844,13 @@ int PipelineHandlerRPi::configure(Camera *camera, CameraConfiguration *config)
> * colour denoise will not run.
> */
> if (!output1Set) {
> - V4L2DeviceFormat output1Format = format;
> + V4L2DeviceFormat output1Format;
> constexpr Size maxDimensions(1200, 1200);
> const Size limit = maxDimensions.boundedToAspectRatio(format.size);
>
> output1Format.size = (format.size / 2).boundedTo(limit).alignedDownTo(2, 2);
> + output1Format.colorSpace = format.colorSpace;
> + output1Format.fourcc = V4L2PixelFormat::fromPixelFormat(formats::YUV420);
>
> LOG(RPI, Debug) << "Setting ISP Output1 (internal) to "
> << output1Format.toString();
> --
> 2.25.1
>
Looks good to me, and we have of course been testing it with picamera2.
Reviewed-by: David Plowman <david.plowman at raspberrypi.com>
Tested-by: David Plowman <david.plowman at raspberrypi.com>
Thanks
David
More information about the libcamera-devel
mailing list