2021-04-29 13:46:06 +00:00
|
|
|
find_package(GstRtp REQUIRED)
|
2022-02-11 19:33:06 +00:00
|
|
|
find_package(GLib ${GLib_GLOBAL_VERSION} REQUIRED)
|
2021-05-01 13:19:05 +00:00
|
|
|
find_package(WebRTCAudioProcessing 0.2)
|
2021-03-21 11:41:38 +00:00
|
|
|
find_packages(RTP_PACKAGES REQUIRED
|
|
|
|
Gee
|
|
|
|
GLib
|
|
|
|
GModule
|
2021-03-24 13:12:42 +00:00
|
|
|
GnuTLS
|
2021-03-21 11:41:38 +00:00
|
|
|
GObject
|
2022-02-14 13:55:59 +00:00
|
|
|
GTK4
|
2021-03-21 11:41:38 +00:00
|
|
|
Gst
|
|
|
|
GstApp
|
2021-05-01 13:19:05 +00:00
|
|
|
GstAudio
|
2022-05-14 11:59:54 +00:00
|
|
|
GstVideo
|
2021-03-21 11:41:38 +00:00
|
|
|
)
|
|
|
|
|
2022-02-11 18:55:19 +00:00
|
|
|
set(RTP_DEFINITIONS)
|
|
|
|
|
2021-05-14 08:17:51 +00:00
|
|
|
if(GstRtp_VERSION VERSION_GREATER "1.16")
|
2022-02-11 18:55:19 +00:00
|
|
|
set(RTP_DEFINITIONS ${RTP_DEFINITIONS} GST_1_16)
|
2021-04-11 10:31:03 +00:00
|
|
|
endif()
|
|
|
|
|
2022-01-21 14:23:38 +00:00
|
|
|
if(GstRtp_VERSION VERSION_GREATER "1.18")
|
2022-02-11 18:55:19 +00:00
|
|
|
set(RTP_DEFINITIONS ${RTP_DEFINITIONS} GST_1_18)
|
|
|
|
endif()
|
|
|
|
|
2022-05-14 11:59:54 +00:00
|
|
|
if(GstRtp_VERSION VERSION_GREATER "1.20")
|
|
|
|
set(RTP_DEFINITIONS ${RTP_DEFINITIONS} GST_1_20)
|
2022-02-11 19:33:06 +00:00
|
|
|
endif()
|
|
|
|
|
2022-02-11 18:55:19 +00:00
|
|
|
set(RTP_ENABLE_VP9 "no" CACHE BOOL "Enable VP9 support")
|
|
|
|
if(RTP_ENABLE_VP9)
|
|
|
|
set(RTP_DEFINITIONS ${RTP_DEFINITIONS} ENABLE_VP9)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(RTP_ENABLE_H264 "no" CACHE BOOL "Enable H264 support")
|
|
|
|
if(RTP_ENABLE_H264)
|
|
|
|
set(RTP_DEFINITIONS ${RTP_DEFINITIONS} ENABLE_H264)
|
2022-01-21 14:23:38 +00:00
|
|
|
endif()
|
|
|
|
|
2022-02-11 18:55:19 +00:00
|
|
|
set(RTP_ENABLE_VAAPI "no" CACHE BOOL "Enable VAAPI support")
|
|
|
|
if(RTP_ENABLE_VAAPI)
|
|
|
|
set(RTP_DEFINITIONS ${RTP_DEFINITIONS} ENABLE_VAAPI)
|
2021-12-18 20:45:36 +00:00
|
|
|
endif()
|
|
|
|
|
2022-02-11 18:55:19 +00:00
|
|
|
set(RTP_ENABLE_MSDK "no" CACHE BOOL "Enable MSDK support")
|
|
|
|
if(RTP_ENABLE_MSDK)
|
|
|
|
set(RTP_DEFINITIONS ${RTP_DEFINITIONS} ENABLE_MSDK)
|
2021-12-25 17:25:13 +00:00
|
|
|
endif()
|
|
|
|
|
2021-05-01 13:19:05 +00:00
|
|
|
if(WebRTCAudioProcessing_VERSION GREATER "0.4")
|
2021-05-01 22:34:17 +00:00
|
|
|
message(STATUS "Ignoring WebRTCAudioProcessing, only versions < 0.4 supported so far")
|
2021-05-01 13:19:05 +00:00
|
|
|
unset(WebRTCAudioProcessing_FOUND)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(WebRTCAudioProcessing_FOUND)
|
|
|
|
set(RTP_DEFINITIONS ${RTP_DEFINITIONS} WITH_VOICE_PROCESSOR)
|
|
|
|
set(RTP_VOICE_PROCESSOR_VALA src/voice_processor.vala)
|
|
|
|
set(RTP_VOICE_PROCESSOR_CXX src/voice_processor_native.cpp)
|
2021-05-01 22:34:17 +00:00
|
|
|
set(RTP_VOICE_PROCESSOR_LIB webrtc-audio-processing)
|
2021-05-01 13:19:05 +00:00
|
|
|
else()
|
2021-05-01 22:34:17 +00:00
|
|
|
message(STATUS "WebRTCAudioProcessing not found, build without voice pre-processing!")
|
2021-05-01 13:19:05 +00:00
|
|
|
endif()
|
|
|
|
|
2021-03-21 11:41:38 +00:00
|
|
|
vala_precompile(RTP_VALA_C
|
|
|
|
SOURCES
|
|
|
|
src/codec_util.vala
|
|
|
|
src/device.vala
|
|
|
|
src/module.vala
|
|
|
|
src/plugin.vala
|
|
|
|
src/stream.vala
|
|
|
|
src/video_widget.vala
|
|
|
|
src/register_plugin.vala
|
2021-05-01 13:19:05 +00:00
|
|
|
${RTP_VOICE_PROCESSOR_VALA}
|
2021-03-21 11:41:38 +00:00
|
|
|
CUSTOM_VAPIS
|
2021-03-29 11:20:12 +00:00
|
|
|
${CMAKE_BINARY_DIR}/exports/crypto-vala.vapi
|
2021-03-21 11:41:38 +00:00
|
|
|
${CMAKE_BINARY_DIR}/exports/xmpp-vala.vapi
|
|
|
|
${CMAKE_BINARY_DIR}/exports/dino.vapi
|
|
|
|
${CMAKE_BINARY_DIR}/exports/qlite.vapi
|
2021-04-29 13:46:06 +00:00
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/vapi/gstreamer-rtp-1.0.vapi
|
2021-03-21 11:41:38 +00:00
|
|
|
PACKAGES
|
|
|
|
${RTP_PACKAGES}
|
2021-04-11 10:31:03 +00:00
|
|
|
DEFINITIONS
|
|
|
|
${RTP_DEFINITIONS}
|
2021-03-21 11:41:38 +00:00
|
|
|
)
|
|
|
|
|
2021-03-23 14:05:50 +00:00
|
|
|
add_definitions(${VALA_CFLAGS} -DG_LOG_DOMAIN="rtp" -I${CMAKE_CURRENT_SOURCE_DIR}/src)
|
2022-05-14 11:59:54 +00:00
|
|
|
add_library(rtp SHARED ${RTP_VALA_C} ${RTP_VOICE_PROCESSOR_CXX} src/gst_fixes.c)
|
2021-05-01 22:34:17 +00:00
|
|
|
target_link_libraries(rtp libdino crypto-vala ${RTP_PACKAGES} gstreamer-rtp-1.0 ${RTP_VOICE_PROCESSOR_LIB})
|
2021-03-21 11:41:38 +00:00
|
|
|
set_target_properties(rtp PROPERTIES PREFIX "")
|
|
|
|
set_target_properties(rtp PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/plugins/)
|
|
|
|
|
|
|
|
install(TARGETS rtp ${PLUGIN_INSTALL})
|