【发布时间】:2013-12-03 21:09:13
【问题描述】:
在 Android 上,可以让相机将其输出直接写入 OpenGL 纹理(类型为 GL_TEXTURE_EXTERNAL_OES),完全避免 CPU 上的缓冲区。
这样的事情在 iOS 上可能吗?
【问题讨论】:
标签: ios iphone ipad opengl-es-2.0 ios-camera
在 Android 上,可以让相机将其输出直接写入 OpenGL 纹理(类型为 GL_TEXTURE_EXTERNAL_OES),完全避免 CPU 上的缓冲区。
这样的事情在 iOS 上可能吗?
【问题讨论】:
标签: ios iphone ipad opengl-es-2.0 ios-camera
你在 iOS 中从相机得到的输出是一个CMSampleBufferRef,里面有一个CVPixelBufferRef。 (参见文档here)。 iOS 从版本 5 开始,CoreVideo 框架中有 CVOpenGLESTextureCache,它允许您使用 CVPixelBufferRef 创建 OpenGL ES 纹理,避免任何复制。
在 Apple 的开发者网站上查看 RosyWriter 示例,它就在那里。
【讨论】: