0

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

4

1 回答 1

0

事实证明,OpenGL 上下文混淆管理导致了这个问题。

于 2017-03-02T07:52:28.197 回答