Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_25606643
ijkplayer
提交
9acc15b1
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,发现更多精彩内容 >>
提交
9acc15b1
编写于
1月 09, 2017
作者:
X
Xinzheng Zhang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ios/ffplayer: update playable duration with cache size
上级
5f95b705
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
7 deletion
+24
-7
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m
...JKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m
+24
-7
未找到文件。
ios/IJKMediaPlayer/IJKMediaPlayer/IJKFFMoviePlayerController.m
浏览文件 @
9acc15b1
...
...
@@ -29,7 +29,7 @@
#import "IJKAudioKit.h"
#import "IJKNotificationManager.h"
#import "NSString+IJKMedia.h"
#import "ijkioapplication.h"
#include "string.h"
static
const
char
*
kIJKFFRequiredFFmpegVersion
=
"ff3.2--ijk0.7.5--20161205--001"
;
...
...
@@ -69,6 +69,7 @@ static const char *kIJKFFRequiredFFmpegVersion = "ff3.2--ijk0.7.5--20161205--001
IJKNotificationManager
*
_notificationManager
;
AVAppAsyncStatistic
_asyncStat
;
IjkIOAppCacheStatistic
_cacheStat
;
BOOL
_shouldShowHudView
;
NSTimer
*
_hudTimer
;
}
...
...
@@ -573,12 +574,16 @@ inline static int getPlayerOption(IJKFFOptionCategory category)
NSTimeInterval
demux_cache
=
((
NSTimeInterval
)
ijkmp_get_playable_duration
(
_mediaPlayer
))
/
1000
;
int64_t
buf_forwards
=
_asyncStat
.
buf_forwards
;
if
(
buf_forwards
>
0
)
{
int64_t
bit_rate
=
ijkmp_get_property_int64
(
_mediaPlayer
,
FFP_PROP_INT64_BIT_RATE
,
0
);
if
(
bit_rate
>
0
)
{
NSTimeInterval
io_cache
=
((
float
)
buf_forwards
)
*
8
/
bit_rate
;
return
io_cache
+
demux_cache
;
}
int64_t
cache_forwards
=
_cacheStat
.
cache_buf_forwards
;
int64_t
bit_rate
=
ijkmp_get_property_int64
(
_mediaPlayer
,
FFP_PROP_INT64_BIT_RATE
,
0
);
if
(
buf_forwards
>
0
&&
bit_rate
>
0
)
{
NSTimeInterval
io_cache
=
((
float
)
buf_forwards
)
*
8
/
bit_rate
;
demux_cache
+=
io_cache
;
}
if
(
cache_forwards
>
0
&&
bit_rate
>
0
)
{
NSTimeInterval
cache_cache
=
((
float
)
cache_forwards
)
*
8
/
bit_rate
;
demux_cache
+=
cache_cache
;
}
return
demux_cache
;
...
...
@@ -1241,6 +1246,16 @@ static int onInjectAsyncStatistic(IJKFFMoviePlayerController *mpc, int type, voi
return
0
;
}
static
int
onInectIJKIOStatistic
(
IJKFFMoviePlayerController
*
mpc
,
int
type
,
void
*
data
,
size_t
data_size
)
{
IjkIOAppCacheStatistic
*
realData
=
data
;
assert
(
realData
);
assert
(
sizeof
(
IjkIOAppCacheStatistic
)
==
data_size
);
mpc
->
_cacheStat
=
*
realData
;
return
0
;
}
static
int64_t
calculateElapsed
(
int64_t
begin
,
int64_t
end
)
{
if
(
begin
<=
0
)
...
...
@@ -1353,6 +1368,8 @@ static int ijkff_inject_callback(void *opaque, int message, void *data, size_t d
return
onInjectIOControl
(
mpc
,
mpc
.
liveOpenDelegate
,
message
,
data
,
data_size
);
case
AVAPP_EVENT_ASYNC_STATISTIC
:
return
onInjectAsyncStatistic
(
mpc
,
message
,
data
,
data_size
);
case
IJKIOAPP_EVENT_CACHE_STATISTIC
:
return
onInectIJKIOStatistic
(
mpc
,
message
,
data
,
data_size
);
case
AVAPP_CTRL_DID_TCP_OPEN
:
return
onInjectTcpIOControl
(
mpc
,
mpc
.
tcpOpenDelegate
,
message
,
data
,
data_size
);
case
AVAPP_EVENT_WILL_HTTP_OPEN
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录