README.md
1# FFmpeg software decoder device for virtio-media
2
3This crate contains a virtio-media decoder device implementation that performs
4decoding in software using the host's FFmpeg library. It provides an easy way to
5try virtio-media without any specific hardware, as well as an example
6implementation for a decoder device.
7
8## Features
9
10- Decoding of H.264, VP8, VP9, HEVC.
11- Supported output formats: NV12.
12
13## Building
14
15The device should be added to your VMM like any other virtio-media device. At
16build time, the `build.rs` script will attempt to detect the host's FFmpeg
17libraries, run `bindgen` on then to create its wrapper, and link against them.
18
19This crate provides its own FFmpeg bindings - 3rdparty ones were considered, but
20unfortunately I could not get any to build reliably.
21
22## Limitations
23
24This is still a bit of a work-in-progress, although FFmpeg in the guest works
25reliably using the `v4l2m2m` series of codecs. Support for more output formats
26and a code cleanup are in order.
27