[libcamera-devel] [PATCH v2 4/4] ipa: raspberrypi: Remove unneeded Span casts

Umang Jain umang.jain at ideasonboard.com
Fri Oct 7 16:49:54 CEST 2022


Hi Laurent

Thank you for the patch

On 10/7/22 4:37 AM, Laurent Pinchart via libcamera-devel wrote:
> Commit 09c1b081baa2 ("libcamera: controls: Generate and use fixed-sized
> Span types") added explicit Span casts for fixed extent spans that were
> required due to the ControlList::set() function that takes an
> std::initializer_list not being able to infer a control size from
> template arguments. This has now been fixed, so the casts are not needed
> anymore. Drop them.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
> Reviewed-by: Christian Rauch <Rauch.Christian at gmx.de>

Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>

> ---
>   src/ipa/raspberrypi/raspberrypi.cpp | 19 +++++++++----------
>   1 file changed, 9 insertions(+), 10 deletions(-)
>
> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
> index 8d731435764e..14b06a4feae6 100644
> --- a/src/ipa/raspberrypi/raspberrypi.cpp
> +++ b/src/ipa/raspberrypi/raspberrypi.cpp
> @@ -566,19 +566,18 @@ void IPARPi::reportMetadata()
>   
>   	AwbStatus *awbStatus = rpiMetadata_.getLocked<AwbStatus>("awb.status");
>   	if (awbStatus) {
> -		libcameraMetadata_.set(controls::ColourGains,
> -				       Span<const float, 2>({ static_cast<float>(awbStatus->gainR),
> -							      static_cast<float>(awbStatus->gainB) }));
> +		libcameraMetadata_.set(controls::ColourGains, { static_cast<float>(awbStatus->gainR),
> +								static_cast<float>(awbStatus->gainB) });
>   		libcameraMetadata_.set(controls::ColourTemperature, awbStatus->temperatureK);
>   	}
>   
>   	BlackLevelStatus *blackLevelStatus = rpiMetadata_.getLocked<BlackLevelStatus>("black_level.status");
>   	if (blackLevelStatus)
>   		libcameraMetadata_.set(controls::SensorBlackLevels,
> -				       Span<const int32_t, 4>({ static_cast<int32_t>(blackLevelStatus->blackLevelR),
> -								static_cast<int32_t>(blackLevelStatus->blackLevelG),
> -								static_cast<int32_t>(blackLevelStatus->blackLevelG),
> -								static_cast<int32_t>(blackLevelStatus->blackLevelB) }));
> +				       { static_cast<int32_t>(blackLevelStatus->blackLevelR),
> +					 static_cast<int32_t>(blackLevelStatus->blackLevelG),
> +					 static_cast<int32_t>(blackLevelStatus->blackLevelG),
> +					 static_cast<int32_t>(blackLevelStatus->blackLevelB) });
>   
>   	FocusStatus *focusStatus = rpiMetadata_.getLocked<FocusStatus>("focus.status");
>   	if (focusStatus && focusStatus->num == 12) {
> @@ -883,7 +882,7 @@ void IPARPi::queueRequest(const ControlList &controls)
>   			if (gains[0] != 0.0f && gains[1] != 0.0f)
>   				/* A gain of 0.0f will switch back to auto mode. */
>   				libcameraMetadata_.set(controls::ColourGains,
> -						       Span<const float, 2>({ gains[0], gains[1] }));
> +						       { gains[0], gains[1] });
>   			break;
>   		}
>   
> @@ -1167,8 +1166,8 @@ void IPARPi::applyFrameDurations(Duration minFrameDuration, Duration maxFrameDur
>   
>   	/* Return the validated limits via metadata. */
>   	libcameraMetadata_.set(controls::FrameDurationLimits,
> -			       Span<const int64_t, 2>({ static_cast<int64_t>(minFrameDuration_.get<std::micro>()),
> -							static_cast<int64_t>(maxFrameDuration_.get<std::micro>()) }));
> +			       { static_cast<int64_t>(minFrameDuration_.get<std::micro>()),
> +				 static_cast<int64_t>(maxFrameDuration_.get<std::micro>()) });
>   
>   	/*
>   	 * Calculate the maximum exposure time possible for the AGC to use.



More information about the libcamera-devel mailing list