[libcamera-devel] [PATCH 2/6] libcamera: pipeline: rkisp1: Fix media bus propagation for NV{12, 21}
paul.elder at ideasonboard.com
paul.elder at ideasonboard.com
Thu Oct 1 05:15:51 CEST 2020
On Wed, Sep 30, 2020 at 10:08:27PM +0200, Niklas Söderlund wrote:
> The upstream driver have changed how the link formats are validated when
s/have/has
> starting to stream [1]. This revealed that libcamera did not adjust the
> media bus format from the link between {main,self} resizer source pad
> and the capture video device as expected by the driver.
>
> The media bus code YUYV8_2X8 was hardcoded to MEDIA_BUS_FMT_YUYV8_2X8
> for all pixel formats while it must be adjusted to YUYV8_1_5X8 for NV12
> and NV21, fix this.
>
> 1. 6803a9e0e1e43e9e ("media: staging: rkisp1: cap: simplify link validation by comparing media bus code")
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>
> ---
> src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp
> index 410e9f5d94607f44..63c643f22affc74a 100644
> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp
> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp
> @@ -7,6 +7,8 @@
>
> #include "rkisp1_path.h"
>
> +#include <linux/media-bus-format.h>
> +
> #include <libcamera/formats.h>
> #include <libcamera/stream.h>
>
> @@ -125,6 +127,16 @@ int RkISP1Path::configure(const StreamConfiguration &config,
> << "Configuring " << name_ << " resizer output pad with "
> << ispFormat.toString();
>
> + switch (config.pixelFormat) {
> + case formats::NV12:
> + case formats::NV21:
> + ispFormat.mbus_code = MEDIA_BUS_FMT_YUYV8_1_5X8;
> + break;
> + default:
> + ispFormat.mbus_code = MEDIA_BUS_FMT_YUYV8_2X8;
> + break;
> + }
> +
> ret = resizer_->setFormat(1, &ispFormat);
> if (ret < 0)
> return ret;
> --
> 2.28.0
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
More information about the libcamera-devel
mailing list