diff options
Diffstat (limited to 'net-misc/sunshine/files/sunshine-custom-ffmpeg.patch')
-rw-r--r-- | net-misc/sunshine/files/sunshine-custom-ffmpeg.patch | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/net-misc/sunshine/files/sunshine-custom-ffmpeg.patch b/net-misc/sunshine/files/sunshine-custom-ffmpeg.patch new file mode 100644 index 000000000000..94febe187c1f --- /dev/null +++ b/net-misc/sunshine/files/sunshine-custom-ffmpeg.patch @@ -0,0 +1,163 @@ +From 64783df9d7ed22916894387a8ff1f73a97dbb760 Mon Sep 17 00:00:00 2001 +From: James Le Cuirot <chewi@gentoo.org> +Date: Mon, 1 Jan 2024 11:17:08 +0000 +Subject: [PATCH 1/2] Allow a custom FFmpeg build to be provided using CMake + options + +--- + cmake/dependencies/common.cmake | 90 ++++++++++++++++++--------------- + 1 file changed, 50 insertions(+), 40 deletions(-) + +diff --git a/cmake/dependencies/common.cmake b/cmake/dependencies/common.cmake +index a1f3512..d921c1b 100644 +--- a/cmake/dependencies/common.cmake ++++ b/cmake/dependencies/common.cmake +@@ -23,53 +23,63 @@ include_directories(SYSTEM ${MINIUPNP_INCLUDE_DIRS}) + add_subdirectory("${CMAKE_SOURCE_DIR}/third-party/nlohmann_json") + + # ffmpeg pre-compiled binaries +-if(WIN32) +- if(NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64") +- message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) ++if(NOT DEFINED FFMPEG_PREPARED_BINARIES) ++ if(WIN32) ++ if(NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64") ++ message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) ++ endif() ++ set(FFMPEG_PLATFORM_LIBRARIES mfplat ole32 strmiids mfuuid vpl) ++ set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/windows-x86_64") ++ elseif(APPLE) ++ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") ++ set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/macos-x86_64") ++ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") ++ set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/macos-aarch64") ++ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc") ++ message(FATAL_ERROR "PowerPC is not supported on macOS") ++ else() ++ message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) ++ endif() ++ elseif(UNIX) ++ set(FFMPEG_PLATFORM_LIBRARIES va va-drm va-x11 vdpau X11) ++ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") ++ list(APPEND FFMPEG_PLATFORM_LIBRARIES mfx) ++ set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/linux-x86_64") ++ set(CPACK_DEB_PLATFORM_PACKAGE_DEPENDS "libmfx1,") ++ set(CPACK_RPM_PLATFORM_PACKAGE_REQUIRES "intel-mediasdk >= 22.3.0,") ++ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") ++ set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/linux-aarch64") ++ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64le" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64") ++ set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/linux-powerpc64le") ++ else() ++ message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) ++ endif() + endif() +- set(FFMPEG_PLATFORM_LIBRARIES mfplat ole32 strmiids mfuuid vpl) +- set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/windows-x86_64") +-elseif(APPLE) +- if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") +- set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/macos-x86_64") +- elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") +- set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/macos-aarch64") +- elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc") +- message(FATAL_ERROR "PowerPC is not supported on macOS") +- else() +- message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) ++ if(EXISTS "${FFMPEG_PREPARED_BINARIES}/lib/libhdr10plus.a") ++ set(HDR10_PLUS_LIBRARY ++ "${FFMPEG_PREPARED_BINARIES}/lib/libhdr10plus.a") + endif() +-elseif(UNIX) +- set(FFMPEG_PLATFORM_LIBRARIES va va-drm va-x11 vdpau X11) +- if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") +- list(APPEND FFMPEG_PLATFORM_LIBRARIES mfx) +- set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/linux-x86_64") +- set(CPACK_DEB_PLATFORM_PACKAGE_DEPENDS "libmfx1,") +- set(CPACK_RPM_PLATFORM_PACKAGE_REQUIRES "intel-mediasdk >= 22.3.0,") +- elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") +- set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/linux-aarch64") +- elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64le" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64") +- set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/linux-powerpc64le") +- else() +- message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) +- endif() +-endif() +-set(FFMPEG_INCLUDE_DIRS +- "${FFMPEG_PREPARED_BINARIES}/include") +-if(EXISTS "${FFMPEG_PREPARED_BINARIES}/lib/libhdr10plus.a") +- set(HDR10_PLUS_LIBRARY +- "${FFMPEG_PREPARED_BINARIES}/lib/libhdr10plus.a") +-endif() +-set(FFMPEG_LIBRARIES ++ set(FFMPEG_LIBRARIES ++ "${FFMPEG_PREPARED_BINARIES}/lib/libavcodec.a" ++ "${FFMPEG_PREPARED_BINARIES}/lib/libavutil.a" ++ "${FFMPEG_PREPARED_BINARIES}/lib/libcbs.a" ++ "${FFMPEG_PREPARED_BINARIES}/lib/libSvtAv1Enc.a" ++ "${FFMPEG_PREPARED_BINARIES}/lib/libswscale.a" ++ "${FFMPEG_PREPARED_BINARIES}/lib/libx264.a" ++ "${FFMPEG_PREPARED_BINARIES}/lib/libx265.a" ++ ${HDR10_PLUS_LIBRARY} ++ ${FFMPEG_PLATFORM_LIBRARIES}) ++else() ++ set(FFMPEG_LIBRARIES + "${FFMPEG_PREPARED_BINARIES}/lib/libavcodec.a" + "${FFMPEG_PREPARED_BINARIES}/lib/libavutil.a" + "${FFMPEG_PREPARED_BINARIES}/lib/libcbs.a" +- "${FFMPEG_PREPARED_BINARIES}/lib/libSvtAv1Enc.a" + "${FFMPEG_PREPARED_BINARIES}/lib/libswscale.a" +- "${FFMPEG_PREPARED_BINARIES}/lib/libx264.a" +- "${FFMPEG_PREPARED_BINARIES}/lib/libx265.a" +- ${HDR10_PLUS_LIBRARY} + ${FFMPEG_PLATFORM_LIBRARIES}) ++endif() ++ ++set(FFMPEG_INCLUDE_DIRS ++ "${FFMPEG_PREPARED_BINARIES}/include") + + # platform specific dependencies + if(WIN32) +-- +2.43.0 + + +From b7a479b15216900fdc4cbc5587d8fd90e366f5a5 Mon Sep 17 00:00:00 2001 +From: James Le Cuirot <chewi@gentoo.org> +Date: Mon, 1 Jan 2024 13:34:20 +0000 +Subject: [PATCH 2/2] Move numa from general PLATFORM_LIBRARIES to + FFMPEG_PLATFORM_LIBRARIES + +It's only needed if libx265 was built with NUMA support. This support +may be disabled in a custom FFmpeg build. +--- + cmake/compile_definitions/linux.cmake | 1 - + cmake/dependencies/common.cmake | 2 +- + 2 files changed, 1 insertion(+), 2 deletions(-) + +diff --git a/cmake/compile_definitions/linux.cmake b/cmake/compile_definitions/linux.cmake +index 613a090..e1fda2c 100644 +--- a/cmake/compile_definitions/linux.cmake ++++ b/cmake/compile_definitions/linux.cmake +@@ -242,7 +242,6 @@ list(APPEND PLATFORM_LIBRARIES + Boost::dynamic_linking + dl + evdev +- numa + pulse + pulse-simple) + +diff --git a/cmake/dependencies/common.cmake b/cmake/dependencies/common.cmake +index d921c1b..23695e3 100644 +--- a/cmake/dependencies/common.cmake ++++ b/cmake/dependencies/common.cmake +@@ -41,7 +41,7 @@ if(NOT DEFINED FFMPEG_PREPARED_BINARIES) + message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) + endif() + elseif(UNIX) +- set(FFMPEG_PLATFORM_LIBRARIES va va-drm va-x11 vdpau X11) ++ set(FFMPEG_PLATFORM_LIBRARIES numa va va-drm va-x11 vdpau X11) + if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + list(APPEND FFMPEG_PLATFORM_LIBRARIES mfx) + set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/linux-x86_64") +-- +2.43.0 + |