diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2010-01-04 21:27:08 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2010-01-04 21:27:08 +0000 |
commit | e57a8e10402a350f5bbbbe0769fd64e0e4e0986a (patch) | |
tree | c1bcd7ffcdf7d6ef5460aeff7020c913bdd2068b /mplayer.c | |
parent | a7a1f395c6b883b34aeaf008c0d22d6fe3dcd1c8 (diff) | |
download | mpv-e57a8e10402a350f5bbbbe0769fd64e0e4e0986a.tar.bz2 mpv-e57a8e10402a350f5bbbbe0769fd64e0e4e0986a.tar.xz |
Also reset time_frame and next_frame_time on reset, it makes no sense to
process the sleep before playing the frame seeked to and can be annoying
when the user tries to escape a series of "stuck" frames with a huge duration.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30217 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mplayer.c')
-rw-r--r-- | mplayer.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -2544,10 +2544,12 @@ static int seek(MPContext *mpctx, double amount, int style) resync_video_stream(mpctx->sh_video); if (vo_config_count) mpctx->video_out->control(VOCTRL_RESET, NULL); + mpctx->sh_video->next_frame_time = 0; mpctx->sh_video->num_buffered_pts = 0; mpctx->sh_video->last_pts = MP_NOPTS_VALUE; mpctx->num_buffered_frames = 0; mpctx->delay = 0; + mpctx->time_frame = 0; // Not all demuxers set d_video->pts during seek, so this value // (which is used by at least vobsub and edl code below) may // be completely wrong (probably 0). @@ -3610,7 +3612,6 @@ if(verbose) term_osd = 0; { //int frame_corr_num=0; // //float v_frame=0; // Video -float time_frame=0; // Timer //float num_frames=0; // number of frames played int frame_time_remaining=0; // flag @@ -3778,7 +3779,7 @@ if(!mpctx->sh_video) { else { // might return with !eof && !blit_frame if !correct_pts mpctx->num_buffered_frames += blit_frame; - time_frame += frame_time / playback_speed; // for nosound + mpctx->time_frame += frame_time / playback_speed; // for nosound } } @@ -3809,7 +3810,7 @@ if(!mpctx->sh_video) { } } - frame_time_remaining = sleep_until_update(&time_frame, &aq_sleep_time); + frame_time_remaining = sleep_until_update(&mpctx->time_frame, &aq_sleep_time); //====================== FLIP PAGE (VIDEO BLT): ========================= @@ -3824,7 +3825,7 @@ if(!mpctx->sh_video) { } //====================== A-V TIMESTAMP CORRECTION: ========================= - adjust_sync_and_print_status(frame_time_remaining, time_frame); + adjust_sync_and_print_status(frame_time_remaining, mpctx->time_frame); //============================ Auto QUALITY ============================ |