summaryrefslogtreecommitdiffstats
path: root/vidix
diff options
context:
space:
mode:
authormichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-04-12 12:29:12 +0000
committermichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-04-12 12:29:12 +0000
commita945ac25e941edd6dd89cacdede714cd3eec6351 (patch)
treec01ab0e86fe5f1b127f39cf79f47188d6b06bfc5 /vidix
parent072e6fb702a5d787d14ca54a4a022737767d53f0 (diff)
downloadmpv-a945ac25e941edd6dd89cacdede714cd3eec6351.tar.bz2
mpv-a945ac25e941edd6dd89cacdede714cd3eec6351.tar.xz
fixing vertical scaling on non mobility cards, this might have overflowed into the horizontal stuff, so perhaps it fixes the horizontal stuff too
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5575 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'vidix')
-rw-r--r--vidix/drivers/mach64_vid.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/vidix/drivers/mach64_vid.c b/vidix/drivers/mach64_vid.c
index da043323f4..3b3c58eeb5 100644
--- a/vidix/drivers/mach64_vid.c
+++ b/vidix/drivers/mach64_vid.c
@@ -30,6 +30,7 @@ static uint32_t mach64_ram_size = 0;
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 @@ static int mach64_get_vert_stretch(void)
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 @@ static int mach64_get_vert_stretch(void)
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 @@ int vixInit(void)
}
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 @@ static int mach64_vid_init_video( vidix_playback_t *config )
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;