OSDN Git Service

Reset slice direction at end of each frame.
authorRamiro Polla <ramiro.polla@gmail.com>
Sun, 13 Sep 2009 01:49:40 +0000 (01:49 +0000)
committerRamiro Polla <ramiro.polla@gmail.com>
Sun, 13 Sep 2009 01:49:40 +0000 (01:49 +0000)
Originally committed as revision 29675 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale

libswscale/swscale.c

index 170baf9..8a9521f 100644 (file)
@@ -3167,6 +3167,10 @@ int sws_scale(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY,
         reset_ptr(src2, c->srcFormat);
         reset_ptr(dst2, c->dstFormat);
 
+        /* reset slice direction at end of frame */
+        if (srcSliceY + srcSliceH == c->srcH)
+            c->sliceDir = 0;
+
         return c->swScale(c, src2, srcStride2, srcSliceY, srcSliceH, dst2, dstStride2);
     } else {
         // slices go from bottom to top => we flip the image internally
@@ -3186,6 +3190,10 @@ int sws_scale(SwsContext *c, uint8_t* src[], int srcStride[], int srcSliceY,
         reset_ptr(src2, c->srcFormat);
         reset_ptr(dst2, c->dstFormat);
 
+        /* reset slice direction at end of frame */
+        if (!srcSliceY)
+            c->sliceDir = 0;
+
         return c->swScale(c, src2, srcStride2, c->srcH-srcSliceY-srcSliceH, srcSliceH, dst2, dstStride2);
     }
 }