diff options
Diffstat (limited to 'media-libs/tg_owt/files/Allow-using-packaged-third_party.patch')
-rw-r--r-- | media-libs/tg_owt/files/Allow-using-packaged-third_party.patch | 487 |
1 files changed, 0 insertions, 487 deletions
diff --git a/media-libs/tg_owt/files/Allow-using-packaged-third_party.patch b/media-libs/tg_owt/files/Allow-using-packaged-third_party.patch deleted file mode 100644 index 17025826a48a..000000000000 --- a/media-libs/tg_owt/files/Allow-using-packaged-third_party.patch +++ /dev/null @@ -1,487 +0,0 @@ -From dbfceeea4280412358202d511e02e95a040d0297 Mon Sep 17 00:00:00 2001 -From: mid-kid <esteve.varela@gmail.com> -Date: Sun, 7 Mar 2021 17:12:34 +0100 -Subject: [PATCH] Allow using packaged third_party - -This patch adds support for building tg_owt using system libraries -instead of bundled third_party modules. - -Some libraries haven't been converted for the following reasons: -- pffft: No stable ABI, patched, and not available in major distributions. -- rnnoise: All of the remaining files are custom. -- libsrtp: This project uses private APIs. -- libyuv: No stable ABI, frequent breaking updates, and not available in major distributions. - -Note that: This still installs the system headers for the third_party -modules (albeit in a convenient sub-directory). I haven't figured out a -method to avoid this. ---- - CMakeLists.txt | 78 +++++++--------- - cmake/external.cmake | 91 +++++++++++++++++++ - cmake/libabsl.cmake | 2 +- - cmake/libevent.cmake | 5 +- - cmake/libopenh264.cmake | 17 +++- - cmake/libpffft.cmake | 2 +- - cmake/librnnoise.cmake | 2 +- - cmake/libsrtp.cmake | 2 +- - cmake/libusrsctp.cmake | 2 +- - cmake/libvpx.cmake | 2 +- - cmake/libwebrtcbuild.cmake | 4 +- - cmake/libyuv.cmake | 2 +- - cmake/tg_owtConfig.cmake | 5 + - .../codecs/h264/h264_encoder_impl.cc | 8 +- - .../codecs/h264/h264_encoder_impl.h | 2 +- - src/rtc_base/task_queue_libevent.cc | 2 +- - 16 files changed, 166 insertions(+), 60 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 7f8e3bd..3462351 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -60,7 +60,6 @@ include(cmake/librnnoise.cmake) - include(cmake/libsrtp.cmake) - include(cmake/libusrsctp.cmake) - include(cmake/libvpx.cmake) --include(cmake/libwebrtcbuild.cmake) - include(cmake/libyuv.cmake) - if (NOT WIN32 AND NOT APPLE) - include(cmake/libevent.cmake) -@@ -80,41 +79,19 @@ init_target(tg_owt) - - set_target_properties(tg_owt PROPERTIES SOVERSION 0 VERSION 0.0.0) - -+target_link_libraries(tg_owt -+PRIVATE -+ tg_owt::libpffft -+ tg_owt::librnnoise -+ tg_owt::libsrtp -+ tg_owt::libyuv -+) -+ - if (is_x86 OR is_x64) - target_link_libraries(tg_owt -- PUBLIC -- tg_owt::libwebrtcbuild - PRIVATE - tg_owt::tg_owt_avx2 - tg_owt::tg_owt_sse2 -- tg_owt::libabsl -- tg_owt::libopenh264 -- tg_owt::libpffft -- tg_owt::librnnoise -- tg_owt::libsrtp -- tg_owt::libusrsctp -- tg_owt::libvpx -- tg_owt::libvpx_mmx -- tg_owt::libvpx_sse2 -- tg_owt::libvpx_ssse3 -- tg_owt::libvpx_sse4 -- tg_owt::libvpx_avx -- tg_owt::libvpx_avx2 -- tg_owt::libyuv -- ) --else() -- target_link_libraries(tg_owt -- PUBLIC -- tg_owt::libwebrtcbuild -- PRIVATE -- tg_owt::libabsl -- tg_owt::libopenh264 -- tg_owt::libpffft -- tg_owt::librnnoise -- tg_owt::libsrtp -- tg_owt::libusrsctp -- tg_owt::libvpx -- tg_owt::libyuv - ) - endif() - -@@ -131,9 +108,6 @@ PRIVATE - ${libopenh264_yasm_objects} - ) - --if (NOT WIN32 AND NOT APPLE) -- target_link_libraries(tg_owt PRIVATE tg_owt::libevent) --endif() - if (APPLE) - target_link_libraries(tg_owt PUBLIC tg_owt::libsdkmacos) - endif() -@@ -141,6 +115,17 @@ endif() - link_openssl(tg_owt) - link_ffmpeg(tg_owt) - link_opus(tg_owt) -+link_libabsl(tg_owt) -+link_libopenh264(tg_owt) -+link_libusrsctp(tg_owt) -+link_libvpx(tg_owt) -+ -+if (NOT WIN32 AND NOT APPLE) -+ link_libevent(tg_owt) -+endif() -+ -+include(cmake/libwebrtcbuild.cmake) -+target_link_libraries(tg_owt PUBLIC tg_owt::libwebrtcbuild) - - function(add_sublibrary postfix) - add_library(tg_owt_${postfix} OBJECT) -@@ -149,9 +134,8 @@ function(add_sublibrary postfix) - target_link_libraries(tg_owt_${postfix} - PUBLIC - tg_owt::libwebrtcbuild -- PRIVATE -- tg_owt::libabsl - ) -+ link_libabsl(tg_owt_${postfix}) - target_include_directories(tg_owt_${postfix} - PUBLIC - $<BUILD_INTERFACE:${webrtc_loc}> -@@ -2165,7 +2149,7 @@ else() - endif() - - set(platform_export) --if (NOT WIN32 AND NOT APPLE) -+if (NOT WIN32 AND NOT APPLE AND NOT LIBEVENT_FOUND) - set(platform_export - libevent - ) -@@ -2198,14 +2182,9 @@ endif() - - set(export_targets - ${tg_owt_export} -- libabsl -- libopenh264 - libpffft - librnnoise - libsrtp -- libusrsctp -- libvpx -- ${vpx_export} - libwebrtcbuild - libyuv - ${platform_export} -@@ -2214,6 +2193,19 @@ if (TG_OWT_USE_PROTOBUF) - list(APPEND export_targets proto) - endif() - -+if (NOT absl_FOUND) -+ list(APPEND export_targets libabsl) -+endif() -+if (NOT LIBOPENH264_FOUND) -+ list(APPEND export_targets libopenh264) -+endif() -+if (NOT LIBUSRSCTP_FOUND) -+ list(APPEND export_targets libusrsctp) -+endif() -+if (NOT LIBVPX_FOUND) -+ list(APPEND export_targets libvpx ${vpx_export}) -+endif() -+ - export( - TARGETS ${export_targets} - NAMESPACE tg_owt:: -@@ -2223,7 +2215,7 @@ export( - configure_file( - "cmake/tg_owtConfig.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/tg_owtConfig.cmake" -- COPYONLY -+ @ONLY - ) - - target_include_directories(tg_owt -diff --git a/cmake/external.cmake b/cmake/external.cmake -index 2132546..e09af96 100644 ---- a/cmake/external.cmake -+++ b/cmake/external.cmake -@@ -105,3 +105,94 @@ function(link_libjpeg target_name) - ) - endif() - endfunction() -+ -+# libabsl -+# HINT: System abseil should be built with -DCMAKE_CXX_STANDARD=17 -+function(link_libabsl target_name) -+ if (TG_OWT_PACKAGED_BUILD) -+ find_package(absl) -+ set(absl_FOUND ${absl_FOUND} PARENT_SCOPE) -+ if (absl_FOUND) -+ target_link_libraries(${target_name} INTERFACE absl::strings) -+ endif() -+ endif() -+ if (NOT absl_FOUND) -+ target_link_libraries(${target_name} PRIVATE tg_owt::libabsl) -+ endif() -+endfunction() -+ -+# libopenh264 -+function(link_libopenh264 target_name) -+ if (TG_OWT_PACKAGED_BUILD) -+ find_package(PkgConfig REQUIRED) -+ pkg_check_modules(LIBOPENH264 openh264) -+ set(LIBOPENH264_FOUND ${LIBOPENH264_FOUND} PARENT_SCOPE) -+ if (LIBOPENH264_FOUND) -+ target_link_libraries(${target_name} PRIVATE ${LIBOPENH264_LIBRARIES}) -+ target_include_directories(${target_name} PRIVATE ${LIBOPENH264_INCLUDE_DIRS}) -+ endif() -+ endif() -+ if (NOT LIBOPENH264_FOUND) -+ target_link_libraries(${target_name} PRIVATE tg_owt::libopenh264) -+ target_include_directories(${target_name} PRIVATE ${libopenh264_loc}/include) -+ endif() -+endfunction() -+ -+# libusrsctp -+function(link_libusrsctp target_name) -+ if (TG_OWT_PACKAGED_BUILD) -+ find_package(PkgConfig REQUIRED) -+ pkg_check_modules(LIBUSRSCTP usrsctp) -+ set(LIBUSRSCTP_FOUND ${LIBUSRSCTP_FOUND} PARENT_SCOPE) -+ if (LIBUSRSCTP_FOUND) -+ target_link_libraries(${target_name} PRIVATE ${LIBUSRSCTP_LIBRARIES}) -+ target_include_directories(${target_name} PRIVATE ${LIBUSRSCTP_INCLUDE_DIRS}) -+ endif() -+ endif() -+ if (NOT LIBUSRSCTP_FOUND) -+ target_link_libraries(${target_name} PRIVATE tg_owt::libusrsctp) -+ endif() -+endfunction() -+ -+# libvpx -+function(link_libvpx target_name) -+ if (TG_OWT_PACKAGED_BUILD) -+ find_package(PkgConfig REQUIRED) -+ pkg_check_modules(LIBVPX vpx>=1.10.0) -+ set(LIBVPX_FOUND ${LIBVPX_FOUND} PARENT_SCOPE) -+ if (LIBVPX_FOUND) -+ target_link_libraries(${target_name} PRIVATE ${LIBVPX_LIBRARIES}) -+ target_include_directories(${target_name} PRIVATE ${LIBVPX_INCLUDE_DIRS}) -+ endif() -+ endif() -+ if (NOT LIBVPX_FOUND) -+ target_link_libraries(${target_name} PRIVATE tg_owt::libvpx) -+ if (is_x86 OR is_x64) -+ target_link_libraries(${target_name} -+ PRIVATE -+ tg_owt::libvpx_mmx -+ tg_owt::libvpx_sse2 -+ tg_owt::libvpx_ssse3 -+ tg_owt::libvpx_sse4 -+ tg_owt::libvpx_avx -+ tg_owt::libvpx_avx2 -+ ) -+ endif() -+ endif() -+endfunction() -+ -+# libevent -+function(link_libevent target_name) -+ if (TG_OWT_PACKAGED_BUILD) -+ find_package(PkgConfig REQUIRED) -+ pkg_check_modules(LIBEVENT libevent) -+ set(LIBEVENT_FOUND ${LIBEVENT_FOUND} PARENT_SCOPE) -+ if (LIBEVENT_FOUND) -+ target_link_libraries(${target_name} PRIVATE ${LIBEVENT_LIBRARIES}) -+ target_include_directories(${target_name} PRIVATE ${LIBEVENT_INCLUDE_DIRS}) -+ endif() -+ endif() -+ if (NOT LIBEVENT_FOUND) -+ target_link_libraries(${target_name} PRIVATE tg_owt::libevent) -+ endif() -+endfunction() -diff --git a/cmake/libabsl.cmake b/cmake/libabsl.cmake -index 0cc8920..a82732a 100644 ---- a/cmake/libabsl.cmake -+++ b/cmake/libabsl.cmake -@@ -1,4 +1,4 @@ --add_library(libabsl OBJECT) -+add_library(libabsl OBJECT EXCLUDE_FROM_ALL) - init_target(libabsl) - add_library(tg_owt::libabsl ALIAS libabsl) - -diff --git a/cmake/libevent.cmake b/cmake/libevent.cmake -index 0192896..31248fb 100644 ---- a/cmake/libevent.cmake -+++ b/cmake/libevent.cmake -@@ -1,4 +1,4 @@ --add_library(libevent OBJECT) -+add_library(libevent OBJECT EXCLUDE_FROM_ALL) - init_target(libevent) - add_library(tg_owt::libevent ALIAS libevent) - -@@ -40,7 +40,8 @@ PRIVATE - ) - - target_include_directories(libevent -+PUBLIC -+ $<BUILD_INTERFACE:${libevent_loc}> - PRIVATE - ${webrtc_loc} -- ${libevent_loc} - ) -diff --git a/cmake/libopenh264.cmake b/cmake/libopenh264.cmake -index 45ce7c9..7d4742e 100644 ---- a/cmake/libopenh264.cmake -+++ b/cmake/libopenh264.cmake -@@ -1,4 +1,4 @@ --add_library(libopenh264 OBJECT) -+add_library(libopenh264 OBJECT EXCLUDE_FROM_ALL) - init_target(libopenh264) - add_library(tg_owt::libopenh264 ALIAS libopenh264) - -@@ -207,6 +207,21 @@ set(include_directories - - target_include_directories(libopenh264 PRIVATE ${include_directories}) - -+# Create include-able wels/ directory for public use of the library -+set(GEN_INC ${CMAKE_CURRENT_BINARY_DIR}/openh264_include) -+add_custom_command(OUTPUT ${GEN_INC}/wels -+COMMAND ${CMAKE_COMMAND} -E make_directory ${GEN_INC}/wels -+COMMAND ${CMAKE_COMMAND} -E copy -+ ${libopenh264_loc}/codec/api/svc/codec_api.h -+ ${libopenh264_loc}/codec/api/svc/codec_app_def.h -+ ${libopenh264_loc}/codec/api/svc/codec_def.h -+ ${libopenh264_loc}/codec/api/svc/codec_ver.h -+ ${GEN_INC}/wels -+VERBATIM -+) -+target_sources(libopenh264 PRIVATE ${GEN_INC}/wels) -+target_include_directories(libopenh264 PUBLIC $<BUILD_INTERFACE:${GEN_INC}>) -+ - if (is_x86) - set(yasm_defines X86_32) - else() -diff --git a/cmake/libpffft.cmake b/cmake/libpffft.cmake -index fa2e66f..02c3db4 100644 ---- a/cmake/libpffft.cmake -+++ b/cmake/libpffft.cmake -@@ -1,4 +1,4 @@ --add_library(libpffft OBJECT) -+add_library(libpffft OBJECT EXCLUDE_FROM_ALL) - init_target(libpffft) - add_library(tg_owt::libpffft ALIAS libpffft) - -diff --git a/cmake/librnnoise.cmake b/cmake/librnnoise.cmake -index 04f72ae..a3e682e 100644 ---- a/cmake/librnnoise.cmake -+++ b/cmake/librnnoise.cmake -@@ -1,4 +1,4 @@ --add_library(librnnoise OBJECT) -+add_library(librnnoise OBJECT EXCLUDE_FROM_ALL) - init_target(librnnoise) - add_library(tg_owt::librnnoise ALIAS librnnoise) - -diff --git a/cmake/libsrtp.cmake b/cmake/libsrtp.cmake -index ce4ff64..4754f13 100644 ---- a/cmake/libsrtp.cmake -+++ b/cmake/libsrtp.cmake -@@ -1,4 +1,4 @@ --add_library(libsrtp OBJECT) -+add_library(libsrtp OBJECT EXCLUDE_FROM_ALL) - init_target(libsrtp) - add_library(tg_owt::libsrtp ALIAS libsrtp) - -diff --git a/cmake/libusrsctp.cmake b/cmake/libusrsctp.cmake -index ad41d12..1dc5e5e 100644 ---- a/cmake/libusrsctp.cmake -+++ b/cmake/libusrsctp.cmake -@@ -1,4 +1,4 @@ --add_library(libusrsctp OBJECT) -+add_library(libusrsctp OBJECT EXCLUDE_FROM_ALL) - init_target(libusrsctp) - add_library(tg_owt::libusrsctp ALIAS libusrsctp) - -diff --git a/cmake/libvpx.cmake b/cmake/libvpx.cmake -index e6775c4..0fdfbac 100644 ---- a/cmake/libvpx.cmake -+++ b/cmake/libvpx.cmake -@@ -1,4 +1,4 @@ --add_library(libvpx OBJECT) -+add_library(libvpx OBJECT EXCLUDE_FROM_ALL) - init_target(libvpx) - add_library(tg_owt::libvpx ALIAS libvpx) - -diff --git a/cmake/libwebrtcbuild.cmake b/cmake/libwebrtcbuild.cmake -index 15f854e..8efd18d 100644 ---- a/cmake/libwebrtcbuild.cmake -+++ b/cmake/libwebrtcbuild.cmake -@@ -3,9 +3,11 @@ add_library(tg_owt::libwebrtcbuild ALIAS libwebrtcbuild) - - target_link_libraries(libwebrtcbuild - INTERFACE -- tg_owt::libabsl - tg_owt::libyuv - ) -+if (NOT absl_FOUND) -+ target_link_libraries(libwebrtcbuild INTERFACE tg_owt::libabsl) -+endif() - - target_compile_definitions(libwebrtcbuild - INTERFACE -diff --git a/cmake/libyuv.cmake b/cmake/libyuv.cmake -index 881f9db..143e239 100644 ---- a/cmake/libyuv.cmake -+++ b/cmake/libyuv.cmake -@@ -1,4 +1,4 @@ --add_library(libyuv OBJECT) -+add_library(libyuv OBJECT EXCLUDE_FROM_ALL) - init_target(libyuv) - add_library(tg_owt::libyuv ALIAS libyuv) - -diff --git a/cmake/tg_owtConfig.cmake b/cmake/tg_owtConfig.cmake -index d0001ac..e9f4388 100644 ---- a/cmake/tg_owtConfig.cmake -+++ b/cmake/tg_owtConfig.cmake -@@ -1 +1,6 @@ -+if (@absl_FOUND@) -+ include(CMakeFindDependencyMacro) -+ find_dependency(absl REQUIRED) -+endif() -+ - include("${CMAKE_CURRENT_LIST_DIR}/tg_owtTargets.cmake") -diff --git a/src/modules/video_coding/codecs/h264/h264_encoder_impl.cc b/src/modules/video_coding/codecs/h264/h264_encoder_impl.cc -index ccf0bc5..85ddc90 100644 ---- a/src/modules/video_coding/codecs/h264/h264_encoder_impl.cc -+++ b/src/modules/video_coding/codecs/h264/h264_encoder_impl.cc -@@ -29,10 +29,10 @@ - #include "system_wrappers/include/metrics.h" - #include "third_party/libyuv/include/libyuv/convert.h" - #include "third_party/libyuv/include/libyuv/scale.h" --#include "third_party/openh264/src/codec/api/svc/codec_api.h" --#include "third_party/openh264/src/codec/api/svc/codec_app_def.h" --#include "third_party/openh264/src/codec/api/svc/codec_def.h" --#include "third_party/openh264/src/codec/api/svc/codec_ver.h" -+#include <wels/codec_api.h> -+#include <wels/codec_app_def.h> -+#include <wels/codec_def.h> -+#include <wels/codec_ver.h> - - namespace webrtc { - -diff --git a/src/modules/video_coding/codecs/h264/h264_encoder_impl.h b/src/modules/video_coding/codecs/h264/h264_encoder_impl.h -index 4eb4ad3..98e4c2f 100644 ---- a/src/modules/video_coding/codecs/h264/h264_encoder_impl.h -+++ b/src/modules/video_coding/codecs/h264/h264_encoder_impl.h -@@ -25,7 +25,7 @@ - #include "common_video/h264/h264_bitstream_parser.h" - #include "modules/video_coding/codecs/h264/include/h264.h" - #include "modules/video_coding/utility/quality_scaler.h" --#include "third_party/openh264/src/codec/api/svc/codec_app_def.h" -+#include <wels/codec_app_def.h> - - class ISVCEncoder; - -diff --git a/src/rtc_base/task_queue_libevent.cc b/src/rtc_base/task_queue_libevent.cc -index 38660cd..04bc278 100644 ---- a/src/rtc_base/task_queue_libevent.cc -+++ b/src/rtc_base/task_queue_libevent.cc -@@ -27,7 +27,7 @@ - #include "absl/strings/string_view.h" - #include "api/task_queue/queued_task.h" - #include "api/task_queue/task_queue_base.h" --#include "base/third_party/libevent/event.h" -+#include <event.h> - #include "rtc_base/checks.h" - #include "rtc_base/logging.h" - #include "rtc_base/numerics/safe_conversions.h" --- -2.26.3 - |