Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
NotesChapter
ijkplayer
提交
ec6eed4c
I
ijkplayer
项目概览
NotesChapter
/
ijkplayer
与 Fork 源项目一致
从无法访问的项目Fork
通知
5
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,发现更多精彩内容 >>
提交
ec6eed4c
编写于
12月 28, 2015
作者:
Z
Zhang Rui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ijkavformat/async: make capacity optional
上级
25cf5140
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
11 addition
and
7 deletion
+11
-7
ijkmedia/ijkplayer/ijkavformat/async.c
ijkmedia/ijkplayer/ijkavformat/async.c
+11
-7
未找到文件。
ijkmedia/ijkplayer/ijkavformat/async.c
浏览文件 @
ec6eed4c
...
...
@@ -44,8 +44,6 @@
#include <unistd.h>
#endif
#define BUFFER_CAPACITY (4 * 1024 * 1024)
#define READ_BACK_CAPACITY (4 * 1024 * 1024)
#define SHORT_SEEK_THRESHOLD (256 * 1024)
typedef
struct
RingBuffer
...
...
@@ -84,16 +82,18 @@ typedef struct Context {
/* options */
int64_t
opaque
;
int64_t
forwards_capacity
;
int64_t
backwards_capacity
;
}
Context
;
static
int
ring_init
(
RingBuffer
*
ring
,
unsigned
int
capacity
,
in
t
read_back_capacity
)
static
int
ring_init
(
RingBuffer
*
ring
,
int64_t
capacity
,
int64_
t
read_back_capacity
)
{
memset
(
ring
,
0
,
sizeof
(
RingBuffer
));
ring
->
fifo
=
av_fifo_alloc
(
capacity
+
read_back_capacity
);
ring
->
fifo
=
av_fifo_alloc
(
(
unsigned
int
)(
capacity
+
read_back_capacity
)
);
if
(
!
ring
->
fifo
)
return
AVERROR
(
ENOMEM
);
ring
->
read_back_capacity
=
read_back_capacity
;
ring
->
read_back_capacity
=
(
int
)
read_back_capacity
;
return
0
;
}
...
...
@@ -190,7 +190,7 @@ static void call_inject(URLContext *h)
stat
.
size
=
sizeof
(
stat
);
stat
.
buf_forwards
=
ring_size
(
&
c
->
ring
);
stat
.
buf_backwards
=
ring_size_of_read_back
(
&
c
->
ring
);
stat
.
buf_capacity
=
BUFFER_CAPACITY
+
READ_BACK_CAPACITY
;
stat
.
buf_capacity
=
c
->
forwards_capacity
+
c
->
backwards_capacity
;
inject_callback
(
opaque
,
IJKAVINJECT_ASYNC_STATISTIC
,
&
stat
,
sizeof
(
stat
));
}
...
...
@@ -273,7 +273,7 @@ static int async_open(URLContext *h, const char *arg, int flags, AVDictionary **
av_strstart
(
arg
,
"async:"
,
&
arg
);
ret
=
ring_init
(
&
c
->
ring
,
BUFFER_CAPACITY
,
READ_BACK_CAPACITY
);
ret
=
ring_init
(
&
c
->
ring
,
c
->
forwards_capacity
,
c
->
backwards_capacity
);
if
(
ret
<
0
)
goto
fifo_fail
;
...
...
@@ -502,6 +502,10 @@ static int64_t async_seek(URLContext *h, int64_t pos, int whence)
static
const
AVOption
options
[]
=
{
{
"ijkinject-opaque"
,
"private data of user, passed with custom callback"
,
OFFSET
(
opaque
),
IJKAV_OPTION_INT64
(
0
,
INT64_MIN
,
INT64_MAX
)
},
{
"async-forwards-capacity"
,
"max bytes that may be read forward in background"
,
OFFSET
(
forwards_capacity
),
IJKAV_OPTION_INT64
(
128
*
1024
,
128
*
1024
,
128
*
1024
*
1024
)
},
{
"async-backwards-capacity"
,
"max bytes that may be seek backward without seeking in inner protocol"
,
OFFSET
(
backwards_capacity
),
IJKAV_OPTION_INT64
(
128
*
1024
,
128
*
1024
,
128
*
1024
*
1024
)
},
{
NULL
},
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录