繁体   English   中英

是否有Java版本的EGLImage可以有效地从OpenGL读取像素?

[英]Is there a java version of EGLImage to read pixel from OpenGL efficiently?

我正在使用OpenGL开发视频编辑APP。 在Android 4.2或更低版本中,我可以在OpenGL中的视频帧上应用着色器代码,但是在将视频帧复制回内存以进行视频编码时遇到了瓶颈,因为直到Android 4.3才可用视频编码器的表面输入。

传统的glReadPixels()提供了令人无法接受的性能,我正在尝试寻找替代方法。 EGLImage( Reference 1Reference 2 )似乎是不错的选择,因为它不需要OpenGL ES 3.0。 但是,相关类EGLImageKHR和包装器GraphicBuffer是用C ++编写的,因此不能直接在我的APP中使用它,后者使用Java来控制摄像机输入和视频解码器。

是否有EGLImageKHR的相同用法或可在Java中使用的或更类似的替代方法,或更确切地说,已与Android MediaCodec架构合并?

这些EGL类没有Java包装器。 Java包装器就是这样-简单的过程生成的包装器-因此,如果您想使用JNI,则可以编写自己的包装器。 (虽然听起来像您希望避免这种情况。)我也不认为任何PBO内容都可以包装。

GraphicBuffer不是公共API的一部分,因此不建议从应用程序代码中使用它。

在4.3之前,确实没有一种快速便捷的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM