Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
8cd13128
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,发现更多精彩内容 >>
提交
8cd13128
编写于
11月 05, 2006
作者:
B
Baptiste Coudurier
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
use AVRational and ff_frame_rate_tab for frame_rate
Originally committed as revision 6905 to
svn://svn.ffmpeg.org/ffmpeg/trunk
上级
bcea9605
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
8 addition
and
30 deletion
+8
-30
libavcodec/parser.c
libavcodec/parser.c
+8
-30
未找到文件。
libavcodec/parser.c
浏览文件 @
8cd13128
...
...
@@ -225,7 +225,7 @@ typedef struct ParseContext1{
ParseContext
pc
;
/* XXX/FIXME PC1 vs. PC */
/* MPEG2 specific */
int
frame_rate
;
AVRational
frame_rate
;
int
progressive_sequence
;
int
width
,
height
;
...
...
@@ -296,32 +296,10 @@ int ff_combine_frame(ParseContext *pc, int next, uint8_t **buf, int *buf_size)
return
0
;
}
/* XXX: merge with libavcodec ? */
#define MPEG1_FRAME_RATE_BASE 1001
static
const
int
frame_rate_tab
[
16
]
=
{
0
,
24000
,
24024
,
25025
,
30000
,
30030
,
50050
,
60000
,
60060
,
// Xing's 15fps: (9)
15015
,
// libmpeg3's "Unofficial economy rates": (10-13)
5005
,
10010
,
12012
,
15015
,
// random, just to avoid segfault !never encode these
25025
,
25025
,
};
#ifdef CONFIG_MPEGVIDEO_PARSER
extern
const
AVRational
ff_frame_rate_tab
[];
//FIXME move into mpeg12.c
static
void
mpegvideo_extract_headers
(
AVCodecParserContext
*
s
,
AVCodecContext
*
avctx
,
...
...
@@ -353,8 +331,8 @@ static void mpegvideo_extract_headers(AVCodecParserContext *s,
pc
->
height
=
((
buf
[
1
]
&
0x0f
)
<<
8
)
|
buf
[
2
];
avcodec_set_dimensions
(
avctx
,
pc
->
width
,
pc
->
height
);
frame_rate_index
=
buf
[
3
]
&
0xf
;
pc
->
frame_rate
=
avctx
->
time_base
.
den
=
frame_rate_tab
[
frame_rate_index
]
;
avctx
->
time_base
.
num
=
MPEG1_FRAME_RATE_BASE
;
pc
->
frame_rate
.
den
=
avctx
->
time_base
.
den
=
ff_frame_rate_tab
[
frame_rate_index
].
num
;
pc
->
frame_rate
.
num
=
avctx
->
time_base
.
num
=
ff_frame_rate_tab
[
frame_rate_index
].
den
;
avctx
->
bit_rate
=
((
buf
[
4
]
<<
10
)
|
(
buf
[
5
]
<<
2
)
|
(
buf
[
6
]
>>
6
))
*
400
;
avctx
->
codec_id
=
CODEC_ID_MPEG1VIDEO
;
avctx
->
sub_id
=
1
;
...
...
@@ -378,8 +356,8 @@ static void mpegvideo_extract_headers(AVCodecParserContext *s,
pc
->
height
|=
(
vert_size_ext
<<
12
);
avctx
->
bit_rate
+=
(
bit_rate_ext
<<
18
)
*
400
;
avcodec_set_dimensions
(
avctx
,
pc
->
width
,
pc
->
height
);
avctx
->
time_base
.
den
=
pc
->
frame_rate
*
(
frame_rate_ext_n
+
1
);
avctx
->
time_base
.
num
=
MPEG1_FRAME_RATE_BASE
*
(
frame_rate_ext_d
+
1
);
avctx
->
time_base
.
den
=
pc
->
frame_rate
.
den
*
(
frame_rate_ext_n
+
1
);
avctx
->
time_base
.
num
=
pc
->
frame_rate
.
num
*
(
frame_rate_ext_d
+
1
);
avctx
->
codec_id
=
CODEC_ID_MPEG2VIDEO
;
avctx
->
sub_id
=
2
;
/* forces MPEG2 */
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录