summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoratmos4 <atmos4@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-02-12 15:06:04 +0000
committeratmos4 <atmos4@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-02-12 15:06:04 +0000
commite403e9fe9c1b0740f6423d0ed95554294fde5076 (patch)
tree0f1e2060a400ff7e9f180aabd9be648be852b3be
parent54b4b5ffe092df9063ee3fc67a6a7f341e1f2f79 (diff)
downloadmpv-e403e9fe9c1b0740f6423d0ed95554294fde5076.tar.bz2
mpv-e403e9fe9c1b0740f6423d0ed95554294fde5076.tar.xz
add vsync support for doublebuffering to vo_vesa
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4668 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--cfg-mplayer.h3
-rw-r--r--libvo/video_out.c1
-rw-r--r--libvo/video_out.h1
-rw-r--r--libvo/vo_vesa.c8
4 files changed, 9 insertions, 4 deletions
diff --git a/cfg-mplayer.h b/cfg-mplayer.h
index c547639ffb..67aa5cf7fb 100644
--- a/cfg-mplayer.h
+++ b/cfg-mplayer.h
@@ -37,6 +37,7 @@ extern char *lirc_configfile;
#ifndef USE_LIBVO2
extern int vo_doublebuffering;
+extern int vo_vsync;
extern int vo_fsmode;
extern int vo_dbpp;
/* gamma correction */
@@ -248,6 +249,8 @@ static config_t mplayer_opts[]={
{"fsmode", &vo_fsmode, CONF_TYPE_INT, CONF_RANGE, 0, 15, NULL},
{"double", &vo_doublebuffering, CONF_TYPE_FLAG, 0, 0, 1, NULL},
{"nodouble", &vo_doublebuffering, CONF_TYPE_FLAG, 0, 1, 0, NULL},
+ {"vsync", &vo_vsync, CONF_TYPE_FLAG, 0, 0, 1, NULL},
+ {"novsync", &vo_vsync, CONF_TYPE_FLAG, 0, 1, 0, NULL},
{"brightness",&vo_gamma_brightness, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, NULL},
{"saturation",&vo_gamma_saturation, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, NULL},
{"contrast",&vo_gamma_contrast, CONF_TYPE_INT, CONF_RANGE, -1000, 1000, NULL},
diff --git a/libvo/video_out.c b/libvo/video_out.c
index 1235c37321..a7835d2e5f 100644
--- a/libvo/video_out.c
+++ b/libvo/video_out.c
@@ -41,6 +41,7 @@ int vo_dwidth=0;
int vo_dheight=0;
int vo_dbpp=0;
int vo_doublebuffering = 0;
+int vo_vsync = 0;
int vo_fsmode = 0;
int vo_pts=0; // for hw decoding
diff --git a/libvo/video_out.h b/libvo/video_out.h
index 0a44c99d4d..ef3ff24b6e 100644
--- a/libvo/video_out.h
+++ b/libvo/video_out.h
@@ -177,6 +177,7 @@ extern int vo_dheight;
extern int vo_dbpp;
extern int vo_doublebuffering;
+extern int vo_vsync;
extern int vo_fsmode;
extern int vo_pts;
diff --git a/libvo/vo_vesa.c b/libvo/vo_vesa.c
index 836e4f3919..f659fc5b94 100644
--- a/libvo/vo_vesa.c
+++ b/libvo/vo_vesa.c
@@ -114,7 +114,7 @@ static char * vbeErrToStr(int err)
static char sbuff[80];
if((err & VBE_VESA_ERROR_MASK) == VBE_VESA_ERROR_MASK)
{
- sprintf(sbuff,"VESA failed = 0x4f%x",(err & VBE_VESA_ERRCODE_MASK)>>8);
+ sprintf(sbuff,"VESA failed = 0x4f%02x",(err & VBE_VESA_ERRCODE_MASK)>>8);
retval = sbuff;
}
else
@@ -361,7 +361,7 @@ static void flip_page(void)
if(vo_doublebuffering && multi_size > 1)
{
int err;
- if((err=vbeSetDisplayStart(multi_buff[multi_idx],1)) != VBE_OK)
+ if((err=vbeSetDisplayStart(multi_buff[multi_idx],vo_vsync)) != VBE_OK)
{
vesa_term();
PRINT_VBE_ERR("vbeSetDisplayStart",err);
@@ -375,10 +375,10 @@ static void flip_page(void)
else
if(tripple_buffering)
{
- vbeSetScheduledDisplayStart(multi_buffer[multi_idx],1);
+ vbeSetScheduledDisplayStart(multi_buff[multi_idx],vo_vsync);
multi_idx++;
if(multi_idx > 2) multi_idx = 0;
- win.ptr = dga_buffer = video_base + multi_buffer[multi_idx];
+ win.ptr = dga_buffer = video_base + multi_buff[multi_idx];
}
*/
}