Expand description
High-level bindings for libopusenc.
§Example
let audio_data: Vec<i16> = {
let mut file = std::fs::File::open("/dev/urandom")?;
let mut buf = vec![0; 60 * 48_000 * 2 * 2];
file.read_exact(&mut buf)?;
buf.chunks_exact(2)
.map(|a| i16::from_ne_bytes([a[0], a[1]]))
.collect()
};
let mut encoder = Encoder::create_file(
"/tmp/noise.opus",
Comments::create()
.add(RecommendedTag::Title, "Random Noise")?
.add(RecommendedTag::Artist, "/dev/urandom")?,
48_000,
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.
Re-exports§
pub use opusenc_sys as ffi;
Structs§
Enums§
- Error
- The error type returned by all library functions.
- Mapping
Family - Describes wether the channels are mapped as mono, stereo or surround.
- Opusenc
Error - Error code as returned from libopusenc.
- Picard
Tag - Common tags used by Musicbrainz Picard.
- Picture
Type - Type of an attached picture.
- Recommended
Tag - Tags recommended by the Ogg Vorbis specification.
Functions§
- abi_
version - ABI version for libopusenc’s header. Can be used to check for features at run time.
- version_
str - Returns a string representing the version of libopusenc being used at run time.