Crate opusenc

Crate opusenc 

Source
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§

Comments
Comments to be attached to an Ogg Opus file.
Encoder
Encoder for creating Ogg Opus files.

Enums§

Error
The error type returned by all library functions.
MappingFamily
Describes wether the channels are mapped as mono, stereo or surround.
OpusencError
Error code as returned from libopusenc.
PicardTag
Common tags used by Musicbrainz Picard.
PictureType
Type of an attached picture.
RecommendedTag
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.

Type Aliases§

Result