fb512a85b2
This allows cargo to build for android. A new dev container is built to include this. To allow us to build the new container, we had to remove the ffmpeg dependencies for armhf which fail to install in the current version of debian. BUG=b:349907813 TEST=dev_container presubmit clippy_android Change-Id: I7fbcd460e53fbd339a28b451a91b0722d34257b8 Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/5689659 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Commit-Queue: Dennis Kempin <denniskempin@google.com> |
||
---|---|---|
.. | ||
src | ||
build.rs | ||
Cargo.toml | ||
README.md |
FFmpeg wrapper
This is a minimal FFmpeg 5.0+ wrapper for use with the virtio-video device, allowing to run a virtual video device backed by software decoding or encoding. This is useful for development and testing in situations where no supported video acceleration is available on the host.
Although several FFmpeg binding crates exist, most of them are not able to link against the system FFmpeg, and the only one that does is released under a software license that makes our lawyers nervous.
So taking this in consideration, as well as the extra work that it is to depend on external Rust crates in ChromeOS, it is preferable to add our own simple bindings here that cover just the parts of FFmpeg that we need.
This crate has minimal dependencies ; on the FFmpeg side, it just uses libavcodec
, libavutil
and
libswscale
.
A few elements that bindgen cannot generate because they are behind C macros are re-defined in
avutil.rs
and error.rs
, as well as tests to ensure their correctness.
And that's about it.