From: Helen Koike <helen.koike@collabora.com>
To: mchehab@kernel.org, hans.verkuil@cisco.com,
laurent.pinchart@ideasonboard.com, sakari.ailus@iki.fi,
linux-media@vger.kernel.org
Cc: Helen Koike <helen.koike@collabora.com>,
tfiga@chromium.org, hiroh@chromium.org, nicolas@ndufresne.ca,
Brian.Starkey@arm.com, kernel@collabora.com,
boris.brezillon@collabora.com, narmstrong@baylibre.com,
linux-kernel@vger.kernel.org, frkoenig@chromium.org,
mjourdan@baylibre.com, stanimir.varbanov@linaro.org
Subject: [PATCH v5 0/7] media: v4l2: Add extended fmt and buffer ioctls
Date: Tue, 4 Aug 2020 16:29:32 -0300 [thread overview]
Message-ID: <20200804192939.2251988-1-helen.koike@collabora.com> (raw)
Hello,
This is v5 of the Extended API for formats and buffers, which introduces
the following new ioctls:
int ioctl(int fd, VIDIOC_G_EXT_PIX_FMT, struct v4l2_ext_pix_format *argp)
int ioctl(int fd, VIDIOC_S_EXT_PIX_FMT, struct v4l2_ext_pix_format *argp)
int ioctl(int fd, VIDIOC_TRY_EXT_PIX_FMT, struct v4l2_ext_pix_format *argp)
int ioctl(int fd, VIDIOC_EXT_CREATE_BUFS, struct v4l2_ext_create_buffers *argp)
int ioctl(int fd, VIDIOC_EXT_QUERYBUF, struct v4l2_ext_buffer *argp)
int ioctl(int fd, VIDIOC_EXT_QBUF, struct v4l2_ext_buffer *argp)
int ioctl(int fd, VIDIOC_EXT_DQBUF, struct v4l2_ext_buffer *argp)
int ioctl(int fd, VIDIOC_EXT_PREPARE_BUF, struct v4l2_ext_buffer *argp)
Please check v4 cover letter specific topic past discussions
https://patchwork.linuxtv.org/project/linux-media/cover/20200717115435.2632623-1-helen.koike@collabora.com/
Documentation
=============
I added a first version of the documentation.
I would appreciate some tips in how to organize this better, since there are
several parts of the docs which reference the "old" API, and for now
I just added a note pointing to the Extended API.
Instead of duplicating documentation from the code to the Docs (as used by
most part of v4l2 documentation), I just added a reference to let Sphinx get
the structs documentation from the code, so we can avoid duplicating.
For reviewing convenience, I uploaded the generated html docs at
https://people.collabora.com/~koike/ext-doc-v5/userspace-api/media/v4l/ext-api.html
There is room for improvements, it would be great to get your suggestions.
uAPI
====
This version have some minor changes in the uAPI structs, highlight to the
mem_offset that was returned to struct v4l2_ext_plane, memory field that now
is per plane, and some adjustments in field sizes and re-ordering to make
structs the same for 32 and 64 bits (which I verified with pahole tool).
I also updated v4l2-compliance:
https://gitlab.collabora.com/koike/v4l-utils/-/tree/ext-api/wip
We need to decide the size of the reserved fields left, how much reserved
fields do you think we should leave for each struct?
What is next
============
I would like to improve implementation (for the kernel and v4l2-compliane) and
drop the RFC tag for next version, so please review the uAPI.
List of changes in v5:
======================
* first version of Documentation
* migrate memory from v4l2_ext_buffer to v4l2_ext_plane
* return mem_offset to struct v4l2_ext_plane
* change sizes and reorder fields to avoid holes in the struct and make it
the same for 32 and 64 bits
* removed __attribute__ ((packed)) from uapi structs
* set request_fd to signed
* add documentation
* updated some commit messages
Hans Verkuil (1):
media: v4l2: Add extended buffer operations
Helen Koike (6):
media: v4l2: Extend pixel formats to unify single/multi-planar
handling (and more)
media: videobuf2: Expose helpers to implement the _ext_fmt and
_ext_buf hooks
media: mediabus: Add helpers to convert a ext_pix format to/from a
mbus_fmt
media: vivid: Convert the capture and output drivers to
EXT_FMT/EXT_BUF
media: vimc: Implement the ext_fmt and ext_buf hooks
media: docs: add documentation for the Extended API
.../userspace-api/media/v4l/buffer.rst | 5 +
.../userspace-api/media/v4l/common.rst | 1 +
.../userspace-api/media/v4l/dev-capture.rst | 5 +
.../userspace-api/media/v4l/dev-output.rst | 5 +
.../userspace-api/media/v4l/ext-api.rst | 107 ++
.../userspace-api/media/v4l/format.rst | 16 +-
.../userspace-api/media/v4l/user-func.rst | 5 +
.../media/v4l/vidioc-ext-create-bufs.rst | 95 ++
.../media/v4l/vidioc-ext-prepare-buf.rst | 62 ++
.../media/v4l/vidioc-ext-qbuf.rst | 204 ++++
.../media/v4l/vidioc-ext-querybuf.rst | 79 ++
.../media/v4l/vidioc-g-ext-pix-fmt.rst | 117 +++
.../media/common/videobuf2/videobuf2-core.c | 2 +
.../media/common/videobuf2/videobuf2-v4l2.c | 560 ++++++-----
.../media/test-drivers/vimc/vimc-capture.c | 61 +-
drivers/media/test-drivers/vimc/vimc-common.c | 6 +-
drivers/media/test-drivers/vimc/vimc-common.h | 2 +-
drivers/media/test-drivers/vivid/vivid-core.c | 70 +-
.../test-drivers/vivid/vivid-touch-cap.c | 26 +-
.../test-drivers/vivid/vivid-touch-cap.h | 3 +-
.../media/test-drivers/vivid/vivid-vid-cap.c | 169 +---
.../media/test-drivers/vivid/vivid-vid-cap.h | 15 +-
.../media/test-drivers/vivid/vivid-vid-out.c | 193 ++--
.../media/test-drivers/vivid/vivid-vid-out.h | 15 +-
drivers/media/v4l2-core/v4l2-dev.c | 50 +-
drivers/media/v4l2-core/v4l2-ioctl.c | 938 ++++++++++++++++--
include/media/v4l2-ioctl.h | 60 ++
include/media/v4l2-mediabus.h | 42 +
include/media/videobuf2-core.h | 6 +-
include/media/videobuf2-v4l2.h | 21 +-
include/uapi/linux/videodev2.h | 146 +++
31 files changed, 2363 insertions(+), 723 deletions(-)
create mode 100644 Documentation/userspace-api/media/v4l/ext-api.rst
create mode 100644 Documentation/userspace-api/media/v4l/vidioc-ext-create-bufs.rst
create mode 100644 Documentation/userspace-api/media/v4l/vidioc-ext-prepare-buf.rst
create mode 100644 Documentation/userspace-api/media/v4l/vidioc-ext-qbuf.rst
create mode 100644 Documentation/userspace-api/media/v4l/vidioc-ext-querybuf.rst
create mode 100644 Documentation/userspace-api/media/v4l/vidioc-g-ext-pix-fmt.rst
--
2.28.0.rc2
next reply other threads:[~2020-08-04 19:32 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-04 19:29 Helen Koike [this message]
2020-08-04 19:29 ` [PATCH v5 1/7] media: v4l2: Extend pixel formats to unify single/multi-planar handling (and more) Helen Koike
2020-08-14 7:49 ` Alexandre Courbot
2020-11-19 16:23 ` Helen Koike
2020-09-09 11:41 ` Hans Verkuil
2020-09-14 2:14 ` Helen Koike
2020-10-02 19:49 ` Tomasz Figa
2020-11-14 14:21 ` Helen Koike
2020-11-19 5:45 ` Tomasz Figa
2020-11-19 10:08 ` Helen Koike
2020-11-19 13:43 ` Helen Koike
2020-12-14 10:19 ` Tomasz Figa
2020-08-04 19:29 ` [PATCH v5 2/7] media: v4l2: Add extended buffer operations Helen Koike
2020-08-06 19:45 ` kernel test robot
2020-08-06 19:45 ` kernel test robot
2020-08-06 20:30 ` kernel test robot
2020-08-06 20:30 ` kernel test robot
2020-08-14 7:49 ` Alexandre Courbot
2020-09-09 12:27 ` Hans Verkuil
2020-11-23 15:08 ` Helen Koike
2020-11-23 15:46 ` Tomasz Figa
2020-11-23 17:40 ` Helen Koike
2020-12-03 15:11 ` Hans Verkuil
2020-12-03 19:52 ` Helen Koike
2020-12-14 10:46 ` Tomasz Figa
2020-12-15 14:36 ` Helen Koike
2020-12-16 3:13 ` Tomasz Figa
2020-12-17 13:19 ` Helen Koike
2020-12-21 3:13 ` Tomasz Figa
2020-12-23 12:04 ` Helen Koike
2021-01-08 10:00 ` Tomasz Figa
2020-12-14 10:38 ` Tomasz Figa
2020-11-20 11:14 ` Tomasz Figa
2020-11-23 20:33 ` Helen Koike
2020-12-14 10:36 ` Tomasz Figa
2020-12-14 13:23 ` Helen Koike
2020-12-15 9:03 ` Tomasz Figa
2020-08-04 19:29 ` [PATCH v5 3/7] media: videobuf2: Expose helpers to implement the _ext_fmt and _ext_buf hooks Helen Koike
2020-12-14 8:52 ` Tomasz Figa
2020-12-14 12:29 ` Helen Koike
2020-08-04 19:29 ` [PATCH v5 4/7] media: mediabus: Add helpers to convert a ext_pix format to/from a mbus_fmt Helen Koike
2020-08-14 7:49 ` Alexandre Courbot
2020-08-04 19:29 ` [PATCH v5 5/7] media: vivid: Convert the capture and output drivers to EXT_FMT/EXT_BUF Helen Koike
2020-08-04 19:29 ` [PATCH v5 6/7] media: vimc: Implement the ext_fmt and ext_buf hooks Helen Koike
2020-08-04 19:29 ` [PATCH v5 7/7] media: docs: add documentation for the Extended API Helen Koike
2020-08-14 7:49 ` Alexandre Courbot
2020-11-19 10:28 ` Helen Koike
2020-11-20 11:06 ` Tomasz Figa
2020-11-20 12:24 ` Hans Verkuil
2020-11-20 12:40 ` Tomasz Figa
2020-11-20 13:20 ` Hans Verkuil
2021-01-14 18:04 ` Helen Koike
2020-08-04 19:34 ` [PATCH v5 0/7] media: v4l2: Add extended fmt and buffer ioctls Helen Koike
2020-08-14 7:49 ` Alexandre Courbot
2020-11-27 15:06 ` Helen Koike
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200804192939.2251988-1-helen.koike@collabora.com \
--to=helen.koike@collabora.com \
--cc=Brian.Starkey@arm.com \
--cc=boris.brezillon@collabora.com \
--cc=frkoenig@chromium.org \
--cc=hans.verkuil@cisco.com \
--cc=hiroh@chromium.org \
--cc=kernel@collabora.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=mjourdan@baylibre.com \
--cc=narmstrong@baylibre.com \
--cc=nicolas@ndufresne.ca \
--cc=sakari.ailus@iki.fi \
--cc=stanimir.varbanov@linaro.org \
--cc=tfiga@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.