Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_25606643
ijkplayer
提交
6cb4dfdd
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,发现更多精彩内容 >>
提交
6cb4dfdd
编写于
9月 29, 2015
作者:
Z
Zhang Rui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
android: get vfps/vdps
上级
0a4d826c
变更
7
显示空白变更内容
内联
并排
Showing
7 changed file
with
87 addition
and
1 deletion
+87
-1
android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java
...main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java
+11
-0
ijkmedia/ijkplayer/android/ijkplayer_jni.c
ijkmedia/ijkplayer/android/ijkplayer_jni.c
+32
-0
ijkmedia/ijkplayer/ff_ffplay.c
ijkmedia/ijkplayer/ff_ffplay.c
+14
-0
ijkmedia/ijkplayer/ff_ffplay.h
ijkmedia/ijkplayer/ff_ffplay.h
+2
-0
ijkmedia/ijkplayer/ff_ffplay_debug.h
ijkmedia/ijkplayer/ff_ffplay_debug.h
+1
-1
ijkmedia/ijkplayer/ijkplayer.c
ijkmedia/ijkplayer/ijkplayer.c
+24
-0
ijkmedia/ijkplayer/ijkplayer.h
ijkmedia/ijkplayer/ijkplayer.h
+3
-0
未找到文件。
android/ijkplayer/ijkplayer-java/src/main/java/tv/danmaku/ijk/media/player/IjkMediaPlayer.java
浏览文件 @
6cb4dfdd
...
@@ -645,6 +645,17 @@ public final class IjkMediaPlayer extends AbstractMediaPlayer {
...
@@ -645,6 +645,17 @@ public final class IjkMediaPlayer extends AbstractMediaPlayer {
private
native
int
_getLoopCount
();
private
native
int
_getLoopCount
();
public
float
getVideoOutputFramesPerSecond
()
{
return
_getVideoOutputFramesPerSecond
();
}
public
float
getVideoDecodeFramesPerSecond
()
{
return
_getVideoDecodeFramesPerSecond
();
}
private
native
float
_getVideoOutputFramesPerSecond
();
private
native
float
_getVideoDecodeFramesPerSecond
();
public
native
void
setVolume
(
float
leftVolume
,
float
rightVolume
);
public
native
void
setVolume
(
float
leftVolume
,
float
rightVolume
);
@Override
@Override
...
...
ijkmedia/ijkplayer/android/ijkplayer_jni.c
浏览文件 @
6cb4dfdd
...
@@ -334,6 +334,36 @@ LABEL_RETURN:
...
@@ -334,6 +334,36 @@ LABEL_RETURN:
return
loop_count
;
return
loop_count
;
}
}
static
jfloat
ijkMediaPlayer_getVideoOutputFramesPerSecond
(
JNIEnv
*
env
,
jobject
thiz
)
{
jint
fps
=
1
;
MPTRACE
(
"%s
\n
"
,
__func__
);
IjkMediaPlayer
*
mp
=
jni_get_media_player
(
env
,
thiz
);
JNI_CHECK_GOTO
(
mp
,
env
,
NULL
,
"mpjni: getVideoOutputFramesPerSecond: null mp"
,
LABEL_RETURN
);
fps
=
ijkmp_get_video_output_frames_per_second
(
mp
);
LABEL_RETURN:
ijkmp_dec_ref_p
(
&
mp
);
return
fps
;
}
static
jfloat
ijkMediaPlayer_getVideoDecodeFramesPerSecond
(
JNIEnv
*
env
,
jobject
thiz
)
{
jint
fps
=
1
;
MPTRACE
(
"%s
\n
"
,
__func__
);
IjkMediaPlayer
*
mp
=
jni_get_media_player
(
env
,
thiz
);
JNI_CHECK_GOTO
(
mp
,
env
,
NULL
,
"mpjni: getVideoDecodeFramesPerSecond: null mp"
,
LABEL_RETURN
);
fps
=
ijkmp_get_video_decode_frames_per_second
(
mp
);
LABEL_RETURN:
ijkmp_dec_ref_p
(
&
mp
);
return
fps
;
}
static
void
static
void
IjkMediaPlayer_setVolume
(
JNIEnv
*
env
,
jobject
thiz
,
jfloat
leftVolume
,
jfloat
rightVolume
)
IjkMediaPlayer_setVolume
(
JNIEnv
*
env
,
jobject
thiz
,
jfloat
leftVolume
,
jfloat
rightVolume
)
{
{
...
@@ -921,6 +951,8 @@ static JNINativeMethod g_methods[] = {
...
@@ -921,6 +951,8 @@ static JNINativeMethod g_methods[] = {
{
"_getMediaMeta"
,
"()Landroid/os/Bundle;"
,
(
void
*
)
IjkMediaPlayer_getMediaMeta
},
{
"_getMediaMeta"
,
"()Landroid/os/Bundle;"
,
(
void
*
)
IjkMediaPlayer_getMediaMeta
},
{
"_setLoopCount"
,
"(I)V"
,
(
void
*
)
IjkMediaPlayer_setLoopCount
},
{
"_setLoopCount"
,
"(I)V"
,
(
void
*
)
IjkMediaPlayer_setLoopCount
},
{
"_getLoopCount"
,
"()I"
,
(
void
*
)
IjkMediaPlayer_getLoopCount
},
{
"_getLoopCount"
,
"()I"
,
(
void
*
)
IjkMediaPlayer_getLoopCount
},
{
"_getVideoOutputFramesPerSecond"
,
"()F"
,
(
void
*
)
ijkMediaPlayer_getVideoOutputFramesPerSecond
},
{
"_getVideoDecodeFramesPerSecond"
,
"()F"
,
(
void
*
)
ijkMediaPlayer_getVideoDecodeFramesPerSecond
},
{
"native_profileBegin"
,
"(Ljava/lang/String;)V"
,
(
void
*
)
IjkMediaPlayer_native_profileBegin
},
{
"native_profileBegin"
,
"(Ljava/lang/String;)V"
,
(
void
*
)
IjkMediaPlayer_native_profileBegin
},
{
"native_profileEnd"
,
"()V"
,
(
void
*
)
IjkMediaPlayer_native_profileEnd
},
{
"native_profileEnd"
,
"()V"
,
(
void
*
)
IjkMediaPlayer_native_profileEnd
},
...
...
ijkmedia/ijkplayer/ff_ffplay.c
浏览文件 @
6cb4dfdd
...
@@ -3850,6 +3850,20 @@ int ffp_get_video_rotate_degrees(FFPlayer *ffp)
...
@@ -3850,6 +3850,20 @@ int ffp_get_video_rotate_degrees(FFPlayer *ffp)
return
theta
;
return
theta
;
}
}
float
ffp_get_video_output_frames_per_second
(
FFPlayer
*
ffp
)
{
if
(
!
ffp
)
return
0
.
0
f
;
return
ffp
->
vfps
;
}
float
ffp_get_video_decode_frames_per_second
(
FFPlayer
*
ffp
)
{
if
(
!
ffp
)
return
0
.
0
f
;
return
ffp
->
vdps
;
}
IjkMediaMeta
*
ffp_get_meta_l
(
FFPlayer
*
ffp
)
IjkMediaMeta
*
ffp_get_meta_l
(
FFPlayer
*
ffp
)
{
{
if
(
!
ffp
)
if
(
!
ffp
)
...
...
ijkmedia/ijkplayer/ff_ffplay.h
浏览文件 @
6cb4dfdd
...
@@ -96,6 +96,8 @@ void ffp_set_video_codec_info(FFPlayer *ffp, const char *module, const char
...
@@ -96,6 +96,8 @@ void ffp_set_video_codec_info(FFPlayer *ffp, const char *module, const char
void
ffp_set_audio_codec_info
(
FFPlayer
*
ffp
,
const
char
*
module
,
const
char
*
codec
);
void
ffp_set_audio_codec_info
(
FFPlayer
*
ffp
,
const
char
*
module
,
const
char
*
codec
);
int
ffp_get_video_rotate_degrees
(
FFPlayer
*
ffp
);
int
ffp_get_video_rotate_degrees
(
FFPlayer
*
ffp
);
float
ffp_get_video_output_frames_per_second
(
FFPlayer
*
ffp
);
float
ffp_get_video_decode_frames_per_second
(
FFPlayer
*
ffp
);
// must be freed with free();
// must be freed with free();
struct
IjkMediaMeta
*
ffp_get_meta_l
(
FFPlayer
*
ffp
);
struct
IjkMediaMeta
*
ffp_get_meta_l
(
FFPlayer
*
ffp
);
...
...
ijkmedia/ijkplayer/ff_ffplay_debug.h
浏览文件 @
6cb4dfdd
...
@@ -25,7 +25,7 @@
...
@@ -25,7 +25,7 @@
#define FFP_XPS_PERIOD (3)
#define FFP_XPS_PERIOD (3)
#define FFP_SHOW_VPS_DPS (0
#define FFP_SHOW_VPS_DPS (0
)
#define FFP_SHOW_VFPS_FFPLAY (FFP_SHOW_VPS_DPS)
#define FFP_SHOW_VFPS_FFPLAY (FFP_SHOW_VPS_DPS)
#define FFP_SHOW_VDPS_AVCODEC (FFP_SHOW_VPS_DPS)
#define FFP_SHOW_VDPS_AVCODEC (FFP_SHOW_VPS_DPS)
#define FFP_SHOW_VDPS_VIDEOTOOLBOX (FFP_SHOW_VPS_DPS)
#define FFP_SHOW_VDPS_VIDEOTOOLBOX (FFP_SHOW_VPS_DPS)
...
...
ijkmedia/ijkplayer/ijkplayer.c
浏览文件 @
6cb4dfdd
...
@@ -198,6 +198,30 @@ int ijkmp_get_audio_codec_info(IjkMediaPlayer *mp, char **codec_info)
...
@@ -198,6 +198,30 @@ int ijkmp_get_audio_codec_info(IjkMediaPlayer *mp, char **codec_info)
return
ret
;
return
ret
;
}
}
float
ijkmp_get_video_output_frames_per_second
(
IjkMediaPlayer
*
mp
)
{
assert
(
mp
);
MPTRACE
(
"%s
\n
"
,
__func__
);
pthread_mutex_lock
(
&
mp
->
mutex
);
float
ret
=
ffp_get_video_output_frames_per_second
(
mp
->
ffplayer
);
pthread_mutex_unlock
(
&
mp
->
mutex
);
MPTRACE
(
"%s()=void
\n
"
,
__func__
);
return
ret
;
}
float
ijkmp_get_video_decode_frames_per_second
(
IjkMediaPlayer
*
mp
)
{
assert
(
mp
);
MPTRACE
(
"%s
\n
"
,
__func__
);
pthread_mutex_lock
(
&
mp
->
mutex
);
float
ret
=
ffp_get_video_decode_frames_per_second
(
mp
->
ffplayer
);
pthread_mutex_unlock
(
&
mp
->
mutex
);
MPTRACE
(
"%s()=void
\n
"
,
__func__
);
return
ret
;
}
IjkMediaMeta
*
ijkmp_get_meta_l
(
IjkMediaPlayer
*
mp
)
IjkMediaMeta
*
ijkmp_get_meta_l
(
IjkMediaPlayer
*
mp
)
{
{
assert
(
mp
);
assert
(
mp
);
...
...
ijkmedia/ijkplayer/ijkplayer.h
浏览文件 @
6cb4dfdd
...
@@ -171,6 +171,9 @@ void ijkmp_set_option_int(IjkMediaPlayer *mp, int opt_category, const
...
@@ -171,6 +171,9 @@ void ijkmp_set_option_int(IjkMediaPlayer *mp, int opt_category, const
int
ijkmp_get_video_codec_info
(
IjkMediaPlayer
*
mp
,
char
**
codec_info
);
int
ijkmp_get_video_codec_info
(
IjkMediaPlayer
*
mp
,
char
**
codec_info
);
int
ijkmp_get_audio_codec_info
(
IjkMediaPlayer
*
mp
,
char
**
codec_info
);
int
ijkmp_get_audio_codec_info
(
IjkMediaPlayer
*
mp
,
char
**
codec_info
);
float
ijkmp_get_video_output_frames_per_second
(
IjkMediaPlayer
*
mp
);
float
ijkmp_get_video_decode_frames_per_second
(
IjkMediaPlayer
*
mp
);
// must be freed with free();
// must be freed with free();
IjkMediaMeta
*
ijkmp_get_meta_l
(
IjkMediaPlayer
*
mp
);
IjkMediaMeta
*
ijkmp_get_meta_l
(
IjkMediaPlayer
*
mp
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录