跳到主要内容

hi_mpi_adec_create_chn

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音频解码

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输入音频解码通道属性指针。

返回值说明

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

hi_mpi_adec_destroy_chn

函数功能

销毁音频解码通道。

函数原型

hi_s32 hi_mpi_adec_destroy_chn(hi_adec_chn adec_chn**);**

参数说明

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

返回值说明

父主题: 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:非阻塞。

返回值说明

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

功能描述

  • 音量调节可以实现对在内置codec(即 device 2)播音、录音时的音量调节。
  • 调节音量共涉及DACL(播音左声道)、DACR(播音右声道)、ADCL(录音左声道)、ADCR(录音右声道)四种情况。
  • 需在播音录音开始之前调节音量,播音录音结束之后音量不会回到默认大小,而是保持在调节之后的状态。
  • 多进程调节音量时,音量的调节效果以最后一次调节的大小为准。
  • 播音时如果出现削波现象、声音失真,可能是音量过大,需要调小音量,或者调整音源。
  • 录音时如果出现削波现象、声音失真,可能外部输入的信号过大,用户需自行调整外部输入的信号。

父主题: 音量调节

HI_ACODEC_SET_DACL_VOLUME

函数功能

左声道输出音量控制。

约束说明

  • 左声道输出音量范围:[0, 127],赋值越大,音量越小。赋值为 0 时,音量最大,为6db,赋值为 127 时,音量最小,为静音。
  • 例如hi_acodec_volume_ctrl结构体中volume_ctrl变量被配置为x,音量会被调节为(6-x)db。

函数原型

int ioctl(int fd, HI_ACODEC_SET_DACL_VOLUME, hi_acodec_volume_ctrl *arg);

参数说明

参数名输入/输出说明
fd输入Audio Codec设备文件描述符。
HI_ACODEC_SET_DACL_VOLUME输入ioctl号。
arg输入内置Audio Codec音量控制参数。

返回值说明

  • 0:成功。
  • 非0:失败。

父主题: 音量调节

HI_ACODEC_SET_DACR_VOLUME

函数功能

右声道输出音量控制。

约束说明

  • 右声道输出音量范围:[0, 127],赋值越大,音量越小。赋值为 0 时,音量最大,为6db,赋值为 127 时,音量最小,为静音。
  • 例如hi_acodec_volume_ctrl结构体中volume_ctrl变量被配置为x,音量会被调节为 (6-x) db。

函数原型

int ioctl(int fd, HI_ACODEC_SET_DACR_VOLUME, hi_acodec_volume_ctrl*arg);

参数说明

参数名输入/输出说明
fd输入Audio Codec设备文件描述符。
HI_ACODEC_SET_DACR_VOLUME输入ioctl号。
arg输入内置Audio Codec音量控制参数。

返回值说明

  • 0:成功。
  • 非0:失败。

父主题: 音量调节

在线提单