From 3f0bbce41ebef6df16d945825e133d4aa56149a3 Mon Sep 17 00:00:00 2001 From: sladro Date: Fri, 16 Jan 2026 20:55:20 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E8=80=A6=E5=AE=8C=E6=88=90=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=90=AF=E5=8A=A8=E9=94=99=E8=AF=AF1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) 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