This is an mp4 track metadata parser.
Our primary interest is writing a pure-rust replacement for the track metadata parser needed by Firefox.
Project structure
mp4parse is a parser for ISO base media file format (mp4) written in rust.
mp4parse-capi is a C API that exposes the functionality of mp4parse. The C
API is intended to wrap the rust parser. As such, features should primarily
be implemented in the rust parser and exposed via the C API, rather than the C
API implementing features on its own.
Tests
Test coverage comes from several sources:
- Conventional tests exist in
mp4parse/src/lib.rsandmp4parse_capi/src/lib.rsas well as undermp4parse/testsandmp4parse_capi/tests. These tests can be run viacargo test. - Examples are included under
mp4parse_capi/examples. These programs should continue to build and run after changes are made. Note, these programs are not typically run bycargo test, so manual verification is required. However,test.ccis used to test the foreign function interface viabuild_ffi_test.rson non-Windows platforms and will be run bycargo test.- Examples with
aflrelated names are for use with the american fuzzy lop fuzzer. These examples can be run withoutafl, but they can be built specifically to receive input fromaflvia by setting thefuzzfeature when building. E.g.cargo build --features fuzzwould build the examples with fuzzing options.
- Examples with