5 unstable releases
0.3.1 | Feb 23, 2021 |
---|---|
0.3.0 | Feb 15, 2021 |
0.2.1 | Jan 21, 2020 |
0.2.0 | Jan 21, 2020 |
0.1.0 | Jan 21, 2020 |
#688 in Audio
87 downloads per month
Used in 2 crates
31KB
480 lines
rmp3
Idiomatic no_std
bindings to minimp3 which don't allocate.
Documentation
The documentation is hosted online over at docs.rs.
Usage
Add this to your Cargo.toml
:
[dependencies]
rmp3 = "0.3"
... or, if you need std
specific features:
[dependencies]
rmp3 = { features = ["std"], version = "0.3" }
The most basic example is using the provided streaming iterator to decode a file, like so:
use rmp3::{Decoder, Frame};
let mp3 = std::fs::read("test.mp3")?;
let mut decoder = Decoder::new(&mp3);
while let Some(frame) = decoder.next() {
if let Frame::Audio(audio) = frame {
// process audio frame here!
imaginary_player.append(
audio.channels(),
audio.sample_count(),
audio.sample_rate(),
audio.samples(),
);
}
}
Check out the documentation for more examples and info.
Features
float
: Changes the sample type to a single-precision float, and thus decoders will output float PCM.- This is a non-additive feature and will change API. Do not do this in a library without notice (why?).
mp1-mp2
: Includes MP1 and MP2 decoding code.simd
(default): Enables handwritten SIMD optimizations on eligible targets.std
: Adds things that requirestd
,
Dependencies
~0.4–325KB