[libcamera-devel] [PATCH] libcamera: pipeline: simple: Reset format on capture side of converter

paul.elder at ideasonboard.com paul.elder at ideasonboard.com
Mon Nov 16 04:11:31 CET 2020


Hi Laurent,

On Sun, Nov 15, 2020 at 11:16:07PM +0200, Laurent Pinchart wrote:
> When configuring the converter, the format is first set on the output
> side based on the format of the camera pipeline output, and then the
> format is set on the capture side to match the desired stream
> configuration. The format parameter passed to
> V4L2VideoDevice::setFormat() uses the same variable for both calls,
> which has the unwanted side effect of carrying plane configuration from
> the output side to the capture side of the converter. In particular, the
> stride or plane size requested on the capture side can become
> unnecessarily large when converting to a format with a lower number of
> bits per pixel (for instance converting YUYV to NV12).
> 
> Fix this by resetting the format variable before using it to configure
> the capture side.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>

> ---
>  src/libcamera/pipeline/simple/converter.cpp | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/src/libcamera/pipeline/simple/converter.cpp b/src/libcamera/pipeline/simple/converter.cpp
> index 57538ab08fcd..67e6e864aa0a 100644
> --- a/src/libcamera/pipeline/simple/converter.cpp
> +++ b/src/libcamera/pipeline/simple/converter.cpp
> @@ -164,6 +164,7 @@ int SimpleConverter::configure(PixelFormat inputFormat, const Size &inputSize,
>  
>  	/* Set the pixel format and size on the output. */
>  	videoFormat = m2m_->capture()->toV4L2PixelFormat(cfg->pixelFormat);
> +	format = {};
>  	format.fourcc = videoFormat;
>  	format.size = cfg->size;
>  
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel


More information about the libcamera-devel mailing list