Codec Support
Pulled directly from the project README, so this stays in sync automatically — no separate table to fall out of date.
| Mark | Meaning |
|---|---|
| ✅ | Hardware / real-session-verified — real hardware or a real live session was actually exercised (not just “tests for the claimed scope” — implementation + unit tests alone are 🆗, not ✅) |
| ⚡ | Zero-Copy path — no payload memcpy (GPU handle or shared CPU buffer); implies ✅ — still needs real hardware verification, not just that the Zero-Copy code path exists |
| 🆗 | Implemented, compiles — not (yet) verified against real hardware / a real session |
| 🛠️ | Planned |
| ❌ | Attempted and genuinely blocked — no upstream API to build on, a hard version/license conflict, or a real query returned “unsupported.” Not a “ran out of time” 🛠️. |
| 👻 | Not exercisable yet — license/patent blocked, no target hardware, out of scope, or no device/daemon/session available to run otherwise-tested code against |
Cell = encode/decode. One mark means both; A/B means encode / decode.
OS · CPU
OS codec APIs (WMF, WebCodecs, VA-API, …) fed with CPU buffers.
| Codec | Windows | Web | Linux | Apple | Android |
|---|---|---|---|---|---|
| H.264 / AVC | ✅ / ✅ | ✅ / ✅ | 🆗 / 🆗 | 🆗 / 🆗 | 🆗 / 🆗 |
| HEVC / H.265 | ✅ / ✅ | ❌ / ✅ | 🆗 / 🆗 | 🆗 / 🆗 | 👻 |
| AV1 | 🛠️ / ✅ | ✅ | ❌ / 🆗 | ❌ / 🆗 | 👻 |
| VP9 | ✅ / ✅ | ✅ | 🆗 / 🆗 | ❌ / 🆗 | 👻 |
| ProRes | 👻 | 👻 | 👻 | 🆗 / 🆗 | 👻 |
| AAC | 🆗 / ✅ | 🆗 | 🛠️ | 🆗 / 🆗 | 👻 |
| Opus | ✅ / ✅ | 🆗 | 🛠️ | 🆗 / 🆗 | 👻 |
OS · GPU
Same OS APIs with GPU surfaces (GpuBufferHandle, DXGI, …). Video only.
| Codec | Windows | Web | Linux | Apple | Android |
|---|---|---|---|---|---|
| H.264 / AVC | 🆗 / 🆗 | ✅ | 🆗 / 🆗 | 🆗 / 🆗 | 👻 |
| HEVC / H.265 | 🆗 / 🆗 | 🆗 / 🛠️ | 🛠️ | 🆗 / 🆗 | 👻 |
| AV1 | 🆗 / 🆗 | 🆗 / 🛠️ | 🛠️ | ❌ / 🆗 | 👻 |
| VP9 | 🆗 / 🆗 | 🆗 / 🛠️ | 🛠️ | ❌ / 🆗 | 👻 |
| ProRes | 👻 | 👻 | 👻 | 🆗 / 🆗 | 👻 |
GPU — by API
Graphics interop (D3D11, Vulkan, Metal, …) — which API your textures use. Video only.
Adapters: mediaway wgpu module.
| Codec | D3D11 | D3D12 | Vulkan | Metal |
|---|---|---|---|---|
| H.264 / AVC | 🆗 / 🆗 | ✅ / 🛠️ | ✅ / ✅ | 🆗 / 🆗 |
| HEVC / H.265 | 🆗 / 🆗 | ✅ / 🆗 | ✅ / ✅ | 🆗 / 🆗 |
| AV1 | 🆗 / 🆗 | ✅ / 🆗 | ❌ / ✅ | ❌ / 🆗 |
| VP9 | 🆗 / 🆗 | 👻 | 👻 | ❌ / 🆗 |
| ProRes | 👻 | 👻 | 👻 | 🆗 / 🆗 |
GPU — by vendor
Vendor SDKs (NVENC, AMF, QuickSync, …) — separate from OS + graphics interop. Video only.
See mediaway-encoder for NVIDIA/AMD/Intel backends.
| Codec | NVIDIA | AMD | Intel | Qualcomm |
|---|---|---|---|---|
| H.264 / AVC | ✅ | 🆗 | ✅ | 👻 |
| HEVC / H.265 | ✅ | 🆗 | ✅ | 👻 |
| AV1 | ✅ | 🆗 | ❌ | 👻 |
| VP9 | 👻 | 👻 | 👻 | 👻 |
CPU / SW
Pure Rust sans-io software codecs — no C codec FFI (OpenH264, libvpx, …). Opt-in only; never a silent HW fallback. Detail: mediaway-sw (H.264 decode, AV1/Opus encode, PCM, audio processing).
| Codec | Status |
|---|---|
| H.264 / AVC | 🆗 |
| HEVC / H.265 | 👻 |
| AV1 | 🆗 |
| VP9 | 👻 |
| AAC | 👻 |
| Opus | ✅ |
| PCM / raw | 🆗 |