mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v16 00/18] media: uvcvideo: Implement UVC v1.5 ROI
@ 2024-12-10  9:42 Ricardo Ribalda
  2024-12-10  9:42 ` [PATCH v16 01/18] media: uvcvideo: Fix event flags in uvc_ctrl_send_events Ricardo Ribalda
                   ` (17 more replies)
  0 siblings, 18 replies; 23+ messages in thread
From: Ricardo Ribalda @ 2024-12-10  9:42 UTC (permalink / raw)
  To: Laurent Pinchart, Mauro Carvalho Chehab, Hans de Goede,
	Sakari Ailus, Hans Verkuil
  Cc: Yunke Cao, linux-media, linux-kernel, Ricardo Ribalda, stable,
	Yunke Cao, Sergey Senozhatsky, Daniel Scally, Hans Verkuil

This patchset implements UVC v1.5 region of interest using V4L2
control API.

ROI control is consisted two uvc specific controls.
1. A rectangle control with a newly added type V4L2_CTRL_TYPE_RECT.
2. An auto control with type bitmask.

V4L2_CTRL_WHICH_MIN/MAX_VAL is added to support the rectangle control.

The corresponding v4l-utils series can be found at
https://patchwork.linuxtv.org/project/linux-media/list/?series=11069 .

Tested with v4l2-compliance, v4l2-ctl, calling ioctls on usb cameras and
VIVID with a newly added V4L2_CTRL_TYPE_RECT control.

This set includes also the patch:
media: uvcvideo: Fix event flags in uvc_ctrl_send_events
It is not technically part of this change, but we conflict with it.

I am continuing the work that Yunke did.

Changes in v16:
- add documentation
- discard re-style
- refactor -ENOMEM
- remove "Use the camera to clamp compound controls"
- move uvc_rect
- data_out = 0
- s/max/min in uvc_set_rect()
- Return -EINVAL in uvc_ioctl_xu_ctrl_map instead of -ENOTTY.
- Use switch inside uvc_set_le_value.
- Link to v15: https://lore.kernel.org/r/20241114-uvc-roi-v15-0-64cfeb56b6f8@chromium.org

Changes in v15:
- Modify mapping set/get to support any size
- Remove v4l2_size field. It is not needed, we can use the v4l2_type to
  infer it.
- Improve documentation.
- Lots of refactoring, now adding compound and roi are very small
  patches.
- Remove rectangle clamping, not supported by some firmware.
- Remove init, we can add it later.
- Move uvc_cid to USER_BASE

- Link to v14: https://lore.kernel.org/linux-media/20231201071907.3080126-1-yunkec@google.com/

Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
---
Hans Verkuil (1):
      media: v4l2-ctrls: add support for V4L2_CTRL_WHICH_MIN/MAX_VAL

Ricardo Ribalda (11):
      media: uvcvideo: Fix event flags in uvc_ctrl_send_events
      media: uvcvideo: Handle uvc menu translation inside uvc_get_le_value
      media: uvcvideo: Handle uvc menu translation inside uvc_set_le_value
      media: uvcvideo: refactor uvc_ioctl_g_ext_ctrls
      media: uvcvideo: uvc_ioctl_(g|s)_ext_ctrls: handle NoP case
      media: uvcvideo: Support any size for mapping get/set
      media: uvcvideo: Factor out clamping from uvc_ctrl_set
      media: uvcvideo: Factor out query_boundaries from query_ctrl
      media: uvcvideo: let v4l2_query_v4l2_ctrl() work with v4l2_query_ext_ctrl
      media: uvcvideo: Introduce uvc_mapping_v4l2_size
      media: uvcvideo: Add sanity check to uvc_ioctl_xu_ctrl_map

