Get android mediacodec working again

* add libyuv android build script.
* use pointers from mediacodec output instead of copying buffers.
7 files changed
tree: 7c065e73bc64369689bf6dfdb3e126934a4af134
  1. c_api_tests/
  2. examples/
  3. src/
  4. sys/
  5. tests/
  6. third_party/
  7. .gitignore
  8. .rustfmt.toml
  9. build.rs
  10. cargo-config.toml
  11. Cargo.toml
  12. cbindgen.toml
  13. compare.sh
  14. gen_test_case.sh
  15. README.md
  16. todos.txt
README.md

Crabby Avif 🦀

Avif parser/decoder implementation in Rust.

Features

  • Supports dav1d, libgav1 or android mediacodec as the underlying AV1 decoder.
  • C API compatible with libavif
  • ..and more

Build

git clone https://github.com/webmproject/CrabbyAvif.git
cd CrabbyAvif/sys/dav1d-sys
./dav1d.cmd
cd ../libyuv-sys
./libyuv.cmd
cd ../..
cargo build

Tests

cargo test -- --skip test_conformance

Conformance tests

git clone https://github.com/AOMediaCodec/av1-avif.git third_party/av1-avif
git clone https://github.com/AOMediaCodec/libavif.git third_party/libavif
cd third_party/libavif/ext
./aom.cmd
cd ../../..
cmake -S third_party/libavif -B third_party/libavif/build -DAVIF_CODEC_AOM=LOCAL -DAVIF_BUILD_APPS=ON
cmake --build third_party/libavif/build --parallel
cargo test -- test_conformance