25 Feb
2022
25 Feb
'22
6:24 p.m.
+struct avs_tplg_modcfg_ext {
- guid_t type;
- union {
struct {u16 num_input_pins;u16 num_output_pins;struct avs_tplg_pin_format *pin_fmts;} generic;struct {struct avs_audio_format *out_fmt;struct avs_audio_format *blob_fmt; /* optional override */u32 feature_mask;union avs_virtual_index vindex;u32 dma_type;u32 dma_buffer_size;u32 config_length;/* config_data part of priv data */} copier;struct {u32 out_channel_config;u32 coefficients_select;s32 coefficients[AVS_CHANNELS_MAX];u32 channel_map;} updown_mix;struct {u32 out_freq;} src;struct {u32 out_freq;u8 mode;u8 disable_jitter_buffer;} asrc;struct {u32 cpc_lp_mode;} wov;struct {struct avs_audio_format *ref_fmt;struct avs_audio_format *out_fmt;u32 cpc_lp_mode;} aec;struct {struct avs_audio_format *ref_fmt;struct avs_audio_format *out_fmt;} mux;struct {struct avs_audio_format *out_fmt;} micsel;- };
+};
I am struggling to reconcile the notion of 'extension' with a fixed structure that deals with Intel-specific modules.
How would a 3rd party add their own modules and expose parameters/tokens through the topology?