hbVPVideoDecode
Video解码的参数。
-
成员
获取解码器默认的解码参数,其中 pixelFormat 参数为 HB_VP_IMAGE_FORMAT_YUV420 ,inBufSize 参数为 10 * 1024 * 1024 ,outBufCount 参数为5,backend 参数为 HB_UCP_VPU_CORE_0。
- 参数
- [in]
param解码参数。
- [in]
- 返回值
- 返回
0则表示API成功执行,否则执行失败。
- 返回
- 接口限制说明
- 在调用接口前,需要将 videoType 指定为
HB_VP_VIDEO_TYPE_H264或HB_VP_VIDEO_TYPE_H265。
- 在调用接口前,需要将 videoType 指定为
创建解码器上下文API,创建前需要提前将context初始化为nullptr。
- 参数
- [out]
context解码器上下文。 - [in]
param解码参数。
- [out]
- 返回值
- 返回
0则表示API成功执行,否则执行失败。
- 返回
- 接口限制说明
- Video Processing Unit每个核最高支持创建32路解码的上下文,但受限于设置内存大小,实际支持创建的数量可能小于32。
- J6B 的最大上下文数量可通过配置文件
/userdata/vpu_instance.cfg进行设置。若文件不存在或配置值超出 (1,32] 范围,系统将使用默认值16,设置在重启系统后生效。 - 解码器首帧必须是包含VPS+SPS+PPS帧头信息的IDR帧,否则不能正常解码。
- 解码器不支持包含后向参考帧的B帧码流解码。
- 由于硬件限制,H264编码时采用
16x16的对齐方式,解码后的数据也会按照编码时的对齐要求进行解码。具体来说,解码后的分辨率会对齐到16x16的倍数。
释放解码器上下文API。
- 参数
- [in]
context解码器上下文。
- [in]
- 返回值
- 返回
0则表示API成功执行,否则执行失败。
- 返回
调用Video Processing Unit解码API。
- 参数
- [out]
taskHandle任务句柄,负责算子与UCP架构的交互。 - [in]
srcBuf输入码流文件。 - [in]
context解码器的上下文。
- [out]
- 返回值
- 返回
0则表示API成功执行,否则执行失败。
- 返回
- 接口限制说明
- Video解码时,支持的最小分辨率为256x128,最大分辨率为8192x4096。
- 由于Video Processing Unit硬件限制,Video Processing Unit编码或解码时最大支持同时提交31个任务。
- 仅支持使用异步方式创建任务。
srcBuf的内存分配应依据hbVPVideoDecParam中的inBufSize进行,但其有效数据长度memSize需设为码流的实际大小。为避免系统资源浪费并提升 Video Processing Unit(VPU)解码性能,建议复用输入地址。
获取解码数据buffer的API。
- 参数
- [out]
outImg输出YUV图像。 - [in]
taskHandle任务句柄,负责算子与UCP架构的交互。
- [out]
- 返回值
- 返回
0则表示API成功执行,否则执行失败。
- 返回
- 接口限制说明
- 输出缓冲区
outImg由Video Processing Unit内部申请。 - 当任务成功完成后,输出缓冲区中的数据有效;在任务释放阶段,输出缓冲区将被释放。
- 输出缓冲区
