Repository navigation
Conversation
lgirdwood
left a comment
There was a problem hiding this comment.
Commit messages are not line wrapped correctly, and webrtc modules will be deployed as llext raher than built in so we need to make sure we can build as llext.
| WebRtcAgc_ProcessDigital(&ch->inst, &in_ptr, 1, &out_ptr, | ||
| cd->rate, 0); | ||
| } else { | ||
| const int16_t *in_ptrs[3]; |
There was a problem hiding this comment.
this is a large code block after the else, pls inline comment each section to make it clean what is done and why.
There was a problem hiding this comment.
Done — added step-by-step inline comments (2a through 2e) inside the 32/48 kHz multi-band else block explaining the sub-band pointer setup, polyphase deinterleaving, peak-preserving band-0 swap for the overload limiter, WebRtcAgc_ProcessDigital() call, and phase restoration / re-interleaving.
| CONFIG_COMP_WEBRTC_VAD=y | ||
| CONFIG_COMP_WEBRTC_NS=y | ||
| CONFIG_COMP_WEBRTC_AEC=y | ||
| CONFIG_COMP_WEBRTC_NS2=y | ||
| CONFIG_COMP_WEBRTC_AGC=y | ||
| CONFIG_COMP_WEBRTC_HPF=y |
There was a problem hiding this comment.
these should be llext modules as this is how they will be deployed
There was a problem hiding this comment.
Done — changed all six CONFIG_COMP_WEBRTC_* entries to =m (LLEXT modules) in app/stub_build_all_ipc4.conf, app/webrtc_overlay.conf, and app/webrtc_stubs_overlay.conf, and verified PTL LLEXT builds in both real-backend and stub modes.
WebRtcAgc_ProcessDigital natively supports 8, 16, 32, and 48 kHz sample rates using 160-sample sub-bands (1 band at 8/16 kHz, 2 bands at 32 kHz, 3 bands at 48 kHz). Extend webrtc_agc to accept 32 kHz and 48 kHz streams in addition to 8 kHz and 16 kHz by polyphase-splitting 10 ms frames into num_bands 160-sample phases with peak-preserving band-0 ordering so the overload limiter tracks full-rate peaks across all sub-frames. Update the webrtc-agc topology2 widget definition to list 8, 16, 32, and 48 kHz formats. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Add CONFIG_ZEPHYR_LL_STACK_SIZE (default 8192 bytes, or 16384 bytes when CONFIG_WEBRTC_AEC_BACKEND_AEC3 is enabled) so modules with deep call stacks such as the C++17 WebRTC AEC3 engine do not overflow the low-latency scheduler thread stack. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Select the pass-through stub backends by default for webrtc_aec, webrtc_agc, and webrtc_hpf when CONFIG_COMP_STUBS=y (matching webrtc_ns, webrtc_ns2, and webrtc_vad), and include all six WebRTC modules as LLEXT modules (=m) in app/stub_build_all_ipc4.conf. Add app/webrtc_overlay.conf (LLEXT real backends + heap sizing) and app/webrtc_stubs_overlay.conf (LLEXT stub backends) for firmware builds. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
1da5608 to
7aec035
Compare
|
Updated the branch to address the review comments:
|
Summary
Follow-up improvements for the WebRTC audio processing module suite merged in #11044:
audio: webrtc_agc: add 32 kHz and 48 kHz sample rate supportWebRtcAgc_ProcessDigital()natively accepts 8, 16, 32, and 48 kHz sample rates using 160-sample sub-bands (num_bands = 1at 8/16 kHz,2at 32 kHz,3at 48 kHz).webrtc_agcandwebrtc-agc.confto support 32 kHz and 48 kHz streams alongside 8 kHz and 16 kHz by polyphase-splitting 10 ms frames intonum_bands160-sample phases with peak-preserving band-0 ordering so the overload limiter tracks full-rate peaks across all sub-frames.schedule: zephyr_domain: make LL scheduler stack size configurableCONFIG_ZEPHYR_LL_STACK_SIZE(default8192, automatically16384whenCONFIG_WEBRTC_AEC_BACKEND_AEC3is enabled) so deep call stacks in the C++17 WebRTC AEC3 backend do not overflow the LL scheduler thread stack.app: add WebRTC Kconfig overlays and COMP_STUBS defaultswebrtc_aec,webrtc_agc, andwebrtc_hpfto their pass-through stub backends whenCONFIG_COMP_STUBS=y(matchingwebrtc_ns,webrtc_ns2, andwebrtc_vad), and enable all six WebRTC modules inapp/stub_build_all_ipc4.conf.app/webrtc_overlay.conf(real backends + heap sizing) andapp/webrtc_stubs_overlay.conf(stub backends).