From 3dd779eb0affdd6d597291a5cc6215a138f71495 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Mon, 9 May 2011 00:22:12 +0200 Subject: [PATCH] swscale: implement Nbit->non native endian 16bit. Fixes v210. Signed-off-by: Michael Niedermayer --- libswscale/swscale.c | 12 +++++++++--- tests/ref/fate/v210 | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/libswscale/swscale.c b/libswscale/swscale.c index f5f7a55760..591c7a4375 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -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; } diff --git a/tests/ref/fate/v210 b/tests/ref/fate/v210 index dc82788815..6a551a56b5 100644 --- a/tests/ref/fate/v210 +++ b/tests/ref/fate/v210 @@ -1 +1 @@ -0, 0, 3686400, 0x9c6c1dde +0, 0, 3686400, 0x75ee1dde