函数:venc_send_frame

C函数原型

aclError aclvencSendFrame(aclvencChannelDesc *channelDesc, acldvppPicDesc *input, void *reserve, aclvencFrameConfig *config, void *userdata)

Python函数

ret = acl.media.venc_send_frame(venc_channel_desc, input, reserve, config, userdata)

函数功能

将待编码的图片传到编码器进行编码。异步接口。

Atlas 训练系列产品,不支持该接口。

Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。

输入说明

venc_channel_desc:int,指定通道描述的指针地址。

与调用acl.media.venc_create_channel接口创建通道时指定的channelDesc保持一致。

在通道描述信息中指定视频编码的回调函数。

input:int,输入图片描述信息的指针地址,输入内存用户需提前申请。

reserve:int,预留参数,暂不使用,设值为0。

config:int,单帧配置数据的指针地址。

userdata:Python对象,用户自定义数据。

返回值说明

ret:int,错误码。

  • 返回0表示成功。
  • 返回其它值表示失败。

约束说明

  • 本接口是异步接口,调用接口成功仅表示任务下发成功,不表示任务执行成功。调用该接口后,需调用同步等待接口(例如,acl.rt.synchronize_stream)确保任务已执行完成。
  • 发送数据前必须保证通道已经被创建,否则返回错误。
  • 不能发送eos为0的空码流包(码流长度为0或码流地址为空)。
  • 结束视频编码时可以发送eos为1的空图片,表示当前编码结束。

参考资源

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