[PATCH v7 0/1] virtio-media: Add device specification

Albert Esteve
2025-02-20T15:56:51Z

New attempt of including virtio-media
device specification.

v6->v7:
- All uses of must referencing
driver or device, put into a
normative section accordingly.
- Switched 'can' with 'may' in
a couple of appearances.
- Clarified UUID memory layout
for VIRTIO_OBJECT memory type.
- Fixed a typo in the driver
normative document.

v5->v6:
- A couple minor typos.
- Change driver-writable for
device-readable to avoid
confusion.

v4->v5:
- Rewritten/clarified some parts
according to the reviews received.
- Added missing links to V4L2
structures. Structs should
have a link on their first
appreance in the document.
- Clarified memory type
semantic V4L2 equivalent.

Virtio-media came from a discussion on virtio-dev
mailing list, which lead to presenting virtio-v4l2[1]
specification as an alternative to virtio-video.

Later, virtio-v4l2 was renamed to virtio-media[2]
and published at:

https://github.com/chromeos/virtio-media

The repository above includes a virtio-media driver able
to pass v4l2-compliance when proxying the vivid/vicodec
virtual devices or an actual UVC camera using the
V4L2 vhost device (available in the repository).
It also includes a FFmpeg-based video encoder
device. Steps to reproduce are also detailed[3].

Recently, virtio-media has landed in AOSP[4].
Also the driver patch has been sent to the
kernel, currently in its v2 [5].

Furthermore, virtio-media got a proposal to reserve
device ID 48, which was finally approved for
inclusion in v1.4.

There is some overlap with virtio-video in regards
to which devices it can handle. However,
they take different approaches, making them
the preferable choice for different scenarios.
Moreover, given that virtio-media will be the virtualization
solution for media devices for ChromeOS, Android, and
possibly others, this gives a justification for the desire
to include the specification in the next release despite
the aforementioned overlap.

Full PDF: https://drive.google.com/file/d/1CWWK6EP7AFkRKqcRGxesRDOXxb8NccJe/view?usp=sharing
PDF with the media section only: https://drive.google.com/file/d/1RkS7VlZLycdFOidsOHviTTBaTh-XOpu-/view?usp=sharing

[1] https://mail.google.com/mail/u/0?ui=2&ik=73ebd65ebd&attid=0.1&permmsgid=msg-f:1767388565327924962&th=1887068940754ee2&view=att&disp=inline&realattid=f_libalimc0
[2] https://www.mail-archive.com/virtio-dev@lists.oasis-open.org/msg12665.html
[3] https://github.com/chromeos/virtio-media/blob/main/TRY_IT_OUT.md
[4] https://cs.android.com/android/platform/superproject/main/+/main:external/virtio-media/
[5] https://lore.kernel.org/lkml/20250201-virtio-media-v2-1-ac840681452d@gmail.com/T/

Albert Esteve (1):
virtio-media: Add virtio media device specification

conformance.tex | 13 +-
content.tex | 1 +
device-types/media/description.tex | 637 ++++++++++++++++++++++
device-types/media/device-conformance.tex | 15 +
device-types/media/driver-conformance.tex | 11 +
5 files changed, 673 insertions(+), 4 deletions(-)
create mode 100644 device-types/media/description.tex
create mode 100644 device-types/media/device-conformance.tex
create mode 100644 device-types/media/driver-conformance.tex

--
2.48.1