summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libvo/video_out.c5
-rw-r--r--libvo/video_out.h1
-rw-r--r--mplayer.c5
3 files changed, 9 insertions, 2 deletions
diff --git a/libvo/video_out.c b/libvo/video_out.c
index 679d111e6f..070a66c679 100644
--- a/libvo/video_out.c
+++ b/libvo/video_out.c
@@ -298,6 +298,11 @@ int vo_get_buffered_frame(struct vo *vo, bool eof)
return vo->frame_loaded ? 0 : -1;
}
+void vo_skip_frame(struct vo *vo)
+{
+ vo->frame_loaded = false;
+}
+
int vo_draw_frame(struct vo *vo, uint8_t *src[])
{
assert(!vo->driver->is_new);
diff --git a/libvo/video_out.h b/libvo/video_out.h
index 5fac7dd02d..5fde30d153 100644
--- a/libvo/video_out.h
+++ b/libvo/video_out.h
@@ -283,6 +283,7 @@ void list_video_out(void);
int vo_control(struct vo *vo, uint32_t request, void *data);
int vo_draw_image(struct vo *vo, struct mp_image *mpi, double pts);
int vo_get_buffered_frame(struct vo *vo, bool eof);
+void vo_skip_frame(struct vo *vo);
int vo_draw_frame(struct vo *vo, uint8_t *src[]);
int vo_draw_slice(struct vo *vo, uint8_t *src[], int stride[], int w, int h, int x, int y);
void vo_draw_osd(struct vo *vo, struct osd_state *osd);
diff --git a/mplayer.c b/mplayer.c
index 743a364065..b9c7dcdac4 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -2800,8 +2800,10 @@ static double update_video(struct MPContext *mpctx)
if (pts == MP_NOPTS_VALUE)
pts = sh_video->last_pts;
}
- if (mpctx->hrseek_active && pts < mpctx->hrseek_pts - .005)
+ if (mpctx->hrseek_active && pts < mpctx->hrseek_pts - .005) {
+ vo_skip_frame(video_out);
return 0;
+ }
mpctx->hrseek_active = false;
sh_video->pts = pts;
if (sh_video->last_pts == MP_NOPTS_VALUE)
@@ -3364,7 +3366,6 @@ static void run_playloop(struct MPContext *mpctx)
if (!blit_frame || mpctx->hrseek_active) {
double frame_time = update_video(mpctx);
blit_frame = mpctx->video_out->frame_loaded;
- blit_frame &= !mpctx->hrseek_active;
mp_dbg(MSGT_AVSYNC, MSGL_DBG2, "*** ftime=%5.3f ***\n", frame_time);
if (mpctx->sh_video->vf_initialized < 0) {
mp_tmsg(MSGT_CPLAYER, MSGL_FATAL,