[libcamera-devel] [PATCH v9 6/8] libcamera: Support passing ColorSpaces to V4L2 subdevices
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Tue Dec 7 14:31:09 CET 2021
On Tue, Dec 07, 2021 at 03:29:44PM +0200, Laurent Pinchart wrote:
> Hi David,
>
> Thank you for the patch.
Also, the subject line should read
libcamera: v4l2_subdevice: Support passing ColorSpaces to V4L2 subdevices
or just
libcamera: v4l2_subdevice: Support passing ColorSpaces
(please update other patches in the series accordingly)
> On Mon, Dec 06, 2021 at 10:50:29AM +0000, David Plowman wrote:
> > The ColorSpace from the StreamConfiguration is now handled
> > appropriately in the V4L2Subdevice.
> >
> > Signed-off-by: David Plowman <david.plowman at raspberrypi.com>
> > ---
> > src/libcamera/v4l2_subdevice.cpp | 10 +++++++++-
> > 1 file changed, 9 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp
> > index 981645e0..f5ec6901 100644
> > --- a/src/libcamera/v4l2_subdevice.cpp
> > +++ b/src/libcamera/v4l2_subdevice.cpp
> > @@ -411,6 +411,7 @@ int V4L2Subdevice::getFormat(unsigned int pad, V4L2SubdeviceFormat *format,
> > format->size.width = subdevFmt.format.width;
> > format->size.height = subdevFmt.format.height;
> > format->mbus_code = subdevFmt.format.code;
> > + format->colorSpace = toColorSpace(subdevFmt.format);
> >
> > return 0;
> > }
> > @@ -439,7 +440,13 @@ int V4L2Subdevice::setFormat(unsigned int pad, V4L2SubdeviceFormat *format,
> > subdevFmt.format.code = format->mbus_code;
> > subdevFmt.format.field = V4L2_FIELD_NONE;
> >
> > - int ret = ioctl(VIDIOC_SUBDEV_S_FMT, &subdevFmt);
> > + int ret = fromColorSpace(format->colorSpace, subdevFmt.format);
> > + if (ret < 0)
> > + LOG(V4L2, Warning)
> > + << "Setting color space unrecognised by V4L2: "
> > + << ColorSpace::toString(format->colorSpace);
>
> Same comment as in 5/8 regarding the message.
I meant 4/8.
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>
> > +
> > + ret = ioctl(VIDIOC_SUBDEV_S_FMT, &subdevFmt);
> > if (ret) {
> > LOG(V4L2, Error)
> > << "Unable to set format on pad " << pad
> > @@ -450,6 +457,7 @@ int V4L2Subdevice::setFormat(unsigned int pad, V4L2SubdeviceFormat *format,
> > format->size.width = subdevFmt.format.width;
> > format->size.height = subdevFmt.format.height;
> > format->mbus_code = subdevFmt.format.code;
> > + format->colorSpace = toColorSpace(subdevFmt.format);
> >
> > return 0;
> > }
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list