swscale: implement Nbit->non native endian 16bit. Fixes v210.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
pull/2/head
Michael Niedermayer 14 years ago
parent f2bfdc3836
commit 3dd779eb0a
  1. 12
      libswscale/swscale.c
  2. 2
      tests/ref/fate/v210

@ -1910,9 +1910,15 @@ static int planarCopyWrapper(SwsContext *c, const uint8_t* src[], int srcStride[
}
} else if (src_depth < dst_depth) {
for (i = 0; i < height; i++) {
for (j = 0; j < length; j++)
dstPtr2[j] = (srcPtr2[j]<<(dst_depth-src_depth)) |
(srcPtr2[j]>>(2*src_depth-dst_depth));
if(isBE(c->dstFormat)){
for (j = 0; j < length; j++)
AV_WB16(&dstPtr2[j], (srcPtr2[j]<<(dst_depth-src_depth)) |
(srcPtr2[j]>>(2*src_depth-dst_depth)));
}else{
for (j = 0; j < length; j++)
AV_WL16(&dstPtr2[j], (srcPtr2[j]<<(dst_depth-src_depth)) |
(srcPtr2[j]>>(2*src_depth-dst_depth)));
}
dstPtr2 += dstStride[plane]/2;
srcPtr2 += srcStride[plane]/2;
}

@ -1 +1 @@
0, 0, 3686400, 0x9c6c1dde
0, 0, 3686400, 0x75ee1dde

Loading…
Cancel
Save