| commit | 9f679a2b028da7651b297f8d4c9771eafe9dd889 | [log] [tgz] |
|---|---|---|
| author | Justin Green <greenjustin@google.com> | Mon Mar 31 12:01:54 2025 -0400 |
| committer | Justin Green <greenjustin@google.com> | Wed Apr 02 10:41:35 2025 -0700 |
| tree | 7a98fced5fdf474484f530fecafc941edad213b4 | |
| parent | 047ed52cbd400f79c51d52142b23ef730a013be7 [diff] |
Fix H264 DPB and plumb codec specific C2Work items Fix H264 DPB logic. We should be adding the decoded frame to the DPB first and then bump until the number of not outputted frames is less than or equal to the maximum reorder length. Codec2 will sometimes give us just C2Work items that only contain bitstream configuration data, and it will expect empty C2Work items in return. This change will return an empty C2Work item if it detects that the C2Work item does not contain visible frame data. This fixes a few VTS tests. Bug: b:406040073 Test: Manual testing and VTS on Corsola and Brya. Change-Id: Ib0b370e43a54534cffa960f215582bb0d7fd7dc0
A lightweight, simple, low-dependency, and hopefully safe crate for hardware-accelerated video decoding and encoding on Linux.
It is developed for use in ChromeOS (particularly crosvm), but has no dependency to ChromeOS and should be usable anywhere.
The ccdec example program can decode an encoded stream and write the decoded frames to a file. As such it can be used for testing purposes.
$ cargo build --examples $ ./target/debug/examples/ccdec --help Usage: ccdec <input> [--output <output>] --input-format <input-format> [--output-format <output-format>] [--compute-md5 <compute-md5>] Simple player using cros-codecs Positional Arguments: input input file Options: --output output file to write the decoded frames to --input-format input format to decode from. --output-format pixel format to decode into. Default: i420 --compute-md5 whether to display the MD5 of the decoded stream, and at which granularity (stream or frame) --help display usage information
Fluster can be used for testing, using the ccdec example program described above. This branch contains support for cros-codecs testing. Just make sure the ccdec binary is in your PATH, and run Fluster using one of the ccdec decoders, e.g.
python fluster.py run -d ccdec-H.264 -ts JVT-AVC_V1
The majority of the code in the initial commit has been written by Daniel Almeida as a VAAPI backend for crosvm, before being split into this crate.