mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2025-02-06 02:25:23 +00:00
32 lines
1.1 KiB
Markdown
32 lines
1.1 KiB
Markdown
|
# 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.
|
||
|
|
||
|
```shell
|
||
|
(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.
|