Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

bericyb/law-encoder

Repository files navigation

law-encoder

law-encoder is a Rust library for A-law and m-law (mu-law) audio encoding. These encoding schemes are defined in ITU-T standards G.711 and are widely used in digital audio processing, particularly in telephony and audio compression.

Features

  • A-law & m-law Encoding: Compand 16bit audio data using the A-law and m-law algorithm.
  • High Performance: No dynamic memory allocations. Optimized for real-time and embedded applications.
  • Zero Dependencies: Designed to work standalone, with no external dependencies. No standard library. Just good ole bit shifting.

Installation

Add law-encoder to your Cargo.toml:

[dependencies]
law-encoder = "0.1.0"

Usage

Here's a quick example to get you started with law-encoder:

use law_encoder::{LawEncoder, InputFormat, OutputFormat};

let encoder = LawEncoder;

let mut output = [0; 150000];

let num_bytes_encoded = encoder
.encode(
InputFormat::BigEndian,
&audio,
OutputFormat::Mulaw,
&mut output,
)
.unwrap();

println!("Encoded {} bytes!", num_bytes_encoded);

More detailed examples in the examples directory.

Contributing

Contributions are welcome! Please read our CONTRIBUTING.md for details.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • This project was developed with the specifications in ITU-T G.711 standards for audio compression.

Support

For support and inquiries, please open an issue on the GitHub repository issue tracker.

About

Rust library for A-law and m-law (mu-law) audio encoding.

Resources

Readme

License

MIT license

Contributing

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages