Expand description
A ffmpeg-based software decoder backend for crosvm. Since it does not require any particular harware, it can provide fake hardware acceleration decoding to any guest and is mostly useful in order to work on the virtio-video specification, or to implement guest decoder code from the comfort of a workstation.
This backend is supposed to serve as the reference implementation for decoding backends in crosvm. As such it is fairly complete and exposes all the features and memory types that crosvm support.
The code in this main module provides the actual implementation and is free of unsafe code. Safe abstractions over the ffmpeg libraries are provided in sub-modules, one per ffmpeg library we want to support.
Structs§
- A decoder session for the ffmpeg backend.
- Structure maintaining a mapping for an encoded input buffer that can be used as a libavcodec buffer source. It also sends a
NotifyEndOfBitstreamBuffer
event when dropped.
Enums§
- CodecJob 🔒Types of input job we can receive from the crosvm decoder code.
- A crosvm decoder needs to go through a number if setup stages before being able to decode, and can require some setup to be redone when a dynamic resolution change occurs. This enum ensures that the data associated with a given state only exists when we actually are in this state.