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