mirror of
https://github.com/iluvcapra/bwavfile.git
synced 2025-12-31 17:00:44 +00:00
5384ebfdc51832efafa5920c2dae0cadb52f9be3
bwavfile
Rust Wave File Reader/Writer with Broadcast-WAV, MBWF and RF64 Support
This is currently a work-in-progress!
Use
use bwavfile::WaveReader;
let mut r = WaveReader::open("tests/media/ff_silence.wav").unwrap();
let format = r.format().unwrap();
assert_eq!(format.sample_rate, 44100);
assert_eq!(format.channel_count, 1);
let mut frame_reader = r.audio_frame_reader().unwrap();
let mut buffer = frame_reader.create_frame_buffer();
let read = frame_reader.read_integer_frame(&mut buffer).unwrap();
assert_eq!(buffer, [0i32]);
assert_eq!(read, 1);
Note on Testing
All of the media for the integration tests is committed to the respository
in either zipped form or is created by ffmpeg. Before you can run tests, you
will need to have ffmpeg installed, and you need to cd into the tests
directory and run the create_test_media.sh script.
Resources
Implementation of Broadcast Wave Files
- EBU Tech 3285 (May 2011), "Specification of the Broadcast Wave Format (BWF)"
Implementation of 64-bit Wave Files
- ITU-R 2088 (October 2019), "Long-form file format for the international exchange of audio programme materials with metadata"
- Presently in force, adopted by the EBU in EBU Tech 3306v2 (June 2018).
- EBU Tech 3306v1 (July 2009), "MBWF / RF64: An extended File Format for Audio"
- No longer in force, however long-established.
Implementation of Wave format fmt chunk
Other resources
- RFC 3261 (June 1998) "WAVE and AVI Codec Registries"
- Peter Kabal, McGill University
- Multimedia Programming Interface and Data Specifications 1.0 IBM Corporation and Microsoft Corporation, (August 1991)
Description
Languages
Rust
98.3%
Shell
1.7%