hi_aio_i2s_type
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_bind | AI和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 | 音频帧的索引。 |
父主题: 音频相关
在线提单