mbox series

[v6,0/3] Enumerate all pixels formats

Message ID 20240731093457.29095-1-benjamin.gaignard@collabora.com (mailing list archive)
Headers show
Series Enumerate all pixels formats | expand

Message

Benjamin Gaignard July 31, 2024, 9:34 a.m. UTC
The goal of this series is to help userspace applications, like Gstreamer
or Chromium, to categorize decoders and so avoid trying to use decoder
that can't do the require task because it won't support the needed pixel
format.
As example, in today implementation we need to simulate 10 bit header
control to know if the driver support 10 bits pixel formats. With this
new flag it will simpler for userspace applications know if driver
support 10 bit pixel formats and if it is supported by userspace.

An example of how it can be used in GStreamer to discover the
supported pixels formats for stateless decoders is available here:
https://gitlab.freedesktop.org/benjamin.gaignard1/gstreamer/-/commits/v4l2codecs_enum_all_supported_formats?ref_type=heads

v4l2-compliance test of this flag:
https://gitlab.collabora.com/benjamin.gaignard/v4l-utils/-/commits/enum_all_formats_v2

change in version 6:
- Change flag name.
- Improve documentation.
- Improve visl driver to enumerate one more pixel format when the flag
  is used.

changes in version 5:
- Reset the proposal to follow Hans's advices
- Add new flag to be used with index field.
- Make vicodec and visl test driver use the new flag
- Doing the same for Verisilicon driver.
 
Benjamin Gaignard (3):
  media: videodev2: Add flag to unconditionally enumerate pixel formats
  media: test-drivers: Use V4L2_FMTDESC_FLAG_ENUM_ALL flag
  media: verisilicon: Use V4L2_FMTDESC_FLAG_ENUM_ALL flag

 .../media/v4l/vidioc-enum-fmt.rst             | 16 ++++++++++++++-
 .../media/videodev2.h.rst.exceptions          |  1 +
 .../media/platform/verisilicon/hantro_v4l2.c  | 18 ++++++++++++-----
 drivers/media/test-drivers/visl/visl-video.c  | 20 +++++++++++++++++--
 include/uapi/linux/videodev2.h                |  3 +++
 5 files changed, 50 insertions(+), 8 deletions(-)