summaryrefslogtreecommitdiffstats
path: root/libvo
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-07-03 23:22:29 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-07-03 23:22:29 +0000
commit3f9a3137004da1c95776e1891c8ec61724d74978 (patch)
treefa05bc0f320350a023acba339c3626d64f5e0497 /libvo
parent7d67da348670893aaa1fed7769ea4f00da21a23a (diff)
downloadmpv-3f9a3137004da1c95776e1891c8ec61724d74978.tar.bz2
mpv-3f9a3137004da1c95776e1891c8ec61724d74978.tar.xz
switching double buffering at runtime with -double
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1266 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo')
-rw-r--r--libvo/vo_xv.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/libvo/vo_xv.c b/libvo/vo_xv.c
index ce57bf7955..4c2c1cf224 100644
--- a/libvo/vo_xv.c
+++ b/libvo/vo_xv.c
@@ -1,5 +1,7 @@
-#define NUM_BUFFERS 1
+// Number of buffers _FOR_DOUBLEBUFFERING_MODE_
+// Use option -double to enable double buffering! (default: single buffer)
+#define NUM_BUFFERS 2
/*
* vo_xv.c, X11 Xv interface
@@ -11,6 +13,8 @@
* Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
*
* Xv image suuport by Gerd Knorr <kraxel@goldbach.in-berlin.de>
+ * fullscreen support by Pontscho
+ * double buffering support by A'rpi
*/
#include <stdio.h>
@@ -65,6 +69,7 @@ static XvAdaptorInfo *ai;
static XvImageFormatValues *fo;
static int current_buf=0;
+static int num_buffers=1; // default
static XvImage* xvimage[NUM_BUFFERS];
#include <sys/ipc.h>
@@ -113,6 +118,7 @@ static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t
mFullscreen=flags&1;
dwidth=d_width; dheight=d_height;
+ num_buffers=vo_doublebuffering?NUM_BUFFERS:1;
if (!vo_init()) return -1;
@@ -210,7 +216,7 @@ static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t
{
printf( "using Xvideo port %d for hw scaling\n",xv_port );
- for(current_buf=0;current_buf<NUM_BUFFERS;++current_buf)
+ for(current_buf=0;current_buf<num_buffers;++current_buf)
allocate_xvimage(current_buf);
current_buf=0;
@@ -331,7 +337,7 @@ static void flip_page(void)
drwX,drwY,drwWidth,(mFullscreen?drwHeight - 1:drwHeight),
False);
XFlush(mDisplay);
- current_buf=(current_buf+1)%NUM_BUFFERS;
+ current_buf=(current_buf+1)%num_buffers;
return;
}