mirror of https://github.com/thesofproject/sof.git
google_rtc_aec: enable building as an llext module
Add support for LLEXT building to google_rtc_audio_processing. Only building in a stub configuration is supported, linking with a prebuilt library should be implemented separately. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This commit is contained in:
parent
1b38612460
commit
99a35a1798
|
@ -18,3 +18,4 @@ CONFIG_COMP_DCBLOCK=m
|
|||
CONFIG_COMP_CROSSOVER=m
|
||||
CONFIG_COMP_MULTIBAND_DRC=m
|
||||
CONFIG_COMP_GOOGLE_CTC_AUDIO_PROCESSING=m
|
||||
CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING=m
|
||||
|
|
|
@ -18,3 +18,4 @@ CONFIG_COMP_DCBLOCK=m
|
|||
CONFIG_COMP_CROSSOVER=m
|
||||
CONFIG_COMP_MULTIBAND_DRC=m
|
||||
CONFIG_COMP_GOOGLE_CTC_AUDIO_PROCESSING=m
|
||||
CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING=m
|
||||
|
|
|
@ -13,7 +13,7 @@ config COMP_GOOGLE_HOTWORD_DETECT
|
|||
detector.
|
||||
|
||||
config COMP_GOOGLE_RTC_AUDIO_PROCESSING
|
||||
bool "Google Real Time Communication Audio processing"
|
||||
tristate "Google Real Time Communication Audio processing"
|
||||
select COMP_BLOB
|
||||
default n
|
||||
help
|
||||
|
@ -26,7 +26,6 @@ config COMP_GOOGLE_RTC_AUDIO_PROCESSING
|
|||
if COMP_GOOGLE_RTC_AUDIO_PROCESSING
|
||||
|
||||
config COMP_GOOGLE_RTC_AUDIO_PROCESSING_SAMPLE_RATE_HZ
|
||||
depends on COMP_GOOGLE_RTC_AUDIO_PROCESSING
|
||||
int "Sample rate for Google Real Time Communication Audio processing"
|
||||
default 48000
|
||||
help
|
||||
|
@ -55,7 +54,6 @@ config COMP_GOOGLE_RTC_AUDIO_REFERENCE_CHANNEL_MAX
|
|||
are ignored
|
||||
|
||||
config COMP_GOOGLE_RTC_AUDIO_PROCESSING_MEMORY_BUFFER_SIZE_KB
|
||||
depends on COMP_GOOGLE_RTC_AUDIO_PROCESSING
|
||||
int "Memory buffer size for Google Real Time Communication Audio processing"
|
||||
default 200
|
||||
help
|
||||
|
@ -63,7 +61,6 @@ config COMP_GOOGLE_RTC_AUDIO_PROCESSING_MEMORY_BUFFER_SIZE_KB
|
|||
communication audio processing.
|
||||
|
||||
config COMP_GOOGLE_RTC_AUDIO_PROCESSING_ECHO_PATH_DELAY_MS
|
||||
depends on COMP_GOOGLE_RTC_AUDIO_PROCESSING
|
||||
int "Echo path delay for Google Real Time Communication Audio processing"
|
||||
default 44
|
||||
help
|
||||
|
@ -71,7 +68,6 @@ config COMP_GOOGLE_RTC_AUDIO_PROCESSING_ECHO_PATH_DELAY_MS
|
|||
audio processing.
|
||||
|
||||
config COMP_GOOGLE_RTC_AUDIO_PROCESSING_MIC_HEADROOM_LINEAR
|
||||
depends on COMP_GOOGLE_RTC_AUDIO_PROCESSING
|
||||
int "Microphone headroom for Google Real Time Communication Audio processing"
|
||||
default 4
|
||||
help
|
||||
|
@ -81,7 +77,6 @@ config COMP_GOOGLE_RTC_AUDIO_PROCESSING_MIC_HEADROOM_LINEAR
|
|||
config GOOGLE_RTC_AUDIO_PROCESSING_MOCK
|
||||
bool "Google Real Time Communication Audio processing mock"
|
||||
default y if COMP_STUBS
|
||||
depends on COMP_GOOGLE_RTC_AUDIO_PROCESSING
|
||||
help
|
||||
Mock Google real-time communication audio processing.
|
||||
It allows for compilation check and basic audio flow checking.
|
||||
|
|
|
@ -856,3 +856,23 @@ DECLARE_MODULE_ADAPTER(google_rtc_audio_processing_interface,
|
|||
google_rtc_audio_processing_uuid, google_rtc_audio_processing_tr);
|
||||
SOF_MODULE_INIT(google_rtc_audio_processing,
|
||||
sys_comp_module_google_rtc_audio_processing_interface_init);
|
||||
|
||||
#if CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING_MODULE
|
||||
/* modular: llext dynamic link */
|
||||
|
||||
#include <module/module/api_ver.h>
|
||||
#include <module/module/llext.h>
|
||||
#include <rimage/sof/user/manifest.h>
|
||||
|
||||
#define UUID_GOOGLE_RTC_AEC 0xA6, 0xA0, 0x80, 0xB7, 0x9F, 0x26, 0x6F, 0x46, 0x77, 0xB4, \
|
||||
0x23, 0xDF, 0xA0, 0x5A, 0xF7, 0x58
|
||||
|
||||
SOF_LLEXT_MOD_ENTRY(google_rtc_audio_processing, &google_rtc_audio_processing_interface);
|
||||
|
||||
static const struct sof_man_module_manifest mod_manifest __section(".module") __used =
|
||||
SOF_LLEXT_MODULE_MANIFEST("RTC_AEC", google_rtc_audio_processing_llext_entry,
|
||||
7, UUID_GOOGLE_RTC_AEC, 1);
|
||||
|
||||
SOF_LLEXT_BUILDINFO;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
#ifndef LOAD_TYPE
|
||||
#define LOAD_TYPE "1"
|
||||
#endif
|
||||
|
||||
[[module.entry]]
|
||||
name = "RTC_AEC"
|
||||
uuid = "B780A0A6-269F-466F-B477-23DFA05AF758"
|
||||
|
@ -5,7 +9,7 @@
|
|||
affinity_mask = "0x7"
|
||||
instance_count = "1"
|
||||
domain_types = "1"
|
||||
load_type = "1"
|
||||
load_type = LOAD_TYPE
|
||||
module_type = "10"
|
||||
init_config = "1"
|
||||
auto_start = "0"
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
if(CONFIG_GOOGLE_RTC_AUDIO_PROCESSING_MOCK)
|
||||
sof_llext_build("google_rtc_audio_processing"
|
||||
SOURCES ../google_rtc_audio_processing.c
|
||||
../google_rtc_audio_processing_mock.c
|
||||
)
|
||||
target_include_directories(google_rtc_audio_processing_llext_lib PRIVATE
|
||||
"${sof_top_dir}/third_party/include"
|
||||
)
|
||||
else()
|
||||
message(FATAL_ERROR "Add library linking support in src/audio/google/llext/CMakeLists.txt")
|
||||
endif()
|
|
@ -0,0 +1,10 @@
|
|||
/* SPDX-License-Identifier: BSD-3-Clause
|
||||
*
|
||||
* Copyright(c) 2021 Intel Corporation. All rights reserved.
|
||||
*/
|
||||
#include <tools/rimage/config/platform.toml>
|
||||
#define LOAD_TYPE "2"
|
||||
#include "../google_rtc_audio_processing.toml"
|
||||
|
||||
[module]
|
||||
count = __COUNTER__
|
|
@ -887,15 +887,20 @@ elseif(CONFIG_COMP_MULTIBAND_DRC)
|
|||
)
|
||||
endif()
|
||||
|
||||
zephyr_library_sources_ifdef(CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING
|
||||
if(CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING STREQUAL "m")
|
||||
add_subdirectory(${SOF_AUDIO_PATH}/google/llext_rtc
|
||||
${PROJECT_BINARY_DIR}/google_rtc_audio_processing_llext)
|
||||
add_dependencies(app google_rtc_audio_processing)
|
||||
elseif(CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING)
|
||||
zephyr_library_sources(
|
||||
${SOF_AUDIO_PATH}/google/google_rtc_audio_processing.c
|
||||
)
|
||||
)
|
||||
|
||||
zephyr_library_sources_ifdef(CONFIG_GOOGLE_RTC_AUDIO_PROCESSING_MOCK
|
||||
zephyr_library_sources_ifdef(CONFIG_GOOGLE_RTC_AUDIO_PROCESSING_MOCK
|
||||
${SOF_AUDIO_PATH}/google/google_rtc_audio_processing_mock.c
|
||||
)
|
||||
)
|
||||
|
||||
if(CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING AND NOT CONFIG_GOOGLE_RTC_AUDIO_PROCESSING_MOCK)
|
||||
if(NOT CONFIG_GOOGLE_RTC_AUDIO_PROCESSING_MOCK)
|
||||
zephyr_include_directories(../third_party/include)
|
||||
target_link_directories(SOF INTERFACE ../third_party/lib)
|
||||
target_link_libraries(SOF INTERFACE google_rtc_audio_processing)
|
||||
|
@ -904,6 +909,7 @@ if(CONFIG_COMP_GOOGLE_RTC_AUDIO_PROCESSING AND NOT CONFIG_GOOGLE_RTC_AUDIO_PROCE
|
|||
target_link_libraries(SOF INTERFACE m)
|
||||
target_link_libraries(SOF INTERFACE c)
|
||||
target_link_libraries(SOF INTERFACE gcc)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CONFIG_COMP_GOOGLE_CTC_AUDIO_PROCESSING STREQUAL "m")
|
||||
|
|
Loading…
Reference in New Issue