Dont try to compute AVPacket duration for possibly interlaced video codecs

when no parser is available.
This partly fixes the frame rate misdetection in issue1756.

Originally committed as revision 22824 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Michael Niedermayer 2010-04-09 22:39:39 +00:00
parent 79f8b328cd
commit 497431a5b6
1 changed files with 5 additions and 0 deletions

View File

@ -739,6 +739,11 @@ static void compute_frame_duration(int *pnum, int *pden, AVStream *st,
if (pc && pc->repeat_pict) { if (pc && pc->repeat_pict) {
*pnum = (*pnum) * (1 + pc->repeat_pict); *pnum = (*pnum) * (1 + pc->repeat_pict);
} }
//If this codec can be interlaced or progressive then we need a parser to compute duration of a packet
//Thus if we have no parser in such case leave duration undefined.
if(st->codec->ticks_per_frame>1 && !pc){
*pnum = *pden = 0;
}
} }
break; break;
case AVMEDIA_TYPE_AUDIO: case AVMEDIA_TYPE_AUDIO: