Files
TheRock/rocm-systems/projects/rocdecode
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00
..

MIT licensed

rocDecode is a high-performance video decode SDK for AMD GPUs. Using the rocDecode API, you can access the video decoding features available on your GPU.

Note

The published documentation is available at rocDecode in an organized, easy-to-read format, with search and a table of contents. The documentation source files reside in projects/rocdecode/docs in this repository. As with all ROCm projects, the documentation is open source. For more information on contributing to the documentation, see Contribute to ROCm documentation.

Supported codecs

  • H.265 (HEVC) - 8 bit, and 10 bit
  • H.264 (AVC) - 8 bit
  • AV1 - 8 bit, and 10 bit
  • VP9 - 8 bit, and 10 bit

Prerequisites

Hardware

Important

gfx908 or higher GPU required

ROCm via TheRock

rocDecode is built and installed as part of TheRock. All core dependencies are provided by the TheRock build, including:

  • HIP runtime and development libraries
  • AMD Clang++ compiler (C++17 required)
  • Libva and VA-API drivers
  • Libdrm (amdgpu)
  • CMake and pkg-config

FFmpeg (required for samples and tests)

FFmpeg development libraries must be installed separately to build and run samples and extended tests:

sudo apt install libavcodec-dev libavformat-dev libavutil-dev

Build and install

rocDecode is built as part of TheRock. To build standalone from source:

git clone https://github.com/ROCm/rocm-systems.git
cd rocm-systems/projects/rocdecode
mkdir build && cd build
cmake ../
make -j8
sudo make install

Run tests

make test

Important

make test requires FFmpeg dev libraries to be installed

Note

To run tests with verbose option, use make test ARGS="-VV".

Verify installation

After installation, the following files are available:

  • Libraries in /opt/rocm/lib
  • Header files in /opt/rocm/include/rocdecode
  • Samples in /opt/rocm/share/rocdecode
  • Documents in /opt/rocm/share/doc/rocdecode

Using sample application

To verify your installation using a sample application, run:

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

Using CTest

To verify your installation using CTest, run:

mkdir rocdecode-test && cd rocdecode-test
cmake /opt/rocm/share/rocdecode/test/
ctest -VV

Samples

You can access samples to decode your videos in the samples directory. Refer to the individual folders to build and run the samples.

FFmpeg is required for sample applications and make test:

sudo apt install libavcodec-dev libavformat-dev libavutil-dev

Tested configurations

  • Linux
    • Ubuntu - 22.04 / 24.04
  • TheRock - 7.12 or later
  • FFmpeg - 4.4.2 / 6.1.1