Mercurial > mplayer.hg
diff libmpdemux/video.c @ 6423:13cf65db9ebc
fixed playback speed and a-v sync issues
author | arpi |
---|---|
date | Fri, 14 Jun 2002 00:49:56 +0000 |
parents | 622d57683187 |
children | fdf45e8420d0 |
line wrap: on
line diff
--- a/libmpdemux/video.c Fri Jun 14 00:35:06 2002 +0000 +++ b/libmpdemux/video.c Fri Jun 14 00:49:56 2002 +0000 @@ -284,6 +284,10 @@ // override frame_time for variable/unknown FPS formats: if(!force_fps) switch(demuxer->file_format){ + case DEMUXER_TYPE_REAL: + if(d_video->pts>0 && pts1>0 && d_video->pts>pts1) + frame_time=d_video->pts-pts1; + break; #ifdef HAVE_TV_BSDBT848 case DEMUXER_TYPE_TV: #endif @@ -294,15 +298,16 @@ 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(d>0){ 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; + mp_msg(MSGT_CPLAYER,MSGL_V,"\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 (%2.5f/%2.5f => %2.5f). Defaulting to 1/25 sec.\n",d_video->pts,next_pts,d); - frame_time = 1/25.0; + mp_msg(MSGT_CPLAYER,MSGL_WARN,"\nInvalid frame duration value (%5.3f/%5.3f => %5.3f). Defaulting to %5.3f sec.\n",d_video->pts,next_pts,d,frame_time); + // frame_time = 1/25.0; } } }