Skip to content

Firefox's media playback stack in a stand alone Rust crate

License

Notifications You must be signed in to change notification settings

cpearce/gecko-media

 
 

Repository files navigation

Gecko Media Rust Crate

Build Status

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

Procedure to update the imported code from Gecko

  1. 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 
    
  2. 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 and gecko-media/gecko/include directories content will be removed and the source and header files declared in gecko-media/data/*.json will be copied back to those two directories.

  3. 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 inside gecko-media/gecko/glue. Some context about why this is needed can be found in this issue.

  4. Fix potential build errors!

About

Firefox's media playback stack in a stand alone Rust crate

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 59.5%
  • C++ 31.2%
  • Assembly 6.4%
  • Objective-C 2.4%
  • CMake 0.3%
  • Rust 0.2%