OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

virtio-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [RFC PATCH v7 0/1] Virtio video device specification


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



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]