audio_codec_algorithms/
lib.rs

1//!
2//! This crate contains simple audio codecs. Supported codecs are:
3//!  - [G.711 A-law](https://en.wikipedia.org/wiki/G.711#A-law)
4//!  - [G.711 μ-law](https://en.wikipedia.org/wiki/G.711#μ-law)
5//!  - [IMA ADPCM](https://en.wikipedia.org/wiki/Interactive_Multimedia_Association)
6//!
7
8#![no_std]
9
10#![forbid(
11    unsafe_code,
12    clippy::panic,
13    clippy::exit,
14    clippy::unwrap_used,
15    clippy::expect_used,
16    clippy::unimplemented,
17    clippy::todo,
18    clippy::unreachable,
19)]
20#![deny(
21    clippy::cast_ptr_alignment,
22    clippy::char_lit_as_u8,
23    clippy::unnecessary_cast,
24    clippy::cast_lossless,
25    clippy::cast_possible_truncation,
26    clippy::cast_possible_wrap,
27    clippy::cast_sign_loss,
28    clippy::checked_conversions,
29)]
30#![allow(clippy::manual_range_contains)]
31
32mod alaw;
33pub use alaw::{decode_alaw, encode_alaw};
34
35mod ulaw;
36pub use ulaw::{decode_ulaw, encode_ulaw};
37
38mod adpcm_ima;
39pub use adpcm_ima::AdpcmImaState;
40pub use adpcm_ima::{decode_adpcm_ima, decode_adpcm_ima_ima4, decode_adpcm_ima_ms};
41pub use adpcm_ima::{encode_adpcm_ima, encode_adpcm_ima_ima4, encode_adpcm_ima_ms};
42
43/// Error values.
44#[derive(Debug)]
45pub enum Error {
46    /// Invalid number of channels.
47    InvalidChannels,
48
49    /// Buffer has an invalid size.
50    InvalidBufferSize,
51}