Guillaume Desmottes 34efc689c2 add webrtc-audio-coding public library
This new lib contains the bare minimum to implement an iSAC encoder and
decoder.

The webrtc files have been copied from the revision as the existing
imported files (c8b569e0a7ad0b369e15f0197b3a558699ec8efa).
2020-03-27 14:52:22 +01:00

126 lines
3.3 KiB
Meson

webrtc_audio_processing_sources = [
'aec/aec_core.c',
'aec/aec_rdft.c',
'aec/aec_resampler.c',
'aec/echo_cancellation.c',
'aecm/echo_control_mobile.c',
'aecm/aecm_core.c',
'aecm/aecm_core_c.c',
'agc/legacy/analog_agc.c',
'agc/legacy/digital_agc.c',
'agc/agc.cc',
'agc/agc_manager_direct.cc',
'agc/histogram.cc',
'agc/utility.cc',
'beamformer/array_util.cc',
'beamformer/covariance_matrix_generator.cc',
'beamformer/nonlinear_beamformer.cc',
'intelligibility/intelligibility_enhancer.cc',
'intelligibility/intelligibility_utils.cc',
'logging/aec_logging_file_handling.cc',
'transient/click_annotate.cc',
'transient/file_utils.cc',
'transient/moving_moments.cc',
'transient/transient_detector.cc',
'transient/transient_suppressor.cc',
'transient/wpd_node.cc',
'transient/wpd_tree.cc',
'utility/delay_estimator.c',
'utility/delay_estimator_wrapper.c',
'vad/gmm.cc',
'vad/pitch_based_vad.cc',
'vad/pitch_internal.cc',
'vad/pole_zero_filter.cc',
'vad/standalone_vad.cc',
'vad/vad_audio_proc.cc',
'vad/vad_circular_buffer.cc',
'vad/voice_activity_detector.cc',
'audio_buffer.cc',
'audio_processing_impl.cc',
'audio_processing_impl.h',
'echo_cancellation_impl.cc',
'echo_control_mobile_impl.cc',
'gain_control_impl.cc',
'high_pass_filter_impl.cc',
'level_estimator_impl.cc',
'noise_suppression_impl.cc',
'rms_level.cc',
'splitting_filter.cc',
'processing_component.cc',
'three_band_filter_bank.cc',
'typing_detection.cc',
'voice_detection_impl.cc',
]
webrtc_audio_processing_beamformer_headers = [
'beamformer/array_util.h',
]
webrtc_audio_processing_include_headers = [
'include/audio_processing.h',
]
if get_option('ns_mode') == 'float'
webrtc_audio_processing_sources += [
'ns/noise_suppression.c',
'ns/ns_core.c',
]
else
webrtc_audio_processing_sources += [
'ns/noise_suppression_x.c',
'ns/nsx_core.c',
'ns/nsx_core_c.c',
]
if have_neon
webrtc_audio_processing_sources += [
'ns/nsx_core_neon.c',
]
endif
endif
extra_libs = []
if have_x86
extra_libs += [
static_library('webrtc_audio_processing_privatearch',
['aec/aec_core_sse2.c', 'aec/aec_rdft_sse2.c'],
dependencies: common_deps,
include_directories: webrtc_inc,
c_args: common_cflags + ['-msse2'],
cpp_args: common_cxxflags + ['-msse2']
)
]
endif
if have_neon
webrtc_audio_processing_sources += [
'aec/aec_core_neon.c',
'aec/aec_rdft_neon.c',
'aecm/aecm_core_neon.c',
]
endif
install_headers(webrtc_audio_processing_beamformer_headers,
subdir: 'webrtc_audio_processing/webrtc/modules/audio_processing/beamformer'
)
install_headers(webrtc_audio_processing_include_headers,
subdir: 'webrtc_audio_processing/webrtc/modules/audio_processing/include'
)
libwebrtc_audio_processing = library('webrtc_audio_processing',
webrtc_audio_processing_sources,
dependencies: [base_dep, webrtc_audio_coding_dep, system_wrappers_dep, common_audio_dep, webrtc_dep] + common_deps,
link_with: extra_libs,
include_directories: webrtc_inc,
c_args: common_cflags,
cpp_args: common_cxxflags,
soversion: soversion,
install: true
)
webrtc_audio_processing_dep = declare_dependency(
link_with: libwebrtc_audio_processing,
include_directories: webrtc_inc,
version: meson.project_version()
)