commit | d4a6d18d7acbed4204fec318e5643206194605ae | [log] [tgz] |
---|---|---|
author | Yannis Guyon <yguyon@google.com> | Tue Feb 27 19:51:06 2024 |
committer | GitHub <noreply@github.com> | Tue Feb 27 19:51:06 2024 |
tree | d783e0ce809b4837753fd3acb13f6580ae30bb6a | |
parent | 4cd0df52e56c57b130d8dcdefb8a4c2dce0b9453 [diff] |
Remove rgb::Image::ignore_alpha for simplicity (#28) rgb::Image::format can be set to an opaque format instead. Also do not premultiply samples with alpha before dropping alpha.
Avif parser/decoder implementation in Rust.
git clone https://github.com/webmproject/CrabbyAvif.git # If dav1d system library can be found with pkg-config, this step can be skipped. cd CrabbyAvif/sys/dav1d-sys ./dav1d.cmd # If libyuv system library can be found with pkg-config, this step can be skipped. cd ../libyuv-sys ./libyuv.cmd cd ../.. cargo build
cargo test -- --skip test_conformance
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 ./dav1d.cmd cd .. cmake -S . -B build -DAVIF_CODEC_DAV1D=LOCAL -DAVIF_LIBYUV=OFF -DAVIF_BUILD_APPS=ON cmake --build build --parallel -t avifdec cd ../.. cargo test -- test_conformance
# Build google test cd third_party ./googletest.cmd cd .. # Build the library with C API enabled cargo build --features capi --release # Build and run the C/C++ Tests mkdir c_build cd c_build cmake ../c_api_tests/ make make test
The decoder tests can be run on Android using dinghy.
# One time set up cargo install cargo-dinghy # Set path to NDK export ANDROID_NDK_HOME=<path_to_ndk> # Install rust toolchain for target rustup target add aarch64-linux-android # End of One time set up # Make sure the device/emulator is available via adb. cargo dinghy -d android test --no-default-features --features android_mediacodec,libyuv --target aarch64-linux-android --test decoder_tests