[libcamera-devel] [PATCH 03/20] libcamera: pipeline: simple: converter: Group query functions together

paul.elder at ideasonboard.com paul.elder at ideasonboard.com
Wed Feb 17 10:57:45 CET 2021


Hi Laurent,

On Mon, Feb 01, 2021 at 12:46:45AM +0200, Laurent Pinchart wrote:
> The SimpleConverter class has different sets of functions, related to
> static queries, device configuration and runtime operation. Group the
> query functions together. While at it, swap the arguments to the
> strideAndFrameSize() function to match the order in which pixel format
> and size are usually specified.
> 
> No functional change is included.
> 
> 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 | 30 ++++++++++-----------
>  src/libcamera/pipeline/simple/converter.h   |  5 ++--
>  src/libcamera/pipeline/simple/simple.cpp    |  2 +-
>  3 files changed, 18 insertions(+), 19 deletions(-)
> 
> diff --git a/src/libcamera/pipeline/simple/converter.cpp b/src/libcamera/pipeline/simple/converter.cpp
> index 87d15c781ed8..8f54caaca983 100644
> --- a/src/libcamera/pipeline/simple/converter.cpp
> +++ b/src/libcamera/pipeline/simple/converter.cpp
> @@ -133,6 +133,21 @@ SizeRange SimpleConverter::sizes(const Size &input)
>  	return sizes;
>  }
>  
> +std::tuple<unsigned int, unsigned int>
> +SimpleConverter::strideAndFrameSize(const PixelFormat &pixelFormat,
> +				    const Size &size)
> +{
> +	V4L2DeviceFormat format;
> +	format.fourcc = m2m_->capture()->toV4L2PixelFormat(pixelFormat);
> +	format.size = size;
> +
> +	int ret = m2m_->capture()->tryFormat(&format);
> +	if (ret < 0)
> +		return std::make_tuple(0, 0);
> +
> +	return std::make_tuple(format.planes[0].bpl, format.planes[0].size);
> +}
> +
>  int SimpleConverter::configure(PixelFormat inputFormat, const Size &inputSize,
>  			       const StreamConfiguration &outputCfg)
>  {
> @@ -254,19 +269,4 @@ void SimpleConverter::outputBufferReady(FrameBuffer *buffer)
>  	}
>  }
>  
> -std::tuple<unsigned int, unsigned int>
> -SimpleConverter::strideAndFrameSize(const Size &size,
> -				    const PixelFormat &pixelFormat)
> -{
> -	V4L2DeviceFormat format;
> -	format.fourcc = m2m_->capture()->toV4L2PixelFormat(pixelFormat);
> -	format.size = size;
> -
> -	int ret = m2m_->capture()->tryFormat(&format);
> -	if (ret < 0)
> -		return std::make_tuple(0, 0);
> -
> -	return std::make_tuple(format.planes[0].bpl, format.planes[0].size);
> -}
> -
>  } /* namespace libcamera */
> diff --git a/src/libcamera/pipeline/simple/converter.h b/src/libcamera/pipeline/simple/converter.h
> index 06d66f8caba7..07a632abd8f6 100644
> --- a/src/libcamera/pipeline/simple/converter.h
> +++ b/src/libcamera/pipeline/simple/converter.h
> @@ -35,6 +35,8 @@ public:
>  
>  	std::vector<PixelFormat> formats(PixelFormat input);
>  	SizeRange sizes(const Size &input);
> +	std::tuple<unsigned int, unsigned int>
> +	strideAndFrameSize(const PixelFormat &pixelFormat, const Size &size);
>  
>  	int configure(PixelFormat inputFormat, const Size &inputSize,
>  		      const StreamConfiguration &outputCfg);
> @@ -46,9 +48,6 @@ public:
>  
>  	int queueBuffers(FrameBuffer *input, FrameBuffer *output);
>  
> -	std::tuple<unsigned int, unsigned int>
> -	strideAndFrameSize(const Size &size, const PixelFormat &pixelFormat);
> -
>  	Signal<FrameBuffer *, FrameBuffer *> bufferReady;
>  
>  private:
> diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
> index a97b8442d9a4..4e3127814b89 100644
> --- a/src/libcamera/pipeline/simple/simple.cpp
> +++ b/src/libcamera/pipeline/simple/simple.cpp
> @@ -494,7 +494,7 @@ CameraConfiguration::Status SimpleCameraConfiguration::validate()
>  	SimpleConverter *converter = pipe->converter();
>  
>  	std::tie(cfg.stride, cfg.frameSize) =
> -		converter->strideAndFrameSize(cfg.size, cfg.pixelFormat);
> +		converter->strideAndFrameSize(cfg.pixelFormat, cfg.size);
>  	if (cfg.stride == 0)
>  		return Invalid;
>  
> -- 
> 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