[Mplayer-cvslog] CVS: main/libvo vo_xv.c,1.134,1.135

Arpi of Ize arpi at mplayerhq.hu
Wed Jan 29 21:25:20 CET 2003


Update of /cvsroot/mplayer/main/libvo
In directory mail:/var/tmp.root/cvs-serv30694

Modified Files:
	vo_xv.c 
Log Message:
-fixed-vo vs. panscan vs. 'f' vs. -fs fix
patch by Jindrich Makovicka <makovick at kmlinux.fjfi.cvut.cz>


Index: vo_xv.c
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/vo_xv.c,v
retrieving revision 1.134
retrieving revision 1.135
diff -u -r1.134 -r1.135
--- vo_xv.c	19 Jan 2003 16:52:00 -0000	1.134
+++ vo_xv.c	29 Jan 2003 20:25:01 -0000	1.135
@@ -385,10 +385,17 @@
 #ifdef HAVE_XINERAMA
 	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_x11_sizehint( hint.x, hint.y, hint.width, hint.height,0 );   
+	vo_x11_sizehint( hint.x, hint.y, hint.width, hint.height,0 );
+    } else  {
+	// vo_fs set means we were already at fullscreen
+	vo_x11_sizehint( hint.x, hint.y, hint.width, hint.height,0 );
+	if ( !vo_fs ) XMoveResizeWindow( mDisplay,vo_window,hint.x,hint.y,hint.width,hint.height );
+	if ( flags&1 && !vo_fs ) vo_x11_fullscreen(); // handle -fs on non-first file
+    }
+    
+//    vo_x11_sizehint( hint.x, hint.y, hint.width, hint.height,0 );   
+    
+    printf("\n!!!!!! %d;%d %dx%d  \n",hint.x,hint.y,hint.width,hint.height);
  
     if ( vo_gc != None ) XFreeGC( mDisplay,vo_gc );
     vo_gc = XCreateGC(mDisplay, vo_window, 0L, &xgcv);
@@ -434,7 +441,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;
@@ -445,6 +452,19 @@
       }
 
      panscan_calc();
+     XClearWindow(mDisplay, vo_window);
+#ifdef HAVE_SHM
+     if ( Shmem_Flag )
+     {
+	 XvShmPutImage(mDisplay, xv_port, vo_window, vo_gc, xvimage[current_buf], 0, 0,  image_width, image_height, drwX, drwY, 1, 1, False);
+	 XvShmPutImage(mDisplay, xv_port, vo_window, vo_gc, xvimage[current_buf], 0, 0,  image_width, image_height, drwX,drwY,vo_dwidth,(vo_fs?vo_dheight - 1:vo_dheight), False);
+     }
+     else
+#endif
+     {
+	 XvPutImage(mDisplay, xv_port, vo_window, vo_gc, xvimage[current_buf], 0, 0,  image_width, image_height, drwX, drwY, 1, 1);
+	 XvPutImage(mDisplay, xv_port, vo_window, vo_gc, xvimage[current_buf], 0, 0,  image_width, image_height, drwX,drwY,vo_dwidth,(vo_fs?vo_dheight - 1:vo_dheight));
+     }
      
      mp_msg(MSGT_VO,MSGL_V, "[xv] dx: %d dy: %d dw: %d dh: %d\n",drwX,drwY,vo_dwidth,vo_dheight );
 



More information about the MPlayer-cvslog mailing list