crosvm/libvda
David Staessens a78ae7a4ea virtio: video: Add support for libvda-vd decoder backend.
This CL adds support for the new GAVD backend that connects directly to
a Chrome media::VideoDecoder through the new mojo::VideoDecoder
interface. The mojo::VideoDecodeAccelerator interface currently used by
the GAVDA libvda backend is deprecated and will be removed in the
future.

To enable the libvda GAVD backend the "--video-decoder=libvda-vd"
argument needs to be provided to crosvm.

BUG=b:189278506
TEST=arc.VideoDecodeAccel.h264_vm

Change-Id: I8383bbc1e4371093bde7b0385efc51752c7bc466
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3026654
Auto-Submit: David Staessens <dstaessens@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Alexandre Courbot <acourbot@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
2021-12-20 08:24:20 +00:00
..
src virtio: video: Add support for libvda-vd decoder backend. 2021-12-20 08:24:20 +00:00
tests virtio: video: Add support for configuring the bitrate mode to encoder. 2021-07-29 03:52:27 +00:00
build.rs
Cargo.toml enumn: switch to upstream crates.io version 2021-11-15 21:03:25 +00:00
README.md

Libvda Rust wrapper

Note: This crate is specific to ChromeOS and requires the native (libvda)[https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform2/arc/vm/libvda] library at link time.

Rust wrapper for libvda. This library is used to enable communication with Chrome's GPU process to perform hardware accelerated decoding and encoding. It is currently in development to be used by crosvm's virtio-video device.

Building for the host environment

You can also execute cargo directly for faster build and tests. This would be useful when you are developing this crate. Since this crate depends on libvda.so, you need to install it to host environment first.

(chroot)$ sudo emerge chromeos-base/libvda        # Install libvda.so to host.
# Build
(chroot)$ cargo build
# Unit tests
(chroot)$ cargo test

Updating generated bindings

src/bindings.rs is automatically generated from libvda_common.h. src/decode/bindings.rs is automatically generated from libvda_decode.h. src/encode/bindings.rs is automatically generated from libvda_encode.h.

See the header of the bindings file for the generation command.