# HG changeset patch # User al # Date 1350076867 0 # Node ID 4683218a0324650914d45e5f7ceb836e441af232 # Parent fbe4b3716aa0f775ad27091e474502501f132d86 vo corevideo: VOCTRL_UPDATE_SCREENINFO: Fix shared_buffer case Do not just perform a NOP and then return VO_TRUE indicating success. Instead set common vo variables and call aspect_save_screenres. Patch by Zongyao Qu >zongyao.qu gmail.com< diff -r fbe4b3716aa0 -r 4683218a0324 libvo/vo_corevideo.m --- a/libvo/vo_corevideo.m Thu Oct 11 22:10:48 2012 +0000 +++ b/libvo/vo_corevideo.m Fri Oct 12 21:21:07 2012 +0000 @@ -117,6 +117,16 @@ } } +static void update_screen_info_shared_buffer(void) +{ + NSRect rc = [[NSScreen mainScreen] frame]; + vo_screenwidth = rc.size.width; + vo_screenheight = rc.size.height; + xinerama_x = rc.origin.x; + xinerama_y = rc.origin.y; + aspect_save_screenres(vo_screenwidth, vo_screenheight); +} + static int config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t flags, char *title, uint32_t format) { free_file_specific(); @@ -390,7 +400,12 @@ case VOCTRL_FULLSCREEN: vo_fs = !vo_fs; if(!shared_buffer){ [mpGLView fullscreen: NO]; } else { [mplayerosxProto toggleFullscreen]; } return VO_TRUE; case VOCTRL_GET_PANSCAN: return VO_TRUE; case VOCTRL_SET_PANSCAN: panscan_calc(); return VO_TRUE; - case VOCTRL_UPDATE_SCREENINFO: [mpGLView update_screen_info]; return VO_TRUE; + case VOCTRL_UPDATE_SCREENINFO: + if (shared_buffer) + update_screen_info_shared_buffer(); + else + [mpGLView update_screen_info]; + return VO_TRUE; } return VO_NOTIMPL; }