首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使Grafika RecordFBOActivity与Android GPUImage协同工作

使Grafika RecordFBOActivity与Android GPUImage协同工作
EN

Stack Overflow用户
提问于 2014-11-17 23:43:24
回答 1查看 811关注 0票数 2

我有一个应用程序,它使用GPUImage的安卓端口作为OpenGL渲染器和几个过滤器的管理器。

它目前没有视频实现,所以我正在尝试调整来自Google grafika存储库Google grafika存储库来处理GPUImage体系结构。

基类GPUImage管理GLContext和GLSurfaceView,GPUImageRenderer类实现Renderer类。

这就是我试图从格拉菲卡的RenderThread中调整RecordFBOActivity的那个类。有几个问题。

First,在preparegl()方法中,我传递的是SurfaceTexture而不是SurfaceTexture,因为GPUImage根本不使用SurfaceHolder (我认为我可以实现它,但我不想过多地更改基本代码,因为我想将实现推到前面提到的回购)。我知道WindowSurface.java有一个重载的方法,可以从SurfaceTexture和surface构建WindowSurface,但是如果我这样做,mSurface iVar总是空的,因为我从来没有一个曲面可以传递给它,这会导致记录makeCurrent()方法中的NPE。

Second,GPUImage将自己附加到GLSurfaceView上,而不是像grafika示例所使用的SurfaceView,所以我有点不确定是否有任何低层次的不一致,可能会给我造成冲突…

Third,我认为这是主要的问题,至少目前是这样的,我似乎无法调和GPUImage的相机预览和格拉菲卡的WindowSurface。如果我注释掉prepareGl()方法,GPUImage的setUpSurfaceTexture()会从glGenTextures()创建的SurfaceTexture中设置摄像机的预览纹理,预览效果很好。以及连接到过滤器呈现链。但是,如果我试图调用prepareGL()方法,并将完全相同的SurfaceTexture传递给mWindowSurface的构造函数,那么相机服务就会消失,并得到一个EGL_BAD_SURFACE错误。

很长的问题,有几个移动的部分,我知道.将尝试编辑/更新,因为我可以澄清问题和方法自己。但如果有人有任何想法或审讯..。特别@fadden :D

EN

回答 1

Stack Overflow用户

发布于 2014-12-06 17:17:23

我也在努力实现同样的目标,并尝试了法登的建议。试图将CameraSurfaceRenderer功能集成到GPUImageRenderer。预览是好的,但录音只是一个黑色帧的视频。EGL14.eglGetCurrentContext()返回用于以下调用的null,我的猜测是,如果创建了一个新的上下文,它将与GPUImage可能具有的内容不一样

代码语言:javascript
复制
mVideoEncoder.startRecording(new TextureMovieEncoder.EncoderConfig(
                                    mOutputFile, 640, 480, 1000000, EGL14.eglGetCurrentContext()));

@Jesses.co.tt你能做到吗?

(因为我不能添加注释,所以它是作为答复添加的)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26984073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档