adts-core 0.1.1

Sans-IO ADTS (raw AAC elementary stream) mux and demux
Documentation
  • Coverage
  • 100%
    17 out of 17 items documented0 out of 0 items with examples
  • Size
  • Source code size: 31.47 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 574.98 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 6s Average build duration of successful builds.
  • all releases: 7s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • nyxways/mediaway
    1 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • dev-nyxie

adts-core

Status: early development (0.x). Not recommended for production; public APIs may change without notice. Part of the Mediaway media stack.

Sans-IO ADTS framing for raw AAC elementary streams — the common file-less AAC transport (a 7-byte header per frame, no container-level header). Mux appends one frame per call; demux is a true incremental push_bytes/poll_frame reader that handles partial input. No I/O in the core.

Quick start

use adts_core::{AdtsConfig, AacProfile, Demuxer, Muxer};

let config = AdtsConfig { profile: AacProfile::Lc, sample_rate: 48_000, channels: 2 };
let muxer = Muxer::new(config)?;

let mut adts = Vec::new();
muxer.write_frame(&raw_aac_frame, &mut adts)?; // one 7-byte-header ADTS frame

let mut demuxer = Demuxer::new();
demuxer.push_bytes(&adts);
while let Some(aac) = demuxer.poll_frame()? { /* one raw AAC frame */ }

Status

Status marks: ✅ first-class (tests for claimed scope) · ⚡ Zero-Copy path (no payload copy; implies ✅) · 🆗 best-effort / prototype · 🛠️ planned · ❌ attempted and genuinely blocked · 👻 not exercisable yet (no hardware / device / session available)

Area Status Notes
Mux (no-CRC 7-byte header) One raw-data-block per frame (the common AAC-LC case)
Demux (incremental, partial-input safe) Reads both no-CRC (7-byte) and CRC (9-byte) headers
Mux-side CRC header 🛠️ Demux already reads it; mux writes no-CRC only
Multi-raw-data-block frames exposed 🛠️ Payload bytes survive; internal AAC-frame boundary not exposed

Docs

Contributing

Contributions are welcome — open an issue or pull request at github.com/nyxways/mediaway.

License

MIT OR Apache-2.0.