diff options
author | arpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-06-21 22:36:02 +0000 |
---|---|---|
committer | arpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-06-21 22:36:02 +0000 |
commit | 2b076c52beca6abc51b62df7047b49ec3299269d (patch) | |
tree | f2376d5ae61d2cc9704f2427cb375a17a05e540e /libvo/vo_xv.c | |
parent | d18ea939efe53fabcc4eddf8eb4aadb17ec5957d (diff) | |
download | mpv-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/vo_xv.c')
-rw-r--r-- | libvo/vo_xv.c | 12 |
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) |