Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions app/overlays/ptl/dts_overlay.conf
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
CONFIG_COMP_IIR=m
CONFIG_COMP_MODULE_ADAPTER=y
CONFIG_DTS_CODEC=y
CONFIG_COMP_GOOGLE_CTC_AUDIO_PROCESSING=y
CONFIG_MINIMAL_LIBC=n
CONFIG_PICOLIBC=y
CONFIG_LLEXT_HEAP_SIZE=64
CONFIG_KCPS_DYNAMIC_CLOCK_CONTROL=n
CONFIG_SOF_STACK_SIZE=8192
10 changes: 5 additions & 5 deletions src/audio/google/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
is_zephyr(zephyr)
if(zephyr) ### Zephyr ###

set(THIRD_PARTY ${SOF_ROOT_SOURCE_DIRECTORY}/third_party)
set(THIRD_PARTY ${sof_top_dir}/third_party)
if(CONFIG_IPC_MAJOR_3)
set(ipc_suffix ipc3)
elseif(CONFIG_IPC_MAJOR_4)
Expand All @@ -29,8 +29,8 @@ if(zephyr) ### Zephyr ###
zephyr_include_directories(${THIRD_PARTY}/include)
target_link_directories(SOF INTERFACE ${THIRD_PARTY}/lib)
target_link_libraries(SOF INTERFACE google_rtc_audio_processing)
target_link_libraries(SOF INTERFACE c++)
target_link_libraries(SOF INTERFACE c++abi)
target_link_libraries(SOF INTERFACE stdc++)
target_link_libraries(SOF INTERFACE supc++)
target_link_libraries(SOF INTERFACE m)
target_link_libraries(SOF INTERFACE c)
target_link_libraries(SOF INTERFACE gcc)
Expand All @@ -54,8 +54,8 @@ if(zephyr) ### Zephyr ###
zephyr_include_directories(${THIRD_PARTY}/include)
target_link_directories(SOF INTERFACE ${THIRD_PARTY}/lib)
target_link_libraries(SOF INTERFACE google_ctc_audio_processing)
target_link_libraries(SOF INTERFACE c++)
target_link_libraries(SOF INTERFACE c++abi)
target_link_libraries(SOF INTERFACE stdc++)
target_link_libraries(SOF INTERFACE supc++)
target_link_libraries(SOF INTERFACE m)
target_link_libraries(SOF INTERFACE c)
target_link_libraries(SOF INTERFACE gcc)
Expand Down
10 changes: 8 additions & 2 deletions src/audio/module_adapter/module_adapter_ipc4.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,14 @@ int module_adapter_init_data(struct comp_dev *dev,

if (cfg == NULL)
return -EINVAL;
if (cfgsz < sizeof(cfg->base_cfg))
return -EINVAL;
if (cfgsz < sizeof(cfg->base_cfg)) {
memset(&dst->base_cfg, 0, sizeof(dst->base_cfg));
if (cfgsz > 0 && cfg)
memcpy(&dst->base_cfg, cfg, cfgsz);
dst->size = cfgsz;
dst->avail = true;
return 0;
}

dst->base_cfg = cfg->base_cfg;
dst->size = cfgsz;
Expand Down
4 changes: 4 additions & 0 deletions tools/rimage/config/ptl.toml.h
Original file line number Diff line number Diff line change
Expand Up @@ -174,5 +174,9 @@ index = __COUNTER__
#include <audio/stft_process/stft_process.toml>
#endif

#if defined(CONFIG_COMP_GOOGLE_CTC_AUDIO_PROCESSING) || defined(LLEXT_FORCE_ALL_MODULAR)
#include <audio/google/google_ctc_audio_processing.toml>
#endif

[module]
count = __COUNTER__
3 changes: 3 additions & 0 deletions tools/topology/topology2/cavs-sdw.conf
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
<mixout-gain-eqiir-eqfir-drc-alh-dai-copier-playback.conf>
<mixout-gain-eqiir-eqfir-drc-micsel-eqiir-eqfir-alh-dai-copier-playback.conf>
<mixout-gain-eqiir-dts-alh-dai-copier-playback.conf>
<mixout-gain-eqiir-dts-ctc-alh-dai-copier-playback.conf>
<mixout-gain-eqiir-eqfir-drc-ctc-alh-dai-copier-playback.conf>
<dai-copier-gain-eqiir-module-copier-capture.conf>
<gain-capture.conf>
<gain-copier-capture.conf>
Expand Down Expand Up @@ -106,6 +108,7 @@ Define {
SDW_LINK_VALID_BITS 24
# Used when NUM_SDW_AMP_LINKS is 1 or more
SDW_SPK_ENHANCED_PLAYBACK true
SDW_SPK_CTC false
# Used when SDW_DMIC is 1
SDW_DMIC_ENHANCED_CAPTURE true
EFX_SPK_IIR_PARAMS "highpass_100hz_0db_48khz"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
#
# BE playback pipeline: mixout-gain-eqiir-dts-ctc-alh-dai-copier.
#
# All attributes defined herein are namespaced
# by alsatplg to "Object.Pipeline.mixout-gain-eqiir-dts-ctc-alh-dai-copier-playback.N.attribute_name"
#
# Usage: mixout-gain-eqiir-dts-ctc-alh-dai-copier-playback pipeline object can be instantiated as:
#
# Object.Pipeline.mixout-gain-eqiir-dts-ctc-alh-dai-copier-playback."N" {
# time_domain "timer"
# }
#
# Where N is the unique pipeline ID within the same alsaconf node.
#

<include/components/alh-dai-copier.conf>
<include/components/gain.conf>
<include/components/mixout.conf>
<include/components/pipeline.conf>
<include/controls/bytes.conf>
<include/components/eqiir.conf>
<include/components/dts.conf>
<include/components/ctc.conf>

Class.Pipeline."mixout-gain-eqiir-dts-ctc-alh-dai-copier-playback" {

<include/pipelines/pipeline-common.conf>

attributes {
!constructor [
"index"
]

!immutable [
"direction"
]

#
# mixout-gain-eqiir-dts-ctc-alh-dai-copier-playback objects instantiated within the same alsaconf
# node must have unique instance attribute
#
unique "instance"
}

Object.Widget {
mixout."1" {}
alh-copier."1" {
type dai_in
num_input_audio_formats 1
num_output_audio_formats 1
num_input_pins 1

# copier only supports one format based on mixin/mixout requirements:
# 32-bit 48KHz 2ch
Object.Base.input_audio_format [
{
in_bit_depth 32
in_valid_bit_depth 32
in_sample_type $SAMPLE_TYPE_MSB_INTEGER
in_fmt_cfg "$[($in_channels | ($in_valid_bit_depth * 256))]"
}
]
Object.Base.output_audio_format [
{
out_bit_depth 32
out_valid_bit_depth 32
out_sample_type $SAMPLE_TYPE_MSB_INTEGER
out_fmt_cfg "$[($out_channels | ($out_valid_bit_depth * 256))]"
}
]
}
gain."1" {
num_input_audio_formats 1
num_output_audio_formats 1

# 32-bit 48KHz 2ch
Object.Base.input_audio_format [
{
in_bit_depth 32
in_valid_bit_depth 32
}
]
Object.Base.output_audio_format [
{
out_bit_depth 32
out_valid_bit_depth 32
}
]
}

eqiir."1" {
num_input_audio_formats 1
num_output_audio_formats 1

Object.Base.input_audio_format [
{
in_bit_depth 32
in_valid_bit_depth 32
}
]
Object.Base.output_audio_format [
{
out_bit_depth 32
out_valid_bit_depth 32
}
]

Object.Control.bytes."1" {
<include/components/eqiir/flat.conf>
}
}

dts."1" {
num_input_audio_formats 1
num_output_audio_formats 1

Object.Base.input_audio_format [
{
in_bit_depth 32
in_valid_bit_depth 32
}
]
Object.Base.output_audio_format [
{
out_bit_depth 32
out_valid_bit_depth 32
}
]
}

ctc."1" {
num_input_audio_formats 1
num_output_audio_formats 1

Object.Base.input_audio_format [
{
in_bit_depth 32
in_valid_bit_depth 32
}
]
Object.Base.output_audio_format [
{
out_bit_depth 32
out_valid_bit_depth 32
}
]

Object.Control {
mixer."1" {
name 'CTC Switch'
}
bytes."1" {
name 'CTC.0'
max 4160
}
}
}

pipeline."1" {
priority 0
lp_mode 0
}
}

Object.Base {
!route [
{
source mixout.$index.1
sink gain.$index.1
}
{
source gain.$index.1
sink eqiir.$index.1
}
{
source eqiir.$index.1
sink dts.$index.1
}
{
source dts.$index.1
sink ctc.$index.1
}
]
}

direction "playback"
dynamic_pipeline 1
time_domain "timer"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#
# BE playback pipeline: mixout-gain-eqiir-eqfir-drc-ctc-alh-dai-copier.
#

<include/components/ctc.conf>
<include/pipelines/cavs/mixout-gain-eqiir-eqfir-drc-alh-dai-copier-playback.conf>

Class.Pipeline."mixout-gain-eqiir-eqfir-drc-ctc-alh-dai-copier-playback" {

SubTreeCopy.baseclass {
source "Class.Pipeline.mixout-gain-eqiir-eqfir-drc-alh-dai-copier-playback"

tree {
Object.Widget {
ctc."1" {
num_input_audio_formats 1
num_output_audio_formats 1

Object.Base.input_audio_format [
{
in_bit_depth 32
in_valid_bit_depth 32
}
]
Object.Base.output_audio_format [
{
out_bit_depth 32
out_valid_bit_depth 32
}
]

Object.Control {
mixer."1" {
name 'CTC Switch'
}
bytes."1" {
name 'CTC.0'
max 4160
}
}
}
}

Object.Base {
!route [
{
source gain.$index.1
sink eqiir.$index.1
}
{
source eqiir.$index.1
sink eqfir.$index.1
}
{
source eqfir.$index.1
sink drc.$index.1
}
{
source drc.$index.1
sink ctc.$index.1
}
]
}
}
}
}
Loading
Loading