diff --git a/meson.build b/meson.build index 887397c2..e3c6b72e 100644 --- a/meson.build +++ b/meson.build @@ -1,4 +1,4 @@ -project('xmpp-vala', 'vala') +project('xmpp-vala', 'c', 'cpp', 'vala') fs = import('fs') gnome = import('gnome') @@ -12,6 +12,11 @@ dep_glib = dependency('glib-2.0') dep_gnutls = dependency('gnutls') dep_gmodule = dependency('gmodule-2.0') dep_gpgme = dependency('gpgme') +dep_gstreamer = dependency('gstreamer-1.0') +dep_gstreamer_app = dependency('gstreamer-app-1.0') +dep_gstreamer_audio = dependency('gstreamer-audio-1.0') +dep_gstreamer_rtp = dependency('gstreamer-rtp-1.0') +dep_gstreamer_video = dependency('gstreamer-video-1.0') dep_gtk4 = dependency('gtk4') dep_icu_uc = dependency('icu-uc') dep_libadwaita = dependency('libadwaita-1') @@ -27,6 +32,7 @@ dep_libsoup = dependency('libsoup-3.0') dep_nice = dependency('nice', version: '>=0.1.15') dep_m = meson.get_compiler('c').find_library('m', required: false) dep_sqlite3 = dependency('sqlite3', version: '>=3.24') +dep_webrtc_audio_processing = dependency('webrtc-audio-processing', version: ['>=0.2', '<0.4']) prog_git = find_program('git', required: false) prog_python = python.find_installation() diff --git a/plugins/meson.build b/plugins/meson.build index cf47aea8..196e3634 100644 --- a/plugins/meson.build +++ b/plugins/meson.build @@ -3,3 +3,4 @@ subdir('ice') subdir('notification-sound') subdir('omemo') subdir('openpgp') +subdir('rtp') diff --git a/plugins/rtp/meson.build b/plugins/rtp/meson.build new file mode 100644 index 00000000..d4d37e36 --- /dev/null +++ b/plugins/rtp/meson.build @@ -0,0 +1,41 @@ +dependencies = [ + dep_gee, + dep_glib, + dep_gmodule, + dep_gnutls, + dep_gtk4, + dep_gstreamer, + dep_gstreamer_app, + dep_gstreamer_audio, + dep_gstreamer_rtp, + dep_gstreamer_video, + dep_crypto_vala, + dep_dino, + dep_qlite, + dep_webrtc_audio_processing, + dep_xmpp_vala, +] +sources = files( + 'src/codec_util.vala', + 'src/device.vala', + 'src/gst_fixes.c', + 'src/module.vala', + 'src/plugin.vala', + 'src/register_plugin.vala', + 'src/stream.vala', + 'src/video_widget.vala', + 'src/voice_processor.vala', + 'src/voice_processor_native.cpp', +) +c_args = [ + '-DGST_1_16', + '-DGST_1_18', + '-DGST_1_20', + '-DWITH_VOICE_PROCESSOR', + '-DG_LOG_DOMAIN="rtp"', +] +vala_args = [ + '--vapidir', meson.current_source_dir() / 'vapi', +] +lib_rtp = shared_library('rtp', sources, name_prefix: '', c_args: c_args, vala_args: vala_args, include_directories: include_directories('src'), dependencies: dependencies, install: true, install_dir: get_option('libdir') / 'dino/plugins') +dep_rtp = declare_dependency(link_with: lib_rtp, include_directories: include_directories('.')) diff --git a/plugins/rtp/vapi/webrtc-audio-processing.vapi b/plugins/rtp/vapi/webrtc-audio-processing.vapi new file mode 100644 index 00000000..e69de29b