oxideav-h261
Pure-Rust ITU-T H.261 video decoder — the original 1990/1993 videoconferencing codec. Decodes both I-pictures (INTRA macroblocks) and P-pictures (INTER with integer-pel motion compensation + optional loop filter). QCIF (176×144) and CIF (352×288) source formats. Output is YUV 4:2:0. Zero C dependencies.
Part of the oxideav framework but usable standalone.
Installation
[]
= "0.1"
= "0.1"
= "0.0"
Feature matrix
| Feature | Decode |
|---|---|
| Picture header (PSC / TR / PTYPE / PEI / PSPARE) | yes |
| GOB layer (GBSC / GN / GQUANT / GEI / GSPARE) | yes |
| Source formats QCIF (176×144), CIF (352×288) | yes |
| Macroblock layer (MBA / MTYPE / CBP / MVD) | yes |
| TCOEFF VLC + escape | yes |
| 8×8 IDCT, dequantisation (Table 5/H.261) | yes |
| INTRA and INTER prediction | yes |
| Integer-pel motion compensation (MC) | yes |
| Loop filter (FIL, §3.2.3) | yes |
| BCH forward error correction (§5.4) | no |
H.261 only permits integer-pel motion vectors (range ±15); there are no half-pel refinements, no B-pictures, and no start-code emulation prevention. The spec tables (MBA / MTYPE / MVD / CBP / TCOEFF) are all implemented directly from the PDF.
Quick use
use Decoder;
use ;
use H261Decoder;
let mut dec = new;
let pkt = new;
dec.send_packet?;
match dec.receive_frame
# Ok::
Codec ID
- Codec:
"h261"; accepted pixel formatYuv420P; dimensions QCIF or CIF. - AVI FourCC
H261maps to this id.
License
MIT — see LICENSE.