Mercurial > libavformat.hg
changeset 1616:dfe8b8bd6833 libavformat
nth try of getting the frame rate detecton working
author | michael |
---|---|
date | Tue, 02 Jan 2007 20:32:01 +0000 |
parents | 8e55b4de921c |
children | ad71e733bc20 |
files | utils.c |
diffstat | 1 files changed, 3 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/utils.c Mon Jan 01 22:52:22 2007 +0000 +++ b/utils.c Tue Jan 02 20:32:01 2007 +0000 @@ -1895,14 +1895,14 @@ // if(st->codec->codec_type == CODEC_TYPE_VIDEO) // av_log(NULL, AV_LOG_ERROR, "%f\n", dur); - if(duration_count[index] > 0){ + if(duration_count[index] < 2) + memset(duration_error, 0, sizeof(duration_error)); for(i=1; i<MAX_STD_TIMEBASES; i++){ int framerate= get_std_framerate(i); int ticks= lrintf(dur*framerate/(1001*12)); double error= dur - ticks*1001*12/(double)framerate; duration_error[index][i] += error*error; } - } duration_count[index]++; if(st->codec_info_nb_frames == 0 && 0) @@ -1960,7 +1960,7 @@ if(st->codec->codec_id == CODEC_ID_RAWVIDEO && !st->codec->codec_tag && !st->codec->bits_per_sample) st->codec->codec_tag= avcodec_pix_fmt_to_codec_tag(st->codec->pix_fmt); - if(1 + if(duration_count[i] && (st->codec->time_base.num*101LL <= st->codec->time_base.den || st->codec->codec_id == CODEC_ID_MPEG2VIDEO) /*&& //FIXME we should not special case mpeg2, but this needs testing with non mpeg2 ... st->time_base.num*duration_sum[i]/duration_count[i]*101LL > st->time_base.den*/){