summaryrefslogtreecommitdiffstats
path: root/vidix
diff options
context:
space:
mode:
Diffstat (limited to 'vidix')
-rw-r--r--vidix/drivers/mga_vid.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/vidix/drivers/mga_vid.c b/vidix/drivers/mga_vid.c
index 1e49def06c..73a5ebaad9 100644
--- a/vidix/drivers/mga_vid.c
+++ b/vidix/drivers/mga_vid.c
@@ -775,8 +775,15 @@ int vixConfigPlayback(vidix_playback_t *config)
config->offsets[i] = i*config->frame_size;
config->offset.y=0;
- config->offset.v=((sw + 31) & ~31) * sh;
- config->offset.u=config->offset.v+((sw + 31) & ~31) * sh /4;
+ if(config->fourcc == IMGFMT_I420 || config->fourcc == IMGFMT_IYUV)
+ {
+ config->offset.u=((sw + 31) & ~31) * sh;
+ config->offset.v=config->offset.u+((sw + 31) & ~31) * sh /4;
+ }
+ else {
+ config->offset.v=((sw + 31) & ~31) * sh;
+ config->offset.u=config->offset.v+((sw + 31) & ~31) * sh /4;
+ }
//FIXME figure out a better way to allocate memory on card
//allocate 2 megs