Android万能视频播放器10-OpenGL ESMediaCodec解码数据t

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中传递值。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容