Mercurial > mplayer.hg
diff libmpdemux/video.c @ 5930:68cac7ecaf05
Fix frame_time for variable fps movies as it was the last frame duration.
author | albeu |
---|---|
date | Thu, 02 May 2002 10:25:48 +0000 |
parents | 31202ff6fb3d |
children | 622d57683187 |
line wrap: on
line diff
--- a/libmpdemux/video.c Thu May 02 02:03:59 2002 +0000 +++ b/libmpdemux/video.c Thu May 02 10:25:48 2002 +0000 @@ -291,14 +291,18 @@ case DEMUXER_TYPE_FILM: case DEMUXER_TYPE_VIVO: case DEMUXER_TYPE_ASF: { - float d=d_video->pts-pts1; - if(d>0 && d<5) frame_time=d; + float next_pts = ds_get_next_pts(d_video); + float d= next_pts > 0 ? next_pts - d_video->pts : d_video->pts-pts1; if(d>0){ if(verbose) if((int)sh_video->fps==1000) mp_msg(MSGT_CPLAYER,MSGL_STATUS,"\navg. framerate: %d fps \n",(int)(1.0f/d)); sh_video->frametime=d; // 1ms sh_video->fps=1.0f/d; + frame_time = d; + } else { + mp_msg(MSGT_CPLAYER,MSGL_WARN,"\nInvalid frame duration value. Defaulting to 1/25 sec.\n"); + frame_time = 1/25.0; } } }