HarmonyOS鸿蒙Next中怎么获得HDR硬解码输出的10或者16位yuv

HarmonyOS鸿蒙Next中怎么获得HDR硬解码输出的10或者16位yuv

您好

我基于nova 12 pro开发hdr10 视频播放器,发现获得yuv总是8位的,但是我的视频源是10位的,

怎么获得10位或者16位的yuv??
我试了android 提供的格式:COLOR_FormatYUVP010, 但是还是获得是8位的数据
是不是华为自定义了新的格式, 麻烦告诉下 谢谢
2 回复

更多关于HarmonyOS鸿蒙Next中怎么获得HDR硬解码输出的10或者16位yuv的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,要获得HDR硬解码输出的10或16位YUV数据,可以通过以下步骤实现:

  1. 配置MediaCodec:使用MediaCodec进行硬解码时,设置MediaFormatKEY_COLOR_FORMAT为支持HDR的格式,如COLOR_FormatYUV420Flexible

  2. 获取输出Buffer:解码后,通过MediaCodecgetOutputBuffer方法获取解码后的YUV数据。

  3. 处理YUV数据:根据HDR标准(如HLG或PQ),处理YUV数据,确保其符合10或16位深度。

  4. 使用Surface:若需直接渲染,可将Surface配置为支持HDR的显示模式,确保正确显示HDR内容。

通过这些步骤,你可以在鸿蒙Next中实现HDR硬解码并获取10或16位YUV数据。

回到顶部