diff --git a/CMakeLists.txt b/CMakeLists.txt index 16fff01..cfd1ae4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,6 +26,12 @@ set(CMAKE_CXX_EXTENSIONS OFF) find_package(Threads REQUIRED) +if(RK3588_ENABLE_FFMPEG) + find_package(PkgConfig REQUIRED) + pkg_check_modules(FFMPEG REQUIRED IMPORTED_TARGET libavformat libavcodec libavutil) + pkg_check_modules(SWSCALE REQUIRED IMPORTED_TARGET libswscale) +endif() + # Helper target for common warnings add_library(project_options INTERFACE) if(MSVC) @@ -87,6 +93,40 @@ target_include_directories(media-server ) target_link_libraries(media-server PRIVATE project_options Threads::Threads) +if(RK3588_ENABLE_FFMPEG) + target_compile_definitions(media-server PRIVATE RK3588_ENABLE_FFMPEG) + target_include_directories(media-server PRIVATE ${FFMPEG_INCLUDE_DIRS}) + target_link_libraries(media-server PRIVATE PkgConfig::FFMPEG PkgConfig::SWSCALE) +endif() + +if(RK3588_ENABLE_RGA) + if(NOT RK_RGA_ROOT) + set(RK_RGA_ROOT "${RK_RKNN_ROOT}/examples/3rdparty/rga/RK3588" CACHE PATH "Path to RGA library") + endif() + if(NOT RK_RGA_INCLUDE_DIR) + set(RK_RGA_INCLUDE_DIR "${RK_RGA_ROOT}/include" CACHE PATH "RGA include directory") + endif() + if(NOT RK_RGA_LIB_DIR) + set(RK_RGA_LIB_DIR "${RK_RGA_ROOT}/lib/Linux/aarch64" CACHE PATH "RGA library directory") + endif() + + find_library(RK_RGA_LIB rga + HINTS + ${RK_RGA_LIB_DIR} + NO_DEFAULT_PATH + ) + if(NOT RK_RGA_LIB) + find_library(RK_RGA_LIB rga) + endif() + if(NOT RK_RGA_LIB) + message(WARNING "RGA enabled but librga not found; disable RK3588_ENABLE_RGA or set RK_RGA_LIB_DIR") + else() + target_compile_definitions(media-server PRIVATE RK3588_ENABLE_RGA) + target_include_directories(media-server PRIVATE ${RK_RGA_INCLUDE_DIR}) + target_link_libraries(media-server PRIVATE ${RK_RGA_LIB}) + endif() +endif() + if(RK3588_ENABLE_RKNN) find_library(RK_RKNN_LIB rknnrt HINTS