[MPlayer-cvslog] r27212 - trunk/libswscale/swscale.c

lu_zero subversion at mplayerhq.hu
Sun Jul 6 05:26:33 CEST 2008


Author: lu_zero
Date: Sun Jul  6 05:26:32 2008
New Revision: 27212

Log:
Split simpleCopy into packedCopy and planarCopy. SoC Patch from Keiji Costantini

Modified:
   trunk/libswscale/swscale.c

Modified: trunk/libswscale/swscale.c
==============================================================================
--- trunk/libswscale/swscale.c	(original)
+++ trunk/libswscale/swscale.c	Sun Jul  6 05:26:32 2008
@@ -1731,11 +1731,10 @@ static int yvu9toyv12Wrapper(SwsContext 
 }
 
 /* unscaled copy like stuff (assumes nearly identical formats) */
-static int simpleCopy(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY,
+static int packedCopy(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY,
                       int srcSliceH, uint8_t* dst[], int dstStride[]){
 
-    if (isPacked(c->srcFormat))
-    {
+
         if (dstStride[0]==srcStride[0] && srcStride[0] > 0)
             memcpy(dst[0] + dstStride[0]*srcSliceY, src[0], srcSliceH*dstStride[0]);
         else
@@ -1757,9 +1756,13 @@ static int simpleCopy(SwsContext *c, uin
                 dstPtr+= dstStride[0];
             }
         }
-    }
-    else
-    { /* Planar YUV or gray */
+
+    return srcSliceH;
+}
+static int planarCopy(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY,
+                      int srcSliceH, uint8_t* dst[], int dstStride[])
+{
+
         int plane;
         for (plane=0; plane<3; plane++)
         {
@@ -1790,7 +1793,7 @@ static int simpleCopy(SwsContext *c, uin
                 }
             }
         }
-    }
+
     return srcSliceH;
 }
 
@@ -2208,7 +2211,10 @@ SwsContext *sws_getContext(int srcW, int
             || (isPlanarYUV(srcFormat) && isGray(dstFormat))
             || (isPlanarYUV(dstFormat) && isGray(srcFormat)))
         {
-            c->swScale= simpleCopy;
+            if (isPacked(c->srcFormat))
+                c->swScale= packedCopy;
+            else /* Planar YUV or gray */
+                c->swScale= planarCopy;
         }
 
         /* gray16{le,be} conversions */



More information about the MPlayer-cvslog mailing list