[libcamera-devel] [PATCH v3 1/2] libcamera: camera: fix validateColorSpaces to choose the correct "main" colour space
Umang Jain
umang.jain at ideasonboard.com
Tue Jan 17 08:32:52 CET 2023
Hi David,
On 1/12/23 5:40 PM, David Plowman via libcamera-devel wrote:
> The intention is that the "main" colour space is the colour space of
> the largest non-raw stream. Unfortunately the use of "config_[i].size"
> is clearly incorrect, and has been copied from prior versions of the
> code. This small change merely corrects the error.
I would also document dropping of !colorspace condition, as it's vestigial.
> Signed-off-by: David Plowman <david.plowman at raspberrypi.com>
> Reviewed-by: Naushir Patuck <naush at raspberrypi.com>
Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>
> ---
> src/libcamera/camera.cpp | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
> index 2d947a44..0da167a7 100644
> --- a/src/libcamera/camera.cpp
> +++ b/src/libcamera/camera.cpp
> @@ -361,6 +361,7 @@ CameraConfiguration::Status CameraConfiguration::validateColorSpaces(ColorSpaceF
> * largest non-raw stream with a defined color space (if there is one).
> */
> std::optional<ColorSpace> colorSpace;
> + Size size;
>
> for (auto [i, cfg] : utils::enumerate(config_)) {
> if (!cfg.colorSpace)
> @@ -369,9 +370,10 @@ CameraConfiguration::Status CameraConfiguration::validateColorSpaces(ColorSpaceF
> if (cfg.colorSpace->adjust(cfg.pixelFormat))
> status = Adjusted;
>
> - if (cfg.colorSpace != ColorSpace::Raw &&
> - (!colorSpace || cfg.size > config_[i].size))
> + if (cfg.colorSpace != ColorSpace::Raw && cfg.size > size) {
> colorSpace = cfg.colorSpace;
> + size = cfg.size;
> + }
> }
>
> if (!colorSpace || !(flags & ColorSpaceFlag::StreamsShareColorSpace))
More information about the libcamera-devel
mailing list