Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_25606643
ijkplayer
提交
a25f13c5
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 搜索 >>
提交
a25f13c5
编写于
3月 17, 2017
作者:
R
raymondzheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ijkplayer: rename ijkio androidio
上级
481becd3
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
26 addition
and
25 deletion
+26
-25
ijkmedia/ijkplayer/android/ijkplayer_jni.c
ijkmedia/ijkplayer/android/ijkplayer_jni.c
+19
-18
ijkmedia/ijkplayer/ijkavformat/ijkioandroidio.c
ijkmedia/ijkplayer/ijkavformat/ijkioandroidio.c
+6
-6
ijkmedia/ijkplayer/ijkavformat/ijkioprotocol.c
ijkmedia/ijkplayer/ijkavformat/ijkioprotocol.c
+1
-1
未找到文件。
ijkmedia/ijkplayer/android/ijkplayer_jni.c
浏览文件 @
a25f13c5
...
...
@@ -30,7 +30,7 @@
#include "j4a/class/android/os/Bundle.h"
#include "j4a/class/tv/danmaku/ijk/media/player/IjkMediaPlayer.h"
#include "j4a/class/tv/danmaku/ijk/media/player/misc/IMediaDataSource.h"
#include "j4a/class/tv/danmaku/ijk/media/player/misc/I
IjkIOHttp
.h"
#include "j4a/class/tv/danmaku/ijk/media/player/misc/I
AndroidIO
.h"
#include "ijksdl/ijksdl_log.h"
#include "../ff_ffplay.h"
#include "ffmpeg_api_jni.h"
...
...
@@ -120,30 +120,31 @@ fail:
return
nativeMediaDataSource
;
}
static
int64_t
jni_set_ijkio_
http
(
JNIEnv
*
env
,
jobject
thiz
,
jobject
ijk_io
)
static
int64_t
jni_set_ijkio_
androidio
(
JNIEnv
*
env
,
jobject
thiz
,
jobject
ijk_io
)
{
int64_t
native
IjkIOHttp
=
0
;
int64_t
native
AndroidIO
=
0
;
pthread_mutex_lock
(
&
g_clazz
.
mutex
);
jobject
old
=
(
jobject
)
(
intptr_t
)
J4AC_IjkMediaPlayer__mNative
IjkIOHttp
__get__catchAll
(
env
,
thiz
);
jobject
old
=
(
jobject
)
(
intptr_t
)
J4AC_IjkMediaPlayer__mNative
AndroidIO
__get__catchAll
(
env
,
thiz
);
if
(
old
)
{
J4AC_I
IjkIOHttp
__close__catchAll
(
env
,
old
);
J4AC_I
AndroidIO
__close__catchAll
(
env
,
old
);
J4A_DeleteGlobalRef__p
(
env
,
&
old
);
J4AC_IjkMediaPlayer__mNative
IjkIOHttp
__set__catchAll
(
env
,
thiz
,
0
);
J4AC_IjkMediaPlayer__mNative
AndroidIO
__set__catchAll
(
env
,
thiz
,
0
);
}
if
(
ijk_io
)
{
jobject
global_ijkio_
http
=
(
*
env
)
->
NewGlobalRef
(
env
,
ijk_io
);
if
(
J4A_ExceptionCheck__catchAll
(
env
)
||
!
global_ijkio_
http
)
jobject
global_ijkio_
androidio
=
(
*
env
)
->
NewGlobalRef
(
env
,
ijk_io
);
if
(
J4A_ExceptionCheck__catchAll
(
env
)
||
!
global_ijkio_
androidio
)
goto
fail
;
nativeIjkIOHttp
=
(
int64_t
)
(
intptr_t
)
global_ijkio_http
;
J4AC_IjkMediaPlayer__mNativeIjkIOHttp__set__catchAll
(
env
,
thiz
,
(
jlong
)
nativeIjkIOHttp
);
nativeAndroidIO
=
(
int64_t
)
(
intptr_t
)
global_ijkio_androidio
;
J4AC_IjkMediaPlayer__mNativeAndroidIO__set__catchAll
(
env
,
thiz
,
(
jlong
)
nativeAndroidIO
);
}
fail:
pthread_mutex_unlock
(
&
g_clazz
.
mutex
);
return
native
IjkIOHttp
;
return
native
AndroidIO
;
}
static
int
message_loop
(
void
*
arg
);
...
...
@@ -222,21 +223,21 @@ LABEL_RETURN:
}
static
void
IjkMediaPlayer_setDataSource
IjkIOHttp
Callback
(
JNIEnv
*
env
,
jobject
thiz
,
jobject
callback
)
{
IjkMediaPlayer_setDataSource
AndroidIO
Callback
(
JNIEnv
*
env
,
jobject
thiz
,
jobject
callback
)
{
MPTRACE
(
"%s
\n
"
,
__func__
);
int
retval
=
0
;
char
uri
[
128
];
int64_t
native
IjkIOHttp
=
0
;
int64_t
native
AndroidIO
=
0
;
IjkMediaPlayer
*
mp
=
jni_get_media_player
(
env
,
thiz
);
JNI_CHECK_GOTO
(
callback
,
env
,
"java/lang/IllegalArgumentException"
,
"mpjni: setDataSourceIjkIOCallback: null fd"
,
LABEL_RETURN
);
JNI_CHECK_GOTO
(
mp
,
env
,
"java/lang/IllegalStateException"
,
"mpjni: setDataSourceIjkIOCallback: null mp"
,
LABEL_RETURN
);
native
IjkIOHttp
=
jni_set_ijkio_http
(
env
,
thiz
,
callback
);
JNI_CHECK_GOTO
(
native
IjkIOHttp
,
env
,
"java/lang/IllegalStateException"
,
"mpjni: jni_set_ijkio_http
: NewGlobalRef"
,
LABEL_RETURN
);
native
AndroidIO
=
jni_set_ijkio_androidio
(
env
,
thiz
,
callback
);
JNI_CHECK_GOTO
(
native
AndroidIO
,
env
,
"java/lang/IllegalStateException"
,
"mpjni: jni_set_ijkio_androidio
: NewGlobalRef"
,
LABEL_RETURN
);
ALOGV
(
"setDataSource
IjkIOHttpCallback: %"
PRId64
"
\n
"
,
nativeIjkIOHttp
);
snprintf
(
uri
,
sizeof
(
uri
),
"ijkio:
http:%"
PRId64
,
nativeIjkIOHttp
);
ALOGV
(
"setDataSource
AndroidIOCallback: %"
PRId64
"
\n
"
,
nativeAndroidIO
);
snprintf
(
uri
,
sizeof
(
uri
),
"ijkio:
androidio:%"
PRId64
,
nativeAndroidIO
);
retval
=
ijkmp_set_data_source
(
mp
,
uri
);
...
...
@@ -1081,7 +1082,7 @@ static JNINativeMethod g_methods[] = {
},
{
"_setDataSourceFd"
,
"(I)V"
,
(
void
*
)
IjkMediaPlayer_setDataSourceFd
},
{
"_setDataSource"
,
"(Ltv/danmaku/ijk/media/player/misc/IMediaDataSource;)V"
,
(
void
*
)
IjkMediaPlayer_setDataSourceCallback
},
{
"_setDataSource
IjkIOHttp"
,
"(Ltv/danmaku/ijk/media/player/misc/IIjkIOHttp;)V"
,
(
void
*
)
IjkMediaPlayer_setDataSourceIjkIOHttp
Callback
},
{
"_setDataSource
AndroidIO"
,
"(Ltv/danmaku/ijk/media/player/misc/IAndroidIO;)V"
,
(
void
*
)
IjkMediaPlayer_setDataSourceAndroidIO
Callback
},
{
"_setVideoSurface"
,
"(Landroid/view/Surface;)V"
,
(
void
*
)
IjkMediaPlayer_setVideoSurface
},
{
"_prepareAsync"
,
"()V"
,
(
void
*
)
IjkMediaPlayer_prepareAsync
},
...
...
ijkmedia/ijkplayer/ijkavformat/ijkioandroidio.c
浏览文件 @
a25f13c5
...
...
@@ -29,7 +29,7 @@
#include "ijkplayer/ijkavutil/opt.h"
#include "ijkplayer/ijkavutil/ijkutils.h"
#include "j4a/class/tv/danmaku/ijk/media/player/misc/I
IjkIOHttp
.h"
#include "j4a/class/tv/danmaku/ijk/media/player/misc/I
AndroidIO
.h"
#include "ijksdl/android/ijksdl_android_jni.h"
#include <assert.h>
...
...
@@ -49,7 +49,7 @@ static int ijkio_androidio_open(IjkURLContext *h, const char *url, int flags, Ij
if
(
!
c
)
return
-
1
;
av_strstart
(
url
,
"androidio:
http:
"
,
&
url
);
av_strstart
(
url
,
"androidio:"
,
&
url
);
ijkio_http
=
(
jobject
)
(
intptr_t
)
strtoll
(
url
,
&
final
,
10
);
if
(
!
ijkio_http
)
...
...
@@ -60,7 +60,7 @@ static int ijkio_androidio_open(IjkURLContext *h, const char *url, int flags, Ij
return
AVERROR
(
EINVAL
);
}
jint
ret
=
J4AC_I
IjkIOHttp
__open
(
env
,
ijkio_http
);
jint
ret
=
J4AC_I
AndroidIO
__open
(
env
,
ijkio_http
);
if
(
J4A_ExceptionCheck__catchAll
(
env
))
{
return
AVERROR
(
EINVAL
);
}
else
if
(
ret
<
0
)
{
...
...
@@ -116,7 +116,7 @@ static int ijkio_androidio_read(IjkURLContext *h, unsigned char *buf, int size)
if
(
!
jbuffer
)
return
AVERROR
(
ENOMEM
);
ret
=
J4AC_I
IjkIOHttp
__read
(
env
,
c
->
ijkio_http
,
jbuffer
,
size
);
ret
=
J4AC_I
AndroidIO
__read
(
env
,
c
->
ijkio_http
,
jbuffer
,
size
);
if
(
J4A_ExceptionCheck__catchAll
(
env
))
return
AVERROR
(
EIO
);
else
if
(
ret
<
0
)
...
...
@@ -144,7 +144,7 @@ static int64_t ijkio_androidio_seek(IjkURLContext *h, int64_t offset, int whence
return
AVERROR
(
EINVAL
);
}
ret
=
J4AC_I
IjkIOHttp
__seek
(
env
,
c
->
ijkio_http
,
offset
,
whence
);
ret
=
J4AC_I
AndroidIO
__seek
(
env
,
c
->
ijkio_http
,
offset
,
whence
);
if
(
J4A_ExceptionCheck__catchAll
(
env
))
return
AVERROR
(
EIO
);
...
...
@@ -166,7 +166,7 @@ static int ijkio_androidio_close(IjkURLContext *h) {
J4A_DeleteGlobalRef__p
(
env
,
&
c
->
jbuffer
);
if
(
c
->
ijkio_http
)
{
J4AC_I
IjkIOHttp
__close__catchAll
(
env
,
c
->
ijkio_http
);
J4AC_I
AndroidIO
__close__catchAll
(
env
,
c
->
ijkio_http
);
J4A_DeleteGlobalRef__p
(
env
,
&
c
->
ijkio_http
);
}
...
...
ijkmedia/ijkplayer/ijkavformat/ijkioprotocol.c
浏览文件 @
a25f13c5
...
...
@@ -44,7 +44,7 @@ int ijkio_alloc_url(IjkURLContext **ph, const char *url) {
h
->
priv_data
=
calloc
(
1
,
ijkio_ffio_protocol
.
priv_data_size
);
}
#ifdef __ANDROID__
else
if
(
!
strncmp
(
url
,
"android
:"
,
strlen
(
"android
:"
)))
{
else
if
(
!
strncmp
(
url
,
"android
io:"
,
strlen
(
"androidio
:"
)))
{
h
=
(
IjkURLContext
*
)
calloc
(
1
,
sizeof
(
IjkURLContext
));
h
->
prot
=
&
ijkio_androidio_protocol
;
h
->
priv_data
=
calloc
(
1
,
ijkio_androidio_protocol
.
priv_data_size
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录