HarmonyOS 硬件解码异常?

使用硬件解码,将h264解码成nv21,如果输入的原始H264数据是横屏(宽:1280 , 高:720)的数据,解码出来后的NV21按照系统的给的stride读取出来,顶部有绿条,目前必现,怀疑是系统的给的stride不对,或者不能按给的stride读取数据,如果是输入的原始H264数据是竖屏(宽:720 , 高:1280),解码出来的数据正常。

阅读 494
1 个回答

请使用api 12的方式获取高跨距:

// 解码场景,收到输出 Buffer 后
OH_AVFormat *format = OH_VideoDecoder_GetOutputDescription(decoder);
int widthStride = 0;
int32_t heightStride = 0;
bool ret = OH_AVFormat_GetIntValue(format, OH_MD_KEY_VIDEO_STRIDE, widthStride);
if (ret) {
  // Error
}
bool ret = OH_AVFormat_GetIntValue(format, OH_MD_KEY_VIDEO_SLICE_HEIGHT, heightStride);
if (ret) {
  // Error
}
OH_AVFormat_Destroy(format);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进