* Update video-decoding-pipeline.md changed image alignment to left from center * Update Create-a-decoder-using-rocDecCreateDecoder().md language edits * Update Create-parser-object-using-rocDecCreateVideoParser().md Language edits * Update Create-parser-object-using-rocDecCreateVideoParser().md * Update Create-parser-object-using-rocDecCreateVideoParser().md * Update Create-parser-object-using-rocDecCreateVideoParser().md * Update Create-parser-object-using-rocDecCreateVideoParser().md * Update Create-parser-object-using-rocDecCreateVideoParser().md expanded SEI * Update Decode-the-frame-using-rocDecDecodeFrame().md language edits * Update Destroy-the-decoder.md * Update Decode-the-frame-using-rocDecDecodeFrame().md * Update Destroy-the-parser-using-rocDecDestroyVideoParser().md * Update Parse-video-data-using-rocDecParseVideoData().md language and spacing edits * Update Prepare-the-decoded-frame-for-further-processing.md language and spacing edits * Update Query-decode-capabilities-using-rocDecGetDecoderCaps().md Language and spacing edits. * Update Query-the-decoding-status.md language edits and spacing * Update Reconfigure-the-decorder.md language edits and spacing fixes * Update Use-rocDecode-API.md language and spacing edits * Update Use-rocDecode-API.md * Update Destroy-the-decoder.md updated to RocDecoder * Update Parse-video-data-using-rocDecParseVideoData().md Added link for callback * Update Reconfigure-the-decorder.md Corrected to RocDecoder * Delete docs/tutorial directory Tutorial not required for the user guide. * Add files via upload * Delete docs/data/VideoDecoderPipeline.PNG * Update video-decoding-pipeline.md * Update video-decoding-pipeline.md * Update video-decoding-pipeline.md * Update README.md * resolve conflicts * Update video-decoding-pipeline.md * Update video-decoding-pipeline.md * Update video-decoding-pipeline.md * Update install.md * Update install.md Minor language edits. * Update install.md * Update install.md * Update install.md * Update install.md * Update README.md Updated link to https://github.com/ROCm/rocDecode/blob/develop/rocDecode-setup.py * Update _toc.yml.in * Update index.md * Update index.md * Update index.md corrections to index.md * Update index.md * Update index.md * Create index.md * Update index.md Updated for installation and how to. Reference has header files. Need confirmation. * Update index.md * Update index.md Changed AMD's rocDecode SDK Library to rocDecode SDK * Update what-is-rocDecode.md * Update _toc.yml.in * Update _toc.yml.in * Update _toc.yml.in * Update _toc.yml.in * Update _toc.yml.in * Update _toc.yml.in * Update index.md * Update index.md * Update index.md * Update index.md * Docs - Update config * Docs - yml updates * Docs - Updates * Update _toc.yml.in * Update _toc.yml.in * Update _toc.yml.in * Update what-is-rocDecode.md * Update _toc.yml.in * Update what-is-rocDecode.md * Update what-is-rocDecode.md Added installation content * Update _toc.yml.in * Update install.md changed heading to Installation * Update index.md * Update what-is-rocDecode.md removed installation content * Update what-is-rocDecode.md Updated product name * Update install.md * Update _toc.yml.in * Update Create-a-decoder-using-rocDecCreateDecoder.md * Update Create-parser-object-using-rocDecCreateVideoParser.md * Update Decode-the-frame-using-rocDecDecodeFrame.md * Update Destroy-the-decoder.md * Update Destroy-the-parser-using-rocDecDestroyVideoParser.md * Update Parse-video-data-using-rocDecParseVideoData.md * Update Prepare-the-decoded-frame-for-further-processing.md * Update Query-decode-capabilities-using-rocDecGetDecoderCaps.md * Update Query-the-decoding-status.md * Update Reconfigure-the-decorder.md * Update Use-rocDecode-API.md * Update _toc.yml.in * Update _toc.yml.in * Update index.md * Update index.md * Index - Change to RST * Fix - index * Update conf.py copyright * Cleanup - Index * Update _toc.yml.in * Update _toc.yml.in * Update what-is-rocDecode.md Added concept * Add files via upload * Update what-is-rocDecode.md * Update what-is-rocDecode.md * Update what-is-rocDecode.md * Update what-is-rocDecode.md * Update what-is-rocDecode.md * Rename VideoDecoderPipeline (1).png to VideoDecoderPipelinetest.png * Update what-is-rocDecode.md * Update what-is-rocDecode.md * Rename VideoDecoderPipeline.png to VideoDecoderPipelinetest.png * Update what-is-rocDecode.md * Update what-is-rocDecode.md * Update what-is-rocDecode.md * Update what-is-rocDecode.md * Update index.md Added a numbered list of actions. * Update index.md add links * Update index.md * Update index.md * Update index.md * Update index.md * Update index.md * Update index.md * Update index.md * Update index.md * Update index.md * Update index.md * Update index.md * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.md * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.md corrected the order of steps. * Update index.rst Corrected the order of tasks * Update _toc.yml.in Reorder the how to * Update install.md * Update what-is-rocDecode.md * Update what-is-rocDecode.md updated image path * Update index.rst Fixed Reconfigure the decoder <https://github.com/ROCm/rocDecode/blob/master/docs/how-to/Reconfigure-the-decorder.html>`_to Reconfigure the decoder <https://github.com/ROCm/rocDecode/blob/master/docs/how-to/Reconfigure-the-decoder.html>`_ * Rename Reconfigure-the-decorder.md to Reconfigure-the-decoder.md Corrected the page name to Reconfigure the decoder * Update index.rst Updated to relative links * Update index.rst Updated index.rst * Update index.rst * Update index.md * Update index.md * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst updated ref to doc * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Add files via upload * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.rst * Update index.md * Update index.md * Update what-is-rocDecode.md * Update what-is-rocDecode.md * Update install.md * Update install.md * Update what-is-rocDecode.md * Update what-is-rocDecode.md * Update what-is-rocDecode.md * Update what-is-rocDecode.md * Update index.md * Update index.md * Update _toc.yml.in * Update _toc.yml.in * Update what-is-rocDecode.md * Update install.md * Update install.md * Update what-is-rocDecode.md * Update index.md * restructure & edits * udpate readme * cleanup * verbiage * minor fixes * update changelog * update changelog * update title * add metadata * more metadata * convert to RST * intersphinx test * edits, install reorg, address comments * verbiage * update requirements * remove extraneous note * Update docs/sphinx/requirements.in * clean up install info * update readme * update readme * update requirements * formatting * revert requirements * Docs - Update Requirements * requirements * Update requirements * Fix typo in requirements pip-compile error --------- Co-authored-by: Roopa Malavally <56051583+Rmalavally@users.noreply.github.com> Co-authored-by: Kiriti Gowda <kiritigowda@gmail.com> Co-authored-by: Pavel Tcherniaev <Pavel.Tcherniaev@amd.com> Co-authored-by: Sam Wu <sjwu@ualberta.ca> Co-authored-by: kiritigowda <kiriti.nageshgowda@amd.com> Co-authored-by: Sam Wu <sam.wu2@amd.com>
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.
Tested configurations
- Linux
- Ubuntu -
20.04/22.04 - RHEL -
8/9 - SLES -
15-SP4
- Ubuntu -
- ROCm:
- rocm-core -
6.1.0.60100-28 - amdgpu-core -
1:6.1.60100-1731559
- rocm-core -
- FFmpeg -
4.2.7/4.4.2-0 - rocDecode Setup Script -
V1.4
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 -
-
ROCm-supported hardware (
gfx908or higher required) -
Install ROCm
6.1.0or later with amdgpu-install- Run:
--usecase=multimediasdk,rocm --no-32 - To install rocDecode with minimum requirements, follow the quick-start instructions
- Run:
-
CMake
3.5or latersudo 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 -
If using Ubuntu 22.04, you must install
libstdc++-12-devsudo apt install libstdc++-12-dev
Note
All package installs are shown with the
aptpackage manager. Use the appropriate package manager for your operating system.
Prerequisites setup script
For your convenience, we provide the setup script, rocDecode-setup.py, which installs all required dependencies. Run this script only once.
python rocDecode-setup.py --rocm_path [ ROCm Installation Path - optional (default:/opt/rocm)]
--developer [ Setup Developer Options - optional (default:ON) [options:ON/OFF]]
Installation instructions
To install rocDecode, you can use Package install or Source install.
Package install
To install rocDecode runtime, development, and test packages, run the line of code for your operating system.
-
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
Note
Package install auto installs all dependencies.
- 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
Source install
To build rocDecode from source, run:
git clone https://github.com/ROCm/rocDecode.git
cd rocDecode
mkdir build && cd build
cmake ../
make -j8
sudo make install
Run tests (this requires FFmpeg dev install):
make test
To run tests with verbose option, use make test ARGS="-VV".
Make package:
sudo make package
Verify installation
The installer copies:
-
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 -
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 -
To verify your installation using the
rocdecode-testpackage, run:mkdir rocdecode-test && cd rocdecode-test cmake /opt/rocm/share/rocdecode/test/ ctest -VVThis test package installs the CTest module.
Samples
You can access samples to decode your videos in our GitHub repository. Refer to the individual folders to build and run the samples.
FFmpeg is required for sample applications and make test. To install
FFmpeg, refer to the instructions listed for your operating system:
-
Ubuntu:
sudo apt install ffmpeg libavcodec-dev libavformat-dev libavutil-dev -
RHEL/SLES:
Install ffmpeg development packages manually or use
rocDecode-setup.pyscript
Docker
You can find rocDecode Docker containers in our GitHub repository.
Documentation
Run the following code to build our documentation locally.
cd docs
pip3 install -r sphinx/requirements.txt
python3 -m sphinx -T -E -b html -d _build/doctrees -D language=en . _build/html
For more information on documentation builds, refer to the Building documentation page.
