lavf: estimate frame duration from r_frame_rate.

If r_frame_rate is set, it should be more reliable for this than either
codec or stream timebase.
This commit is contained in:
Anton Khirnov 2011-11-28 10:02:21 +01:00
parent 91b412e786
commit 2092232581
1 changed files with 4 additions and 1 deletions

View File

@ -826,7 +826,10 @@ static void compute_frame_duration(int *pnum, int *pden, AVStream *st,
*pden = 0;
switch(st->codec->codec_type) {
case AVMEDIA_TYPE_VIDEO:
if(st->time_base.num*1000LL > st->time_base.den){
if (st->r_frame_rate.num) {
*pnum = st->r_frame_rate.den;
*pden = st->r_frame_rate.num;
} else if(st->time_base.num*1000LL > st->time_base.den) {
*pnum = st->time_base.num;
*pden = st->time_base.den;
}else if(st->codec->time_base.num*1000LL > st->codec->time_base.den){