Mercurial > mplayer.hg
changeset 30001:444f843a54ec
Add support for -geometry to corevideo.
Based on a patch by Tim Wojtulewicz (timwoj at ieee dot org).
author | adrian |
---|---|
date | Tue, 15 Dec 2009 20:38:54 +0000 |
parents | a30debd7acd7 |
children | 1d3f9930c663 |
files | DOCS/man/en/mplayer.1 libvo/vo_corevideo.m |
diffstat | 2 files changed, 13 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/DOCS/man/en/mplayer.1 Tue Dec 15 20:25:50 2009 +0000 +++ b/DOCS/man/en/mplayer.1 Tue Dec 15 20:38:54 2009 +0000 @@ -3138,7 +3138,7 @@ than the screen. The coordinates are relative to the screen given with \-xineramascreen for the video output drivers that fully support \-xineramascreen (direct3d, gl, gl2, -vdpau, x11, xv, xvmc). +vdpau, x11, xv, xvmc, corevideo). .br .I NOTE: This option is only supported by the x11, xmga, xv, xvmc, xvidix,
--- a/libvo/vo_corevideo.m Tue Dec 15 20:25:50 2009 +0000 +++ b/libvo/vo_corevideo.m Tue Dec 15 20:38:54 2009 +0000 @@ -497,16 +497,21 @@ - (void) config { - uint32_t d_width; - uint32_t d_height; - - NSRect frame; + NSRect visibleFrame; CVReturn error = kCVReturnSuccess; //config window - d_width = vo_dwidth; d_height = vo_dheight; - frame = NSMakeRect(0, 0, d_width, d_height); - [window setContentSize: frame.size]; + [window setContentSize:NSMakeSize(vo_dwidth, vo_dheight)]; + + // Use visibleFrame to position the window taking the menu bar and dock into account. + // Also flip vo_dy since the screen origin is in the bottom left on OSX. + if (screen_id < 0) + visibleFrame = [[[mpGLView window] screen] visibleFrame]; + else + visibleFrame = [[[NSScreen screens] objectAtIndex:screen_id] visibleFrame]; + [window setFrameTopLeftPoint:NSMakePoint( + visibleFrame.origin.x + vo_dx, + visibleFrame.origin.y + visibleFrame.size.height - vo_dy)]; [self releaseVideoSpecific]; error = CVPixelBufferCreateWithBytes(NULL, image_width, image_height, pixelFormat, image_datas[0], image_width*image_bytes, NULL, NULL, NULL, &frameBuffers[0]); @@ -523,7 +528,6 @@ mp_msg(MSGT_VO, MSGL_ERR,"[vo_corevideo] Failed to create OpenGL texture(%d)\n", error); //show window - [window center]; [window makeKeyAndOrderFront:mpGLView]; if(vo_rootwin)