|
|
@ -514,7 +514,7 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") |
|
|
endif() |
|
|
endif() |
|
|
if (NOT YUZU_USE_BUNDLED_FFMPEG) |
|
|
if (NOT YUZU_USE_BUNDLED_FFMPEG) |
|
|
# Use system installed FFmpeg |
|
|
# Use system installed FFmpeg |
|
|
find_package(FFmpeg QUIET COMPONENTS ${FFmpeg_COMPONENTS}) |
|
|
|
|
|
|
|
|
find_package(FFmpeg 4.3 QUIET COMPONENTS ${FFmpeg_COMPONENTS}) |
|
|
|
|
|
|
|
|
if (FFmpeg_FOUND) |
|
|
if (FFmpeg_FOUND) |
|
|
# Overwrite aggregate defines from FFmpeg module to avoid over-linking libraries. |
|
|
# Overwrite aggregate defines from FFmpeg module to avoid over-linking libraries. |
|
|
@ -527,7 +527,7 @@ if (NOT YUZU_USE_BUNDLED_FFMPEG) |
|
|
set(FFmpeg_INCLUDE_DIR ${FFmpeg_INCLUDE_DIR} ${FFmpeg_INCLUDE_${COMPONENT}} CACHE PATH "Path to FFmpeg headers" FORCE) |
|
|
set(FFmpeg_INCLUDE_DIR ${FFmpeg_INCLUDE_DIR} ${FFmpeg_INCLUDE_${COMPONENT}} CACHE PATH "Path to FFmpeg headers" FORCE) |
|
|
endforeach() |
|
|
endforeach() |
|
|
else() |
|
|
else() |
|
|
message(WARNING "FFmpeg not found, falling back to externals") |
|
|
|
|
|
|
|
|
message(WARNING "FFmpeg not found or too old, falling back to externals") |
|
|
set(YUZU_USE_BUNDLED_FFMPEG ON) |
|
|
set(YUZU_USE_BUNDLED_FFMPEG ON) |
|
|
endif() |
|
|
endif() |
|
|
endif() |
|
|
endif() |
|
|
@ -615,7 +615,7 @@ if (YUZU_USE_BUNDLED_FFMPEG) |
|
|
set(FFmpeg_HWACCEL_FLAGS --disable-vaapi) |
|
|
set(FFmpeg_HWACCEL_FLAGS --disable-vaapi) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
if (FFNVCODEC_FOUND AND CUDA_FOUND) |
|
|
|
|
|
|
|
|
if (FFNVCODEC_FOUND) |
|
|
list(APPEND FFmpeg_HWACCEL_FLAGS |
|
|
list(APPEND FFmpeg_HWACCEL_FLAGS |
|
|
--enable-cuvid |
|
|
--enable-cuvid |
|
|
--enable-ffnvcodec |
|
|
--enable-ffnvcodec |
|
|
@ -623,21 +623,20 @@ if (YUZU_USE_BUNDLED_FFMPEG) |
|
|
--enable-hwaccel=h264_nvdec |
|
|
--enable-hwaccel=h264_nvdec |
|
|
--enable-hwaccel=vp8_nvdec |
|
|
--enable-hwaccel=vp8_nvdec |
|
|
--enable-hwaccel=vp9_nvdec |
|
|
--enable-hwaccel=vp9_nvdec |
|
|
--extra-cflags=-I${CUDA_INCLUDE_DIRS} |
|
|
|
|
|
) |
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_LIBRARIES |
|
|
|
|
|
${FFNVCODEC_LIBRARIES} |
|
|
|
|
|
${CUDA_LIBRARIES} |
|
|
|
|
|
) |
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_INCLUDE_DIRS |
|
|
|
|
|
${FFNVCODEC_INCLUDE_DIRS} |
|
|
|
|
|
${CUDA_INCLUDE_DIRS} |
|
|
|
|
|
) |
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_LDFLAGS |
|
|
|
|
|
${FFNVCODEC_LDFLAGS} |
|
|
|
|
|
${CUDA_LDFLAGS} |
|
|
|
|
|
) |
|
|
) |
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_LIBRARIES ${FFNVCODEC_LIBRARIES}) |
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_INCLUDE_DIRS ${FFNVCODEC_INCLUDE_DIRS}) |
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_LDFLAGS ${FFNVCODEC_LDFLAGS}) |
|
|
message(STATUS "ffnvcodec libraries version ${FFNVCODEC_VERSION} found") |
|
|
message(STATUS "ffnvcodec libraries version ${FFNVCODEC_VERSION} found") |
|
|
|
|
|
# ffnvenc could load CUDA libraries at the runtime using dlopen/dlsym or LoadLibrary/GetProcAddress |
|
|
|
|
|
# here we handle the hard-linking senario where CUDA is linked during compilation |
|
|
|
|
|
if (CUDA_FOUND) |
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_FLAGS --extra-cflags=-I${CUDA_INCLUDE_DIRS}) |
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_LIBRARIES ${CUDA_LIBRARIES}) |
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_INCLUDE_DIRS ${CUDA_INCLUDE_DIRS}) |
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_LDFLAGS ${CUDA_LDFLAGS}) |
|
|
|
|
|
message(STATUS "CUDA libraries found, hard-linking will be performed") |
|
|
|
|
|
endif(CUDA_FOUND) |
|
|
endif() |
|
|
endif() |
|
|
|
|
|
|
|
|
if (VDPAU_FOUND) |
|
|
if (VDPAU_FOUND) |
|
|
|