Browse Source

sws: fix handling of big endian alpha

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Michael Niedermayer 12 years ago
parent
commit
370e397256
2 changed files with 8 additions and 4 deletions
  1. 4 0
      libswscale/input.c
  2. 4 4
      tests/ref/lavfi/pixfmts_scale

+ 4 - 0
libswscale/input.c

@@ -1322,6 +1322,10 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
         break;
     }
     if (c->alpPixBuf) {
+        if (is16BPS(srcFormat) || isNBPS(srcFormat)) {
+            if (HAVE_BIGENDIAN == !isBE(srcFormat))
+                c->alpToYV12 = bswap16Y_c;
+        }
         switch (srcFormat) {
         case AV_PIX_FMT_RGBA64LE:
         case AV_PIX_FMT_RGBA64BE:  c->alpToYV12 = rgba64ToA_c; break;

+ 4 - 4
tests/ref/lavfi/pixfmts_scale

@@ -74,25 +74,25 @@ yuv444p16le         f8bac16bf1f2afbd3626e07bcc815a9f
 yuv444p9be          db739906e3ae3b8792cdc5a0c3387565
 yuv444p9le          693b8d30958ef1a37296b1690b4b36d2
 yuva420p            df46b738bdaf30d3a7f880b5ae45b092
-yuva420p10be        6dc9de933b1033aea729907fcf9d392d
+yuva420p10be        8e5f3b069fdf2f0c14f49ad827991092
 yuva420p10le        e6915376ad7d0f2be9d50099e5ee33ef
 yuva420p16be        aa8ca29a93936c62ef038ca8a57f47d7
 yuva420p16le        ee0cbb31f9cdb897c1982df0caa8ffa0
-yuva420p9be         38aa61fcb702a956c3bf0dfca63441e2
+yuva420p9be         b8ca5603123aeb953b9d4fc8ec8e35e1
 yuva420p9le         220212a81cda0f2d112f7ae96d532ff9
 yuva422p            650755270debb03d2c03b2e93b64c576
 yuva422p10be        fe0d8c2509d2d23f856093f9aea83cba
 yuva422p10le        c641064c6306c6eaf95b387e5ae08d67
 yuva422p16be        0b8f9385498d2449b18fb15237b0a448
 yuva422p16le        ce22b20deb93b4846a5043aa104f22d1
-yuva422p9be         62e767085855b9605513b39eed787e8e
+yuva422p9be         822df465d12916d8852340d6b56247c8
 yuva422p9le         f69c09e872838fe392dfe1825263d3f1
 yuva444p            72083e0941cc45af9f97b89d3cd16112
 yuva444p10be        d8b6fe8cfb60c6e516563c0a4f5c75a8
 yuva444p10le        4a85b717f21975216144efc11e2f2cda
 yuva444p16be        36a8797545163c24fc0d73f669c3108c
 yuva444p16le        c017c229aacb832a12c2297fb080a7a0
-yuva444p9be         3826abd6dd62d42ad02c9bb610dec561
+yuva444p9be         8bfb5decfc8b71478b090a5b48c316c3
 yuva444p9le         2c7bfb90f7db9faab6862537801e1143
 yuvj420p            31386dce60a2dcc493da5d0ed9d880df
 yuvj422p            492452e50a3fe66724840cad29be4098