在我的项目中,我得到了一个基于GPUImage
. 我想创建一个可以像 FaceTime 一样进行视频通话的应用程序,所以我使用这个提供 OpenGL 的过滤器框架ViewA
来渲染相机图像,使用我自己的 openGLviewB
来渲染远程视频流。现在我遇到了问题。是viewA
不定期显示viewB
的内容。
特别是当 viewA 的框架发生变化时。像这样:
远程视频像素格式为I420,本地视频像素格式为NV12。所以从技术上讲,
viewA
必须不能呈现viewB
的内容。如您所见:viewA
显示viewB
. 我假设viewA
得到 Y 平面数据viewB
不知何故。当viewA显示灰色图像时,它的帧率大大降低。因为viewA
属于一个不透明的框架,我只能控制自己的OpenGL渲染部分viewB
。我不知道如何解决这个错误。很可能这两个 EAGLContext 是冲突的,或者viewA
以viewB
某种方式共享渲染/纹理缓冲区?任何人,请帮助我。我正在努力这几天。