From c91d7bb98039e216ad2544e9052949f1466c5261 Mon Sep 17 00:00:00 2001 From: Helen Koike Date: Tue, 30 Jul 2019 16:10:07 -0300 Subject: 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 Reviewed-by: Laurent Pinchart Signed-off-by: Laurent Pinchart --- src/libcamera/pipeline/rkisp1/rkisp1.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp index efa9604b..de4ab523 100644 --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp @@ -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; -- cgit v1.2.1