summaryrefslogtreecommitdiffstats
path: root/vidix
diff options
context:
space:
mode:
authormichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-02-17 22:40:31 +0000
committermichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-02-17 22:40:31 +0000
commit56304f04f5f4984066b6667a90d64e73b57fcef9 (patch)
tree34d1733821c1acbbcd43c267d13a6c2c28d74980 /vidix
parentb3b3eb2a9a64f2fca992a7c52385c4486b0bc5d2 (diff)
downloadmpv-56304f04f5f4984066b6667a90d64e73b57fcef9.tar.bz2
mpv-56304f04f5f4984066b6667a90d64e73b57fcef9.tar.xz
fixed planar yuv formats
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4752 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'vidix')
-rw-r--r--vidix/drivers/mach64_vid.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/vidix/drivers/mach64_vid.c b/vidix/drivers/mach64_vid.c
index 132368f80c..6db6a550d3 100644
--- a/vidix/drivers/mach64_vid.c
+++ b/vidix/drivers/mach64_vid.c
@@ -519,17 +519,22 @@ static void mach64_vid_display_video( void )
OUTREG(OVERLAY_SCALE_CNTL, 0x04000001 | (3<<30));
mach64_wait_for_idle();
vf = INREG(VIDEO_FORMAT);
+
+// Bits 16-19 seem to select the format
+// Bit 28 seems to toggle the chroma encoding
+// the remaining bits seem to have no effect
+
switch(besr.fourcc)
{
/* 4:2:0 */
case IMGFMT_IYUV:
case IMGFMT_I420:
- case IMGFMT_YV12: OUTREG(VIDEO_FORMAT, (vf & ~0xF000) | 0xA000); break;
+ case IMGFMT_YV12: OUTREG(VIDEO_FORMAT, (vf & ~0xF0000) | 0xA0000); break;
/* 4:2:2 */
case IMGFMT_YVYU:
case IMGFMT_UYVY: OUTREG(VIDEO_FORMAT, (vf & ~0xF000) | 0xB000); break;
case IMGFMT_YUY2:
- default: OUTREG(VIDEO_FORMAT, (vf & ~0xF000) | 0xC000); break;
+ default: OUTREG(VIDEO_FORMAT, (vf & ~0xF0000) | 0xB0000); break;
}
// OUTPLL(PLL_SCALER_LOCK_EN, 0);
if(__verbose > 1) mach64_vid_dump_regs();
@@ -582,6 +587,7 @@ static int mach64_vid_init_video( vidix_playback_t *config )
v_inc = (src_h << (12
+(mach64_is_interlace()?1:0)
-(mach64_is_dbl_scan()?1:0)
+ +(is_420?1:0)
)) / dest_h;
h_inc = (src_w << (12+ecp)) / dest_w;
v_inc /= 2;