Firefox's Media stack in a Rust crate.
Build with cargo build
.
Run tests with cargo test
.
A minimalistic player is also available:
$ cd examples
$ cargo run --bin test-player -- /path/to/some/audio-file.ogg
-
A mozilla-central Gecko build is required. Optimizations and debug should be enabled. Example
mozconfig
file:ac_add_options --enable-optimize ac_add_options --enable-debug
-
The import script has to be executed from the gecko-media directory:
$ cd gecko-media $ python3 import.py /path/to/mozilla-central gecko/
The
gecko-media/gecko/src
andgecko-media/gecko/include
directories content will be removed and the source and header files declared ingecko-media/data/*.json
will be copied back to those two directories. -
The import script will create a subfolder inside
glue_diffs/
named with the upstream revision number you are updating to (i.e. glue_diffs/392049:f41930a869a8/). Inside this subfolder you may find a series of diff files. You need to apply these patches manually to the code insidegecko-media/gecko/glue
. Some context about why this is needed can be found in this issue. -
Fix potential build errors!