HarmonyOS 鸿蒙Next 视频硬解输出

发布于 1周前 作者 nodeper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 视频硬解输出

视频硬解配置Surface的时候,解码器输出后能否选择不渲染到surface OH_AVErrCode OH_VideoDecoder_RenderOutputData(OH_AVCodec *codec, uint32_t index); 调用了这个api,会直接将解码数据输出到surface。视频硬解配置Surface的时候,解码器输出后能否选择不渲染到surface,请问是否可以调用OH_VideoDecoder_FreeOutputData


更多关于HarmonyOS 鸿蒙Next 视频硬解输出的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
关于该问题解决措施参考如下:

surface 模式显示场景,调用 OH_VideoDecoder_RenderOutputData() 显示并释放解码帧;

如果 surface 模式不显示场景和 buffer 模式,可以调用 OH_VideoDecoder_FreeOutputData() 释放解码帧。

更多关于HarmonyOS 鸿蒙Next 视频硬解输出的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next 视频硬解输出主要涉及以下方面:

一、视频硬解概述

在HarmonyOS鸿蒙Next系统中,视频硬解是利用芯片中的硬件解码器(VDEC)来处理视频解码任务,相比CPU软解码,硬解码能显著降低功耗。

二、视频硬解输出模式

  1. Surface模式:在此模式下,解码后的图像数据通过OHNativeWindow进行输出,可与其他模块如XComponent对接。调用OH_VideoDecoder_RenderOutputData()将解码数据直接渲染到Surface。若不显示,可调用OH_VideoDecoder_FreeOutputData()释放解码帧。
  2. Buffer模式:解码后的数据以共享内存的方式输出,调用者通过OH_AVCodecOnNewOutputBuffer获取OH_AVBuffer指针对象,处理完毕后需调用OH_VideoDecoder_FreeOutputBuffer通知系统释放资源。

三、注意事项

使用视频硬解时,需确保硬件解码器资源充足,并在使用完毕后调用OH_VideoDecoder_Destroy销毁解码器实例以释放资源。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部