summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUoti Urpala <uau@glyph.nonexistent.invalid>2009-03-31 02:50:34 +0300
committerUoti Urpala <uau@glyph.nonexistent.invalid>2009-04-02 06:51:26 +0300
commit7db643095995ddf625af670f6e07a61bf25d3a94 (patch)
tree1ea4d45b3b1a2095b3a2aaa43f8f9df28417c1f8
parent861d6d2bd9b46c8644b7d8683d101157cd459927 (diff)
downloadmpv-7db643095995ddf625af670f6e07a61bf25d3a94.tar.bz2
mpv-7db643095995ddf625af670f6e07a61bf25d3a94.tar.xz
VO: Don't reset pause status in VO config() functions
Many VOs kept track of pause status, but reset the value when their config() function was called. However it can be called while playback stays in pause mode. Modify the VOs to not change anything in config(). Also send the VO either VOCTRL_PAUSE or VOCTRL_RESUME when the playback of a new file is starting to make sure they have the right status.
-rw-r--r--libvo/vo_gl.c1
-rw-r--r--libvo/vo_gl2.c2
-rw-r--r--libvo/vo_vdpau.c1
-rw-r--r--libvo/vo_x11.c1
-rw-r--r--libvo/vo_xv.c1
-rw-r--r--mplayer.c4
6 files changed, 4 insertions, 6 deletions
diff --git a/libvo/vo_gl.c b/libvo/vo_gl.c
index 2e85163833..d4a9d15093 100644
--- a/libvo/vo_gl.c
+++ b/libvo/vo_gl.c
@@ -538,7 +538,6 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin
image_format = format;
glFindFormat(format, NULL, &gl_texfmt, &gl_format, &gl_type);
- int_pause = 0;
vo_flipped = !!(flags & VOFLAG_FLIPPING);
#ifdef CONFIG_GUI
diff --git a/libvo/vo_gl2.c b/libvo/vo_gl2.c
index 382994e318..c545165b29 100644
--- a/libvo/vo_gl2.c
+++ b/libvo/vo_gl2.c
@@ -622,8 +622,6 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin
image_width = width;
image_format = format;
- int_pause = 0;
-
#ifdef CONFIG_GUI
if (use_gui) {
if (config_glx_gui(d_width, d_height) == -1)
diff --git a/libvo/vo_vdpau.c b/libvo/vo_vdpau.c
index 085dfb4156..c920c0cd8d 100644
--- a/libvo/vo_vdpau.c
+++ b/libvo/vo_vdpau.c
@@ -480,7 +480,6 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width,
image_format = format;
- int_pause = 0;
visible_buf = 0;
#ifdef CONFIG_GUI
diff --git a/libvo/vo_x11.c b/libvo/vo_x11.c
index 4e6b1b79fb..9a50997470 100644
--- a/libvo/vo_x11.c
+++ b/libvo/vo_x11.c
@@ -330,7 +330,6 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width,
old_vo_dwidth = -1;
old_vo_dheight = -1;
- int_pause = 0;
if (!title)
title = "MPlayer X11 (XImage/Shm) render";
diff --git a/libvo/vo_xv.c b/libvo/vo_xv.c
index 178c9c4ca9..6f38c90929 100644
--- a/libvo/vo_xv.c
+++ b/libvo/vo_xv.c
@@ -223,7 +223,6 @@ static int config(struct vo *vo, uint32_t width, uint32_t height,
return -1;
}
- ctx->is_paused = 0;
ctx->visible_buf = -1;
ctx->have_visible_image_copy = false;
ctx->have_next_image_copy = false;
diff --git a/mplayer.c b/mplayer.c
index 84b9d6ad0a..6e49876afe 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -3984,6 +3984,10 @@ if (mpctx->stream->type == STREAMTYPE_DVDNAV) {
mpctx->drop_message_shown = 0;
mpctx->update_video_immediately = true;
mpctx->total_avsync_change = 0;
+ // Make sure VO knows current pause state
+ if (mpctx->sh_video)
+ vo_control(mpctx->video_out, mpctx->paused ? VOCTRL_PAUSE : VOCTRL_RESUME,
+ NULL);
while(!mpctx->stop_play){
float aq_sleep_time=0;