[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]