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 音频
33,924 每月下载量
在 67 个crates中(20直接) 使用
160KB
2.5K SLoC
Claxon
Rust中的FLAC解码库。
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,您可以在版权声明中添加一个例外情况。请勿提出问题,如果您不同意许可证的选择。