vvdec

Rust bindings for VVdeC

13 releases (5 breaking)

0.5.1 Nov 9, 2023
0.5.0 Nov 6, 2023
0.4.0 Nov 1, 2023
0.3.2 Oct 31, 2023
0.0.5 Jun 24, 2023


Used in vvdecli

BSD-3-Clause-Clear

2MB
38K SLoC

C++ 37K SLoC // 0.1% comments Rust 606 SLoC JavaScript 244 SLoC // 0.0% comments Python 57 SLoC // 0.1% comments

VVdeC-rs

Rust bindings for VVdeC.

Work in progress: the bindings are not stable yet and may change at any time. Stabilization will begin once integration with some framework is working (e.g. GStreamer).

Sub-projects:

  • vvdec-sys: unsafe bindings generated by bindgen
  • vvdec: the safe bindings on top of vvdec-sys
  • vvdecli: CLI application using the safe bindings to decode VVC Annex-B files into YUV4MPEG (Y4M).

Installing the CLI

In order to build, either VVdeC >= 2.1.2 needs to be installed and be found via pkg-config, or the vendored feature needs to be enabled to build VVdeC from source (which requires CMake). On macOS, VVdeC can be installed with brew install vvdec.

Then, the CLI app can be installed with cargo install vvdecli.

If you have FFmpeg installed, you can then test vvdecli and play VVC with

vvdecli -i ./tests/short.vvc | ffplay -

License

This crate is license under the BSD-3-Clause-Clear license, to maintain compatibility with VVdeC's license.

Dependencies