我试图使用OpenGL ES 2上下文在Android上使用MediaCodec来记录视频。如何将OpenGL上下文中的纹理复制到另一个上下文
要做到这一点,我想用可记录表面上使用:
private static final int EGL_RECORDABLE_ANDROID = 0x3142;
创建一个新的上下文。实际上,我在我的第一个上下文中渲染了一个场景。我想在新的上下文中渲染它以将数据发送到MediaCodec。
我试图做同样的this与Recording patch
我在游戏中的InputSurface和GameRecorder实现突破的教程,但我只能记录一个空的场景。
我的主要问题是,上下文不共享相同的OpenGL的对象,我不知道这样做的最佳解决方案。
我怎么能发送最终的图像渲染,或整个场景渲染在同一线程,以避免线程问题,以正确记录表面?
您的上下文是否在单独的线程中创建? – Kimi
不,他们在同一个线程中。 OpenGL的线程 – vgonisanz
尝试设置共享上下文。 http://www.khronos.org/registry/egl/sdk/docs/man/xhtml/eglCreateContext.html share_context 指定另一个用于共享数据的EGL呈现上下文,由客户端API定义的对应于上下文。数据也与share_context共享数据的所有其他上下文共享。 EGL_NO_CONTEXT表示不会发生共享。 –