Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
mediaway-decoder
Status: early development (
0.x). Not recommended for production; public APIs may change without notice. Part of the Mediaway media stack.
Hardware-accelerated video and audio decoding: the VideoDecoder trait plus per-platform
backends — Windows WMF (H.264/HEVC/AV1/VP9 hardware decode with DX11 Zero-Copy output,
plus the inbox Opus and AAC decoder MFTs), Vulkan Video decode, and WebCodecs (wasm, planned).
Streaming push_packet / poll_frame shape; GPU frames stay on the GPU until the
session recycles the surface.
Quick start
use ;
use ;
use WindowsVideoDecoder;
let config = VideoDecoderConfig ;
let mut decoder = open?; // WMF hardware session
decoder.push_packet?;
while let Some = decoder.poll_frame?
decoder.flush?;
For CPU output frames set output: VideoOutputPreference::CpuFramesOk.
Status
Status marks: ✅ first-class (tests for claimed scope) · ⚡ Zero-Copy path (no payload copy; implies ✅) · 🆗 best-effort / prototype · 🛠️ planned · ❌ attempted and genuinely blocked · 👻 not exercisable yet (no hardware / device / session available)
| Area | Status | Notes |
|---|---|---|
VideoDecoder trait |
✅ | Streaming push/poll API |
| Windows WMF H.264 decode | ✅ | Hardware MFT, DX11 Zero-Copy output |
| Windows WMF HEVC / AV1 / VP9 decode | ✅ | Same DXGI path; MFT may be absent on a machine. HEVC read back out of an MP4 (hvcC + length-prefixed samples) decodes too — resolve_framing converts it to Annex-B; covered by tests/mp4_roundtrip.rs |
Windows Opus decode (WmfOpusDecoder) |
✅ | Verified end-to-end (ffmpeg-produced Opus → exact PCM) |
Windows AAC decode (WmfAacDecoder) |
✅ | Inbox CMSAACDecMFT, Float32 PCM out; sample-exact round trip against WmfAacEncoder. The AudioSpecificConfig is required at open; raw AAC only (de-header ADTS first) |
| Vulkan Video decode | ✅ | H.264 general-GOP hardware-verified; HEVC GPU path unresolved; AV1 follow-up |
| CPU frame output path | ✅ | CpuFramesOk — Windows H.264 (roadmap), plus the CPU-output Linux/Apple backends |
| WebCodecs decode (wasm32) | 🛠️ | Planned |
| Linux VA-API decode | 🆗 | H.264 CPU-output, real GOP decode; zero real-hardware verification (wiki) |
Docs
docs/roadmap.md— stages, deferred items, design decisionsmediaway— convenience pipeline (platform::AutoDecoder)- Root README — codec support matrices (OS / GPU / vendor)
Contributing
Contributions are welcome — open an issue or pull request at github.com/nyxways/mediaway.
License
MIT OR Apache-2.0.