mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
lavf: use avg_frame_rate and packet number to exit find_stream_info
qatar does this too but clobbers the AVPacket.duration by approximate values. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
1171d938af
commit
ad8e3304f7
@ -2510,8 +2510,13 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
|
||||
|
||||
st = ic->streams[pkt->stream_index];
|
||||
if (st->codec_info_nb_frames>1) {
|
||||
int64_t t;
|
||||
if (st->time_base.den > 0 && (t=av_rescale_q(st->info->codec_info_duration, st->time_base, AV_TIME_BASE_Q)) >= ic->max_analyze_duration) {
|
||||
int64_t t=0;
|
||||
if (st->time_base.den > 0)
|
||||
t = av_rescale_q(st->info->codec_info_duration, st->time_base, AV_TIME_BASE_Q);
|
||||
if (st->avg_frame_rate.num > 0)
|
||||
t = FFMAX(t, av_rescale_q(st->codec_info_nb_frames, (AVRational){st->avg_frame_rate.den, st->avg_frame_rate.num}, AV_TIME_BASE_Q));
|
||||
|
||||
if (t >= ic->max_analyze_duration) {
|
||||
av_log(ic, AV_LOG_WARNING, "max_analyze_duration %d reached at %"PRId64"\n", ic->max_analyze_duration, t);
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user