From 158b24c049a24c0b56b570ba16e1b8710619dadd Mon Sep 17 00:00:00 2001 From: James Stembridge Date: Mon, 10 Nov 2003 18:40:08 +0000 Subject: fix yuy2 output on mga_vid CVS patchset: 5717 CVS date: 2003/11/10 18:40:08 --- src/video_out/vidix/drivers/mga_vid.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/video_out/vidix/drivers/mga_vid.c b/src/video_out/vidix/drivers/mga_vid.c index b9500e494..43eab455a 100644 --- a/src/video_out/vidix/drivers/mga_vid.c +++ b/src/video_out/vidix/drivers/mga_vid.c @@ -755,9 +755,6 @@ int VIDIX_NAME(vixConfigPlayback)(vidix_playback_t *config) dw = config->dest.w; dh = config->dest.h; - config->dest.pitch.y=32; - config->dest.pitch.u=config->dest.pitch.v=32; - if (mga_verbose) printf(MGA_MSG" Setting up a %dx%d-%dx%d video window (src %dx%d) format %X\n", dw, dh, x, y, sw, sh, config->fourcc); @@ -778,11 +775,14 @@ int VIDIX_NAME(vixConfigPlayback)(vidix_playback_t *config) case IMGFMT_IYUV: case IMGFMT_YV12: sh+=sh&1; + config->dest.pitch.y=config->dest.pitch.u=config->dest.pitch.v=32; config->frame_size = ((sw + 31) & ~31) * sh + (((sw + 31) & ~31) * sh) / 2; break; case IMGFMT_YUY2: case IMGFMT_UYVY: - config->frame_size = ((sw + 31) & ~31) * sh * 2; + config->dest.pitch.y=16; + config->dest.pitch.u=config->dest.pitch.v=0; + config->frame_size = ((sw + 8) & ~8) * sh * 2; break; default: printf(MGA_MSG" Unsupported pixel format: %x\n", config->fourcc); @@ -881,7 +881,18 @@ int VIDIX_NAME(vixConfigPlayback)(vidix_playback_t *config) //Setup source dimensions regs.beshsrclst = (sw - 1) << 16; - regs.bespitch = (sw + 31) & ~31 ; + switch(config->fourcc) + { + case IMGFMT_YV12: + case IMGFMT_I420: + case IMGFMT_IYUV: + regs.bespitch = (sw + 31) & ~31; + break; + case IMGFMT_YUY2: + case IMGFMT_UYVY: + regs.bespitch = (sw + 8) & ~8; + break; + } //Setup horizontal scaling ifactor = ((sw-1)<<14)/(dw-1); -- cgit v1.2.3