Merge commit 'f84a1b597c29dc035b8d5529ef88c2d7ff057820'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 4 Aug 2014 20:26:13 +0000 (22:26 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 4 Aug 2014 20:32:13 +0000 (22:32 +0200)
* commit 'f84a1b597c29dc035b8d5529ef88c2d7ff057820':
  swscale: support AV_PIX_FMT_YA16 as input

Conflicts:
libswscale/swscale_unscaled.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libswscale/input.c
libswscale/swscale-test.c
libswscale/swscale_internal.h
libswscale/swscale_unscaled.c
libswscale/utils.c

@@@ -565,9 -419,41 +565,41 @@@ static void bswap16UV_c(uint8_t *_dstU
      }
  }
  
 -static void read_ya16le_gray_c(uint8_t *dst, const uint8_t *src, int width,
++static void read_ya16le_gray_c(uint8_t *dst, const uint8_t *src, const uint8_t *unused1, const uint8_t *unused2, int width,
+                                uint32_t *unused)
+ {
+     int i;
+     for (i = 0; i < width; i++)
+         AV_WN16(dst + i * 2, AV_RL16(src + i * 4));
+ }
 -static void read_ya16le_alpha_c(uint8_t *dst, const uint8_t *src, int width,
++static void read_ya16le_alpha_c(uint8_t *dst, const uint8_t *src, const uint8_t *unused1, const uint8_t *unused2, int width,
+                                 uint32_t *unused)
+ {
+     int i;
+     for (i = 0; i < width; i++)
+         AV_WN16(dst + i * 2, AV_RL16(src + i * 4 + 2));
+ }
 -static void read_ya16be_gray_c(uint8_t *dst, const uint8_t *src, int width,
++static void read_ya16be_gray_c(uint8_t *dst, const uint8_t *src, const uint8_t *unused1, const uint8_t *unused2, int width,
+                                uint32_t *unused)
+ {
+     int i;
+     for (i = 0; i < width; i++)
+         AV_WN16(dst + i * 2, AV_RB16(src + i * 4));
+ }
 -static void read_ya16be_alpha_c(uint8_t *dst, const uint8_t *src, int width,
++static void read_ya16be_alpha_c(uint8_t *dst, const uint8_t *src, const uint8_t *unused1, const uint8_t *unused2, int width,
+                                 uint32_t *unused)
+ {
+     int i;
+     for (i = 0; i < width; i++)
+         AV_WN16(dst + i * 2, AV_RB16(src + i * 4 + 2));
+ }
  /* This is almost identical to the previous, end exists only because
   * yuy2ToY/UV)(dst, src + 1, ...) would have 100% unaligned accesses. */
 -static void uyvyToY_c(uint8_t *dst, const uint8_t *src, int width,
 +static void uyvyToY_c(uint8_t *dst, const uint8_t *src, const uint8_t *unused1, const uint8_t *unused2,  int width,
                        uint32_t *unused)
  {
      int i;
Simple merge
@@@ -672,12 -608,13 +672,14 @@@ static av_always_inline int isRGB(enum 
      ((x) == AV_PIX_FMT_GRAY8       ||  \
       (x) == AV_PIX_FMT_YA8         ||  \
       (x) == AV_PIX_FMT_GRAY16BE    ||  \
-      (x) == AV_PIX_FMT_GRAY16LE)
+      (x) == AV_PIX_FMT_GRAY16LE    ||  \
+      (x) == AV_PIX_FMT_YA16BE      ||  \
+      (x) == AV_PIX_FMT_YA16LE)
  #endif
  
 -#define isRGBinInt(x)                  \
 -    ((x) == AV_PIX_FMT_RGB48BE     ||  \
 +#define isRGBinInt(x) \
 +    (           \
 +     (x) == AV_PIX_FMT_RGB48BE     ||  \
       (x) == AV_PIX_FMT_RGB48LE     ||  \
       (x) == AV_PIX_FMT_RGB32       ||  \
       (x) == AV_PIX_FMT_RGB32_1     ||  \
@@@ -1668,15 -1053,9 +1668,16 @@@ void ff_get_unscaled_swscale(SwsContex
          IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_BGR565) ||
          IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_BGRA64) ||
          IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GRAY16) ||
+         IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_YA16)   ||
 +        IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRP9)  ||
 +        IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRP10) ||
 +        IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRP12) ||
 +        IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRP14) ||
 +        IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRP16) ||
 +        IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRAP16) ||
          IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_RGB444) ||
          IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_RGB48)  ||
 +        IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_RGBA64) ||
          IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_RGB555) ||
          IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_RGB565) ||
          IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_RGBA64) ||
@@@ -162,10 -155,12 +162,12 @@@ static const FormatEntry format_entries
      [AV_PIX_FMT_BGR444LE]    = { 1, 1 },
      [AV_PIX_FMT_BGR444BE]    = { 1, 1 },
      [AV_PIX_FMT_YA8]         = { 1, 0 },
+     [AV_PIX_FMT_YA16BE]      = { 1, 0 },
+     [AV_PIX_FMT_YA16LE]      = { 1, 0 },
      [AV_PIX_FMT_BGR48BE]     = { 1, 1 },
      [AV_PIX_FMT_BGR48LE]     = { 1, 1 },
 -    [AV_PIX_FMT_BGRA64BE]    = { 0, 0, 1 },
 -    [AV_PIX_FMT_BGRA64LE]    = { 0, 0, 1 },
 +    [AV_PIX_FMT_BGRA64BE]    = { 1, 1, 1 },
 +    [AV_PIX_FMT_BGRA64LE]    = { 1, 1, 1 },
      [AV_PIX_FMT_YUV420P9BE]  = { 1, 1 },
      [AV_PIX_FMT_YUV420P9LE]  = { 1, 1 },
      [AV_PIX_FMT_YUV420P10BE] = { 1, 1 },