Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_25606643
ijkplayer
提交
fc3e5d5d
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,体验更适合开发者的 AI 搜索 >>
提交
fc3e5d5d
编写于
3月 23, 2017
作者:
R
raymondzheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ijkplayer: fix NewGlobalRef crash
上级
46ec4a07
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
12 deletion
+12
-12
ijkmedia/ijkplayer/ijkavformat/ijkioandroidio.c
ijkmedia/ijkplayer/ijkavformat/ijkioandroidio.c
+12
-12
未找到文件。
ijkmedia/ijkplayer/ijkavformat/ijkioandroidio.c
浏览文件 @
fc3e5d5d
...
...
@@ -59,29 +59,29 @@ static int ijkio_androidio_open(IjkURLContext *h, const char *url, int flags, Ij
return
-
1
;
}
if
(
!
ijkio_androidio
)
return
AVERROR
(
EINVAL
);
if
(
JNI_OK
!=
SDL_JNI_SetupThreadEnv
(
&
env
))
{
av_log
(
h
,
AV_LOG_ERROR
,
"%s: SDL_JNI_SetupThreadEnv: failed"
,
__func__
);
return
AVERROR
(
EINVAL
);
}
if
(
!
ijkio_androidio
)
return
AVERROR
(
EINVAL
);
c
->
ijkio_androidio
=
(
*
env
)
->
NewGlobalRef
(
env
,
ijkio_androidio
);
if
(
J4A_ExceptionCheck__catchAll
(
env
)
||
!
c
->
ijkio_androidio
)
{
return
AVERROR
(
ENOMEM
);
}
jstring
urlString
=
NULL
;
urlString
=
(
*
env
)
->
NewStringUTF
(
env
,
url
);
jint
ret
=
J4AC_IAndroidIO__open
(
env
,
ijkio_androidio
,
urlString
);
jint
ret
=
J4AC_IAndroidIO__open
(
env
,
c
->
ijkio_androidio
,
urlString
);
if
(
J4A_ExceptionCheck__catchAll
(
env
))
{
return
AVERROR
(
EINVAL
);
}
else
if
(
ret
<
0
)
{
return
ret
;
}
c
->
ijkio_androidio
=
(
*
env
)
->
NewGlobalRef
(
env
,
ijkio_androidio
);
if
(
J4A_ExceptionCheck__catchAll
(
env
)
||
!
c
->
ijkio_androidio
)
{
return
AVERROR
(
ENOMEM
);
}
return
0
;
}
...
...
@@ -165,14 +165,14 @@ static int ijkio_androidio_close(IjkURLContext *h) {
IjkIOAndroidioContext
*
c
=
h
->
priv_data
;
JNIEnv
*
env
=
NULL
;
if
(
!
c
||
!
c
->
ijkio_androidio
)
return
AVERROR
(
EINVAL
);
if
(
JNI_OK
!=
SDL_JNI_SetupThreadEnv
(
&
env
))
{
av_log
(
h
,
AV_LOG_ERROR
,
"%s: SDL_JNI_SetupThreadEnv: failed"
,
__func__
);
return
AVERROR
(
EINVAL
);
}
if
(
!
c
||
!
c
->
ijkio_androidio
)
return
AVERROR
(
EINVAL
);
J4A_DeleteGlobalRef__p
(
env
,
&
c
->
jbuffer
);
if
(
c
->
ijkio_androidio
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录