在我的projiect中,我得到一个基于GPUImage
的不透明过滤器框架。
我想创建一个应用可以像FaceTime一样进行视频通话,所以我使用提供OpenGL ViewA
的过滤器框架来渲染相机图像,使用我自己的openGL viewB
来呈现远程视频流。
现在我遇到了问题。 viewA
不规则地显示了viewB
的内容。
特别是当viewA的框架发生变化时。像这样:
远程视频像素格式为I420,本地视频像素格式为NV12。从技术上讲,viewA
必须无法呈现viewB
的内容。如您所见:viewA
显示viewB
的灰色图像。我假设viewA
以某种方式得到viewB
的Y平面数据。当viewA显示灰度图像时,它的帧速率大大减慢。
因为viewA
属于不透明框架,所以我只能控制自己的OpenGL渲染部分viewB
。我不知道如何解决这个bug。两个EAGLContext很可能是冲突,或viewA
和viewB
以某种方式共享渲染/纹理缓冲区?
任何人,请帮助我。我这几天都在挣扎。
答案 0 :(得分:0)
事实证明,OpenGL上下文混乱管理导致了这个问题。