Dynamic Link Libraries - updates (#23)
* DRM - deps updates
* Link Libraries - Updates & cleanup
* LibDRM - Find in SLES fix
* Make Test - Fix Failures
[ROCm/rocdecode commit: 2af10a5d80]
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
ea743aa3af
Коммит
34f1cc3b8f
@@ -102,21 +102,25 @@ endif()
|
||||
set(AMDGPU_TARGETS "${DEFAULT_AMDGPU_TARGETS}" CACHE STRING "List of specific machine types for library to target")
|
||||
|
||||
find_package(HIP QUIET)
|
||||
find_package(FFmpeg QUIET)
|
||||
find_package(Libdrm QUIET)
|
||||
find_package(Libva QUIET)
|
||||
find_package(FFmpeg QUIET)
|
||||
|
||||
if(HIP_FOUND AND FFMPEG_FOUND AND Libva_FOUND)
|
||||
if(HIP_FOUND AND FFMPEG_FOUND AND Libva_FOUND AND Libdrm_FOUND)
|
||||
|
||||
# FFMPEG
|
||||
include_directories(${AVUTIL_INCLUDE_DIR} ${AVCODEC_INCLUDE_DIR}
|
||||
${SWSCALE_INCLUDE_DIR} ${AVFORMAT_INCLUDE_DIR})
|
||||
set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${FFMPEG_LIBRARIES})
|
||||
# HIP
|
||||
set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} hip::device)
|
||||
# LibDRM
|
||||
include_directories(${LIBDRM_INCLUDE_DIR})
|
||||
set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${LIBDRM_LIBRARY})
|
||||
# LibVA
|
||||
include_directories(${LIBVA_INCLUDE_DIR})
|
||||
set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${LIBVA_LIBRARY})
|
||||
set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${LIBVA_DRM_LIBRARY})
|
||||
# HIP
|
||||
set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} hip::device)
|
||||
# FFMPEG
|
||||
include_directories(${AVUTIL_INCLUDE_DIR} ${AVCODEC_INCLUDE_DIR}
|
||||
${SWSCALE_INCLUDE_DIR} ${AVFORMAT_INCLUDE_DIR})
|
||||
set(LINK_LIBRARY_LIST ${LINK_LIBRARY_LIST} ${FFMPEG_LIBRARIES})
|
||||
|
||||
# local include files
|
||||
include_directories(api src/rocdecode src/parser src/rocdecode/vaapi)
|
||||
@@ -201,9 +205,9 @@ if(HIP_FOUND AND FFMPEG_FOUND AND Libva_FOUND)
|
||||
|
||||
# Set the dependent packages
|
||||
set(rocDecode_DEBIAN_PACKAGE_LIST
|
||||
"vainfo, libva-dev, ffmpeg, libavcodec-dev, libavformat-dev, libswscale-dev")
|
||||
"vainfo, libva-dev, libdrm-dev, ffmpeg, libavcodec-dev, libavformat-dev, libswscale-dev")
|
||||
set(rocDecode_RPM_PACKAGE_LIST
|
||||
"libva-devel,ffmpeg, libavcodec-devel, libavformat-devel, libswscale-devel")
|
||||
"libva-devel, libdrm-devel, ffmpeg, libavcodec-devel, libavformat-devel, libswscale-devel")
|
||||
# set dependency to ROCm if set to TRUE, default to OFF
|
||||
set(ROCM_DEP_ROCMCORE OFF CACHE BOOL "Set rocm-core dependency")
|
||||
if(ROCM_DEP_ROCMCORE)
|
||||
@@ -243,11 +247,11 @@ if(HIP_FOUND AND FFMPEG_FOUND AND Libva_FOUND)
|
||||
endif()
|
||||
if(EXISTS ${RPMBUILD_EXE})
|
||||
list(APPEND CPACK_GENERATOR "RPM")
|
||||
message("-- ${White}rocDecode -- CPACK_RPM_PACKAGE_REQUIRES:${CPACK_RPM_PACKAGE_REQUIRES}${ColourReset}")
|
||||
message("-- ${White}AMD ROCm rocDecode -- CPACK_RPM_PACKAGE_REQUIRES: ${CPACK_RPM_PACKAGE_REQUIRES}${ColourReset}")
|
||||
endif()
|
||||
if(EXISTS ${DPKG_EXE})
|
||||
list(APPEND CPACK_GENERATOR "DEB")
|
||||
message("-- ${White}rocDecode -- CPACK_DEBIAN_PACKAGE_DEPENDS:${CPACK_DEBIAN_PACKAGE_DEPENDS}${ColourReset}")
|
||||
message("-- ${White}AMD ROCm rocDecode -- CPACK_DEBIAN_PACKAGE_DEPENDS: ${CPACK_DEBIAN_PACKAGE_DEPENDS}${ColourReset}")
|
||||
endif()
|
||||
|
||||
include(CPack)
|
||||
@@ -256,9 +260,12 @@ else()
|
||||
message(FATAL_ERROR "-- ERROR!: HIP Not Found! - please install ROCm and HIP!")
|
||||
endif()
|
||||
if(NOT FFMPEG_FOUND)
|
||||
message(FATAL_ERROR "-- ERROR!: FFMPEG Not Found! - please insatll FFMPEG!")
|
||||
message(FATAL_ERROR "-- ERROR!: FFMPEG Not Found! - please install FFMPEG!")
|
||||
endif()
|
||||
if(NOT Libva_FOUND)
|
||||
message(FATAL_ERROR "-- ERROR!: libva-dev Not Found - please install libva-dev!")
|
||||
endif()
|
||||
if(NOT Libdrm_FOUND)
|
||||
message(FATAL_ERROR "-- ERROR!: libdrm-dev Not Found - please install libdrm-dev!")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -18,6 +18,11 @@ rocDecode is a high performance video decode SDK for AMD hardware
|
||||
sudo apt install libva-dev
|
||||
```
|
||||
|
||||
* libdrm-dev `2.4` or later
|
||||
```
|
||||
sudo apt install libdrm-dev
|
||||
```
|
||||
|
||||
* [FFMPEG](https://ffmpeg.org/about.html)
|
||||
```
|
||||
sudo apt install ffmpeg libavcodec-dev libavformat-dev libswscale-dev
|
||||
@@ -71,4 +76,5 @@ doxygen .Doxyfile
|
||||
+ amdgpu-core - `1:5.6.50601-1649308`
|
||||
* FFMPEG - `4.2.7` / `4.4.2-0`
|
||||
* libva-dev - `2.7.0-2` / `2.14.0-1`
|
||||
* rocDecode Setup Script - `V1.1`
|
||||
* libdrm-dev - `2.4.107` / `2.4.113`
|
||||
* rocDecode Setup Script - `V1.2`
|
||||
@@ -172,11 +172,9 @@ else()
|
||||
endif()
|
||||
|
||||
if(FFMPEG_FOUND)
|
||||
if(NOT FFMPEG_FIND_QUIETLY)
|
||||
message("-- ${White}Using FFMPEG -- \n\tLibraries:${FFMPEG_LIBRARIES} \n\tIncludes:${FFMPEG_INCLUDE_DIR}${ColourReset}")
|
||||
endif()
|
||||
message("-- ${White}Using FFMPEG -- \n\tLibraries:${FFMPEG_LIBRARIES} \n\tIncludes:${FFMPEG_INCLUDE_DIR}${ColourReset}")
|
||||
else()
|
||||
if(FFMPEG_FIND_REQUIRED)
|
||||
if(FFmpeg_FIND_REQUIRED)
|
||||
message(FATAL_ERROR "{Red}FindFFmpeg -- libavcodec or libavformat or libavutil NOT FOUND${ColourReset}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -21,12 +21,22 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(Libdrm libdrm)
|
||||
find_library(LIBDRM_LIBRARY NAMES drm)
|
||||
find_path(LIBDRM_INCLUDE_DIR NAMES drm.h PATHS /usr/include/libdrm /usr/include/drm)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Libdrm DEFAULT_MSG LIBDRM_INCLUDE_DIR LIBDRM_LIBRARY)
|
||||
mark_as_advanced(LIBDRM_INCLUDE_DIR LIBDRM_LIBRARY)
|
||||
|
||||
if(Libdrm_FOUND)
|
||||
if(NOT TARGET Libdrm::drm)
|
||||
add_library(Libdrm::drm UNKNOWN IMPORTED)
|
||||
set_target_properties(Libdrm::drm PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${Libdrm_INCLUDE_DIRS}"
|
||||
IMPORTED_LOCATION "${Libdrm_LINK_LIBRARIES}")
|
||||
set_target_properties(Libdrm::drm PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBDRM_INCLUDE_DIR}"
|
||||
IMPORTED_LOCATION "${LIBDRM_LIBRARY}")
|
||||
endif()
|
||||
message("-- ${White}Using Libdrm -- \n\tLibraries:${LIBDRM_LIBRARY} \n\tIncludes:${LIBDRM_INCLUDE_DIR}${ColourReset}")
|
||||
else()
|
||||
if(Libdrm_FIND_REQUIRED)
|
||||
message(FATAL_ERROR "{Red}FindLibdrm -- Libdrm NOT FOUND${ColourReset}")
|
||||
endif()
|
||||
endif()
|
||||
@@ -21,13 +21,12 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
find_package(Libdrm REQUIRED)
|
||||
find_library(LIBVA_LIBRARY NAMES va)
|
||||
find_library(LIBVA_DRM_LIBRARY NAMES va-drm)
|
||||
find_path(LIBVA_INCLUDE_DIR NAMES va/va.h)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Libva DEFAULT_MSG LIBVA_INCLUDE_DIR LIBVA_LIBRARY LIBVA_DRM_LIBRARY)
|
||||
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)
|
||||
@@ -38,15 +37,13 @@ if(Libva_FOUND)
|
||||
endif()
|
||||
if(NOT TARGET Libva::va_drm)
|
||||
add_library(Libva::va_drm UNKNOWN IMPORTED)
|
||||
target_link_libraries(Libva::va_drm INTERFACE Libdrm::drm)
|
||||
set_target_properties(Libva::va_drm PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBVA_INCLUDE_DIR}"
|
||||
IMPORTED_LOCATION "${LIBVA_DRM_LIBRARY}")
|
||||
endif()
|
||||
if(NOT Libva_FIND_QUIETLY)
|
||||
message("-- ${White}Using Libva -- \n\tLibraries:${LIBVA_LIBRARY} \n\tIncludes:${LIBVA_INCLUDE_DIR}${ColourReset}")
|
||||
IMPORTED_LOCATION "${LIBVA_DRM_LIBRARY}")
|
||||
endif()
|
||||
message("-- ${White}Using Libva -- \n\tLibraries:${LIBVA_LIBRARY} \n\tIncludes:${LIBVA_INCLUDE_DIR}${ColourReset}")
|
||||
message("-- ${White}Using Libva-drm -- \n\tLibraries:${LIBVA_DRM_LIBRARY}${ColourReset}")
|
||||
else()
|
||||
if(Libva_FIND_REQUIRED)
|
||||
message(FATAL_ERROR "{Red}FindLibva -- Libva NOT FOUND${ColourReset}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@@ -28,7 +28,7 @@ else:
|
||||
import subprocess
|
||||
|
||||
__copyright__ = "Copyright 2023, AMD ROCm rocDecode"
|
||||
__version__ = "1.1"
|
||||
__version__ = "1.2"
|
||||
__email__ = "mivisionx.support@amd.com"
|
||||
__status__ = "Shipping"
|
||||
|
||||
@@ -115,12 +115,12 @@ os.system('sudo '+linuxFlag+' '+linuxSystemInstall+' ' +
|
||||
if "Ubuntu" in platfromInfo:
|
||||
os.system('sudo -v')
|
||||
os.system('sudo '+linuxFlag+' '+linuxSystemInstall+' '+linuxSystemInstall_check +
|
||||
' install vainfo libva-dev ffmpeg libavcodec-dev libavformat-dev libswscale-dev')
|
||||
' install vainfo libva-dev libdrm-dev ffmpeg libavcodec-dev libavformat-dev libswscale-dev')
|
||||
else:
|
||||
os.system('sudo '+linuxFlag+' '+linuxSystemInstall+' '+linuxSystemInstall_check +
|
||||
' install autoconf automake bzip2 bzip2-devel freetype-devel')
|
||||
os.system('sudo '+linuxFlag+' '+linuxSystemInstall+' '+linuxSystemInstall_check +
|
||||
' install gcc-c++ libtool make pkgconfig zlib-devel libva-devel')
|
||||
' install gcc-c++ libtool make pkgconfig zlib-devel libva-devel libdrm-devel')
|
||||
# Nasm
|
||||
os.system('sudo '+linuxFlag+' '+linuxSystemInstall+' '+linuxSystemInstall_check +
|
||||
' install nasm')
|
||||
|
||||
@@ -26,7 +26,7 @@ set(ROC_VIDEO_DEC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../utils/rocvideodecode)
|
||||
# videoDecode
|
||||
add_test(
|
||||
NAME
|
||||
video_decode
|
||||
video_decode-H264
|
||||
COMMAND
|
||||
"${CMAKE_CTEST_COMMAND}"
|
||||
--build-and-test "${CMAKE_CURRENT_SOURCE_DIR}/videoDecode"
|
||||
|
||||
@@ -27,7 +27,11 @@ THE SOFTWARE.
|
||||
#include <chrono>
|
||||
#include <sys/stat.h>
|
||||
#include <libgen.h>
|
||||
#include <filesystem>
|
||||
#if __cplusplus >= 201703L && __has_include(<filesystem>)
|
||||
#include <filesystem>
|
||||
#else
|
||||
#include <experimental/filesystem>
|
||||
#endif
|
||||
#include "video_demuxer.hpp"
|
||||
#include "rocdecode.h"
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user