HarmonyOS 硬件解码异常?

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

阅读 493
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);