跳到主要内容

hi_mpi_aenc_create_chn

hi_mpi_ao_disable_resample

函数功能

禁用 AO 重采样。

函数原型

hi_s32 hi_mpi_ao_disable_resample(hi_audio_dev ao_dev, hi_ao_chn ao_chn);

参数说明

参数名输入/输出说明。
ao_dev输入音频设备号,取值范围:[0, 4]。 NVR(Network Video Recorder)场景中仅涉及dev2、dev3。
ao_chn输入音频输出通道号。 目前只支持单声道(左声道),所以ao_chn取值固定为0。

返回值说明

参考资源

接口调用流程,参见语音对讲功能(NVR场景)

父主题: AI音频输入/AO音频输出

功能及约束说明

当前仅支持G.711a、G.711u、AAC(Advanced Audio Coding)协议、单声道数据进行编码、解码,且为软件编码、解码。本章中的接口均不支持多进程**,**且同一个设备ID不支持在多线程中使用

音频编码时,G.711a、G.711u码流遵循以下表格中描述的帧结构,即在每帧码流数据的净荷数据之前填充有4个字节的帧头;音频解码时,需要读取相应的帧头信息。在G.711a、G.711u码流中,目前帧头中的数据净荷长度需为40,80,120,160,240(单位:hi_s16),所以对应的每帧采样点数即为80,160,240,320,480。但在VQE(Voice Quality Enhancement)框架中,编解码操作是与AI、AO绑定在一起,所以支持的每帧采样点数范围缩小。

参数位置(单位:hi_s16)

参数比特位说明

参数含义

0

[15:8]

数据帧类型标志位。

01:语音帧;

其他:保留。

[7:0]

保留。

1

[15:8]

帧循环计数器:0~255。

[7:0]

数据净荷长度(单位:hi_s16)。

2

[15:0]

净荷数据。

3

[15:0]

净荷数据。

......

[15:0]

净荷数据。

n+1

[15:0]

净荷数据。

n+2

[15:0]

净荷数据。

G.711a、G.711u、AAC协议的相关规格及优缺点如下:

协议采样率每帧采样点数码率(kbps)压缩率CPU消耗描述
G.711a、G.711u8kHz80/160/240/320/4806421 MHz- 优点:语音质量最好;CPU消耗小;支持广泛,协议免费。
- 缺点:压缩效率低。
AAC 仅支持MPEG-4版本、无CRC(Cyclic Redundancy Check)校验的音频码流48kHz1024[48, 256]与码率相关,码率越小,压缩率越大-- 优点:持更高采样率的编解码,能够保留原始音频的更多高频信息,同时拥有更多的码率范围选择,压缩率更高。
- 缺点:算法复杂度高。

父主题: AENC音频编码/ADEC音频解码

hi_mpi_aenc_create_chn

函数功能

创建音频编码通道。

约束说明

通道如果已经被创建,则会返回通道已创建的错误。

函数原型

hi_s32 hi_mpi_aenc_create_chn(hi_aenc_chn aenc_chn, const hi_aenc_chn_attr *****attr);

参数说明

参数名输入/输出说明。
aenc_chn输入通道号,取值范围[0,6)
attr输入音频编码通道属性指针。

返回值说明

父主题: AENC音频编码/ADEC音频解码

hi_mpi_aenc_destroy_chn

函数功能

销毁音频编码通道。

函数原型

hi_s32 hi_mpi_aenc_destroy_chn(hi_aenc_chn aenc_chn**);**

参数说明

参数名输入/输出说明。
aenc_chn输入通道号,取值范围[0,6)

返回值说明

父主题: AENC音频编码/ADEC音频解码

hi_mpi_aenc_get_stream

函数功能

获取音频编码后的码流。

约束说明

  • 必须调用hi_mpi_aenc_create_chn接口创建通道后才可能获取码流,否则直接返回失败。
  • 本接口与hi_mpi_aenc_release_stream接口需成对出现,调用本接口获取码流,码流使用完毕之后应该及时调用hi_mpi_aenc_release_stream接口释放码流。

函数原型

hi_s32 hi_mpi_aenc_get_stream(hi_aenc_chn aenc_chn, hi_audio_stream *stream, hi_s32 milli_sec);

参数说明

参数名输入/输出说明。
aenc_chn输入编码通道号,取值范围[0,6)
stream输出获取的音频码流。
milli_sec输入配置获取数据的超时时间,单位是毫秒,取值范围如下:
- -1:表示阻塞模式,无数据时一直等待;
- 0:表示非阻塞模式,无数据时则报错返回;
- >0:需要配置具体的超时时间,表示超过指定时间后无数据,则报错返回。

返回值说明

父主题: AENC音频编码/ADEC音频解码

hi_mpi_aenc_release_stream

函数功能

释放音频编码后的码流。

约束说明

  • 必须调用hi_mpi_aenc_create_chn接口创建通道后才可能获取码流,否则直接返回失败。
  • 本接口与hi_mpi_aenc_get_stream接口需成对出现,调用hi_mpi_aenc_get_stream接口获取码流,码流使用完毕之后应该及时调用本接口释放码流。
  • 不支持重复调用本接口。

函数原型

hi_s32 hi_mpi_aenc_release_stream(hi_aenc_chn aenc_chn, const hi_audio_stream *stream);

参数说明

参数名输入/输出说明。
aenc_chn输入编码通道号,取值范围[0,6)
stream输出获取的音频码流。

返回值说明

父主题: AENC音频编码/ADEC音频解码

在线提单