美文网首页
Android万能视频播放器10-OpenGL ESMediaC

Android万能视频播放器10-OpenGL ESMediaC

作者: 张俊峰0613 | 来源:发表于2019-02-11 14:23 被阅读0次

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

    相关文章

      网友评论

          本文标题:Android万能视频播放器10-OpenGL ESMediaC

          本文链接:https://www.haomeiwen.com/subject/huijdqtx.html