跳到主要内容

hi_aio_attr

hi_audio_bit_width

说明

定义音频采样位宽。

定义

typedef enum {
HI_AUDIO_BIT_WIDTH_8 = 0, /* 8bit width */
HI_AUDIO_BIT_WIDTH_16 = 1, /* 16bit width */
HI_AUDIO_BIT_WIDTH_24 = 2, /* 24bit width */
HI_AUDIO_BIT_WIDTH_BUTT
} hi_audio_bit_width;

成员

成员名称描述
HI_AUDIO_BIT_WIDTH_8采样位宽为8bit。当前版本不支持。
HI_AUDIO_BIT_WIDTH_16采样位宽为16bit。
HI_AUDIO_BIT_WIDTH_24采样位宽为24bit。

父主题: 音频相关

hi_audio_snd_mode

说明

定义音频声道模式。

定义

typedef enum {
HI_AUDIO_SOUND_MODE_MONO = 0, /* mono */
HI_AUDIO_SOUND_MODE_STEREO = 1, /* stereo */
HI_AUDIO_SOUND_MODE_BUTT
} hi_audio_snd_mode;

成员

成员名称描述
HI_AUDIO_SOUND_MODE_MONO单声道。
HI_AUDIO_SOUND_MODE_STEREO双声道。

父主题: 音频相关

hi_aio_i2s_type

说明

定义设备 I2S 对接设备类型。

定义

typedef enum {
HI_AIO_I2STYPE_INNERCODEC = 0,
HI_AIO_I2STYPE_INNERHDMI,
HI_AIO_I2STYPE_EXTERN
} hi_aio_i2s_type;

成员

成员名称描述
HI_AIO_I2STYPE_INNERCODEC对接内置编解码器CODEC。
HI_AIO_I2STYPE_INNERHDMI对接内置HDMI。当前版本不支持。
HI_AIO_I2STYPE_EXTERN对接外接设备(例如编解码器)。当前版本不支持。

父主题: 音频相关

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 说明 目前不支持回声抵消功能,该结构体设置为空即可。 :::

父主题: 音频相关

在线提单