Skip to content

Commit e886580

Browse files
committed
topology2: add google rtc aec module support
Goolge rtc aec only supports 16bits input & output and 2 channels Signed-off-by: Rander Wang <rander.wang@intel.com>
1 parent 3c39c2c commit e886580

1 file changed

Lines changed: 139 additions & 0 deletions

File tree

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
#
2+
# Common widget google-rtc-aec
3+
#
4+
# A generic google-rtc-aec widget. All attributes defined herein are namespaced
5+
# by alsatplg to "Object.Widget.google-rtc-aec.N.attribute_name"
6+
#
7+
# Usage: this component can be used by instantiating it in the parent object. i.e.
8+
#
9+
# Object.Widget.google-rtc-aec."N" {
10+
# index 1
11+
# type "effect"
12+
# }
13+
#
14+
# Where N is the unique instance number for the google-rtc-aec object within the same alsaconf node.
15+
Define {
16+
AEC_UUID "a6:a0:80:b7:9f:26:6f:46:b4:77:23:df:a0:5a:f7:58"
17+
}
18+
19+
Class.Widget."google-rtc-aec" {
20+
#
21+
# Pipeline ID for the google-rtc-aec widget object
22+
#
23+
DefineAttribute."index" {}
24+
25+
#
26+
# google-rtc-aec object instance
27+
#
28+
DefineAttribute."instance" {}
29+
30+
#include common component definition
31+
<include/components/widget-common.conf>
32+
33+
DefineAttribute."num_audio_formats" {
34+
# Token set reference name and type
35+
token_ref "sof_tkn_comp.word"
36+
}
37+
38+
#
39+
# google-rtc-aec widget UUID
40+
#
41+
DefineAttribute."uuid" {
42+
type "string"
43+
# Token set reference name and type
44+
token_ref "sof_tkn_comp.uuid"
45+
}
46+
47+
DefineAttribute."cpc" {
48+
# Token set reference name and type
49+
token_ref "sof_tkn_comp.word"
50+
}
51+
52+
DefineAttribute."is_pages" {
53+
# Token set reference name and type
54+
token_ref "sof_tkn_comp.word"
55+
}
56+
57+
# Attribute categories
58+
attributes {
59+
#
60+
# The google-rtc-aec widget name would be constructed using the index and instance attributes.
61+
# For ex: "google-rtc-aec.1.1" or "google-rtc-aec.10.2" etc.
62+
#
63+
!constructor [
64+
"index"
65+
"instance"
66+
]
67+
68+
#
69+
# mandatory attributes that must be provided when the class is instantiated
70+
#
71+
!mandatory [
72+
"no_pm"
73+
"uuid"
74+
"process_type"
75+
]
76+
77+
#
78+
# immutable attributes cannot be modified in the object instance
79+
#
80+
!immutable [
81+
"uuid"
82+
"type"
83+
]
84+
85+
#
86+
# deprecated attributes should not be added in the object instance
87+
#
88+
!deprecated [
89+
"preload_count"
90+
]
91+
92+
#
93+
# google-rtc-aec widget objects instantiated within the same alsaconf node must have unique
94+
# instance attribute
95+
#
96+
unique "instance"
97+
}
98+
99+
num_audio_formats 2
100+
num_input_audio_formats 2
101+
num_output_audio_formats 1
102+
# pin0 is the data captured by DMIC and pin1 is the ref data from playback stream
103+
Object.Base.input_audio_format {
104+
1 {
105+
pin_index 0
106+
in_bit_depth 16
107+
in_valid_bit_depth 16
108+
out_bit_depth 16
109+
out_valid_bit_depth 16
110+
}
111+
2 {
112+
pin_index 1
113+
in_bit_depth 16
114+
in_valid_bit_depth 16
115+
out_bit_depth 16
116+
out_valid_bit_depth 16
117+
}
118+
}
119+
120+
Object.Base.output_audio_format {
121+
1 {
122+
in_bit_depth 16
123+
in_valid_bit_depth 16
124+
out_bit_depth 16
125+
out_valid_bit_depth 16
126+
}
127+
}
128+
129+
# Default attribute values for google-rtc-aec widget
130+
# UUID: B780A0A6-269F-466F-B477-23DFA05AF758
131+
uuid $AEC_UUID
132+
type "effect"
133+
no_pm "true"
134+
core_id 0
135+
cpc 5000
136+
is_pages 1
137+
num_input_pins 2
138+
num_output_pins 1
139+
}

0 commit comments

Comments
 (0)