aclvdecSendFrame

函数功能

将待解码的输入内存和解码输出内存一起传到解码器进行解码,异步接口。

约束说明

函数原型

aclError aclvdecSendFrame(aclvdecChannelDesc *channelDesc,

acldvppStreamDesc *input,

acldvppPicDesc *output,

aclvdecFrameConfig *config,

void* userData)

参数说明

参数名

输入/输出

说明

channelDesc

输入

通道描述信息的指针。

与调用aclvdecCreateChannel接口创建通道时指定的channelDesc保持一致。

调用aclvdecSetChannelDesc系列接口设置通道描述信息的属性,包括解码通道号、线程、回调函数、视频编码协议等。

说明:

Atlas 200/300/500 推理产品上,由于软件约束,不支持调用aclvdecSetChannelDescRefFrameNum接口设置通道描述信息的对应属性,若调用,则会返回报错。

Atlas 训练系列产品上,由于软件约束,不支持调用aclvdecSetChannelDescRefFrameNum接口设置通道描述信息的对应属性,若调用,则会返回报错。

Atlas 推理系列产品(Ascend 310P处理器)上,支持调用aclvdecSetChannelDescRefFrameNum接口设置通道描述信息的对应属性。

input

输入

输入码流描述信息的指针,输入内存用户需提前申请。

output

输入&输出

输出图片描述信息的指针,输出内存用户需提前申请。

output参数作为输入时,需要用户调用如下接口:

  • 调用acldvppCreatePicDesc接口创建图片描述信息。
  • 调用acldvppSetPicDesc系列接口设置输出图片的数据内存、内存大小、宽、高、格式。
    • 如果此处设置输出图片的宽高,则需要同时设置width、height、widthStride、heightStride这4个参数,且当width<16时,widthStride必须对齐到32,不能对齐到16;如果这4个参数都不设置,则以输入码流的宽高为准;如果设置部分参数,则接口返回错误。
    • 如果此处设置输出图片的格式,则以此处为准;如果此处不设置,则以通道描述信息中设置的为准。
    • 输出图像格式的要求,请参见功能及约束说明

output参数作为输出时,用户需在回调函数中调用acldvppGetPicDesc系列接口获取解码后的输出图片数据。隔行码流场景下,隔行码流每帧发送两场,解码时其中一场无图像输出,属于正常现象,会返回ERR_DECODE_NOPIC = 0x20000错误码;隔行码流的解码输出数据都在奇数场对应的输出buffer中。

config

输入

解码配置的指针,预留,当前可填NULL。

userData

输入

用户自定义数据的指针。

如果用户需要获取解码的帧序号,则可以在userData参数处定义,然后解码的帧序号可以通过userData参数传递给VDEC的回调函数,用于确定回调函数中处理的是第几帧数据。

返回值说明

返回0表示成功,返回非0表示失败。

参考资源