我编写了一个应用程序,它基本上使用此处许多帖子中的代码将视频渲染为纹理。我猜原件来自一些 nVidia 示例 (VideoSurfaceView) 在这里找到:Using SurfaceTexture in Android
这个例子在移动设备和平板电脑上都能正常工作——两者都基于 Tegra。然后,我在基于 MALI 400 的 android 系统(Minix Neo5)上尝试了相同的代码,我可以看到视频播放,但主要是黑屏,上面有一些垃圾(只有 3 或 4 行)
我尝试使用 OpenGL ES 跟踪器检查从 SurfaceTexture 复制回纹理本身的内容,但看起来跟踪器无法正确显示它(无论是在 tegra 系统上还是在 tegra 设备上。请注意,我没有不会出现任何 OpenGL 错误或任何警告。看起来一切正常。
如果将任何内容复制到 TEXTURE_EXTERNAL ,是否有任何其他工具可以告诉我怎么办?所有 TEXTURE_2D 在示踪剂上都可用。
我在 MALI 系统上注意到的一件奇怪的事情是它根本无法播放高清视频。我的视频 1280x720 在调试器上报告他们正在使用 SoftwareRenderer。也许这就是为什么帧没有正确复制到将用作纹理的 OGL_IMAGE 的原因。
我想我需要更好地了解幕后发生的事情,但我预计会出现一个错误,告诉系统无法执行此操作,或者它应该可以正常工作,即使性能很差。也许这是 android 的修改版本,并且媒体播放器代码刚刚被破坏......