Загрузка данных


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)