[Mplayer-cvslog] CVS: main/vidix/drivers mach64_vid.c,1.20,1.21

Michael Niedermayer michael at mplayer.dev.hu
Fri Apr 12 14:29:15 CEST 2002


Update of /cvsroot/mplayer/main/vidix/drivers
In directory mplayer:/var/tmp.root/cvs-serv31607

Modified Files:
	mach64_vid.c 
Log Message:
fixing vertical scaling on non mobility cards, this might have overflowed into the horizontal stuff, so perhaps it fixes the horizontal stuff too



Index: mach64_vid.c
===================================================================
RCS file: /cvsroot/mplayer/main/vidix/drivers/mach64_vid.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- mach64_vid.c	17 Mar 2002 16:08:39 -0000	1.20
+++ mach64_vid.c	12 Apr 2002 12:29:12 -0000	1.21
@@ -30,6 +30,7 @@
 static uint32_t mach64_buffer_base[10][3];
 static int num_mach64_buffers=-1;
 static int supports_planar=0;
+static int supports_lcd_v_stretch=0;
 
 pciinfo_t pci_info;
 static int probed = 0;
@@ -261,7 +262,7 @@
     int ret;
     int yres= mach64_get_yres();
 
-//FIXME check for mobility & co
+    if(!supports_lcd_etch) return 1<<16;
 
     lcd_index= INREG(LCD_INDEX);
     
@@ -282,7 +283,7 @@
     
     OUTREG(LCD_INDEX, lcd_index);
     
-    if(__verbose>VERBOSE_LEVEL) printf("[mach64] vertical stretching factor= %d\n", ret);
+    if(__verbose>0) printf("[mach64] vertical stretching factor= %d\n", ret);
     
     return ret;
 }
@@ -471,7 +472,15 @@
   }
   if(supports_planar)	printf("[mach64] Planar YUV formats are supported :)\n");
   else			printf("[mach64] Planar YUV formats are not supported :(\n");
-
+  
+  if(   mach64_cap.device_id==DEVICE_ATI_RAGE_MOBILITY_P_M
+     || mach64_cap.device_id==DEVICE_ATI_RAGE_MOBILITY_P_M2
+     || mach64_cap.device_id==DEVICE_ATI_RAGE_MOBILITY_L
+     || mach64_cap.device_id==DEVICE_ATI_RAGE_MOBILITY_L2)
+         supports_lcd_v_stretch=1;
+  else
+         supports_lcd_v_stretch=0;
+  
   reset_regs();
   mach64_vid_make_default();
 
@@ -717,6 +726,7 @@
     dest_h = config->dest.h;
     besr.fourcc = config->fourcc;
     ecp = (INPLL(PLL_VCLK_CNTL) & PLL_ECP_DIV) >> 4;
+    if(__verbose>0) printf("[mach64] ecp: %d\n", ecp);
     v_inc = src_h * mach64_get_vert_stretch();
     
     if(mach64_is_interlace()) v_inc<<=1;




More information about the MPlayer-cvslog mailing list