Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_25606643
ijkplayer
提交
a97cd617
I
ijkplayer
项目概览
qq_25606643
/
ijkplayer
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
ijkplayer
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a97cd617
编写于
10月 19, 2013
作者:
B
bbcallen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ios: gles: crop right padding with green band
上级
f5e9709e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
48 addition
and
18 deletion
+48
-18
ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLRenderI420.m
...r/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLRenderI420.m
+0
-1
ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m
...aPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m
+48
-17
未找到文件。
ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLRenderI420.m
浏览文件 @
a97cd617
...
...
@@ -78,7 +78,6 @@ static NSString *const g_yuvFragmentShaderString = IJK_SHADER_STRING
// assert(yuvFrame.chromaB.length == (yuvFrame.width * yuvFrame.height) / 4);
// assert(yuvFrame.chromaR.length == (yuvFrame.width * yuvFrame.height) / 4);
const
NSUInteger
frameWidth
=
overlay
->
w
;
const
NSUInteger
frameHeight
=
overlay
->
h
;
glPixelStorei
(
GL_UNPACK_ALIGNMENT
,
1
);
...
...
ios/IJKMediaPlayer/IJKMediaPlayer/ijkmedia/ijksdl/ios/IJKSDLGLView.m
浏览文件 @
a97cd617
...
...
@@ -144,15 +144,19 @@ static void mat4f_LoadOrtho(float left, float right, float bottom, float top, fl
GLuint
_program
;
GLint
_uniformMatrix
;
GLfloat
_vertices
[
8
];
GLfloat
_texCoords
[
8
];
int
_frameWidth
;
int
_frameHeight
;
int
_frameChroma
;
int
_rightPaddingPixels
;
GLfloat
_rightPadding
;
id
<
IJKSDLGLRender
>
_renderer
;
BOOL
_didSetContentMode
;
BOOL
_didRelayoutSubViews
;
BOOL
_didPaddingChanged
;
}
enum
{
...
...
@@ -229,6 +233,17 @@ enum {
_vertices
[
6
]
=
1
.
0
f
;
// x3
_vertices
[
7
]
=
1
.
0
f
;
// y3
_texCoords
[
0
]
=
0
.
0
f
;
_texCoords
[
1
]
=
1
.
0
f
;
_texCoords
[
2
]
=
1
.
0
f
;
_texCoords
[
3
]
=
1
.
0
f
;
_texCoords
[
4
]
=
0
.
0
f
;
_texCoords
[
5
]
=
0
.
0
f
;
_texCoords
[
6
]
=
1
.
0
f
;
_texCoords
[
7
]
=
0
.
0
f
;
_rightPadding
=
0
.
0
f
;
NSLog
(
@"OK setup GL"
);
}
...
...
@@ -381,13 +396,16 @@ exit:
-
(
void
)
updateVertices
{
const
float
width
=
_frameWidth
;
const
float
height
=
_frameHeight
;
const
float
dW
=
(
float
)
_backingWidth
/
width
;
const
float
dH
=
(
float
)
_backingHeight
/
height
;
float
dd
=
1
.
0
f
;
float
nW
=
1
.
0
f
;
float
nH
=
1
.
0
f
;
const
int
rightPadding
=
_rightPaddingPixels
;
const
float
width
=
_frameWidth
;
const
float
height
=
_frameHeight
;
const
float
dW
=
(
float
)
_backingWidth
/
width
;
const
float
dH
=
(
float
)
_backingHeight
/
height
;
const
float
dRightPadding
=
(
float
)
rightPadding
*
dW
/
width
;
float
dd
=
1
.
0
f
;
float
nW
=
1
.
0
f
;
float
nH
=
1
.
0
f
;
float
nRightPadding
=
0
.
0
f
;
switch
(
self
.
contentMode
)
{
case
UIViewContentModeScaleToFill
:
...
...
@@ -395,17 +413,20 @@ exit:
case
UIViewContentModeCenter
:
nW
=
1
.
0
f
/
dW
/
[
UIScreen
mainScreen
].
scale
;
nH
=
1
.
0
f
/
dH
/
[
UIScreen
mainScreen
].
scale
;
nRightPadding
=
1
.
0
f
/
dRightPadding
/
[
UIScreen
mainScreen
].
scale
;
break
;
case
UIViewContentModeScaleAspectFill
:
dd
=
MAX
(
dW
,
dH
);
nW
=
(
width
*
dd
/
(
float
)
_backingWidth
);
nH
=
(
height
*
dd
/
(
float
)
_backingHeight
);
nRightPadding
=
(
rightPadding
*
dd
/
(
float
)
_backingWidth
);
break
;
case
UIViewContentModeScaleAspectFit
:
default:
dd
=
MIN
(
dW
,
dH
);
nW
=
(
width
*
dd
/
(
float
)
_backingWidth
);
nH
=
(
height
*
dd
/
(
float
)
_backingHeight
);
nRightPadding
=
(
rightPadding
*
dd
/
(
float
)
_backingWidth
);
break
;
}
...
...
@@ -439,23 +460,22 @@ exit:
return
;
}
static
const
GLfloat
texCoords
[]
=
{
0
.
0
f
,
1
.
0
f
,
1
.
0
f
,
1
.
0
f
,
0
.
0
f
,
0
.
0
f
,
1
.
0
f
,
0
.
0
f
,
};
[
EAGLContext
setCurrentContext
:
_context
];
if
(
overlay
->
pitches
[
0
]
>
_frameWidth
)
{
_rightPaddingPixels
=
overlay
->
pitches
[
0
]
-
_frameWidth
;
_didPaddingChanged
=
YES
;
}
if
(
_didRelayoutSubViews
)
{
[
self
layoutOnDisplayThread
];
_didRelayoutSubViews
=
NO
;
}
if
(
_didSetContentMode
)
{
[
self
updateVertices
];
if
(
_didSetContentMode
||
_didPaddingChanged
)
{
_didSetContentMode
=
NO
;
_didPaddingChanged
=
NO
;
[
self
updateVertices
];
}
glBindFramebuffer
(
GL_FRAMEBUFFER
,
_framebuffer
);
...
...
@@ -471,6 +491,17 @@ exit:
}
if
([
_renderer
prepareDisplay
])
{
if
(
_frameWidth
>
0
)
_rightPadding
=
((
GLfloat
)
_rightPaddingPixels
)
/
_frameWidth
;
_texCoords
[
0
]
=
0
.
0
f
;
_texCoords
[
1
]
=
1
.
0
f
;
_texCoords
[
2
]
=
1
.
0
f
-
_rightPadding
;
_texCoords
[
3
]
=
1
.
0
f
;
_texCoords
[
4
]
=
0
.
0
f
;
_texCoords
[
5
]
=
0
.
0
f
;
_texCoords
[
6
]
=
1
.
0
f
-
_rightPadding
;
_texCoords
[
7
]
=
0
.
0
f
;
GLfloat
modelviewProj
[
16
];
mat4f_LoadOrtho
(
-
1
.
0
f
,
1
.
0
f
,
-
1
.
0
f
,
1
.
0
f
,
-
1
.
0
f
,
1
.
0
f
,
modelviewProj
);
...
...
@@ -478,7 +509,7 @@ exit:
glVertexAttribPointer
(
ATTRIBUTE_VERTEX
,
2
,
GL_FLOAT
,
0
,
0
,
_vertices
);
glEnableVertexAttribArray
(
ATTRIBUTE_VERTEX
);
glVertexAttribPointer
(
ATTRIBUTE_TEXCOORD
,
2
,
GL_FLOAT
,
0
,
0
,
texCoords
);
glVertexAttribPointer
(
ATTRIBUTE_TEXCOORD
,
2
,
GL_FLOAT
,
0
,
0
,
_
texCoords
);
glEnableVertexAttribArray
(
ATTRIBUTE_TEXCOORD
);
#if 0
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录