diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-01-21 18:31:54 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-01-21 19:48:05 +0100 |
commit | 8e5e84c2a2a21a979b48e80c5a8dd44754ab3f21 (patch) | |
tree | b77bbb3a3018c40e7e9ad4b3c70ab7107735cbb0 /libavformat/mov.c | |
parent | 76421982d0427aeef403b7842a233c881ae1600a (diff) | |
download | ffmpeg-8e5e84c2a2a21a979b48e80c5a8dd44754ab3f21.tar.gz |
avformat/mov: Ignore the last frame for duration and fps calculation if it looks suspect
The used heuristic will potentially need to be finetuned
Fixes daemon404s fps.mov
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/mov.c')
-rw-r--r-- | libavformat/mov.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c index 413a508b64..a24df84b54 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -1940,6 +1940,12 @@ static int mov_read_stts(MOVContext *c, AVIOContext *pb, MOVAtom atom) av_dlog(c->fc, "sample_count=%d, sample_duration=%d\n", sample_count, sample_duration); + if ( i+1 == entries + && i + && sample_count == 1 + && total_sample_count > 100 + && sample_duration/10 > duration / total_sample_count) + sample_duration = duration / total_sample_count; duration+=(int64_t)sample_duration*sample_count; total_sample_count+=sample_count; } |