我最近将一个视频解码器(用C编写)移植到android平台。它的输出是YUV格式。因此,我必须将其转换为RGB8888,以使用本机代码中的ANativeWindow API显示它。虽然移植成功,但是对于416x240的输入,我能够渲染的输出大约是8.5fps,在使用-O2(LOCAL_C_FLAG)的优化级别之后也是如此。
任何有用的建议都将受到赞赏。
答案 0 :(得分:1)
您可以使用GLSurfaceView / Renderer对进行渲染。
在您自己的GLSurfaceView.Renderer实现中,使用本机方法覆盖OnDrawFrame。
在本机实现中,使用OpenGL ES.20 frag着色器进行色彩空间转换(以及缩放)。
您不必以这种方式担心视图/位图/ UI同步的细节。 OpenGL ES非常快。