hi_mpi_adec_send_stream
产品支持情况
产品  | 
是否支持  | 
|---|---|
x  | 
|
x  | 
|
√  | 
|
x  | 
|
x  | 
|
x  | 
功能说明
向音频解码通道发送码流。
函数原型
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  | 
输入  | 
阻塞标识: 
 
  | 
返回值说明
- 0:成功
 - 非0:失败,参考音频相关返回码。
 
约束说明
- 创建音频解码通道时(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方式:用于不确定码流包是否为一帧的情况,该方式效率较低,且可能会有延迟或者缓存满的情况。使用场景适合程序长时间运行不退出、发送端和接收端无匹配要求、效率不高的场景。
 
 - pack方式:用于用户确认当前码流包为一帧数据编码结果的情况下,解码器会直接对其解码,如果不是一帧,解码器会出错。
 - 发送数据时必须保证音频解码通道已经被创建,否则直接返回失败。
 - 支持阻塞或非阻塞方式发送码流,当阻塞方式发送码流时,如果缓存解码后的音频帧的buffer满,则此接口调用会被阻塞,直至解码后的音频帧数据被取走。
 - 该接口只支持单声道、且带有符合要求的语音帧头的G.711a、G.711u音源进行解码。
 
父主题: AENC音频编码/ADEC音频解码