我创建了一个基于 FFmpeg 的电影播放器。它工作正常。解码速度非常快,在 LG P970(带有 Neon 的 Cortex A8)上,我的平均 70 fps 和 640 x 424 分辨率视频流包括 YUV2RGB 转换。但是,有一个瓶颈。它在画布上绘图。
我使用jnigraphics原生库将图片数据填充到原生端的位图中,然后我在SurfaceView的Canvas上绘制这个位图。这是一种非常简单和常见的方法,但是对于 640 x 424 分辨率的位图,绘制需要 44 毫秒,这会将 fps 降低到 23 并使该技术无法使用……它需要比整个 A/V 帧解码更多的时间!
有什么方法可以显着更快地绘制位图吗?我更喜欢使用 OpenGLES 2 在本机代码中完全渲染,但我读过它也可能很慢。所以现在怎么办?...
如何尽可能快地渲染位图?