From: Alexander Gordeev <Alexander.Gordeev@opensynergy.com>
To: virtio-comment@lists.oasis-open.org,
virtio-dev@lists.oasis-open.org,
Albert Esteve <aesteve@redhat.com>,
Alexandre Courbot <acourbot@chromium.org>,
alex.bennee@linaro.org,
Andrew Gazizov <andrew.gazizov@opensynergy.com>,
Andrii Cherniavskyi <andrii.cherniavskyi@opensynergy.com>,
Cornelia Huck <cohuck@redhat.com>,
Daniel Almeida <daniel.almeida@collabora.com>,
Enric Balletbo i Serra <eballetb@redhat.com>,
Enrico Granata <egranata@google.com>,
Gustavo Padovan <gustavo.padovan@collabora.com>,
Keiichi Watanabe <keiichiw@chromium.org>,
Kieran Bingham <kieran.bingham@ideasonboard.com>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Marcin Wojtas <mwojtas@google.com>,
"Michael S . Tsirkin" <mst@redhat.com>,
Peter Griffin <peter.griffin@linaro.org>,
Tomasz Figa <tfiga@chromium.org>,
Matti.Moell@opensynergy.com, bag@semihalf.com,
bgrzesik@google.com, hmazur@google.com, mikrawczyk@google.com,
srosek@google.com, zyta@google.com
Cc: Alexander Gordeev <Alexander.Gordeev@opensynergy.com>
Subject: [virtio-dev] [RFC PATCH v7 0/1] Virtio video device specification
Date: Wed, 24 May 2023 13:33:17 +0200 [thread overview]
Message-ID: <20230524113318.518692-1-Alexander.Gordeev@opensynergy.com> (raw)
Hi,
This is the 7th version of virtio-video device patch. Feedback would be much
appreciated. It is still under discussion on virtio-dev mailing list whether
the video device specification should be continued as it is done here, or the
V4L2 stateful decoder API should be used instead. There are many arguments.
Also different parties have different priorities and use-cases. Anyway I hope,
that in this draft I was able to solve some of the long standing issues of the
previous drafts. There're still things to be done like introducing completion
events for asynchronous commands, but these changes are not going to be
controversial, I think.
The biggest conceptual change here is that I reintroduced device parameters
discovery, but in a (hopefully) simpler way. The idea is that the QUERY_CAPS
command should return all the supported parameters and the device capabilities
in one go and in a way compatible with V4L2, so that it is easy to write the
driver. This way the need to query the default values of the parameters before
changing them is reduced because the capabilities are much better known from
the start. This means an extensive use of bitsets in the capabilities. Here I
took some ideas from the crypto device specification. Also I turned
GET_PARAM + SET_PARAM command into a single SET_PARAMS command again
with the help of parameter bitsets. This is a big change, it still has to be
polished. I'm going to do it in the next versions together with updating the
virtio-video driver.
I tried to use directly or reference the existing definitions from V4L2 for
the formats and encoder settings as much as possible. It turns out the raw
formats are defined in DRM much better, than in V4L2. (For example, V4L2 names
RGBA 32 bit format "BGRA32" for some reason.) So for raw formats I gave both
references to DRM and V4L2.
The size of the resulting video section is 23 pages. I'm not sure if it is
possible to this much simple conceptually. Any ideas for shorter and more
precise wording would be much appreciated.
Full PDF: https://drive.google.com/file/d/1Va3LxbFdQ3Odeib4FD-B1CPYSz21Ihha/view?usp=sharing
PDF with the video section only: https://drive.google.com/file/d/1qANJDOpt0R_PvC0QuGaxYXC_Uq70MagC/view?usp=sharing
Changelog v6 -> v7:
* Used changes from Alexandre Courbot's repository on GitHub:
https://github.com/Gnurou/virtio-video-spec
They have the same license file as the virtio-spec repository.
The changes addressed some of the comments to the draft v6.
* The big change in discovering and setting the parameters using QUERY_CAPS
and SET_PARAMS commands.
* Restored the encoder settings and some of the formats.
* Addressed the remaining comments to the draft v6 or added todo comments.
* Finished renaming STOP to RESET.
* Added references to V4L2 and DRM.
* Added conformance sections.
* Fixed a lot of small issues.
* Reformatted for better readability.
Alexander Gordeev (1):
virtio-video: Add virtio video device specification
conformance.tex | 4 +
content.tex | 1 +
device-types/video/description.tex | 2005 +++++++++++++++++++++
device-types/video/device-conformance.tex | 24 +
device-types/video/driver-conformance.tex | 18 +
introduction.tex | 21 +
6 files changed, 2073 insertions(+)
create mode 100644 device-types/video/description.tex
create mode 100644 device-types/video/device-conformance.tex
create mode 100644 device-types/video/driver-conformance.tex
--
2.34.1
---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org
next reply other threads:[~2023-05-24 11:34 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-24 11:33 Alexander Gordeev [this message]
2023-05-24 11:33 ` [virtio-dev] [RFC PATCH v7 1/1] virtio-video: Add virtio video device specification Alexander Gordeev
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=20230524113318.518692-1-Alexander.Gordeev@opensynergy.com \
--to=alexander.gordeev@opensynergy.com \
--cc=Matti.Moell@opensynergy.com \
--cc=acourbot@chromium.org \
--cc=aesteve@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=andrew.gazizov@opensynergy.com \
--cc=andrii.cherniavskyi@opensynergy.com \
--cc=bag@semihalf.com \
--cc=bgrzesik@google.com \
--cc=cohuck@redhat.com \
--cc=daniel.almeida@collabora.com \
--cc=eballetb@redhat.com \
--cc=egranata@google.com \
--cc=gustavo.padovan@collabora.com \
--cc=hmazur@google.com \
--cc=keiichiw@chromium.org \
--cc=kieran.bingham@ideasonboard.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=mikrawczyk@google.com \
--cc=mst@redhat.com \
--cc=mwojtas@google.com \
--cc=peter.griffin@linaro.org \
--cc=srosek@google.com \
--cc=tfiga@chromium.org \
--cc=virtio-comment@lists.oasis-open.org \
--cc=virtio-dev@lists.oasis-open.org \
--cc=zyta@google.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox