8#ifndef __SOF_AUDIO_CADENCE_CODEC__
9#define __SOF_AUDIO_CADENCE_CODEC__
16#define LIB_NAME_MAX_LEN 30
17#define LIB_NO_ERROR XA_NO_ERROR
18#define LIB_IS_FATAL_ERROR(e) ((e) & XA_FATAL_ERROR)
19#define CODEC_GET_API_ID(id) ((id) & 0xFF)
20#define CADENCE_MP3_ENCODER_DEFAULT_BITRATE 320
37#define DEFAULT_CODEC_ID CADENCE_CODEC_WRAPPER_ID
39#define API_CALL(cd, cmd, sub_cmd, value, ret) \
41 ret = (cd)->api((cd)->self, \
59 struct ipc4_base_module_cfg base_cfg;
93struct ipc4_cadence_module_cfg {
94 struct ipc4_base_module_cfg base_cfg;
96 struct module_param param[];
103 enum module_cfg_fragment_position pos,
104 uint32_t data_offset_size,
const uint8_t *fragment,
105 size_t fragment_size, uint8_t *response,
size_t response_size);
121 size_t buffer_size,
void const *buffer_start);
123 size_t buffer_size,
void *buffer_start,
#define LIB_NAME_MAX_LEN
Definition cadence.h:16
xa_codec_func_t xa_sbc_dec
int cadence_codec_set_configuration(struct processing_module *mod, uint32_t config_id, enum module_cfg_fragment_position pos, uint32_t data_offset_size, const uint8_t *fragment, size_t fragment_size, uint8_t *response, size_t response_size)
int cadence_codec_apply_config(struct processing_module *mod)
xa_codec_func_t cadence_api_function
unsigned int cadence_codec_get_samples(struct processing_module *mod)
int cadence_codec_init_memory_tables(struct processing_module *mod)
int cadence_codec_resolve_api(struct processing_module *mod)
void cadence_copy_data_from_buffer(void *dest, const void *buffer_ptr, size_t bytes_to_copy, size_t buffer_size, void const *buffer_start)
int cadence_init_codec_object(struct processing_module *mod)
xa_codec_func_t xa_bsac_dec
struct cadence_api cadence_api_table[]
xa_codec_func_t xa_drm_dec
void cadence_copy_data_to_buffer(void *buffer_ptr, size_t bytes_to_copy, size_t buffer_size, void *buffer_start, const void *src)
int cadence_codec_process_data(struct processing_module *mod, XA_ERRORCODE *api_error_code)
cadence_api_id
Definition cadence.h:73
@ CADENCE_CODEC_DRM_DEC_ID
Definition cadence.h:78
@ CADENCE_CODEC_WRAPPER_ID
Definition cadence.h:74
@ CADENCE_CODEC_SRC_PP_ID
Definition cadence.h:82
@ CADENCE_CODEC_VORBIS_DEC_ID
Definition cadence.h:81
@ CADENCE_CODEC_MP3_DEC_ID
Definition cadence.h:79
@ SOF_COMPRESS_CODEC_PCM_DEC_ID
Definition cadence.h:89
@ CADENCE_CODEC_BSAC_DEC_ID
Definition cadence.h:76
@ CADENCE_CODEC_AAC_DEC_ID
Definition cadence.h:75
@ CADENCE_CODEC_SBC_DEC_ID
Definition cadence.h:80
@ CADENCE_CODEC_MP3_ENC_ID
Definition cadence.h:83
@ CADENCE_CODEC_DAB_DEC_ID
Definition cadence.h:77
void cadence_codec_free_memory_tables(struct processing_module *mod)
int cadence_codec_resolve_api_with_id(struct processing_module *mod, uint32_t codec_id, uint32_t direction)
xa_codec_func_t xa_pcm_dec
int cadence_codec_init_process(struct processing_module *mod)
int cadence_codec_free(struct processing_module *mod)
int cadence_codec_apply_params(struct processing_module *mod, int size, void *data)
size_t cadence_api_table_size(void)
uint32_t data[]
Definition debug_stream_slot.h:2
#define __packed
Definition ext_manifest.h:43
uint32_t id
Definition cadence.h:51
xa_codec_func_t * api
Definition cadence.h:52
void * mem_tabs
Definition cadence.h:66
size_t mem_to_be_freed_len
Definition cadence.h:67
char name[LIB_NAME_MAX_LEN]
Definition cadence.h:63
void * self
Definition cadence.h:64
uint32_t api_id
Definition cadence.h:69
void ** mem_to_be_freed
Definition cadence.h:68
struct module_config setup_cfg
Definition cadence.h:70
xa_codec_func_t * api
Definition cadence.h:65
DLL_SHARED xa_codec_func_t xa_aac_dec
Definition xa_aac_dec_api.h:411
DLL_SHARED xa_codec_func_t xa_dabplus_dec
Definition xa_aac_dec_api.h:412
xa_codec_func_t xa_mp3_dec
Definition xa_mp3_dec_api.h:158
xa_codec_func_t xa_mp3_enc
Definition xa_mp3_enc_api.h:87
xa_codec_func_t xa_src_pp
Definition xa_src_pp_api.h:100
int XA_ERRORCODE
Definition xa_type_def.h:92
XA_ERRORCODE xa_codec_func_t(xa_codec_handle_t p_xa_module_obj, WORD32 i_cmd, WORD32 i_idx, pVOID pv_value)
Definition xa_type_def.h:94
xa_codec_func_t xa_vorbis_dec
Definition xa_vorbis_dec_api.h:109
#define __aligned(x)
Definition compiler_attributes.h:27