Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
2af7e610
F
Ffmpeg
项目概览
小白菜888
/
Ffmpeg
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Ffmpeg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2af7e610
编写于
6月 07, 2003
作者:
F
Fabrice Bellard
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
use custom packet allocation only for DV
Originally committed as revision 1937 to
svn://svn.ffmpeg.org/ffmpeg/trunk
上级
01310af2
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
31 addition
and
25 deletion
+31
-25
libavformat/avidec.c
libavformat/avidec.c
+31
-25
未找到文件。
libavformat/avidec.c
浏览文件 @
2af7e610
...
...
@@ -296,9 +296,17 @@ static int avi_read_packet(AVFormatContext *s, AVPacket *pkt)
int
n
,
d
[
8
],
size
,
i
;
memset
(
d
,
-
1
,
sizeof
(
int
)
*
8
);
if
(
avi
->
type
==
1
&&
avi
->
stream_index
)
goto
pkt_init
;
if
(
avi
->
type
==
1
&&
avi
->
stream_index
)
{
/* duplicate DV packet */
av_init_packet
(
pkt
);
pkt
->
data
=
avi
->
buf
;
pkt
->
size
=
avi
->
buf_size
;
pkt
->
destruct
=
__destruct_pkt
;
pkt
->
stream_index
=
avi
->
stream_index
;
avi
->
stream_index
=
!
avi
->
stream_index
;
return
0
;
}
for
(
i
=
url_ftell
(
pb
);
!
url_feof
(
pb
);
i
++
)
{
int
j
;
...
...
@@ -346,31 +354,29 @@ static int avi_read_packet(AVFormatContext *s, AVPacket *pkt)
&&
n
<
s
->
nb_streams
&&
i
+
size
<=
avi
->
movi_end
)
{
uint8_t
*
tbuf
=
av_realloc
(
avi
->
buf
,
size
+
FF_INPUT_BUFFER_PADDING_SIZE
);
if
(
!
tbuf
)
return
-
1
;
avi
->
buf
=
tbuf
;
avi
->
buf_size
=
size
;
get_buffer
(
pb
,
avi
->
buf
,
size
);
if
(
size
&
1
)
get_byte
(
pb
);
if
(
avi
->
type
!=
1
)
avi
->
stream_index
=
n
;
goto
pkt_init
;
if
(
avi
->
type
==
1
)
{
uint8_t
*
tbuf
=
av_realloc
(
avi
->
buf
,
size
+
FF_INPUT_BUFFER_PADDING_SIZE
);
if
(
!
tbuf
)
return
-
1
;
avi
->
buf
=
tbuf
;
avi
->
buf_size
=
size
;
av_init_packet
(
pkt
);
pkt
->
data
=
avi
->
buf
;
pkt
->
size
=
avi
->
buf_size
;
pkt
->
destruct
=
__destruct_pkt
;
avi
->
stream_index
=
n
;
}
else
{
av_new_packet
(
pkt
,
size
);
}
get_buffer
(
pb
,
pkt
->
data
,
size
);
if
(
size
&
1
)
get_byte
(
pb
);
pkt
->
stream_index
=
n
;
pkt
->
flags
|=
PKT_FLAG_KEY
;
// FIXME: We really should read index for that
return
0
;
}
}
return
-
1
;
pkt_init:
av_init_packet
(
pkt
);
pkt
->
data
=
avi
->
buf
;
pkt
->
size
=
avi
->
buf_size
;
pkt
->
destruct
=
__destruct_pkt
;
pkt
->
stream_index
=
avi
->
stream_index
;
pkt
->
flags
|=
PKT_FLAG_KEY
;
// FIXME: We really should read index for that
avi
->
stream_index
=
!
avi
->
stream_index
;
return
0
;
}
static
int
avi_read_close
(
AVFormatContext
*
s
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录