mediaway-common
Status: early development (
0.x). Not recommended for production; public APIs may change without notice. Part of the Mediaway media stack.
Shared types for the Mediaway media stack: integer timebases, pixel/sample formats, packets and frames, stream metadata, and GPU buffer handles. Every Mediaway crate — encode, decode, container, device — speaks these types, so they are the first thing to reach for when composing a pipeline.
Quick start
use ;
// A 30 fps H.264 video track at 1920x1080.
let stream = Video ;
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 |
|---|---|---|
Rational timebase, PixelFormat / SampleFormat |
✅ | Tested |
StreamInfo / Packet / VideoFrame / AudioFrame |
✅ | Used across encoder/decoder/mux |
GpuBufferHandle / GpuDeviceHandle |
✅ | All platform variants declared; platform impls live with their backends |
| Handle ownership / lifetime contract docs | 🛠️ | Planned (filled when GPU sessions land) |
| WebGPU / Metal / Android handle completeness | 🛠️ | Planned as those platforms land |
Docs
docs/roadmap.md— stages, deferred items, design decisions- Root README — codec/container/device support matrices across all crates
Contributing
Contributions are welcome — open an issue or pull request at github.com/nyxways/mediaway.
License
MIT OR Apache-2.0.