On Thu, Dec 09, 2021 at 02:55:53PM +0000, Peter Griffin wrote: > This series adds support for virtio-video decoder devices in Qemu > and also provides a vhost-user-video vmm implementation. > > The vhost-user-video vmm currently parses virtio-vido v3 protocol > (as that is what the Linux frontend driver implements). > It then converts that to a v4l2 mem2mem stateful decoder device. > Currently this has been tested using v4l2 vicodec test driver in Linux > [1] but it is intended to be used with Arm SoCs which often implement > v4l2 stateful decoders/encoders drivers for their video accelerators. > > The primary goal so far has been to allow continuing development > of virtio-video Linux frontend driver and testing with Qemu. Using > vicodec on the host allows a purely virtual dev env, and allows for > ci integration in the future by kernelci etc. > > This series also adds the virtio_video.h header and adds the > FWHT format which is used by vicodec driver. > > I have tested this VMM using v4l2-ctl from v4l2 utils in the guest > to do a video decode to a file. This can then be validated using ffplay > v4l2-compliance tool in the guest has also been run which stresses the > interface and issues lots of syscall level tests > > See the README.md for example commands on how to configure guest kernel > and do a video decode using Qemu, vicodec using this VMM. > > Linux virtio-video frontend driver code: > https://github.com/petegriffin/linux/commits/v5.10-virtio-video-latest
Are you going to post this btw? > Qemu vmm code: > https://github.com/petegriffin/qemu/tree/vhost-virtio-video-master-v1 > > This is part of a wider initiative by Linaro called > "project Stratos" for which you can find information here: > > https://collaborate.linaro.org/display/STR/Stratos+Home > > Applies cleanly to git://git.qemu.org/qemu.git master(a3607def89). > > Thanks, > > Peter. > > [1] https://lwn.net/Articles/760650/ And the spec status? Does this match this spec: https://lore.kernel.org/linux-media/capbb6mud_oyeut8_bgrwapcpam40jtktz2f7+a3so5pfrdu...@mail.gmail.com/T/ ? A year ago a new revision was coming RSN ... > Peter Griffin (8): > vhost-user-video: Add a README.md with cheat sheet of commands > MAINTAINERS: Add virtio-video section > vhost-user-video: boiler plate code for vhost-user-video device > vhost-user-video: add meson subdir build logic > standard-headers: Add virtio_video.h > virtio_video: Add Fast Walsh-Hadamard Transform format > hw/display: add vhost-user-video-pci > tools/vhost-user-video: Add initial vhost-user-video vmm > > MAINTAINERS | 8 + > hw/display/Kconfig | 5 + > hw/display/meson.build | 3 + > hw/display/vhost-user-video-pci.c | 82 + > hw/display/vhost-user-video.c | 386 ++++ > include/hw/virtio/vhost-user-video.h | 41 + > include/standard-headers/linux/virtio_video.h | 484 +++++ > tools/meson.build | 9 + > tools/vhost-user-video/50-qemu-rpmb.json.in | 5 + > tools/vhost-user-video/README.md | 98 + > tools/vhost-user-video/main.c | 1680 ++++++++++++++++ > tools/vhost-user-video/meson.build | 10 + > tools/vhost-user-video/v4l2_backend.c | 1777 +++++++++++++++++ > tools/vhost-user-video/v4l2_backend.h | 99 + > tools/vhost-user-video/virtio_video_helpers.c | 462 +++++ > tools/vhost-user-video/virtio_video_helpers.h | 166 ++ > tools/vhost-user-video/vuvideo.h | 43 + > 17 files changed, 5358 insertions(+) > create mode 100644 hw/display/vhost-user-video-pci.c > create mode 100644 hw/display/vhost-user-video.c > create mode 100644 include/hw/virtio/vhost-user-video.h > create mode 100644 include/standard-headers/linux/virtio_video.h > create mode 100644 tools/vhost-user-video/50-qemu-rpmb.json.in > create mode 100644 tools/vhost-user-video/README.md > create mode 100644 tools/vhost-user-video/main.c > create mode 100644 tools/vhost-user-video/meson.build > create mode 100644 tools/vhost-user-video/v4l2_backend.c > create mode 100644 tools/vhost-user-video/v4l2_backend.h > create mode 100644 tools/vhost-user-video/virtio_video_helpers.c > create mode 100644 tools/vhost-user-video/virtio_video_helpers.h > create mode 100644 tools/vhost-user-video/vuvideo.h > > -- > 2.25.1