v4l2: v4l2_camera_proxy: Report the proper format name in enum_fmt

Now that libcamera has the V4L2 format names, retrieve and report those
names in ENUM_FMT. While at it, refactor the code slightly with
PixelFormatInfo.

This fixes the test failures on v4l2-compliance with the v4l2
compatilibity layer that were observed in version v4l2-compliance
version 1.21.0-4838.

Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
This commit is contained in:
Paul Elder 2021-09-08 16:51:15 +09:00
parent 9f9c224c7b
commit 69cffe7012

View file

@ -274,13 +274,13 @@ int V4L2CameraProxy::vidioc_enum_fmt(V4L2CameraFile *file, struct v4l2_fmtdesc *
return -EINVAL;
PixelFormat format = streamConfig_.formats().pixelformats()[arg->index];
V4L2PixelFormat v4l2Format = V4L2PixelFormat::fromPixelFormat(format);
/* \todo Set V4L2_FMT_FLAG_COMPRESSED for compressed formats. */
arg->flags = 0;
/* \todo Add map from format to description. */
utils::strlcpy(reinterpret_cast<char *>(arg->description),
"Video Format Description", sizeof(arg->description));
arg->pixelformat = V4L2PixelFormat::fromPixelFormat(format);
v4l2Format.description(), sizeof(arg->description));
arg->pixelformat = v4l2Format;
memset(arg->reserved, 0, sizeof(arg->reserved));