12个版本

使用旧Rust 2015

0.4.3 2020年8月9日
0.4.2 2019年5月19日
0.4.1 2018年8月25日
0.4.0 2017年12月2日
0.0.1 2015年2月13日

#126 in 音频

Download history 7638/week @ 2024-03-14 8882/week @ 2024-03-21 8896/week @ 2024-03-28 8739/week @ 2024-04-04 9153/week @ 2024-04-11 9170/week @ 2024-04-18 8800/week @ 2024-04-25 8897/week @ 2024-05-02 8215/week @ 2024-05-09 9919/week @ 2024-05-16 9907/week @ 2024-05-23 9291/week @ 2024-05-30 8531/week @ 2024-06-06 8589/week @ 2024-06-13 8186/week @ 2024-06-20 7305/week @ 2024-06-27

33,924 每月下载量
67 个crates中(20直接) 使用

Apache-2.0

160KB
2.5K SLoC

Claxon

Rust中的FLAC解码库。

Build Status Crates.io version Changelog Documentation

Claxon是用纯Rust编写的FLAC解码器。它已经过模糊测试并与参考解码器进行了正确性验证。其性能与参考解码器相似。

示例

以下示例计算FLAC文件的均方根(RMS)

let mut reader = claxon::FlacReader::open("testsamples/pop.flac").unwrap();
let mut sqr_sum = 0.0;
let mut count = 0;
for sample in reader.samples() {
    let s = sample.unwrap() as f64;
    sqr_sum += s * s;
    count += 1;
}
println!("RMS is {}", (sqr_sum / count as f64).sqrt());

更多示例可以在examples目录中找到。对于使用Claxon和Hound将FLAC文件解码为wav的简单示例,请参阅decode_simple.rs。更高效的解码方式需要处理FLAC格式的几个细节。请参阅decode.rs以获取示例。

性能

以下是将5个实际FLAC文件解码为wav的时间,11次运行的平均值和标准偏差,已归一化到参考实现的1.3.2版本。测量是在Skylake i7上进行的。Claxon是用Rust 1.26.0编译的。

解码器 时间 / 参考
Claxon 1.10 ± 0.01
libflac 1.00 ± 0.01

请注意,为了获得良好的性能,Claxon应在Rust ≥ 1.24.0上使用-C codegen-units=1进行编译。不传递此RUSTFLAG可能导致运行时间增加高达45%。

贡献

欢迎以错误报告、功能请求或拉取请求的形式进行贡献。请参阅contributing.md

许可证

Claxon遵循Apache 2.0许可证。它可以在自由软件以及封闭源代码应用程序中使用,无论是商业用途还是非商业用途,都可在许可证中给出的条件下使用。如果您想在您的GPLv2许可证软件中使用Claxon,您可以在版权声明中添加一个例外情况。请勿提出问题,如果您不同意许可证的选择。

无运行时依赖项