- It appears that the root cause of the corruption is the loss of some reference info of the RASL pictures at VA-API driver level. - For reasons that are not documented in VA-API, or simply implementation limitations, the DPB buffer status when a CRA picture is decoded, needs to be sent to VA-API driver to the correct decoding of the associated RASL pictures. The info is stored in PocStFoll and PocLtFoll and is not needed for CRA picture decode, which is an intra picture. Without this info, the following RASL picture decode will run into problem even when its reference picture info is correctly specified. - Note this appears to be a VA-API specific issue because it did not occur on other platforms.
rocDecode
rocDecode is a high performance video decode SDK for AMD GPUs. rocDecode API lets developers access the video decoding features available on the GPU.
Supported Codecs
- H.265 (HEVC) - 8 bit, and 10 bit
Prerequisites
-
Linux distribution
- Ubuntu -
20.04/22.04
- Ubuntu -
-
Install ROCm 5.5 or later with
--usecase=graphics,rocm --no-32 -
CMake
3.5or later -
libva-dev
2.7or latersudo apt install libva-dev -
libdrm-dev
2.4or latersudo apt install libdrm-dev -
Note rocDecode-setup.py script can be used for installing all the dependencies
Build instructions
Please follow the instructions below to build and install the rocDecode library.
cd rocDecode
mkdir build; cd build
cmake ..
make -j8
sudo make install
-
run tests - Requires
FFMPEGinstallmake testNOTE: run tests with verbose option
make test ARGS="-VV" -
make package
sudo make test package
Verify Installation
The installer will copy
- Libraries into
/opt/rocm/lib - Header files into
/opt/rocm/include/rocdecode - Samples folder into
/opt/rocm/share/rocdecode - Documents folder into
/opt/rocm/share/doc/rocdecode
Build and run sample
mkdir rocdecode-sample && cd rocdecode-sample
cmake /opt/rocm/share/rocdecode/samples/videoDecode/
make -j8
./videodecode -i /opt/rocm/share/rocdecode/video/AMD_driving_virtual_20-H265.mp4
NOTE: FFMPEG install required to run samples
Samples
The tool provides a few samples to decode videos here. Please refer to the individual folders to build and run the samples.
Sample Prerequisites
-
FFMPEG - required to run sample applications & make test
sudo apt install ffmpeg libavcodec-dev libavformat-dev libavutil-dev
Docker
Docker files to build rocDecode containers are available here
Documentation
Run the steps below to build documentation locally.
- Sphinx
cd docs
pip3 install -r sphinx/requirements.txt
python3 -m sphinx -T -E -b html -d _build/doctrees -D language=en . _build/html
- Doxygen
doxygen .Doxyfile
Tested configurations
- Linux distribution
- Ubuntu -
20.04/22.04
- Ubuntu -
- ROCm:
- rocm-core -
5.6.1.50601-93 - amdgpu-core -
1:5.6.50601-1649308
- rocm-core -
- libva-dev -
2.7.0-2/2.14.0-1 - libdrm-dev -
2.4.107/2.4.113 - FFMPEG -
4.2.7/4.4.2-0 - rocDecode Setup Script -
V1.3