aboutsummaryrefslogtreecommitdiff
path: root/plugins/rtp/meson.build
blob: a2bae51ba84b007ba211cb5589d017a99e0d12a7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
dependencies = [
    dep_crypto_vala,
    dep_dino,
    dep_gee,
    dep_glib,
    dep_gmodule,
    dep_gstreamer,
    dep_gstreamer_app,
    dep_gstreamer_audio,
    dep_gstreamer_rtp,
    dep_gstreamer_video,
    dep_gtk4,
    dep_m,
    dep_qlite,
    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',
)
c_args = [
    '-DG_LOG_DOMAIN="rtp"',
]
vala_args = []
if dep_webrtc_audio_processing.found()
    voice_dependencies = [
        dep_gstreamer_audio,
        dep_webrtc_audio_processing,
    ]
    voice_sources = files(
        'src/voice_processor_native.cpp',
    )
    lib_rtp_voice_processor = static_library('rtp-voice-processor', voice_sources, c_args: c_args, dependencies: voice_dependencies, install: false)
    dep_rtp_voice_processor = declare_dependency(link_with: lib_rtp_voice_processor)
    vala_args += ['-D', 'WITH_VOICE_PROCESSOR']
    dependencies += [dep_rtp_voice_processor]
    sources += files(
        'src/voice_processor.vala',
    )
endif
if dep_gstreamer_rtp.version() == 'unknown' or dep_gstreamer_rtp.version().version_compare('>=1.16')
    vala_args += ['-D', 'GST_1_16']
endif
if dep_gstreamer_rtp.version() == 'unknown' or dep_gstreamer_rtp.version().version_compare('>=1.18')
    vala_args += ['-D', 'GST_1_18']
endif
if dep_gstreamer_rtp.version() == 'unknown' or dep_gstreamer_rtp.version().version_compare('>=1.20')
    vala_args += ['-D', 'GST_1_20']
endif
if meson.get_compiler('vala').version().version_compare('<0.56.1')
    vala_args += ['--vapidir', meson.current_source_dir() / 'vapi']
endif
if get_option('plugin-rtp-h264').allowed()
    vala_args += ['-D', 'ENABLE_H264']
endif
if get_option('plugin-rtp-msdk').allowed()
    vala_args += ['-D', 'ENABLE_MSDK']
endif
if get_option('plugin-rtp-vaapi').allowed()
    vala_args += ['-D', 'ENABLE_VAAPI']
endif
if get_option('plugin-rtp-vp9').allowed()
    vala_args += ['-D', 'ENABLE_VP9']
endif

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('.'))
summary('Voice/video calls (rtp)', dep_rtp, section: 'Plugins')

if dep_rtp.found()
    summary('H264 codec', get_option('plugin-rtp-h264').allowed(), section: 'RTP configuration')
    summary('VP9 codec', get_option('plugin-rtp-vp9').allowed(), section: 'RTP configuration')
    summary('Intel MediaSDK', get_option('plugin-rtp-msdk').allowed(), section: 'RTP configuration')
    summary('Video Acceleration API', get_option('plugin-rtp-vaapi').allowed(), section: 'RTP configuration')
    summary('Voice preprocessing', dep_webrtc_audio_processing.found(), section: 'RTP configuration')
endif