Skip to content

Implements the free and open audio codec Opus in Rust.

License

Notifications You must be signed in to change notification settings

hasenbanck/opus-native

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

opus-native

Latest version Documentation BSD-3

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 for arm / aarch64

Credits

This crate is a direct port of the Opus reference implementation written in C:

Reference implementation

It implements the following specifications:

License

Licensed under BSD-3-Clause.

About

Implements the free and open audio codec Opus in Rust.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages