背景:
需要通过OH_VideoEncoder的接口, 来调用GPU编码H264.
数据来源: 通过opengl es 渲染后的纹理数据, 格式类型NV12.
正常如果是采用内存映射, memcpy的方式会增加CPU的消耗.
那是否可以直接通过GPU传递共享内存, 来填充OHNativeWindows*的Buffer.
之前有一些说明是通过EGLImageKHR来传递.
EGLImageKHR image = eglCreateImageKHR(egl_display, EGL_NO_CONTEXT, EGL_NATIVE_BUFFER_OHOS, nativebuf, NULL);
问
1. 以上应该如何填充EGLAttrib, 对于NV12的Y, UV plan 如何填充到同一个NativeWindowsBuffer.
我使用int32_t OH_NativeWindow_NativeWindowRequestBuffer(OHNativeWindow *window,OHNativeWindowBuffer **buffer, int *fenceFd)接口来获取NativeWindowsBuffer. 每次返回的buffer似乎不同. 似乎buffer不能复用.
2. How to verify the EGLImageKHR is valid?
在EGLImageKHR创建之后, 我使用glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, image)来绑定. 一直失败, 显示0x502, 格式错误.

按照之前问题的参考, 有一些参数找不到定义. VideoEncoder基于Surface模式, 如何将GPU中已经渲染的纹理(基于Open GL ES) 填充OHNativeWindows, 而不经过CPU



