mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-24 17:15:07 +03:00
libcamera: pipeline: rkisp1: Fix media bus propagation for NV{12,21}
The upstream driver has changed how the link formats are validated when 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@ragnatech.se> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
parent
d687b004d1
commit
1455bd0dc2
1 changed files with 12 additions and 0 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue