The BES YUV 4:2:0 chroma plane setup looks just plain wrong to me. Here's
a patch to fix it.

-- 
Ville Syrj�l�
[EMAIL PROTECTED]
http://www.sci.fi/~syrjala/
Index: DirectFB/gfxdrivers/matrox/matrox_bes.c
===================================================================
RCS file: /cvs/directfb/DirectFB/gfxdrivers/matrox/matrox_bes.c,v
retrieving revision 1.30
diff -u -r1.30 matrox_bes.c
--- DirectFB/gfxdrivers/matrox/matrox_bes.c     10 Sep 2002 15:41:13 -0000      1.30
+++ DirectFB/gfxdrivers/matrox/matrox_bes.c     23 Oct 2002 13:13:08 -0000
@@ -560,22 +560,24 @@
           case DSPF_I420:
                mbes->regs.besA1CORG  = mbes->regs.besA1ORG + surface->height *
                                        front_buffer->video.pitch;
+               mbes->regs.besA2CORG  = mbes->regs.besA1CORG +
+                                       front_buffer->video.pitch/2;
+
                mbes->regs.besA1C3ORG = mbes->regs.besA1CORG + surface->height/2 *
                                        front_buffer->video.pitch/2;
-               mbes->regs.besA2CORG  = mbes->regs.besA2ORG + surface->height *
-                                       front_buffer->video.pitch;
-               mbes->regs.besA2C3ORG = mbes->regs.besA2CORG + surface->height/2 *
+               mbes->regs.besA2C3ORG = mbes->regs.besA1C3ORG +
                                        front_buffer->video.pitch/2;
                break;
 
           case DSPF_YV12:
                mbes->regs.besA1C3ORG = mbes->regs.besA1ORG + surface->height *
                                        front_buffer->video.pitch;
+               mbes->regs.besA2C3ORG = mbes->regs.besA1C3ORG +
+                                       front_buffer->video.pitch/2;
+
                mbes->regs.besA1CORG  = mbes->regs.besA1C3ORG + surface->height/2 *
                                        front_buffer->video.pitch/2;
-               mbes->regs.besA2C3ORG = mbes->regs.besA2ORG + surface->height *
-                                       front_buffer->video.pitch;
-               mbes->regs.besA2CORG  = mbes->regs.besA2C3ORG + surface->height/2 *
+               mbes->regs.besA2CORG  = mbes->regs.besA1CORG +
                                        front_buffer->video.pitch/2;
                break;
 

Reply via email to