hi_mpi_aenc_release_stream
hi_mpi_aenc_destroy_chn
函数功能
销毁音频编码通道。
函数原型
hi_s32 hi_mpi_aenc_destroy_chn(hi_aenc_chn aenc_chn**);**
参数说明
| 参数名 | 输入/输出 | 说明。 |
|---|---|---|
| aenc_chn | 输入 | 通道号,取值范围[0,6) |
返回值说明
- 0:成功
- 非0:失败,参考音频相关返回码。
父主题: 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:需要配置具体的超时时间,表示超过指定时间后无数据,则报错返回。 |
返回值说明
- 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 | 输出 | 获取的音频码流。 |
返回值说明
- 0:成功
- 非0:失败,参考音频相关返回码。
父主题: AENC音频编码/ADEC音频解码
hi_mpi_adec_create_chn
函数功能
创建音频解码通道。
约束说明
通道如果已经被创建,则会返回通道已创建的错误。
函数原型
hi_s32 hi_mpi_adec_create_chn(hi_adec_chn adec_chn, const hi_adec_chn_attr *****attr);
参数说明
| 参数名 | 输入/输出 | 说明。 |
|---|---|---|
| adec_chn | 输入 | 通道号,取值范围[0,6) |
| attr | 输入 | 音频解码通道属性指针。 |
返回值说明
- 0:成功
- 非0:失败,参考音频相关返回码。
父主题: AENC音频编码/ADEC音频解码
hi_mpi_adec_destroy_chn
函数功能
销毁音频解码通道。
函数原型
hi_s32 hi_mpi_adec_destroy_chn(hi_adec_chn adec_chn**);**
参数说明
| 参数名 | 输入/输出 | 说明。 |
|---|---|---|
| adec_chn | 输入 | 通道号,取值范围[0,6) |
返回值说明
- 0:成功
- 非0:失败,参考音频相关返回码。
父主题: AENC音频编码/ADEC音频解码
hi_mpi_adec_send_stream
函数功能
向音频解码通道发送码流。
约束说明
- 创建音频解码通道时(hi_mpi_adec_create_chn)可以通过hi_adec_mode变量指定解码方式为pack方式或stream方式,推荐使用pack方式。
-
pack方式:用于用户确认当前码流包为一帧数据编码结果的情况下,解码器会直接进行对其解码,如果不是一帧,解码器会出错。
例如,对于G.711a文件来说,帧头中有数据长度信息,假设此时的数据长度为240(单位:s16),即为240×2=480字节,由于帧头长度为4字节,所以完整的一帧长度为480+4=484字节,即每次数据应该读484字节。
-
stream****方式:用于不确定码流包为是否为一帧的情况,该方式效率较低,且可能会有延迟或者缓存满的情况。使用场景适合程序长时间运行不退出、发送端和接收端无匹配要求、效率不高的场景。
-
- 发送数据时必须保证音频解码通道已经被创建,否则直接返回失败。
- 支持阻塞或非阻塞方式发送码流,当阻塞方式发送码流时,如果用于缓存解码后的音频帧的buffer满,则此接口调用会被阻塞,直至解码后的音频帧数据被取走。
- 该接口只支持单声道、且带有符合要求的语音帧头的G.711a、G.711u音源进行解码。
函数原型
hi_s32 hi_mpi_adec_send_stream(hi_adec_chn adec_chn, const hi_audio_stream *stream, hi_bool block);
参数说明
| 参数名 | 输入/输出 | 说明。 |
|---|---|---|
| adec_chn | 输入 | 通道号,取值范围[0,6) |
| stream | 输入 | 音频码流。 |
| block | 输入 | 阻塞标识: - HI_TRUE:阻塞。 - HI_FALSE:非阻塞。 |
返回值说明
- 0:成功
- 非0:失败,参考音频相关返回码。
父主题: AENC音频编码/ADEC音频解码
在线提单