opusenc-rs

Build Status Crates.io Documentation License: BSD-3-Clause

High-level bindings for libopusenc.

Example

```rust let audiodata: Vec = { let mut file = std::fs::File::open("/dev/urandom")?; let mut buf = vec![0; 60 * 48000 * 2 * 2]; file.readexact(&mut buf)?; buf.chunksexact(2) .map(|a| i16::fromnebytes([a[0], a[1]])) .collect() };

let mut encoder = Encoder::createfile( "/tmp/noise.opus", Comments::create() .add(RecommendedTag::Title, "Random Noise")? .add(RecommendedTag::Artist, "/dev/urandom")?, 48000, 2, MappingFamily::MonoStereo, )?;

encoder.write(&audio_data)?; encoder.drain()?;

```

Encoder options

This crate provides a encoder-options feature which enables reading and changing encoder options.

Warning: Some of these options might not work with opusenc, may be unsafe or even cause UB. They are intended to be used via C macros that don't work with Rust. Make sure to check if the methods you use match their intended behaviour.

License

This project is licensed under the BSD-3-Clause License.

See LICENSE for more information.