libcamera: pipeline: RKISP1 configure isp output pad

ISP output pad should be set to YUYV8_2X8 for non-bayer output format.
Bayer formats are not listed in RkISP1CameraConfiguration::validate(),
only non-bayer are listed, so we can set YUYV8_2X8 directly.
This will need to be changed if we add support for bayer output with
libcamera.

Signed-off-by: Helen Koike <helen.koike@collabora.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Helen Koike
2019-07-30 16:10:07 -03:00
committed by Laurent Pinchart
parent 9ecc60e10c
commit c91d7bb980
+14
View File
@@ -286,6 +286,8 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
if (ret < 0)
return ret;
LOG(RkISP1, Debug) << "Configuring ISP input pad with " << format.toString();
ret = dphy_->getFormat(1, &format);
if (ret < 0)
return ret;
@@ -294,6 +296,18 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
if (ret < 0)
return ret;
LOG(RkISP1, Debug) << "ISP input pad configured with " << format.toString();
/* YUYV8_2X8 is required on the ISP source path pad for YUV output. */
format.mbus_code = MEDIA_BUS_FMT_YUYV8_2X8;
LOG(RkISP1, Debug) << "Configuring ISP output pad with " << format.toString();
ret = isp_->setFormat(2, &format);
if (ret < 0)
return ret;
LOG(RkISP1, Debug) << "ISP output pad configured with " << format.toString();
V4L2DeviceFormat outputFormat = {};
outputFormat.fourcc = cfg.pixelFormat;
outputFormat.size = cfg.size;