zephyr_library_named(pjsip_webrtc)
set(WEBRTC_BASE "../../webrtc/src/webrtc")
zephyr_library_sources(
# modules/audio_processing/aec
${WEBRTC_BASE}/modules/audio_processing/aec/aec_core.c
${WEBRTC_BASE}/modules/audio_processing/aec/aec_rdft.c
${WEBRTC_BASE}/modules/audio_processing/aec/aec_resampler.c
${WEBRTC_BASE}/modules/audio_processing/aec/echo_cancellation.c
# modules/audio_processing/aecm (ДОБАВЛЕН aecm_core_c.c для fixed-point)
${WEBRTC_BASE}/modules/audio_processing/aecm/aecm_core.c
${WEBRTC_BASE}/modules/audio_processing/aecm/aecm_core_c.c
${WEBRTC_BASE}/modules/audio_processing/aecm/echo_control_mobile.c
# modules/audio_processing/ns (ДОБАВЛЕН nsx_core_c.c для fixed-point)
${WEBRTC_BASE}/modules/audio_processing/ns/noise_suppression.c
${WEBRTC_BASE}/modules/audio_processing/ns/noise_suppression_x.c
${WEBRTC_BASE}/modules/audio_processing/ns/ns_core.c
${WEBRTC_BASE}/modules/audio_processing/ns/nsx_core.c
${WEBRTC_BASE}/modules/audio_processing/ns/nsx_core_c.c
# modules/audio_processing/utility
${WEBRTC_BASE}/modules/audio_processing/utility/delay_estimator_wrapper.c
${WEBRTC_BASE}/modules/audio_processing/utility/delay_estimator.c
# common_audio
${WEBRTC_BASE}/common_audio/fft4g.c
${WEBRTC_BASE}/common_audio/ring_buffer.c
# common_audio/signal_processing
${WEBRTC_BASE}/common_audio/signal_processing/complex_bit_reverse.c
${WEBRTC_BASE}/common_audio/signal_processing/complex_fft.c
${WEBRTC_BASE}/common_audio/signal_processing/copy_set_operations.c
${WEBRTC_BASE}/common_audio/signal_processing/cross_correlation.c
${WEBRTC_BASE}/common_audio/signal_processing/division_operations.c
${WEBRTC_BASE}/common_audio/signal_processing/downsample_fast.c
${WEBRTC_BASE}/common_audio/signal_processing/energy.c
${WEBRTC_BASE}/common_audio/signal_processing/get_scaling_square.c
${WEBRTC_BASE}/common_audio/signal_processing/min_max_operations.c
${WEBRTC_BASE}/common_audio/signal_processing/randomization_functions.c
${WEBRTC_BASE}/common_audio/signal_processing/real_fft.c
${WEBRTC_BASE}/common_audio/signal_processing/spl_init.c
${WEBRTC_BASE}/common_audio/signal_processing/spl_sqrt.c
${WEBRTC_BASE}/common_audio/signal_processing/spl_sqrt_floor.c
${WEBRTC_BASE}/common_audio/signal_processing/vector_scaling_operations.c
)
zephyr_library_include_directories(
.
${WEBRTC_BASE}/..
../../../pjlib/include
)
# Корректировка макросов под ОСРВ
zephyr_library_compile_definitions(
# Убираем WEBRTC_POSIX, если spl_init.c пытается тянуть pthread_once, которого нет.
# Вместо этого используем специализированный флаг для RTOS/Embedded:
WEBRTC_THREAD_RR=1
WEBRTC_ARCH_ARM=1
WEBRTC_ARCH_ARM_V7=1
WEBRTC_HAS_NEON=0
WEBRTC_NS_FLOAT=0
)
zephyr_library_compile_options(-O3 -flto)