1、OpenGL生成纹理
2、纹理绑定到SurfaceTexture上
3、用SurfaceTexture做参数创建Surface
4、MediaCodec解码的视频就往Surface发送,就显示出画面了
SHADE编写
vertex_shader.glsl
attribute vec4 av_Position;
attribute vec2 af_Position;
varying vec2 v_texPo;
void main() {
v_texPo = af_Position;
gl_Position = av_Position;
}
注: attribute 只能在vertex中使用
varying 用于vertex和fragment之间传递值
fragment_mediacodec.glsl
#extension GL_OES_EGL_image_external : require
precision mediump float;
varying vec2 v_texPosition;
uniform samplerExternalOES sTexture;
void main() {
gl_FragColor=texture2D(sTexture, v_texPosition);
}
注: uniform 用于在application中向vertex和fragment中传递值。
网友评论