Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小白菜888
Ffmpeg
提交
85a5bc05
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,发现更多精彩内容 >>
提交
85a5bc05
编写于
2月 23, 2013
作者:
A
Anton Khirnov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
lavf: remove disabled FF_API_R_FRAME_RATE cruft
上级
7b486ab1
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
0 addition
and
110 deletion
+0
-110
libavformat/avformat.h
libavformat/avformat.h
+0
-17
libavformat/avisynth.c
libavformat/avisynth.c
+0
-3
libavformat/avs.c
libavformat/avs.c
+0
-3
libavformat/electronicarts.c
libavformat/electronicarts.c
+0
-3
libavformat/matroskadec.c
libavformat/matroskadec.c
+0
-3
libavformat/mov.c
libavformat/mov.c
+0
-6
libavformat/nuv.c
libavformat/nuv.c
+0
-3
libavformat/r3d.c
libavformat/r3d.c
+0
-3
libavformat/rawdec.c
libavformat/rawdec.c
+0
-3
libavformat/rmdec.c
libavformat/rmdec.c
+0
-3
libavformat/utils.c
libavformat/utils.c
+0
-59
libavformat/version.h
libavformat/version.h
+0
-4
未找到文件。
libavformat/avformat.h
浏览文件 @
85a5bc05
...
...
@@ -632,17 +632,6 @@ typedef struct AVStream {
* not actually used for encoding.
*/
AVCodecContext
*
codec
;
#if FF_API_R_FRAME_RATE
/**
* Real base framerate of the stream.
* This is the lowest framerate with which all timestamps can be
* represented accurately (it is the least common multiple of all
* framerates in the stream). Note, this value is just a guess!
* For example, if the time base is 1/90000 and all frames have either
* approximately 3600 or 1800 timer ticks, then r_frame_rate will be 50/1.
*/
AVRational
r_frame_rate
;
#endif
void
*
priv_data
;
/**
...
...
@@ -718,12 +707,6 @@ typedef struct AVStream {
*/
#define MAX_STD_TIMEBASES (60*12+5)
struct
{
#if FF_API_R_FRAME_RATE
int64_t
last_dts
;
int64_t
duration_gcd
;
int
duration_count
;
double
duration_error
[
MAX_STD_TIMEBASES
];
#endif
int
nb_decoded_frames
;
int
found_decoder
;
...
...
libavformat/avisynth.c
浏览文件 @
85a5bc05
...
...
@@ -122,9 +122,6 @@ static int avisynth_read_header(AVFormatContext *s)
st
->
codec
->
codec_type
=
AVMEDIA_TYPE_VIDEO
;
st
->
avg_frame_rate
.
num
=
stream
->
info
.
dwRate
;
st
->
avg_frame_rate
.
den
=
stream
->
info
.
dwScale
;
#if FF_API_R_FRAME_RATE
st
->
r_frame_rate
=
st
->
avg_frame_rate
;
#endif
st
->
codec
->
width
=
imgfmt
.
bmiHeader
.
biWidth
;
st
->
codec
->
height
=
imgfmt
.
bmiHeader
.
biHeight
;
...
...
libavformat/avs.c
浏览文件 @
85a5bc05
...
...
@@ -188,9 +188,6 @@ static int avs_read_packet(AVFormatContext * s, AVPacket * pkt)
avs
->
st_video
->
codec
->
height
=
avs
->
height
;
avs
->
st_video
->
codec
->
bits_per_coded_sample
=
avs
->
bits_per_sample
;
avs
->
st_video
->
nb_frames
=
avs
->
nb_frames
;
#if FF_API_R_FRAME_RATE
avs
->
st_video
->
r_frame_rate
=
#endif
avs
->
st_video
->
avg_frame_rate
=
(
AVRational
){
avs
->
fps
,
1
};
}
return
avs_read_video_packet
(
s
,
pkt
,
type
,
sub_type
,
size
,
...
...
libavformat/electronicarts.c
浏览文件 @
85a5bc05
...
...
@@ -432,9 +432,6 @@ static int ea_read_header(AVFormatContext *s)
st
->
codec
->
width
=
ea
->
width
;
st
->
codec
->
height
=
ea
->
height
;
avpriv_set_pts_info
(
st
,
33
,
ea
->
time_base
.
num
,
ea
->
time_base
.
den
);
#if FF_API_R_FRAME_RATE
st
->
r_frame_rate
=
#endif
st
->
avg_frame_rate
=
(
AVRational
){
ea
->
time_base
.
den
,
ea
->
time_base
.
num
};
}
...
...
libavformat/matroskadec.c
浏览文件 @
85a5bc05
...
...
@@ -1647,9 +1647,6 @@ static int matroska_read_header(AVFormatContext *s)
if
(
track
->
default_duration
)
{
av_reduce
(
&
st
->
avg_frame_rate
.
num
,
&
st
->
avg_frame_rate
.
den
,
1000000000
,
track
->
default_duration
,
30000
);
#if FF_API_R_FRAME_RATE
st
->
r_frame_rate
=
st
->
avg_frame_rate
;
#endif
}
}
else
if
(
track
->
type
==
MATROSKA_TRACK_TYPE_AUDIO
)
{
st
->
codec
->
codec_type
=
AVMEDIA_TYPE_AUDIO
;
...
...
libavformat/mov.c
浏览文件 @
85a5bc05
...
...
@@ -2061,12 +2061,6 @@ static int mov_read_trak(MOVContext *c, AVIOContext *pb, MOVAtom atom)
if
(
st
->
duration
!=
AV_NOPTS_VALUE
)
av_reduce
(
&
st
->
avg_frame_rate
.
num
,
&
st
->
avg_frame_rate
.
den
,
sc
->
time_scale
*
st
->
nb_frames
,
st
->
duration
,
INT_MAX
);
#if FF_API_R_FRAME_RATE
if
(
sc
->
stts_count
==
1
||
(
sc
->
stts_count
==
2
&&
sc
->
stts_data
[
1
].
count
==
1
))
av_reduce
(
&
st
->
r_frame_rate
.
num
,
&
st
->
r_frame_rate
.
den
,
sc
->
time_scale
,
sc
->
stts_data
[
0
].
duration
,
INT_MAX
);
#endif
}
switch
(
st
->
codec
->
codec_id
)
{
...
...
libavformat/nuv.c
浏览文件 @
85a5bc05
...
...
@@ -195,9 +195,6 @@ static int nuv_header(AVFormatContext *s)
vst
->
codec
->
bits_per_coded_sample
=
10
;
vst
->
sample_aspect_ratio
=
av_d2q
(
aspect
*
height
/
width
,
10000
);
#if FF_API_R_FRAME_RATE
vst
->
r_frame_rate
=
#endif
vst
->
avg_frame_rate
=
av_d2q
(
fps
,
60000
);
avpriv_set_pts_info
(
vst
,
32
,
1
,
1000
);
}
else
...
...
libavformat/r3d.c
浏览文件 @
85a5bc05
...
...
@@ -88,9 +88,6 @@ static int r3d_read_red1(AVFormatContext *s)
framerate
.
num
=
avio_rb16
(
s
->
pb
);
framerate
.
den
=
avio_rb16
(
s
->
pb
);
if
(
framerate
.
num
&&
framerate
.
den
)
{
#if FF_API_R_FRAME_RATE
st
->
r_frame_rate
=
#endif
st
->
avg_frame_rate
=
framerate
;
}
...
...
libavformat/rawdec.c
浏览文件 @
85a5bc05
...
...
@@ -92,9 +92,6 @@ int ff_raw_video_read_header(AVFormatContext *s)
goto
fail
;
}
#if FF_API_R_FRAME_RATE
st
->
r_frame_rate
=
#endif
st
->
avg_frame_rate
=
framerate
;
avpriv_set_pts_info
(
st
,
64
,
framerate
.
den
,
framerate
.
num
);
...
...
libavformat/rmdec.c
浏览文件 @
85a5bc05
...
...
@@ -333,9 +333,6 @@ ff_rm_read_mdpr_codecdata (AVFormatContext *s, AVIOContext *pb,
av_reduce
(
&
st
->
avg_frame_rate
.
den
,
&
st
->
avg_frame_rate
.
num
,
0x10000
,
fps
,
(
1
<<
30
)
-
1
);
#if FF_API_R_FRAME_RATE
st
->
r_frame_rate
=
st
->
avg_frame_rate
;
#endif
}
skip:
...
...
libavformat/utils.c
浏览文件 @
85a5bc05
...
...
@@ -2276,9 +2276,6 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
}
for
(
i
=
0
;
i
<
ic
->
nb_streams
;
i
++
)
{
#if FF_API_R_FRAME_RATE
ic
->
streams
[
i
]
->
info
->
last_dts
=
AV_NOPTS_VALUE
;
#endif
ic
->
streams
[
i
]
->
info
->
fps_first_dts
=
AV_NOPTS_VALUE
;
ic
->
streams
[
i
]
->
info
->
fps_last_dts
=
AV_NOPTS_VALUE
;
}
...
...
@@ -2427,31 +2424,6 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
break
;
}
}
#if FF_API_R_FRAME_RATE
{
int64_t
last
=
st
->
info
->
last_dts
;
if
(
pkt
->
dts
!=
AV_NOPTS_VALUE
&&
last
!=
AV_NOPTS_VALUE
&&
pkt
->
dts
>
last
){
int64_t
duration
=
pkt
->
dts
-
last
;
double
dur
=
duration
*
av_q2d
(
st
->
time_base
);
if
(
st
->
info
->
duration_count
<
2
)
memset
(
st
->
info
->
duration_error
,
0
,
sizeof
(
st
->
info
->
duration_error
));
for
(
i
=
1
;
i
<
FF_ARRAY_ELEMS
(
st
->
info
->
duration_error
);
i
++
)
{
int
framerate
=
get_std_framerate
(
i
);
int
ticks
=
lrintf
(
dur
*
framerate
/
(
1001
*
12
));
double
error
=
dur
-
(
double
)
ticks
*
1001
*
12
/
framerate
;
st
->
info
->
duration_error
[
i
]
+=
error
*
error
;
}
st
->
info
->
duration_count
++
;
// ignore the first 4 values, they might have some random jitter
if
(
st
->
info
->
duration_count
>
3
)
st
->
info
->
duration_gcd
=
av_gcd
(
st
->
info
->
duration_gcd
,
duration
);
}
if
(
last
==
AV_NOPTS_VALUE
||
st
->
info
->
duration_count
<=
1
)
st
->
info
->
last_dts
=
pkt
->
dts
;
}
#endif
if
(
st
->
parser
&&
st
->
parser
->
parser
->
split
&&
!
st
->
codec
->
extradata
){
int
i
=
st
->
parser
->
parser
->
split
(
st
->
codec
,
pkt
->
data
,
pkt
->
size
);
if
(
i
>
0
&&
i
<
FF_MAX_EXTRADATA_SIZE
)
{
...
...
@@ -2514,30 +2486,6 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
best_fps
,
12
*
1001
,
INT_MAX
);
}
}
#if FF_API_R_FRAME_RATE
// the check for tb_unreliable() is not completely correct, since this is not about handling
// a unreliable/inexact time base, but a time base that is finer than necessary, as e.g.
// ipmovie.c produces.
if
(
tb_unreliable
(
st
->
codec
)
&&
st
->
info
->
duration_count
>
15
&&
st
->
info
->
duration_gcd
>
1
&&
!
st
->
r_frame_rate
.
num
)
av_reduce
(
&
st
->
r_frame_rate
.
num
,
&
st
->
r_frame_rate
.
den
,
st
->
time_base
.
den
,
st
->
time_base
.
num
*
st
->
info
->
duration_gcd
,
INT_MAX
);
if
(
st
->
info
->
duration_count
&&
!
st
->
r_frame_rate
.
num
&&
tb_unreliable
(
st
->
codec
))
{
int
num
=
0
;
double
best_error
=
2
*
av_q2d
(
st
->
time_base
);
best_error
=
best_error
*
best_error
*
st
->
info
->
duration_count
*
1000
*
12
*
30
;
for
(
j
=
1
;
j
<
FF_ARRAY_ELEMS
(
st
->
info
->
duration_error
);
j
++
)
{
double
error
=
st
->
info
->
duration_error
[
j
]
*
get_std_framerate
(
j
);
if
(
error
<
best_error
){
best_error
=
error
;
num
=
get_std_framerate
(
j
);
}
}
// do not increase frame rate by more than 1 % in order to match a standard rate.
if
(
num
&&
(
!
st
->
r_frame_rate
.
num
||
(
double
)
num
/
(
12
*
1001
)
<
1
.
01
*
av_q2d
(
st
->
r_frame_rate
)))
av_reduce
(
&
st
->
r_frame_rate
.
num
,
&
st
->
r_frame_rate
.
den
,
num
,
12
*
1001
,
INT_MAX
);
}
#endif
}
else
if
(
st
->
codec
->
codec_type
==
AVMEDIA_TYPE_AUDIO
)
{
if
(
!
st
->
codec
->
bits_per_coded_sample
)
st
->
codec
->
bits_per_coded_sample
=
av_get_bits_per_sample
(
st
->
codec
->
codec_id
);
...
...
@@ -2766,9 +2714,6 @@ AVStream *avformat_new_stream(AVFormatContext *s, AVCodec *c)
st
->
sample_aspect_ratio
=
(
AVRational
){
0
,
1
};
#if FF_API_R_FRAME_RATE
st
->
info
->
last_dts
=
AV_NOPTS_VALUE
;
#endif
st
->
info
->
fps_first_dts
=
AV_NOPTS_VALUE
;
st
->
info
->
fps_last_dts
=
AV_NOPTS_VALUE
;
...
...
@@ -2903,10 +2848,6 @@ static void dump_stream_format(AVFormatContext *ic, int i, int index, int is_out
if
(
st
->
codec
->
codec_type
==
AVMEDIA_TYPE_VIDEO
){
if
(
st
->
avg_frame_rate
.
den
&&
st
->
avg_frame_rate
.
num
)
print_fps
(
av_q2d
(
st
->
avg_frame_rate
),
"fps"
);
#if FF_API_R_FRAME_RATE
if
(
st
->
r_frame_rate
.
den
&&
st
->
r_frame_rate
.
num
)
print_fps
(
av_q2d
(
st
->
r_frame_rate
),
"tbr"
);
#endif
if
(
st
->
time_base
.
den
&&
st
->
time_base
.
num
)
print_fps
(
1
/
av_q2d
(
st
->
time_base
),
"tbn"
);
if
(
st
->
codec
->
time_base
.
den
&&
st
->
codec
->
time_base
.
num
)
...
...
libavformat/version.h
浏览文件 @
85a5bc05
...
...
@@ -49,8 +49,4 @@
* the public API and may change, break or disappear at any time.
*/
#ifndef FF_API_R_FRAME_RATE
#define FF_API_R_FRAME_RATE (LIBAVFORMAT_VERSION_MAJOR < 55)
#endif
#endif
/* AVFORMAT_VERSION_H */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录