Browse code

sws/packed_16bpc_bswap: fix handling of negative stride

Michael Niedermayer authored on 2013/05/13 00:26:15
Showing 1 changed files
... ...
@@ -324,11 +324,11 @@ static int packed_16bpc_bswap(SwsContext *c, const uint8_t *src[],
324 324
     int i, j, p;
325 325
 
326 326
     for (p = 0; p < 4; p++) {
327
-        int srcstr = srcStride[p] >> 1;
328
-        int dststr = dstStride[p] >> 1;
327
+        int srcstr = srcStride[p] / 2;
328
+        int dststr = dstStride[p] / 2;
329 329
         uint16_t       *dstPtr =       (uint16_t *) dst[p];
330 330
         const uint16_t *srcPtr = (const uint16_t *) src[p];
331
-        int min_stride         = FFMIN(srcstr, dststr);
331
+        int min_stride         = FFMIN(FFABS(srcstr), FFABS(dststr));
332 332
         if(!dstPtr || !srcPtr)
333 333
             continue;
334 334
         for (i = 0; i < (srcSliceH >> c->chrDstVSubSample); i++) {