[FFmpeg-cvslog] avformat/utils: Use codec_info_duration_fields in fps calculation end decission when no timestamps and thus no duration_count is available
Michael Niedermayer
git at videolan.org
Sat Apr 18 03:30:06 CEST 2015
ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sat Apr 18 00:58:51 2015 +0200| [80fa48a413a066a87e1a5683d248ce921a444292] | committer: Michael Niedermayer
avformat/utils: Use codec_info_duration_fields in fps calculation end decission when no timestamps and thus no duration_count is available
This avoids waiting for a count to increase which will always be 0 and may
reduce the startup delay for affected streams (rare)
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=80fa48a413a066a87e1a5683d248ce921a444292
---
libavformat/utils.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 6c7ca0a..15aaa70 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -3136,9 +3136,13 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
fps_analyze_framecount = 0;
/* variable fps and no guess at the real fps */
if (!(st->r_frame_rate.num && st->avg_frame_rate.num) &&
- st->info->duration_count < fps_analyze_framecount &&
- st->codec->codec_type == AVMEDIA_TYPE_VIDEO)
- break;
+ st->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
+ int count = (ic->iformat->flags & AVFMT_NOTIMESTAMPS) ?
+ st->info->codec_info_duration_fields/2 :
+ st->info->duration_count;
+ if (count < fps_analyze_framecount)
+ break;
+ }
if (st->parser && st->parser->parser->split &&
!st->codec->extradata)
break;
More information about the ffmpeg-cvslog
mailing list