Skip to content
Snippets Groups Projects
Commit 1694118b authored by Michael Niedermayer's avatar Michael Niedermayer
Browse files

nth try of getting the frame rate detecton working

Originally committed as revision 7402 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 396a5e68
No related branches found
No related tags found
No related merge requests found
...@@ -1895,14 +1895,14 @@ int av_find_stream_info(AVFormatContext *ic) ...@@ -1895,14 +1895,14 @@ int av_find_stream_info(AVFormatContext *ic)
// if(st->codec->codec_type == CODEC_TYPE_VIDEO) // if(st->codec->codec_type == CODEC_TYPE_VIDEO)
// av_log(NULL, AV_LOG_ERROR, "%f\n", dur); // 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++){ for(i=1; i<MAX_STD_TIMEBASES; i++){
int framerate= get_std_framerate(i); int framerate= get_std_framerate(i);
int ticks= lrintf(dur*framerate/(1001*12)); int ticks= lrintf(dur*framerate/(1001*12));
double error= dur - ticks*1001*12/(double)framerate; double error= dur - ticks*1001*12/(double)framerate;
duration_error[index][i] += error*error; duration_error[index][i] += error*error;
} }
}
duration_count[index]++; duration_count[index]++;
if(st->codec_info_nb_frames == 0 && 0) if(st->codec_info_nb_frames == 0 && 0)
...@@ -1960,7 +1960,7 @@ int av_find_stream_info(AVFormatContext *ic) ...@@ -1960,7 +1960,7 @@ int av_find_stream_info(AVFormatContext *ic)
if(st->codec->codec_id == CODEC_ID_RAWVIDEO && !st->codec->codec_tag && !st->codec->bits_per_sample) 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); 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) /*&& && (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 ... //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*/){ st->time_base.num*duration_sum[i]/duration_count[i]*101LL > st->time_base.den*/){
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment