tpt-media
RustA patent-free, clean-room media codec suite in Rust. Three purpose-built tiers each for audio and video (real-time, high-fidelity/archival, and edge/IoT), a custom lightweight .tpt container format, a CLI, a WASM browser player, and C FFI bindings. 100% public-domain DSP — no CABAC, no fractional-pixel interpolation, no SBR.
Languages
tpt-media
The native TPT media framework and codec ecosystem.
tpt-media is the home of the TPT-native media stack: shared media data models,
timestamps, packet/frame abstractions, codec interfaces, the .tpt container,
bitstream and entropy primitives, media pipelines, native TPT codecs, a probing
library, the tpt command-line tool, and a stable C ABI (tpt-media-sys,
§46). A WASM browser player (tpt-web, §45) decodes .tpt audio and video in
the browser.
tpt-media is not a general-purpose DSP library. All transforms,
filters, signal analysis and SIMD live in the companion tpt-dsp
crate, which tpt-media depends on. Standards-oriented media implementations
live in the companion tpt-kinetix
crate. The intended stack is:
TPT APPLICATIONS
│
┌─────────────┼─────────────┐
│ │ │
tpt-government tpt-kinetix tpt-media
│
Native TPT Media
│
▼
tpt-dsp
Ecosystem
Every crate listed below is a workspace member.
| Crate | Purpose |
|---|---|
tpt-media-core | Media data models (Timestamp, Frame, Packet, Track) |
tpt-media-bitstream | Bit reader/writer, Huffman, Rice, range coder |
tpt-media-codec | Generic codec interfaces (Encoder, Decoder) |
tpt-media-container | Generic container abstraction |
tpt-media-pipeline | Node-based pipeline (Source → Demux → Decode → Sink) |
tpt-media-io | PCM/WAV/raw I/O integration |
tpt-media-probe | Container + codec introspection |
tpt-container | The native .tpt container format |
tpt-media-representation | Swappable signal-representation trait contracts (research) |
tpt-media-research | Representation research harness (docs/representation-research.md) |
tpt-audio-cinder | Real-time low-latency audio codec |
tpt-audio-aura | High-fidelity / archival audio (lossless + lossy) |
tpt-audio-reed | Extremely low-bandwidth speech codec (no_std LPC vocoder) |
tpt-video-thrum | Real-time video communication (I/P, intra refresh, 8x8 DCT) |
tpt-cli | Command-line encoder/decoder/probe |
tpt-video-vault | High-compression video (64x64 superblocks, recursive partitioning, half-pel, multi-reference, RDO) |
tpt-video-mote | Extreme-edge video (8x8 patch dictionary VQ, 12-bit index, temporal skip) |
tpt-web | WASM browser player (streaming decode, WebAudio + canvas demo) |
tpt-media-sys | Stable C ABI (§46: opaque handles, error codes, C header) |
Each crate link goes to its own README.md, which carries the usage examples,
feature flags, testing entry points and known limitations for that crate, and
links onward to the shared design documents. Each crate also carries its own
CHANGELOG.md, scoped to that crate — see
CONTRIBUTING §9.4 for how those
relate to the workspace-level CHANGELOG.md.
Building
# Format, lint, build, and test the entire workspace
cargo fmt --all
cargo clippy --all-targets --locked -- -D warnings
cargo build --workspace --locked
cargo test --workspace --locked
The tpt-audio-reed crate is no_std-compatible and can additionally be built
for bare-metal targets:
cargo build -p tpt-audio-reed --target thumbv7em-none-eabi --no-default-features
License
Dual-licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE-2.0)
- MIT License (LICENSE-MIT)
at your option.
Copyright 2026 TPT Solutions.
Contributing
Development is issues only — we do not accept external code contributions. See CONTRIBUTING.md for how to report bugs or propose work, and for the clean-room development rules, patent-conscious design policy, and provenance requirements the code is held to.
Architecture
See ARCHITECTURE.md for the long-form design document and
docs/ for per-area design notes.