How oxideav/oxideav-mjpeg works
oxideav-mjpeg is a pure-Rust JPEG/Motion-JPEG codec with a standalone API and optional oxideav registry integration. The main workflow accepts JPEG bytes or packets, decodes them into image planes, or encodes image planes into JPEG; the still-image container passes a JPEG stream through as a packet. It also provides a general T.81 writer, JPEG metadata inspection, and RTP packetization/depacketization. The README documents broad JPEG process and hierarchical-mode support; source excerpts were incomplete, so uncertain internal wiring is omitted.
Main entry points: decoder.rs JPEG Decoder · encoder.rs JPEG Encoder · registry.rs Codec Registry · mjpeg_container.rs JPEG Container
Components 14
Framework Integration
- Codec Registry
src/registry.rs - JPEG Container
src/mjpeg_container.rs - Container Support
src/container.rs
JPEG Codec
- JPEG Decoder
src/decoder.rs - JPEG Encoder
src/encoder.rs - Image Types
src/image.rs
JPEG Internals
- Marker Parser
src/jpeg/parser.rs - Codec Primitives
src/jpeg - Error Types
src/error.rs
Additional Capabilities
- T.81 Writer
src/t81.rs - JPEG Inspector
src/jpeg/inspect.rs - RTP Transport
src/rtp.rs
Other components
- Application
- oxideav Framework
Connections 24
- Application → Codec Registry: registers codecs
- Codec Registry → oxideav Framework: registers with
- Codec Registry → JPEG Decoder: exposes decoder
- Codec Registry → JPEG Encoder: exposes encoder
- Codec Registry → JPEG Container: exposes container
- Application → JPEG Container: opens JPEG
- JPEG Container → JPEG Decoder: provides packet
- JPEG Encoder → JPEG Container: writes JPEG stream
- Application → JPEG Decoder: submits JPEG
- JPEG Decoder → Image Types: produces planes
- Application → JPEG Encoder: submits image
- JPEG Encoder → Application: returns JPEG
- JPEG Decoder → Marker Parser: parses markers
- JPEG Decoder → Codec Primitives: decodes scans
- JPEG Encoder → Codec Primitives: uses primitives
- T.81 Writer → Codec Primitives: uses primitives
- Application → T.81 Writer: encodes frame
- T.81 Writer → Application: returns JPEG
- Application → JPEG Inspector: inspects JPEG
- JPEG Inspector → Marker Parser: walks markers
- Application → RTP Transport: packetizes JPEG
- Application → RTP Transport: depacketizes RTP
- JPEG Decoder → Error Types: reports failures
- JPEG Encoder → Error Types: reports failures