jeffqjiangNew 2d14eb61b2 * rocDecode/HEVC: Fixed corruptions in RASL (Random Access Skipped Leading) pictures of an associated CRA picture. (#96)
- 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.
2023-11-29 08:33:00 -05:00
2023-11-21 13:25:56 -07:00
2023-11-28 08:42:19 -05:00
2023-11-28 16:08:24 -05:00
2023-06-12 14:45:01 -07:00
2023-11-28 16:08:24 -05:00
2023-11-23 08:57:45 -05:00

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
  • ROCm supported hardware

  • Install ROCm 5.5 or later with --usecase=graphics,rocm --no-32

  • CMake 3.5 or later

  • libva-dev 2.7 or later

    sudo apt install libva-dev
    
  • libdrm-dev 2.4 or later

    sudo 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 FFMPEG install

    make test
    

    NOTE: 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
  • ROCm:
    • rocm-core - 5.6.1.50601-93
    • amdgpu-core - 1:5.6.50601-1649308
  • 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
S
描述
未提供描述
Readme 282 MiB
儲存庫語言
C++ 67.5%
C 20.6%
Python 6.6%
CMake 3.4%
Shell 0.6%
其他 1.1%