LibVA Updates - Support Public Version (#315)

* LibVA public - enable

* Support for RPM based OS

* Readme Updates

* Setup - Updates

* Setup - CentOS 7 unsupported

* Jenkins - Check Direct deps

[ROCm/rocdecode commit: 3b1d6932af]
This commit is contained in:
Kiriti Gowda
2024-04-16 12:53:15 -07:00
committed by GitHub
parent e86a11681c
commit 2fb85345c7
7 changed files with 66 additions and 26 deletions
@@ -16,6 +16,7 @@ def runCompileCommand(platform, project, jobName, boolean debug=false, boolean s
make -j\$(nproc)
sudo make install
sudo make package
objdump -x /opt/rocm/lib/librocdecode.so | grep NEEDED
ldd -v /opt/rocm/lib/librocdecode.so
"""
+2 -1
View File
@@ -16,10 +16,11 @@ Documentation for rocDecode is available at
### Changes
* Dependencies - Updates to core dependencies
* LibVA Headers - Use public headers
### Fixes
*
* Package deps
### Tested configurations
+6 -6
View File
@@ -190,16 +190,16 @@ if(HIP_FOUND AND Libva_FOUND)
file(READ "/etc/os-release" OS_RELEASE)
string(REGEX MATCH "22.04" UBUNTU_22_FOUND ${OS_RELEASE})
# Set the dependent packages
set(rocDecode_DEBIAN_PACKAGE_LIST "rocm-hip-runtime, libva-amdgpu-drm2, libdrm-amdgpu1, mesa-amdgpu-va-drivers")
set(rocDecode_RPM_PACKAGE_LIST "rocm-hip-runtime, libva-amdgpu, libdrm-amdgpu, mesa-amdgpu-dri-drivers")
# Set the dependent packages - TBD: mesa-amdgpu-va-drivers should bring libdrm-amdgpu, but unavailable on RPM
set(rocDecode_DEBIAN_PACKAGE_LIST "rocm-hip-runtime, libva2, libdrm-amdgpu1, mesa-amdgpu-va-drivers")
set(rocDecode_RPM_PACKAGE_LIST "rocm-hip-runtime, libva, libdrm-amdgpu, mesa-amdgpu-dri-drivers")
# Set the dev dependent packages
set(rocDecode_DEBIAN_DEV_PACKAGE_LIST "rocm-hip-runtime-dev, libva-amdgpu-dev, pkg-config, ffmpeg, libavcodec-dev, libavformat-dev, libavutil-dev")
set(rocDecode_DEBIAN_DEV_PACKAGE_LIST "rocm-hip-runtime-dev, libva-dev, pkg-config, ffmpeg, libavcodec-dev, libavformat-dev, libavutil-dev")
if(UBUNTU_22_FOUND)
set(rocDecode_DEBIAN_DEV_PACKAGE_LIST "${rocDecode_DEBIAN_DEV_PACKAGE_LIST}, libstdc++-12-dev")
endif()
# TBD - RPM packages need Fusion Packages - "ffmpeg, libavcodec-devel, libavformat-devel, libavutil-devel"
set(rocDecode_RPM_DEV_PACKAGE_LIST "rocm-hip-runtime-devel, libva-amdgpu-devel, pkg-config")
set(rocDecode_RPM_DEV_PACKAGE_LIST "rocm-hip-runtime-devel, libva-devel, pkg-config")
# '%{?dist}' breaks manual builds on debian systems due to empty Provides
execute_process(
@@ -325,6 +325,6 @@ else()
message(FATAL_ERROR "-- ERROR!: HIP Not Found! - please install rocm-hip-runtime-dev!")
endif()
if(NOT Libva_FOUND)
message(FATAL_ERROR "-- ERROR!: libva Not Found - please install libva-amdgpu-dev/libva-amdgpu-devel!")
message(FATAL_ERROR "-- ERROR!: libva Not Found - please install libva-dev/libva-devel!")
endif()
endif()
+11 -4
View File
@@ -24,12 +24,19 @@ access the video decoding features available on your GPU.
> [!IMPORTANT]
> `sudo amdgpu-install --usecase=rocm`
* AMD multimedia packages
* [Video Acceleration API](https://en.wikipedia.org/wiki/Video_Acceleration_API) Version `1.5.0`+ - `Libva` is an implementation for VA-API
```shell
sudo apt install libva-amdgpu-dev libdrm-amdgpu1 mesa-amdgpu-va-drivers
sudo apt install libva-dev
```
> [!NOTE]
> RPM Packages for `RHEL`/`SLES` - `libva-amdgpu-devel libdrm-amdgpu mesa-amdgpu-dri-drivers`
> RPM Packages for `RHEL`/`SLES` - `libva-devel`
* AMD VA Drivers
```shell
sudo apt install mesa-amdgpu-va-drivers
```
> [!NOTE]
> RPM Packages for `RHEL`/`SLES` - `libdrm-amdgpu mesa-amdgpu-dri-drivers`
* CMake `3.5` or later
@@ -222,4 +229,4 @@ page.
* rocm-core - `6.1.0.60100-64`
* amdgpu-core - `1:6.1.60100-1741643`
* FFmpeg - `4.2.7` / `4.4.2-0`
* rocDecode Setup Script - `V1.7.1`
* rocDecode Setup Script - `V1.7.2`
+22 -3
View File
@@ -21,14 +21,33 @@
#
################################################################################
find_library(LIBVA_LIBRARY NAMES va HINTS /opt/amdgpu/lib/x86_64-linux-gnu /opt/amdgpu/lib64 NO_DEFAULT_PATH)
find_library(LIBVA_DRM_LIBRARY NAMES va-drm HINTS /opt/amdgpu/lib/x86_64-linux-gnu /opt/amdgpu/lib64 NO_DEFAULT_PATH)
find_path(LIBVA_INCLUDE_DIR NAMES va/va.h PATHS /opt/amdgpu/include NO_DEFAULT_PATH)
find_library(LIBVA_LIBRARY NAMES va HINTS /usr/lib/x86_64-linux-gnu /usr/lib64 /opt/amdgpu/lib/x86_64-linux-gnu /opt/amdgpu/lib64)
find_library(LIBVA_DRM_LIBRARY NAMES va-drm HINTS /usr/lib/x86_64-linux-gnu /usr/lib64 /opt/amdgpu/lib/x86_64-linux-gnu /opt/amdgpu/lib64)
find_path(LIBVA_INCLUDE_DIR NAMES va/va.h PATHS /usr/include /opt/amdgpu/include)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libva DEFAULT_MSG LIBVA_INCLUDE_DIR LIBVA_LIBRARY)
mark_as_advanced(LIBVA_INCLUDE_DIR LIBVA_LIBRARY LIBVA_DRM_LIBRARY)
if(Libva_FOUND)
# Find VA Version
file(READ "${LIBVA_INCLUDE_DIR}/va/va_version.h" VA_VERSION_FILE)
string(REGEX MATCH "VA_MAJOR_VERSION ([0-9]*)" _ ${VA_VERSION_FILE})
set(va_ver_major ${CMAKE_MATCH_1})
string(REGEX MATCH "VA_MINOR_VERSION ([0-9]*)" _ ${VA_VERSION_FILE})
set(va_ver_minor ${CMAKE_MATCH_1})
string(REGEX MATCH "VA_MICRO_VERSION ([0-9]*)" _ ${VA_VERSION_FILE})
set(va_ver_micro ${CMAKE_MATCH_1})
message("-- ${White}Found Libva Version: ${va_ver_major}.${va_ver_minor}.${va_ver_micro}${ColourReset}")
if((${va_ver_major} GREATER_EQUAL 1) AND (${va_ver_minor} GREATER_EQUAL 5))
message("-- ${White}\tLibva Version Supported${ColourReset}")
else()
set(Libva_FOUND FALSE)
message("-- ${Yellow}\tLibva Version Not Supported${ColourReset}")
endif()
endif()
if(Libva_FOUND)
if(NOT TARGET Libva::va)
add_library(Libva::va UNKNOWN IMPORTED)
+9 -3
View File
@@ -25,7 +25,7 @@ Tested configurations
* FFmpeg: 4.2.7/4.4.2-0
* rocDecode Setup Script: V1.7.1
* rocDecode Setup Script: V1.7.2
Supported codecs
========================================
@@ -50,11 +50,17 @@ Prerequisites
* Run: ``--usecase=rocm``
* To install rocDecode with minimum requirements, follow the :doc:`quick-start instructions <./quick-start>`
* AMD multimedia packages
* Video Acceleration API Version `1.5.0`+ - `Libva` is an implementation for VA-API
.. code:: shell
sudo apt install libva-amdgpu-dev libdrm-amdgpu1 mesa-amdgpu-va-drivers
sudo apt install libva-dev
* AMD VA drivers
.. code:: shell
sudo apt install mesa-amdgpu-va-drivers
* CMake 3.5 or later
+15 -9
View File
@@ -28,7 +28,7 @@ else:
import subprocess
__copyright__ = "Copyright (c) 2023 - 2024, AMD ROCm rocDecode"
__version__ = "1.7.1"
__version__ = "1.7.2"
__email__ = "mivisionx.support@amd.com"
__status__ = "Shipping"
@@ -90,12 +90,13 @@ linuxSystemInstall = ''
linuxCMake = 'cmake'
linuxSystemInstall_check = ''
linuxFlag = ''
sudoValidateOption= '-v'
if "centos" in platfromInfo or "redhat" in platfromInfo or os.path.exists('/usr/bin/yum'):
linuxSystemInstall = 'yum -y'
linuxSystemInstall_check = '--nogpgcheck'
if "centos-7" in platfromInfo or "redhat-7" in platfromInfo:
linuxCMake = 'cmake3'
ERROR_CHECK(os.system(linuxSystemInstall+' install cmake3'))
print("\nrocDecode Setup on "+platfromInfo+" is unsupported\n")
exit(-1)
if not "centos" in platfromInfo or not "redhat" in platfromInfo:
platfromInfo = platfromInfo+'-redhat'
elif "Ubuntu" in platfromInfo or os.path.exists('/usr/bin/apt-get'):
@@ -129,12 +130,15 @@ commonPackages = [
'wget',
'unzip',
'pkg-config',
'inxi'
'inxi',
'rocm-hip-runtime'
]
# Debian packages
coreDebianPackages = [
'libva-amdgpu-dev',
'rocm-hip-runtime-dev',
'libva2',
'libva-dev',
'libdrm-amdgpu1',
'mesa-amdgpu-va-drivers',
'vainfo'
@@ -151,20 +155,22 @@ ffmpegDebianPackages = [
# RPM Packages
coreRPMPackages = [
'libva-amdgpu-devel',
'rocm-hip-runtime-devel',
'libva',
'libva-devel',
'libdrm-amdgpu',
'mesa-amdgpu-dri-drivers',
'libva-utils'
]
# common packages
ERROR_CHECK(os.system('sudo -v'))
ERROR_CHECK(os.system('sudo '+sudoValidateOption))
for i in range(len(commonPackages)):
ERROR_CHECK(os.system('sudo '+linuxFlag+' '+linuxSystemInstall +
' '+linuxSystemInstall_check+' install '+ commonPackages[i]))
# rocDecode Core - LibVA Requirements
ERROR_CHECK(os.system('sudo -v'))
ERROR_CHECK(os.system('sudo '+sudoValidateOption))
if "Ubuntu" in platfromInfo:
for i in range(len(coreDebianPackages)):
ERROR_CHECK(os.system('sudo '+linuxFlag+' '+linuxSystemInstall +
@@ -179,7 +185,7 @@ else:
' '+linuxSystemInstall_check+' install '+ coreRPMPackages[i]))
# rocDecode Dev Requirements
ERROR_CHECK(os.system('sudo -v'))
ERROR_CHECK(os.system('sudo '+sudoValidateOption))
if developerInstall == 'ON':
if "Ubuntu" in platfromInfo:
for i in range(len(ffmpegDebianPackages)):