我需要将GStreamer视频结果泵送到Sceneform中的ModelRenderable纹理。
我有运行正常的每个单独任务的代码。我尝试直接从GStreamer渲染到ExternalTexture表面,但是由于纹理所有权冲突而产生错误。我可以根据需要发布这些详细信息,但是使用单独的目标纹理似乎可以解决该问题(需要确认)。
在Sceneform一侧,我具有一个ExternalTexture,SurfaceTexture和Surface,并且可以通过ExternalTexture.getSurface()。lockHardwareCanvas()获取画布。
在GStreamer端,我创建了一个独立的OpenGL纹理作为渲染目标。
我找到访问Sceneform纹理的唯一方法是锁定Canvas并将一个位图复制到其中,我认为不是是硬件内置的,并且会太慢了。我看到了执行GPU纹理复制的各种方法,但是它们都需要目标纹理的OpenGL纹理名称,据我所知,SceneForm不提供对它的任何访问。
有什么建议吗?我是否必须深入研究Sceneform来源?