文档
注册

接口调用流程

开发应用时,如果涉及视频解码,则应用程序中必须包含视频解码的代码逻辑,关于视频解码的接口调用流程,请先参见接口调用流程了解整体流程,再查看本节中的流程说明。关于VDEC功能的详细介绍请参见功能及约束说明

图1 视频解码流程

实现视频的解码,关键接口的说明如下:

  1. 调用aclvdecCreateChannel接口创建视频解码处理的通道。
    • 创建视频解码处理通道前,需先执行以下操作:
      1. 调用aclvdecCreateChannelDesc接口创建通道描述信息。
      2. 调用aclvdecSetChannelDesc系列接口设置通道描述信息的属性,包括解码通道号、线程、回调函数、视频编码协议等,其中:
        1. 回调函数需由用户提前创建,用于在视频解码后,获取解码数据,并及时释放相关资源,回调函数的原型前参见aclvdecCallback

          在回调函数内,用户需调用acldvppGetPicDescRetCode接口获取retCode返回码判断是否解码成功,retCode为0表示解码成功,为1表示解码失败。如果解码失败,需要根据日志中的返回码判断具体的问题,返回码请参见返回码说明

          解码结束后,建议用户在回调函数内及时释放VDEC的输入码流内存、输出图片内存以及相应的视频码流描述信息、图片描述信息。

        2. 线程需由用户提前创建,并自定义线程函数,在线程函数内调用aclrtProcessReport接口,等待指定时间后,触发1.b.i中的回调函数。

        如果不调用aclvdecSetChannelDescOutPicFormat接口设置输出格式,则默认使用YUV420SP NV12。

    • aclvdecCreateChannel接口内部封装了如下接口,无需用户单独调用:
      1. aclrtCreateStream接口:显式创建Stream,VDEC内部使用。
      2. aclrtSubscribeReport接口:指定处理Stream上回调函数的线程,回调函数和线程是由用户调用aclvdecSetChannelDesc系列接口时指定的。
  2. 调用aclvdecSendFrame接口将视频码流解码成YUV420SP格式的图片。
  3. 调用aclvdecDestroyChannel接口销毁视频处理的通道。
    • 系统会等待已发送帧解码完成且用户的回调函数处理完成后再销毁通道。
    • aclvdecDestroyChannel接口内部封装了如下接口,无需用户单独调用:
    • 销毁通道后,需调用aclvdecDestroyChannelDesc接口销毁通道描述信息。
    • 销毁通道描述信息后,用户才可以销毁1.b.ii中创建的线程。
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词