Expand description
Minimal IDR / keyframe header parsing for H.264, HEVC and AV1.
This crate is the parser layer that the oxideav HW-accel bridge
crates (oxideav-vaapi, oxideav-vdpau, oxideav-vulkan-video)
call before submitting parameter buffers to the GPU. It is not
a full codec: there is no DCT, no entropy decode, no inverse
transform, no motion compensation. Just enough syntax parsing to
populate VAPictureParameterBufferH264 / VdpPictureInfoH264 /
VkVideoDecodeH264PictureInfoKHR and the equivalents for HEVC and
AV1.
Each codec lives in its own module:
h264— Annex-B framing, SPS, PPS and minimal slice header.hevc— Annex-B framing, VPS, SPS, PPS and minimal slice segment header.av1— leb128 reader, OBU walker, sequence header and key-frame OBU parsing.
There is no shared cross-codec abstraction in v0 — each module
exposes its own parse_* entry points and result structs. The
shared bit_reader::BitReader type provides u(n), ue(v) and
se(v) primitives.
§No unsafe
This crate contains zero unsafe blocks. Bit reading is software,
no FFI involved.
§Workspace clean-room policy
Bitstream syntax is taken from the relevant ITU-T / Khronos / AOMedia spec PDFs only. We deliberately do not consult ffmpeg / libavcodec, x264, x265, libde265, libaom, dav1d, rav1e or libgav1 source. ffmpeg / aomenc are used only as black-box CLI tools to generate test fixtures.
Modules§
- av1
- AV1 minimal keyframe header parsing.
- bit_
reader - Shared MSB-first bit reader with
u(n)/ue(v)/se(v)primitives. These are the basic building blocks every codec module needs. - h264
- H.264 / AVC minimal IDR header parsing.
- hevc
- HEVC / H.265 minimal IDR header parsing.
Enums§
- Bitstream
Error - Errors produced by the parsers in this crate.