Yunke Cao (6):
      media: v4l2_ctrl: Add V4L2_CTRL_TYPE_RECT
      media: vivid: Add a rectangle control
      media: uvcvideo: add support for compound controls
      media: uvcvideo: support V4L2_CTRL_WHICH_MIN/MAX_VAL
      media: uvcvideo: implement UVC v1.5 ROI
      media: uvcvideo: document UVC v1.5 ROI

 .../userspace-api/media/drivers/uvcvideo.rst       |  64 ++
 .../userspace-api/media/v4l/vidioc-g-ext-ctrls.rst |  26 +-
 .../userspace-api/media/v4l/vidioc-queryctrl.rst   |  14 +
 .../userspace-api/media/videodev2.h.rst.exceptions |   4 +
 drivers/media/i2c/imx214.c                         |   4 +-
 drivers/media/platform/qcom/venus/venc_ctrls.c     |   9 +-
 drivers/media/test-drivers/vivid/vivid-ctrls.c     |  34 +
 drivers/media/usb/uvc/uvc_ctrl.c                   | 799 ++++++++++++++++-----
 drivers/media/usb/uvc/uvc_v4l2.c                   |  77 +-
 drivers/media/usb/uvc/uvcvideo.h                   |  25 +-
 drivers/media/v4l2-core/v4l2-ctrls-api.c           |  54 +-
 drivers/media/v4l2-core/v4l2-ctrls-core.c          | 167 ++++-
 drivers/media/v4l2-core/v4l2-ioctl.c               |   4 +-
 include/media/v4l2-ctrls.h                         |  38 +-
 include/uapi/linux/usb/video.h                     |   1 +
 include/uapi/linux/uvcvideo.h                      |  13 +
 include/uapi/linux/v4l2-controls.h                 |   7 +
 include/uapi/linux/videodev2.h                     |   5 +
 18 files changed, 1058 insertions(+), 287 deletions(-)
---
base-commit: 5516200c466f92954551406ea641376963c43a92
change-id: 20241113-uvc-roi-66bd6cfa1e64

Best regards,
-- 
Ricardo Ribalda <ribalda@chromium.org>


^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2024-12-18 21:06 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-12-10  9:42 [PATCH v16 00/18] media: uvcvideo: Implement UVC v1.5 ROI Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 01/18] media: uvcvideo: Fix event flags in uvc_ctrl_send_events Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 02/18] media: v4l2_ctrl: Add V4L2_CTRL_TYPE_RECT Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 03/18] media: v4l2-ctrls: add support for V4L2_CTRL_WHICH_MIN/MAX_VAL Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 04/18] media: vivid: Add a rectangle control Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 05/18] media: uvcvideo: Handle uvc menu translation inside uvc_get_le_value Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 06/18] media: uvcvideo: Handle uvc menu translation inside uvc_set_le_value Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 07/18] media: uvcvideo: refactor uvc_ioctl_g_ext_ctrls Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 08/18] media: uvcvideo: uvc_ioctl_(g|s)_ext_ctrls: handle NoP case Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 09/18] media: uvcvideo: Support any size for mapping get/set Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 10/18] media: uvcvideo: Factor out clamping from uvc_ctrl_set Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 11/18] media: uvcvideo: add support for compound controls Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 12/18] media: uvcvideo: Factor out query_boundaries from query_ctrl Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 13/18] media: uvcvideo: support V4L2_CTRL_WHICH_MIN/MAX_VAL Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 14/18] media: uvcvideo: let v4l2_query_v4l2_ctrl() work with v4l2_query_ext_ctrl Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 15/18] media: uvcvideo: Introduce uvc_mapping_v4l2_size Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 16/18] media: uvcvideo: Add sanity check to uvc_ioctl_xu_ctrl_map Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 17/18] media: uvcvideo: implement UVC v1.5 ROI Ricardo Ribalda
2024-12-18 21:00   ` Hans de Goede
2024-12-18 21:02   ` Hans de Goede
2024-12-18 21:05     ` Ricardo Ribalda
2024-12-10  9:42 ` [PATCH v16 18/18] media: uvcvideo: document " Ricardo Ribalda
2024-12-18 21:02   ` Hans de Goede

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®