[MPlayer-cvslog] r30217 - in trunk: mp_core.h mplayer.c
reimar
subversion at mplayerhq.hu
Mon Jan 4 22:27:08 CET 2010
Author: reimar
Date: Mon Jan 4 22:27:08 2010
New Revision: 30217
Log:
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.
Modified:
trunk/mp_core.h
trunk/mplayer.c
Modified: trunk/mp_core.h
==============================================================================
--- trunk/mp_core.h Mon Jan 4 22:22:33 2010 (r30216)
+++ trunk/mp_core.h Mon Jan 4 22:27:08 2010 (r30217)
@@ -72,6 +72,9 @@ typedef struct MPContext {
// struct.
int num_buffered_frames;
+ // how long until we need to display the "current" frame
+ float time_frame;
+
// AV sync: the next frame should be shown when the audio out has this
// much (in seconds) buffered data left. Increased when more data is
// written to the ao, decreased when moving to the next frame.
Modified: trunk/mplayer.c
==============================================================================
--- trunk/mplayer.c Mon Jan 4 22:22:33 2010 (r30216)
+++ trunk/mplayer.c Mon Jan 4 22:27:08 2010 (r30217)
@@ -2544,10 +2544,12 @@ static int seek(MPContext *mpctx, double
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 ============================
More information about the MPlayer-cvslog
mailing list