跳到主要内容

hi_aec_frame

hi_aio_attr

说明

定义音频输入输出设备属性结构体。

定义

typedef struct {
hi_audio_sample_rate sample_rate;
hi_audio_bit_width bit_width;
hi_aio_mode work_mode;
hi_audio_snd_mode snd_mode;
hi_u32 expand_flag;

hi_u32 frame_num;
hi_u32 point_num_per_frame;
hi_u32 chn_cnt;
hi_u32 clk_share;
hi_aio_i2s_type i2s_type;
} hi_aio_attr;

成员

成员名称描述
sample_rate音频采样率(从模式下,此参数不起作用),仅支持48k。
bit_width音频采样精度(从模式下,此参数必须和音频AD/DA的采样精度匹配),只支持16bit和24bit。
work_mode音频输入输出工作模式。 仅支持0(master模式),如果配置其它值,系统自动设置为0。
snd_mode音频声道模式,0表示单声道,1表示立体声。
expand_flag音频位宽扩展标识。 预留参数,设置无效,配置其它值,系统自动设置为0。
frame_num缓存帧数目。取值范围:[2, 300]。
point_num_per_frame每帧的采样点个数。AI取值范围为:[480, 2048],AO取值范围为:[480, 4096]。
chn_cnt每路I2S支持的通道数目,最大支持2个通道。双声道时固定为2,单声道时固定为1。
clk_share配置AI设备0是否复用AO设备0的帧同步时钟及位流时钟。 预留参数,设置无效,配置其它值,系统自动设置为1。
i2s_type配置设备I2S类型。 仅支持0(对接内置编解码器CODEC),如果配置其它值,系统自动设置为0。

父主题: 音频相关

hi_audio_frame

说明

定义音频帧结构体。

定义

typedef struct {
hi_audio_bit_width bit_width; /* audio frame bit_width */
hi_audio_snd_mode snd_mode; /* audio frame momo or stereo mode */
hi_u8 ATTRIBUTE *virt_addr[HI_AUDIO_FRAME_CHN_NUM];
hi_u64 ATTRIBUTE phys_addr[HI_AUDIO_FRAME_CHN_NUM];
hi_u64 time_stamp; /* audio frame time stamp */
hi_u32 seq; /* audio frame seq */
hi_u32 len; /* data length per channel in frame */
hi_u32 pool_id[HI_AUDIO_FRAME_CHN_NUM];
} hi_audio_frame;

成员

成员名称描述
bit_width音频采样精度。
snd_mode音频声道模式。
virt_addr音频帧数据虚拟地址。
phys_addr音频帧数据物理地址。
time_stamp音频帧时间戳(单位:μs)。
seq音频帧序号。
len单个声道音频帧长度(单位:byte)。
pool_id音频帧缓存池ID。

:::note 说明 len(音频帧长度)指单个声道的数据长度。

单声道数据存放的虚拟地址为 virt_addr [0],长度为 len;立体声数据按左右声道分开存放,虚拟地址 virt_addr [0]存放长度为 len 的左声道数据,虚拟地址virt_addr [1]存放长度为 len 的右声道数据。 :::

父主题: 音频相关

hi_audio_stream

说明

定义音频码流结构体。

定义

typedef struct {
hi_u8 ATTRIBUTE *stream; /* the virtual address of stream */
hi_u64 ATTRIBUTE phys_addr; /* the physics address of stream */
hi_u32 len; /* stream length, by bytes */
hi_u64 time_stamp; /* frame time stamp */
hi_u32 seq; /* frame seq, if stream is not a valid frame,seq is 0 */
} hi_audio_stream;

成员

成员名称描述
stream音频码流数据指针。
phys_addr音频码流的物理地址。
len音频码流长度(单位:byte)。
- 调用hi_mpi_adec_create_chn接口设置pack方式解码,必须为一帧音频码流的长度(指码流数据+头长度),且一帧码流最大长度为16384。
- 调用hi_mpi_adec_create_chn接口设置stream方式解码:
- 调用hi_mpi_adec_send_stream接口发送码流时,设置非阻塞方式时,len参数取值范围:(0, 16384]。
- 调用hi_mpi_adec_send_stream接口发送码流时,设置阻塞方式时,len参数取值范围在hi_u32数据类型的取值范围内,但不包括0。
time_stamp音频码流时间戳。
seq音频码流序号,如果stream无效,seq为0。

父主题: 音频相关

hi_aec_frame

说明

定义音频回声抵消参考帧信息结构体。

定义

typedef struct {
hi_audio_frame ref_frame; /* AEC reference audio frame */
hi_bool valid; /* whether frame is valid */
hi_bool sys_bind; /* whether is sysbind */
} hi_aec_frame;

成员

成员名称描述
ref_frame回声抵消参考帧结构体。
valid参考帧有效的标志。 HI_TRUE:参考帧有效。 HI_FALSE:参考帧无效,无效时不能使用此参考帧进行回声抵消。
sys_bindAI和AENC是否系统绑定。

:::note 说明 目前不支持回声抵消功能,该结构体设置为空即可。 :::

父主题: 音频相关

hi_audio_frame_info

说明

定义解码后的音频帧信息结构体。

定义

typedef struct {
hi_audio_frame *frame; /* frame pointer */
hi_u32 id; /* frame id */
} hi_audio_frame_info;
成员名称描述
frame音频帧指针。
id音频帧的索引。

父主题: 音频相关

hi_acodec_volume_ctrl

说明

定义内置 Audio Codec 音量控制结构体。

定义

typedef struct {
/* volume control, 0x00~0x7e, 0x7F:mute */
hi_u32 volume_ctrl;
/* adc/dac mute control, 1:mute, 0:unmute */
hi_u32 volume_ctrl_mute;
} hi_acodec_volume_ctrl;

成员

成员名称描述
volume_ctrl音量大小。 取值范围:0~0x7F,在0x7F时为静音。
volume_ctrl_mute静音控制。 取值范围:
- 0:不静音
- 1:静音

父主题: 音频相关

音量调节宏

宏定义取值
HI_ACODEC_SET_DACL_VOLUME0xc008410d
HI_ACODEC_SET_DACR_VOLUME0xc008410e
HI_ACODEC_GET_DACL_VOLUME0xc0084111
HI_ACODEC_GET_DACR_VOLUME0xc0084112
HI_ACODEC_SET_ADCL_VOLUME0xc008410f
HI_ACODEC_SET_ADCR_VOLUME0xc0084110
HI_ACODEC_GET_ADCL_VOLUME0xc0084113
HI_ACODEC_GET_ADCR_VOLUME0xc0084114

父主题: 音频相关

在线提单