| Crates.io | moosicbox_audio_encoder |
| lib.rs | moosicbox_audio_encoder |
| version | 0.1.4 |
| created_at | 2024-10-04 02:48:33.772976+00 |
| updated_at | 2025-07-21 19:18:26.918283+00 |
| description | Audio converter helper |
| homepage | |
| repository | https://github.com/MoosicBox/MoosicBox |
| max_upload_size | |
| id | 1395987 |
| size | 35,269 |
Basic audio encoding utilities with feature-gated support for multiple formats.
The MoosicBox Audio Encoder package provides:
aac: Advanced Audio Coding encoder moduleflac: Free Lossless Audio Codec encoder modulemp3: MPEG Layer III encoder moduleopus: Opus codec encoder module[dependencies]
moosicbox_audio_encoder = { path = "../audio_encoder" }
# Enable specific formats
moosicbox_audio_encoder = {
path = "../audio_encoder",
features = ["mp3", "flac", "aac", "opus"]
}
use moosicbox_audio_encoder::EncodeInfo;
fn handle_encode_result(info: EncodeInfo) {
println!("Output size: {} bytes", info.output_size);
println!("Input consumed: {} bytes", info.input_consumed);
}
// AAC encoding (requires "aac" feature)
#[cfg(feature = "aac")]
use moosicbox_audio_encoder::aac;
// FLAC encoding (requires "flac" feature)
#[cfg(feature = "flac")]
use moosicbox_audio_encoder::flac;
// MP3 encoding (requires "mp3" feature)
#[cfg(feature = "mp3")]
use moosicbox_audio_encoder::mp3;
// Opus encoding (requires "opus" feature)
#[cfg(feature = "opus")]
use moosicbox_audio_encoder::opus;
async fn encode_audio() -> Result<(), Box<dyn std::error::Error>> {
// Encoding functionality depends on enabled features
// and implementations in the respective modules
#[cfg(feature = "mp3")]
{
// Use MP3 encoder from mp3 module
// (implementation details depend on the mp3 module)
}
#[cfg(feature = "flac")]
{
// Use FLAC encoder from flac module
// (implementation details depend on the flac module)
}
Ok(())
}
EncodeInfo struct provides standardized encoding result informationEncodeInfo structureaac: Enables AAC encoding moduleflac: Enables FLAC encoding modulemp3: Enables MP3 encoding moduleopus: Enables Opus encoding moduleThis package currently provides:
EncodeInfo for encoding resultsThe actual encoding implementations are contained within the feature-gated modules. Check the individual module documentation for specific encoding capabilities and APIs.
// Always available - core types
use moosicbox_audio_encoder::EncodeInfo;
// Feature-gated - format-specific encoders
#[cfg(feature = "mp3")]
use moosicbox_audio_encoder::mp3::*;
#[cfg(feature = "flac")]
use moosicbox_audio_encoder::flac::*;
This design allows consumers to include only the encoding formats they need, reducing binary size and dependencies.