blob: 1d723f86a0407fb37ebd48e5b55f8128c76b98f2 [file] [log] [blame] [view] [edit]
# libvda
## About
libvda is a library that provides a C API for video decoding as defined in
[libvda.h](./libvda.h).
## Implementations
### [GPU](./gpu)
An implementation that communicates with `GpuArcVideoDecodeAccelerator` running
in the GPU process. Internally, communication is done with libmojo using the
[VideoDecodeAccelerator](https://chromium.googlesource.com/chromium/src.git/+/HEAD/components/arc/common/video_decode_accelerator.mojom) mojo interface.
### [Fake](./fake)
An empty implementation useful for integration testing. Users can initialize
this implementation to see verbose logs when each vda function is called, as
well as receive empty PICTURE_READY events.
## Running unittests manually
There are unit tests for both the fake and the GPU implementation. The GPU unit
tests require ChromeOS with Chrome running in order to communicate with the GPU
process. The DecodeFileGpu unit test requires an encoded video file with
extension .h264, .vp8, .vp9 to be provided that contains an H264, VP8, or VP9
video stream respectively. This can be passed in using the `--test_video_file`
command line flag.
Example usage:
./libvda_unittest --test_video_file=test_stream.h264