Index: cfg-mplayer.h =================================================================== RCS file: /cvsroot/mplayer/main/cfg-mplayer.h,v retrieving revision 1.191 diff -u -b -B -r1.191 cfg-mplayer.h --- cfg-mplayer.h 10 Jan 2003 01:45:21 -0000 1.191 +++ cfg-mplayer.h 29 Jan 2003 10:02:02 -0000 @@ -57,7 +57,7 @@ extern int vo_dbpp; extern int vo_directrendering; extern int vd_use_slices; -extern float vo_panscan; +extern float vo_start_panscan; /* only used by startup (setting these values from configfile) */ extern int vo_gamma_brightness; extern int vo_gamma_saturation; @@ -283,7 +283,7 @@ // wait for v-sync (vesa) {"vsync", &vo_vsync, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"novsync", &vo_vsync, CONF_TYPE_FLAG, 0, 1, 0, NULL}, - {"panscan", &vo_panscan, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 1.0, NULL}, + {"panscan", &vo_start_panscan, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 1.0, NULL}, {"grabpointer", &vo_grabpointer, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"nograbpointer", &vo_grabpointer, CONF_TYPE_FLAG, 0, 1, 0, NULL}, Index: mplayer.c =================================================================== RCS file: /cvsroot/mplayer/main/mplayer.c,v retrieving revision 1.667 diff -u -b -B -r1.667 mplayer.c --- mplayer.c 28 Jan 2003 00:59:15 -0000 1.667 +++ mplayer.c 29 Jan 2003 10:02:02 -0000 @@ -187,6 +187,8 @@ int osd_level_saved=-1; int osd_visible=100; +float vo_start_panscan = -1; + // seek: static char *seek_to_sec=NULL; static off_t seek_to_byte=0; @@ -1492,6 +1494,8 @@ if(!sh_video) goto main; // audio-only //================== Init VIDEO (codec & libvo) ========================== +if (vo_start_panscan >= 0) vo_panscan = vo_start_panscan; + if(!fixed_vo || !(inited_flags&INITED_VO)){ current_module="preinit_libvo"; Index: libvo/vo_xv.c =================================================================== RCS file: /cvsroot/mplayer/main/libvo/vo_xv.c,v retrieving revision 1.134 diff -u -b -B -r1.134 vo_xv.c --- libvo/vo_xv.c 19 Jan 2003 16:52:00 -0000 1.134 +++ libvo/vo_xv.c 29 Jan 2003 10:02:02 -0000 @@ -270,7 +270,7 @@ static uint32_t vm_height; #endif - panscan_init(); + if (!vo_fs) panscan_init(); aspect_save_orig(width,height); aspect_save_prescale(d_width,d_height); @@ -386,7 +386,8 @@ vo_x11_xinerama_move(mDisplay,vo_window); #endif } else - if ( !(flags&1) ) XMoveResizeWindow( mDisplay,vo_window,hint.x,hint.y,hint.width,hint.height ); + // vo_fs set means we were already at fullscreen + if ( !vo_fs ) XMoveResizeWindow( mDisplay,vo_window,hint.x,hint.y,hint.width,hint.height ); vo_x11_sizehint( hint.x, hint.y, hint.width, hint.height,0 ); @@ -434,7 +435,7 @@ #endif aspect(&vo_dwidth,&vo_dheight,A_NOZOOM); - if ( ( flags&1 )&&( WinID <= 0 ) ) + if ( (( flags&1 )&&( WinID <= 0 )) || vo_fs ) { aspect(&vo_dwidth,&vo_dheight,A_ZOOM); drwX=( vo_screenwidth - (vo_dwidth > vo_screenwidth?vo_screenwidth:vo_dwidth) ) / 2; @@ -444,8 +445,17 @@ mp_msg(MSGT_VO,MSGL_V, "[xv-fs] dx: %d dy: %d dw: %d dh: %d\n",drwX,drwY,vo_dwidth,vo_dheight ); } + { + int old_y = vo_panscan_y; panscan_calc(); + if(old_y != vo_panscan_y) + { + XClearWindow(mDisplay, vo_window); + XFlush(mDisplay); + } + } + mp_msg(MSGT_VO,MSGL_V, "[xv] dx: %d dy: %d dw: %d dh: %d\n",drwX,drwY,vo_dwidth,vo_dheight ); saver_off(mDisplay); // turning off screen saver