跳到主要内容

hi_mpi_venc_get_mod_param

hi_mpi_venc_release_stream

函数功能

释放码流缓存。

约束说明

  • 如果通道未创建,则返回错误码HI_ERR_VENC_UNEXIST。
  • 此接口应当和 hi_mpi_venc_get_stream 配对起来使用,用户获取码流后必须及时释放已经获取的码流缓存,否则可能会导致码流buffer满,影响编码器编码,并且用户必须按先获取先释放的顺序释放已经获取的码流缓存。
  • 在编码通道复位以后,所有未释放的码流包均无效,不能再使用或者释放这部分无效的码流缓存。
  • 释放无效的码流会返回失败HI_ERR_VENC_ILLEGAL_PARAM。

函数原型

hi_s32 hi_mpi_venc_release_stream(hi_venc_chn chn, hi_venc_stream *stream)

参数说明

参数名输入/输出说明
chn输入编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。
stream输入编码后的输出码流数据的指针。 如果stream为空,则返回错误码 HI_ERR_VENC_NULL_PTR。

返回值说明

参考资源

接口调用流程及示例,参见JPEGE图片编码VENC视频编码

父主题: VENC视频编码功能/JPEGE图片编码功能

hi_mpi_venc_send_frame

函数功能

发送原始图像进行视频或图像编码。

约束说明

  • 视频输入的原始图像大小必须与编码通道的大小保持一致;JPEGE输入的原始图像大小小于或等于编码通道的大小。
  • 调用该接口发送图像,用户需要保证编码通道已创建且开启接收输入图片。
  • 编码时,输入内存需要在调用hi_mpi_venc_get_stream接口获取结果之后才能进行释放。
  • 视频编码,对输入、输出的约束请参见VENC功能及约束说明
  • 图像编码,对输入、输出的约束请参见JPEGE功能及约束说明

函数原型

hi_s32 hi_mpi_venc_send_frame(hi_venc_chn chn, const hi_video_frame_info *frame, hi_s32 milli_sec)

参数说明

参数名输入/输出说明
chn输入编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。
frame输入原始图像信息的指针。
milli_sec输入超时时间,单位是毫秒。
- -1:阻塞方式
- 0:非阻塞方式
- >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。

返回值说明

参考资源

接口调用流程及示例,参见JPEGE图片编码VENC视频编码

父主题: VENC视频编码功能/JPEGE图片编码功能

hi_mpi_venc_set_mod_param

函数功能

设置编码相关的模块参数。

约束说明

此接口在通道创建前调用,如果通道已经创建,则返回错误码HI_ERR_VENC_NOT_PERM。

函数原型

hi_s32 hi_mpi_venc_set_mod_param(const hi_venc_mod_param *mod_param)

参数说明

参数名输入/输出说明
mod_param输入编码模块参数指针。

返回值说明

参考资源

接口调用流程及示例,参见JPEGE图片编码VENC视频编码

父主题: VENC视频编码功能/JPEGE图片编码功能

hi_mpi_venc_get_mod_param

函数功能

获取编码相关的模块参数。

函数原型

hi_s32 hi_mpi_venc_get_mod_param(hi_venc_mod_param *mod_param)

参数说明

参数名输入/输出说明
mod_param输出编码模块参数指针。

返回值说明

参考资源

接口调用流程及示例,参见JPEGE图片编码VENC视频编码

父主题: VENC视频编码功能/JPEGE图片编码功能

hi_mpi_venc_request_idr

函数功能

请求IDR帧。

约束说明

  • 如果通道未创建,则返回失败。
  • 接受IDR(Instantaneous Decoder Refresh)帧请求后,当instant=0时,则在帧率控制的下一帧编出IDR帧,当instant=1时,则立即编出IDR帧,不受帧率控制约束。
  • IDR帧请求,只支持H.264/H.265编码协议。
  • 由于目前的使用场景目标帧率与源帧率的值一致,所以此接口不受帧率控制影响当instant设置为0或1时,都是每调用一次接口即编出一个IDR,调用频繁会影响码流帧率和码率的稳定,使用时需要注意。
  • 当GOP模式为Smartp或B帧模式(暂不支持B帧模式)下,请求IDR帧会延时生效。

函数原型

hi_s32 hi_mpi_venc_request_idr(hi_venc_chn chn, hi_bool instant)

参数说明

参数名输入/输出说明
chn输入编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。
instant输入是否使能立即编码IDR帧。

返回值说明

父主题: VENC视频编码功能/JPEGE图片编码功能

hi_mpi_venc_get_fd

函数功能

获取编码通道对应的文件句柄。

约束说明

在进程退出时会自动关闭文件句柄,回收资源。

函数原型

hi_s32 hi_mpi_venc_get_fd(hi_venc_chn chn)

参数说明

参数名输入/输出说明
chn输入编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。

返回值说明

  • 0或正数值:有效返回值
  • 非正数值:无效返回值

参考资源

接口调用流程及示例,参见JPEGE图片编码VENC视频编码

父主题: VENC视频编码功能/JPEGE图片编码功能

hi_mpi_venc_close_fd

函数功能

关闭编码通道对应的设备文件句柄。

不支持该接口。

约束说明

用户可以不调用本接口,在应用程序执行完成,对应的进程退出后,系统会自动清理句柄;如果用户主动调用本接口,必须确保在调用hi_mpi_venc_destroy_chn接口之后再调用。此接口不能与其它 MPI 接口同时调用,用户必须保证此接口与其它接口在时间上是串行调用的。

函数原型

hi_s32 hi_mpi_venc_close_fd(hi_venc_chn chn)

参数说明

参数名输入/输出说明
chn输入编码通道号。 Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。

返回值说明

父主题: VENC视频编码功能/JPEGE图片编码功能

在线提单