* clean up samples * fixes error seen in videoDecodeMem app with big files
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 - RHEL -
8/9 - SLES -
15-SP4
- Ubuntu -
-
- NOTE:
gfx908or higher required
- NOTE:
-
Install ROCm
6.1.0or later with amdgpu-install with--usecase=multimediasdk,rocm --no-32- NOTE: To install rocdecode with minimum requirements follow instructions here
To build from source
- CMake
3.5or later
sudo apt install cmake
sudo apt install pkg-config
- FFMPEG runtime and headers - for tests and samples
sudo apt install ffmpeg libavcodec-dev libavformat-dev libavutil-dev
NOTE:
-
All package install shown with
aptpackage manager, use appropriate package manager depending on the OS. -
Ubuntu 22.04 - Install
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 and install instructions
Package install
Install rocDecode runtime, development, and test packages.
- Runtime package -
rocdecodeonly provides the rocdecode librarylibrocdecode.so - Development package -
rocdecode-dev/rocdecode-develprovides the library, header files, and samples - Test package -
rocdecode-testprovides ctest to verify installation
NOTE: Package install will auto install all dependencies.
Ubuntu
sudo apt install rocdecode rocdecode-dev rocdecode-test
RHEL
sudo yum install rocdecode rocdecode-devel rocdecode-test
SLES
sudo zypper install rocdecode rocdecode-devel rocdecode-test
Source build and install
git clone https://github.com/ROCm/rocDecode.git
cd rocDecode
mkdir build && cd build
cmake ../
make -j8
sudo make install
-
run tests - Requires
FFMPEGdev installmake testNOTE: run tests with verbose option
make test ARGS="-VV" -
make package
sudo make 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
NOTE: FFMPEG dev install required to run samples and tests
Verify with sample application
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
Verify with rocdecode-test package
Test package will install ctest module to test rocdecode. Follow below steps to test packge install
mkdir rocdecode-test && cd rocdecode-test
cmake /opt/rocm/share/rocdecode/test/
ctest -VV
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
- On
Ubuntu
sudo apt install ffmpeg libavcodec-dev libavformat-dev libavutil-dev- On
RHEL/SLES- install ffmpeg development packages manually or userocDecode-setup.pyscript
- On
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 - RHEL -
8/9 - SLES -
15-SP4
- Ubuntu -
- ROCm:
- rocm-core -
5.6.1.50601-93 - amdgpu-core -
1:5.6.50601-1649308
- rocm-core -
- FFMPEG -
4.2.7/4.4.2-0 - rocDecode Setup Script -
V1.4
