我想通过openGl填充ImageReader。
并且我的着色器可以转换CCD_ 1。
这是我的代码:
ImageReader.newInstance(vConfig.width, vConfig.height, ImageFormat.YUV_420_888, 2, /*1 << 17*/);
eglSurface= eglCreateWindowSurface(xxx, imageReader.getSurface, xxx);
glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, textureOfCameraFrame);
eglSwapBuffers(eglDisplay, mEGLSurface);
但我得到了以下错误:
The producer output buffer format 0x1(RGBA) doesn't match the ImageReader's configured buffer format 0x23(YUV_420_888)
来自https://cs.android.com/android/platform/superproject/+/master:frameworks/base/media/jni/android_media_ImageReader.cpp;l=590
它说CCD_ 2。
但是我能做些什么使它与YUV_420_888
格式一起工作呢。
如果希望GPU渲染YUV,则需要使用EXT_YUV_target扩展功能来设置YUV渲染过程。
https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_YUV_target.txt