|
|
Log in / Subscribe / Register

media: Implement UVC v1.5 ROI

From:  Yunke Cao <yunkec-AT-google.com>
To:  Hans Verkuil <hverkuil-cisco-AT-xs4all.nl>, Laurent Pinchart <laurent.pinchart-AT-ideasonboard.com>, Nicolas Dufresne <nicolas-AT-ndufresne.ca>
Subject:  [PATCH v4 0/4] media: Implement UVC v1.5 ROI
Date:  Tue, 24 May 2022 13:45:03 +0900
Message-ID:  <20220524044507.1696012-1-yunkec@google.com>
Cc:  Tomasz Figa <tfiga-AT-chromium.org>, Sergey Senozhatsky <senozhatsky-AT-chromium.org>, Ricardo Ribalda <ribalda-AT-chromium.org>, linux-media-AT-vger.kernel.org, Yunke Cao <yunkec-AT-google.com>
Archive-link:  Article

This patch set 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.

Tested on two different usb cameras using v4l2-ctl and calling ioctls.

Changelog since v3:
- Reordered/sliced the patches.
  1. Add rect type.
  2. Add min/max.
  3. Add the roi controls (including init to default).
  4. Document the roi controls.
- Define the roi controls as uvc-specific in uvcvideo.h.
- Modified documentation.
- Removed the vivid change. Given the controls are now uvc-specific.
  I'm not sure how valuable it is to add it in vivid. Let me know
  otherwise.

Yunke Cao (4):
  media: v4l2_ctrl: Add V4L2_CTRL_TYPE_RECT
  media: v4l2_ctrl: Add 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  |  60 +++++
 .../media/v4l/vidioc-g-ext-ctrls.rst          |  12 +-
 .../media/videodev2.h.rst.exceptions          |   3 +
 drivers/media/i2c/imx214.c                    |   4 +-
 drivers/media/usb/uvc/uvc_ctrl.c              | 214 ++++++++++++++++--
 drivers/media/usb/uvc/uvc_v4l2.c              |  12 +-
 drivers/media/usb/uvc/uvcvideo.h              |  10 +-
 drivers/media/v4l2-core/v4l2-ctrls-api.c      |  51 ++++-
 drivers/media/v4l2-core/v4l2-ctrls-core.c     | 155 ++++++++++++-
 drivers/media/v4l2-core/v4l2-ioctl.c          |   4 +-
 include/media/v4l2-ctrls.h                    |  32 ++-
 include/uapi/linux/usb/video.h                |   1 +
 include/uapi/linux/uvcvideo.h                 |  13 ++
 include/uapi/linux/v4l2-controls.h            |   8 +
 include/uapi/linux/videodev2.h                |   4 +
 15 files changed, 531 insertions(+), 52 deletions(-)

-- 
2.36.1.124.g0e6072fb45-goog



Copyright © 2022, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds