[libcamera-devel] [PATCH v2 05/20] libcamera: ipu3: Do not overwrite StreamConfiguration

Laurent Pinchart laurent.pinchart at ideasonboard.com
Fri Jul 10 10:34:30 CEST 2020


Hi Jacopo,

Thank you for the patch.

On Thu, Jul 09, 2020 at 10:41:13AM +0200, Jacopo Mondi wrote:
> The validate function overwrites the generated StreamConfiguration with
> the one reported by the CIO2 unit when inspecting the RAW stream
> configuration.
> 
> As we prepare to add StreamFormats to the IPU3 StreamConfiguration,
> assigning to the CIO2 generated configuration would delete the
> StreamFormats.
> 
> Fix this by updating relevant fields only in order to keep the
> assigned StreamFormats.
> 
> Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

The fact that it's too easy to make this mistake calls for a better API,
but that's not for this patch series.

> ---
>  src/libcamera/pipeline/ipu3/ipu3.cpp | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
> index e62a5d5b3517..978a6e58c72f 100644
> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> @@ -269,7 +269,9 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate()
>  		const Stream *stream = streams_[i];
>  
>  		if (stream == &data_->rawStream_) {
> -			cfg = cio2Configuration_;
> +			cfg.size = cio2Configuration_.size;
> +			cfg.pixelFormat = cio2Configuration_.pixelFormat;
> +			cfg.bufferCount = cio2Configuration_.bufferCount;
>  		} else {
>  			bool scale = stream == &data_->vfStream_;
>  			adjustStream(config_[i], scale);

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list