summaryrefslogtreecommitdiffstats
path: root/libvo
diff options
context:
space:
mode:
authorarpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-06-21 22:36:02 +0000
committerarpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-06-21 22:36:02 +0000
commit2b076c52beca6abc51b62df7047b49ec3299269d (patch)
treef2376d5ae61d2cc9704f2427cb375a17a05e540e /libvo
parentd18ea939efe53fabcc4eddf8eb4aadb17ec5957d (diff)
downloadmpv-2b076c52beca6abc51b62df7047b49ec3299269d.tar.bz2
mpv-2b076c52beca6abc51b62df7047b49ec3299269d.tar.xz
Xv port locking patch by Artur Zaprzala <artur.zaprzala@talex.com.pl>
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1187 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo')
-rw-r--r--libvo/vo_xv.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/libvo/vo_xv.c b/libvo/vo_xv.c
index 2d3a9e25a8..ce57bf7955 100644
--- a/libvo/vo_xv.c
+++ b/libvo/vo_xv.c
@@ -101,6 +101,7 @@ static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t
XSizeHints hint;
XVisualInfo vinfo;
XEvent xev;
+ XvPortID xv_p;
XGCValues xgcv;
XSetWindowAttributes xswa;
@@ -177,9 +178,16 @@ static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t
return -1;
}
/* check adaptors */
- for (i = 0; i < adaptors; i++)
+ for (i = 0; i < adaptors && xv_port == 0; i++)
{
- if ((ai[i].type & XvInputMask) && (ai[i].type & XvImageMask) && (xv_port == 0)) xv_port = ai[i].base_id;
+ if ((ai[i].type & XvInputMask) && (ai[i].type & XvImageMask))
+ for (xv_p = ai[i].base_id; xv_p < ai[i].base_id+ai[i].num_ports; ++xv_p)
+ if (!XvGrabPort(mDisplay, xv_p, CurrentTime)) {
+ xv_port = xv_p;
+ break;
+ } else {
+ printf("Xv: could not grab port %i\n", (int)xv_p);
+ }
}
/* check image formats */
if (xv_port != 0)