- We have to clear the buffer id after destroying it. Without this clearing, we will encounter VAAPI buffer destroy failure on certain conformance streams where scaling list is signaled dynamically. In this case, we create different number of data buffers on different frames. If we do not clear the buffer id when destroying it, a dummy scaling list buffer id will have the same value as another buffer, resulting double destroy.
[ROCm/rocdecode commit: 33d6b37ddb]
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 -
libstdc++-12-dev
sudo apt install libstdc++-12-dev
Prerequisites setup script for Linux
For the convenience of the developer, we provide the setup script rocDecode-setup.py which will install all the dependencies required by this project.
Usage:
python rocDecode-setup.py --rocm_path [ ROCm Installation Path - optional (default:/opt/rocm)]
--developer [ Setup Developer Options - optional (default:ON) [options:ON/OFF]]
NOTE: This script only needs to be executed once.
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