tpt-media

Rust

A 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.

0 stars0 forks0 watchers

Languages

Rust92.7%Python4.2%JavaScript1.8%HTML0.7%C0.5%Ruby0.0%
README

tpt-media

License: MIT OR Apache-2.0 Rust no_std

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.

CratePurpose
tpt-media-coreMedia data models (Timestamp, Frame, Packet, Track)
tpt-media-bitstreamBit reader/writer, Huffman, Rice, range coder
tpt-media-codecGeneric codec interfaces (Encoder, Decoder)
tpt-media-containerGeneric container abstraction
tpt-media-pipelineNode-based pipeline (Source → Demux → Decode → Sink)
tpt-media-ioPCM/WAV/raw I/O integration
tpt-media-probeContainer + codec introspection
tpt-containerThe native .tpt container format
tpt-media-representationSwappable signal-representation trait contracts (research)
tpt-media-researchRepresentation research harness (docs/representation-research.md)
tpt-audio-cinderReal-time low-latency audio codec
tpt-audio-auraHigh-fidelity / archival audio (lossless + lossy)
tpt-audio-reedExtremely low-bandwidth speech codec (no_std LPC vocoder)
tpt-video-thrumReal-time video communication (I/P, intra refresh, 8x8 DCT)
tpt-cliCommand-line encoder/decoder/probe
tpt-video-vaultHigh-compression video (64x64 superblocks, recursive partitioning, half-pel, multi-reference, RDO)
tpt-video-moteExtreme-edge video (8x8 patch dictionary VQ, 12-bit index, temporal skip)
tpt-webWASM browser player (streaming decode, WebAudio + canvas demo)
tpt-media-sysStable 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

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.