diff --git a/libswscale/input.c b/libswscale/input.c
index 14ab5abb3a0e6617be11d508bbfba6ebb8106126..62480c256b4cd4b376022a224af5993678046012 100644
--- a/libswscale/input.c
+++ b/libswscale/input.c
@@ -1490,7 +1490,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
     }
     if (c->needAlpha) {
         if (is16BPS(srcFormat) || isNBPS(srcFormat)) {
-            if (HAVE_BIGENDIAN == !isBE(srcFormat))
+            if (HAVE_BIGENDIAN == !isBE(srcFormat) && !c->readAlpPlanar)
                 c->alpToYV12 = bswap16Y_c;
         }
         switch (srcFormat) {