Expand description
Pure-Rust H.264 / AVC codec for [oxideav].
This crate is currently empty. A previous implementation lives on
the old branch
but is being rewritten from scratch with the ITU-T Rec. H.264 |
ISO/IEC 14496-10 specification (2024-08 edition) as the single
authoritative source. No external decoder code is consulted while
writing this implementation.
The crate exposes a registration entry point so the workspace
aggregator keeps building, but no decoder or encoder is registered
yet — every packet routed here errors out with Unsupported.
See README.md for the spec coverage matrix as it grows.
Modules§
- avcc
- ISO/IEC 14496-15 §5.3.2.1 —
AVCDecoderConfigurationRecord(avcC) builder + parser, and the Annex B → length-prefixed sample framing that goes with it. - encoder
- H.264 / AVC encoder — Baseline profile, IDR-only, with mb_type switching between I_16x16 (DC/V/H/Plane) and I_NxN (Intra_4x4 with all 9 §8.3.1.2 modes) based on per-MB SAD.
- es_
demux - Raw H.264 elementary-stream (“Annex B byte stream”) container.
- h264_
decoder - H.264 decoder scaffold exposed through the
oxideav_core::Decodertrait so containers + players can route packets at us. - h264_
encoder - H.264 encoder exposed through the
oxideav_core::Encodertrait so pipelines and muxers can drive it fromCodecParameters. - sei
- Annex D — SEI payload parsing.
Constants§
- CODEC_
ID_ STR - Codec id constant — matches the historical
"h264"id used by containers (MKVV_MPEG4/ISO/AVC, MP4avc1, AVIH264/X264).
Functions§
- register
- Unified registration entry point: install the H.264 codec factories
into the codec sub-registry of a
RuntimeContext, plus the raw Annex-B byte-stream demuxer (es_demux,.h264/.264). - register_
codecs - Register the H.264 decoder with a codec registry.