码迷,mamicode.com
首页 > 移动开发 > 详细

Android WebRTC视频旋转问题

时间:2015-11-11 23:50:31      阅读:1090      评论:0      收藏:0      [点我收藏+]

标签:

    最近在对接WebRTC到安卓手机上,有个需求就是手机横屏时将对方图像进行旋转,研究了WebRTC video_render的代码后发现远端的视频渲染使用opengles20或surfaceview实现,其中opengles20使用硬件渲染,因此性能更好,所以只需将video_render_opengles20.h中的VideoRenderOpenGles20类加上旋转接口即可。

opengles20和opengles相比取消了glRotatex等操作函数,旋转操作改为由shader的顶点渲染实现,改写的shader代码如下:

  

uniform mat4 uMVPMatrix; //总变换矩阵
attribute vec4 aPosition;  //顶点位置
attribute vec2 aTextureCoord;
varying vec2 vTextureCoord;
void main()     
{                                   
   gl_Position = uMVPMatrix * aPosition; //根据总变换矩阵计算此次绘制此顶点位置
   vTextureCoord = aTextureCoord;//将接收的颜色传递给片元着色器 
}

  

 注意添加了变换矩阵uMVPMatrix,在绘制前调用:

int muMVPMatrixHandle = glGetUniformLocation(mProgram, "uMVPMatrix");

mMMatrix.setRotate(rotate);

glUniformMatrix4fv(muMVPMatrixHandle, 1false, (float*)mMMatrix);

 

Android WebRTC视频旋转问题

标签:

原文地址:http://www.cnblogs.com/zentel/p/4957467.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!