From 7802471a3badb561f1e017c3ecdafc95a0a43d61 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Fri, 30 Jun 2023 14:42:32 +0100 Subject: pipeline: rpi: Account for Bayer packing when validating format RPiCameraConfiguration::validate() did not account for user supplied Bayer packing when validating the RAW stream configuration. Fix this by seeing what packing (if any) has been specified selecting the output RAW stream format. Fixes: 6c71ee1f1530 ("pipeline: raspberrypi: Introduce PipelineHandlerBase class") Signed-off-by: Naushir Patuck Reviewed-by: Kieran Bingham Reviewed-by: David Plowman Signed-off-by: Laurent Pinchart --- src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp index d438bdb6..179a5b81 100644 --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp @@ -288,8 +288,8 @@ CameraConfiguration::Status RPiCameraConfiguration::validate() unsigned int bitDepth = info.isValid() ? info.bitsPerPixel : defaultRawBitDepth; V4L2SubdeviceFormat sensorFormat = findBestFormat(data_->sensorFormats_, cfg.size, bitDepth); - rawFormat.size = sensorFormat.size; - rawFormat.fourcc = raw.dev->toV4L2PixelFormat(cfg.pixelFormat); + BayerFormat::Packing packing = BayerFormat::fromPixelFormat(cfg.pixelFormat).packing; + rawFormat = PipelineHandlerBase::toV4L2DeviceFormat(raw.dev, sensorFormat, packing); int ret = raw.dev->tryFormat(&rawFormat); if (ret) -- cgit v1.2.1