Skip to main content

adts_core/
lib.rs

1//! Sans-IO ADTS (raw AAC elementary stream) mux and demux — no OS I/O, no
2//! Mediaway types.
3//!
4//! ADTS has no container-level header — it is just a concatenation of
5//! self-describing frames (7-byte header, no CRC, single raw-data-block-per-frame —
6//! the common case for AAC-LC streams). [`Muxer::write_frame`] appends one frame
7//! per call (no `finish()`); [`Demuxer`] is a true incremental `push_bytes`/`poll`
8//! reader, matching `iso-bmff`'s demux shape.
9//!
10//! `iso-bmff` already has a one-off ADTS-header-strip helper
11//! (`crates/iso-bmff/src/bitstream/aac.rs`) for muxing a single AAC frame into MP4;
12//! this crate is the standalone ADTS *container* (mux + incremental demux over a
13//! byte stream), independent of ISOBMFF.
14
15#![forbid(unsafe_code)]
16
17mod demux;
18mod error;
19mod mux;
20mod types;
21
22pub use demux::Demuxer;
23pub use error::Error;
24pub use mux::Muxer;
25pub use types::{AacProfile, AdtsConfig};