opus-native
Overview
Implements the free and open audio codec Opus in Rust.
Status
This crate is under heavy development. Most functionality is not working.
TODO
- Decoder
- Encoder
- SIMD optimization
- Repacketizer
- Multistream decoder
- Multistream encoder
Not supported Opus features
To decrease the implementation complexity, we don't support the following rarely used features:
- Fixed point arithmetic - This library only supports float point arithmetic (only affects cheap MCU without proper floating point support).
- Custom modes - The Opus specification allows the usage of custom modes (custom sample rates or custom frame sizes) as an optional feature. Since this breaks the compatibility with other programs, leads to worse encoding quality and is extremely rarely used, we decided to not support this optional feature.
If you need these Opus features, you must stick to the reference implementation.
Target feature optimization
This crate enables SIMD intrinsics for the x86 and x86_64 targets on the stable Rust compiler for SSE automatically.
You can activate the following x86 / x86_64 target features for further optimizations:
avx
fma
If you wish to use SIMD intrinsics on non x86 and x86_64 platforms, you need to use the nightly
feature described below.
Crate features
nightly
- Enables target specific SIMD intrinsics that are only currently available on the nightly Rust compiler. Affected target features:neon
forarm
/aarch64
Credits
This crate is a direct port of the Opus reference implementation written in C:
It implements the following specifications:
License
Licensed under BSD-3-Clause.