Skip to main content

Crate oxideav_h264

Crate oxideav_h264 

Source
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::Decoder trait so containers + players can route packets at us.
h264_encoder
H.264 encoder exposed through the oxideav_core::Encoder trait so pipelines and muxers can drive it from CodecParameters.
sei
Annex D — SEI payload parsing.

Constants§

CODEC_ID_STR
Codec id constant — matches the historical "h264" id used by containers (MKV V_MPEG4/ISO/AVC, MP4 avc1, AVI H264/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.