Merge commit 'e96c3b81cadd0ba84d43b1f3a54980df3785d9a5'
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 4 Aug 2014 19:48:00 +0000 (21:48 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 4 Aug 2014 19:48:00 +0000 (21:48 +0200)
* commit 'e96c3b81cadd0ba84d43b1f3a54980df3785d9a5':
  avutil: rename AV_PIX_FMT_Y400A to AV_PIX_FMT_YA8

Conflicts:
libavcodec/libopenjpegdec.c
libavcodec/libopenjpegenc.c
libavcodec/raw.c
libavutil/pixdesc.c
libavutil/pixfmt.h
libavutil/version.h
libswscale/swscale_internal.h
libswscale/swscale_unscaled.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
15 files changed:
1  2 
doc/APIchanges
libavcodec/brenderpix.c
libavcodec/libopenjpegdec.c
libavcodec/libopenjpegenc.c
libavcodec/pngdec.c
libavcodec/raw.c
libavutil/pixdesc.c
libavutil/pixfmt.h
libavutil/version.h
libswscale/input.c
libswscale/swscale-test.c
libswscale/swscale_internal.h
libswscale/swscale_unscaled.c
libswscale/utils.c
libswscale/x86/swscale.c

diff --cc doc/APIchanges
Simple merge
Simple merge
  #define RGB_PIXEL_FORMATS  AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA,                 \
                             AV_PIX_FMT_RGB48, AV_PIX_FMT_RGBA64
  
- #define GRAY_PIXEL_FORMATS AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY8A,               \
+ #define GRAY_PIXEL_FORMATS AV_PIX_FMT_GRAY8, AV_PIX_FMT_YA8,                  \
                             AV_PIX_FMT_GRAY16
  
 -#define YUV_PIXEL_FORMATS  AV_PIX_FMT_YUV410P,   AV_PIX_FMT_YUV411P,          \
 -                           AV_PIX_FMT_YUVA420P,                               \
 -                           AV_PIX_FMT_YUV420P,   AV_PIX_FMT_YUV422P,          \
 -                           AV_PIX_FMT_YUV440P,   AV_PIX_FMT_YUV444P,          \
 -                           AV_PIX_FMT_YUV420P9,  AV_PIX_FMT_YUV422P9,         \
 -                           AV_PIX_FMT_YUV444P9,                               \
 -                           AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10,        \
 -                           AV_PIX_FMT_YUV444P10,                              \
 -                           AV_PIX_FMT_YUV420P16, AV_PIX_FMT_YUV422P16,        \
 -                           AV_PIX_FMT_YUV444P16
 +#define YUV_PIXEL_FORMATS  AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUVA420P, \
 +                           AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA422P, \
 +                           AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA444P, \
 +                           AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9, \
 +                           AV_PIX_FMT_YUVA420P9, AV_PIX_FMT_YUVA422P9, AV_PIX_FMT_YUVA444P9, \
 +                           AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10, \
 +                           AV_PIX_FMT_YUVA420P10, AV_PIX_FMT_YUVA422P10, AV_PIX_FMT_YUVA444P10, \
 +                           AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12, \
 +                           AV_PIX_FMT_YUV420P14, AV_PIX_FMT_YUV422P14, AV_PIX_FMT_YUV444P14, \
 +                           AV_PIX_FMT_YUV420P16, AV_PIX_FMT_YUV422P16, AV_PIX_FMT_YUV444P16, \
 +                           AV_PIX_FMT_YUVA420P16, AV_PIX_FMT_YUVA422P16, AV_PIX_FMT_YUVA444P16
  
  #define XYZ_PIXEL_FORMATS  AV_PIX_FMT_XYZ12
  
@@@ -93,8 -89,8 +93,8 @@@ static opj_image_t *mj2_create_image(AV
  
      switch (avctx->pix_fmt) {
      case AV_PIX_FMT_GRAY8:
-     case AV_PIX_FMT_GRAY8A:
 -    case AV_PIX_FMT_GRAY16:
+     case AV_PIX_FMT_YA8:
 +    case AV_PIX_FMT_GRAY16:
          color_space = CLRSPC_GRAY;
          break;
      case AV_PIX_FMT_RGB24:
@@@ -484,11 -302,8 +484,11 @@@ static int libopenjpeg_encode_frame(AVC
      switch (avctx->pix_fmt) {
      case AV_PIX_FMT_RGB24:
      case AV_PIX_FMT_RGBA:
-     case AV_PIX_FMT_GRAY8A:
+     case AV_PIX_FMT_YA8:
 -        libopenjpeg_copy_packed8(avctx, frame, image);
 +        cpyresult = libopenjpeg_copy_packed8(avctx, frame, image);
 +        break;
 +    case AV_PIX_FMT_XYZ12:
 +        cpyresult = libopenjpeg_copy_packed12(avctx, frame, image);
          break;
      case AV_PIX_FMT_RGB48:
      case AV_PIX_FMT_RGBA64:
@@@ -645,25 -420,18 +645,25 @@@ AVCodec ff_libopenjpeg_encoder = 
      .init           = libopenjpeg_encode_init,
      .encode2        = libopenjpeg_encode_frame,
      .close          = libopenjpeg_encode_close,
 -    .capabilities   = 0,
 +    .capabilities   = CODEC_CAP_FRAME_THREADS | CODEC_CAP_INTRA_ONLY,
      .pix_fmts       = (const enum AVPixelFormat[]) {
          AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA, AV_PIX_FMT_RGB48,
 -        AV_PIX_FMT_RGBA64,
 -        AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY16, AV_PIX_FMT_YA8,
 +        AV_PIX_FMT_RGBA64, AV_PIX_FMT_GBR24P,
 +        AV_PIX_FMT_GBRP9, AV_PIX_FMT_GBRP10, AV_PIX_FMT_GBRP12, AV_PIX_FMT_GBRP14, AV_PIX_FMT_GBRP16,
-         AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY8A, AV_PIX_FMT_GRAY16,
++        AV_PIX_FMT_GRAY8, AV_PIX_FMT_YA8, AV_PIX_FMT_GRAY16,
          AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA420P,
 -        AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P,
 -        AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P,
 +        AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA422P,
 +        AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUVA444P,
          AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV444P9,
 +        AV_PIX_FMT_YUVA420P9, AV_PIX_FMT_YUVA422P9, AV_PIX_FMT_YUVA444P9,
          AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV444P10,
 +        AV_PIX_FMT_YUVA420P10, AV_PIX_FMT_YUVA422P10, AV_PIX_FMT_YUVA444P10,
 +        AV_PIX_FMT_YUV420P12, AV_PIX_FMT_YUV422P12, AV_PIX_FMT_YUV444P12,
 +        AV_PIX_FMT_YUV420P14, AV_PIX_FMT_YUV422P14, AV_PIX_FMT_YUV444P14,
          AV_PIX_FMT_YUV420P16, AV_PIX_FMT_YUV422P16, AV_PIX_FMT_YUV444P16,
 +        AV_PIX_FMT_YUVA420P16, AV_PIX_FMT_YUVA422P16, AV_PIX_FMT_YUVA444P16,
 +        AV_PIX_FMT_XYZ12,
          AV_PIX_FMT_NONE
      },
 -    .priv_class     = &class,
 +    .priv_class     = &openjpeg_class,
  };
@@@ -644,21 -491,16 +644,21 @@@ static int decode_frame(AVCodecContext 
                  } else if (s->bit_depth == 16 &&
                             s->color_type == PNG_COLOR_TYPE_RGB) {
                      avctx->pix_fmt = AV_PIX_FMT_RGB48BE;
 -                } else if (s->bit_depth == 1 &&
 -                           s->color_type == PNG_COLOR_TYPE_GRAY) {
 -                    avctx->pix_fmt = AV_PIX_FMT_MONOBLACK;
 -                } else if (s->bit_depth == 8 &&
 +                } else if (s->bit_depth == 16 &&
 +                           s->color_type == PNG_COLOR_TYPE_RGB_ALPHA) {
 +                    avctx->pix_fmt = AV_PIX_FMT_RGBA64BE;
 +                } else if ((s->bits_per_pixel == 1 || s->bits_per_pixel == 2 || s->bits_per_pixel == 4 || s->bits_per_pixel == 8) &&
                             s->color_type == PNG_COLOR_TYPE_PALETTE) {
                      avctx->pix_fmt = AV_PIX_FMT_PAL8;
 +                } else if (s->bit_depth == 1) {
 +                    avctx->pix_fmt = AV_PIX_FMT_MONOBLACK;
                  } else if (s->bit_depth == 8 &&
                             s->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) {
-                     avctx->pix_fmt = AV_PIX_FMT_Y400A;
+                     avctx->pix_fmt = AV_PIX_FMT_YA8;
                  } else {
 +                    av_log(avctx, AV_LOG_ERROR, "unsupported bit depth %d "
 +                                                "and color type %d\n",
 +                                                 s->bit_depth, s->color_type);
                      goto fail;
                  }
  
@@@ -144,9 -127,7 +144,9 @@@ const PixelFormatTag ff_raw_pix_fmt_tag
      { AV_PIX_FMT_YUV444P16LE, MKTAG('Y', '3',  0 , 16 ) },
      { AV_PIX_FMT_YUV444P16BE, MKTAG(16 ,  0 , '3', 'Y') },
      { AV_PIX_FMT_YUVA420P,    MKTAG('Y', '4', 11 ,  8 ) },
-     { AV_PIX_FMT_GRAY8A,      MKTAG('Y', '2',  0 ,  8 ) },
 +    { AV_PIX_FMT_YUVA422P,    MKTAG('Y', '4', 10 ,  8 ) },
 +    { AV_PIX_FMT_YUVA444P,    MKTAG('Y', '4',  0 ,  8 ) },
+     { AV_PIX_FMT_YA8,         MKTAG('Y', '2',  0 ,  8 ) },
  
      { AV_PIX_FMT_YUVA420P9LE,  MKTAG('Y', '4', 11 ,  9 ) },
      { AV_PIX_FMT_YUVA420P9BE,  MKTAG( 9 , 11 , '4', 'Y') },
@@@ -1544,14 -1339,8 +1544,14 @@@ const AVPixFmtDescriptor av_pix_fmt_des
          .log2_chroma_h = 1,
          .flags = AV_PIX_FMT_FLAG_HWACCEL,
      },
-     [AV_PIX_FMT_GRAY8A] = {
-         .name = "gray8a",
 +    [AV_PIX_FMT_VDA_VLD] = {
 +        .name = "vda_vld",
 +        .log2_chroma_w = 1,
 +        .log2_chroma_h = 1,
 +        .flags = AV_PIX_FMT_FLAG_HWACCEL,
 +    },
+     [AV_PIX_FMT_YA8] = {
+         .name = "ya8",
          .nb_components = 2,
          .comp = {
              { 0, 1, 1, 0, 7 },        /* Y */
@@@ -145,15 -141,12 +145,19 @@@ enum AVPixelFormat 
      AV_PIX_FMT_RGB444BE,  ///< packed RGB 4:4:4, 16bpp, (msb)4A 4R 4G 4B(lsb), big-endian, most significant bits to 0
      AV_PIX_FMT_BGR444LE,  ///< packed BGR 4:4:4, 16bpp, (msb)4A 4B 4G 4R(lsb), little-endian, most significant bits to 1
      AV_PIX_FMT_BGR444BE,  ///< packed BGR 4:4:4, 16bpp, (msb)4A 4B 4G 4R(lsb), big-endian, most significant bits to 1
-     AV_PIX_FMT_GRAY8A,    ///< 8bit gray, 8bit alpha
+     AV_PIX_FMT_YA8,       ///< 8bit gray, 8bit alpha
+     AV_PIX_FMT_Y400A = AV_PIX_FMT_YA8, ///< alias for AV_PIX_FMT_YA8
++    AV_PIX_FMT_GRAY8A= AV_PIX_FMT_YA8, ///< alias for AV_PIX_FMT_YA8
      AV_PIX_FMT_BGR48BE,   ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as big-endian
      AV_PIX_FMT_BGR48LE,   ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as little-endian
 +
 +    /**
 +     * The following 12 formats have the disadvantage of needing 1 format for each bit depth.
 +     * Notice that each 9/10 bits sample is stored in 16 bits with extra padding.
 +     * If you want to support multiple bit depths, then using AV_PIX_FMT_YUV420P16* with the bpp stored separately is better.
 +     */
      AV_PIX_FMT_YUV420P9BE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
      AV_PIX_FMT_YUV420P9LE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
      AV_PIX_FMT_YUV420P10BE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
@@@ -55,9 -53,9 +55,9 @@@
   * @{
   */
  
 -#define LIBAVUTIL_VERSION_MAJOR 53
 -#define LIBAVUTIL_VERSION_MINOR 21
 -#define LIBAVUTIL_VERSION_MICRO  1
 +#define LIBAVUTIL_VERSION_MAJOR  52
 +#define LIBAVUTIL_VERSION_MINOR  96
- #define LIBAVUTIL_VERSION_MICRO 100
++#define LIBAVUTIL_VERSION_MICRO 101
  
  #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
                                                 LIBAVUTIL_VERSION_MINOR, \
@@@ -1332,12 -1085,9 +1332,12 @@@ av_cold void ff_sws_init_input_funcs(Sw
          case AV_PIX_FMT_ARGB:
              c->alpToYV12 = abgrToA_c;
              break;
-         case AV_PIX_FMT_Y400A:
+         case AV_PIX_FMT_YA8:
              c->alpToYV12 = uyvyToY_c;
              break;
 +        case AV_PIX_FMT_PAL8 :
 +            c->alpToYV12 = palToA_c;
 +            break;
          }
      }
  }
Simple merge
@@@ -764,22 -659,9 +764,22 @@@ static av_always_inline int isALPHA(enu
  {
      const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt);
      av_assert0(desc);
 -    return desc->nb_components == 2 || desc->nb_components == 4;
 +    if (pix_fmt == AV_PIX_FMT_PAL8)
 +        return 1;
 +    return desc->flags & AV_PIX_FMT_FLAG_ALPHA;
  }
  
-         || (x)==AV_PIX_FMT_Y400A       \
 +#if 1
 +#define isPacked(x)         (       \
 +           (x)==AV_PIX_FMT_PAL8        \
 +        || (x)==AV_PIX_FMT_YUYV422     \
 +        || (x)==AV_PIX_FMT_YVYU422     \
 +        || (x)==AV_PIX_FMT_UYVY422     \
++        || (x)==AV_PIX_FMT_YA8       \
 +        ||  isRGBinInt(x)           \
 +        ||  isBGRinInt(x)           \
 +    )
 +#else
  static av_always_inline int isPacked(enum AVPixelFormat pix_fmt)
  {
      const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt);
@@@ -1729,7 -1098,6 +1729,7 @@@ void ff_get_unscaled_swscale(SwsContex
      if (srcFormat == AV_PIX_FMT_UYVY422 && dstFormat == AV_PIX_FMT_YUV422P)
          c->swscale = uyvyToYuv422Wrapper;
  
- #define isPlanarGray(x) (isGray(x) && (x) != AV_PIX_FMT_GRAY8A)
++#define isPlanarGray(x) (isGray(x) && (x) != AV_PIX_FMT_YA8)
      /* simple copy */
      if ( srcFormat == dstFormat ||
          (srcFormat == AV_PIX_FMT_YUVA420P && dstFormat == AV_PIX_FMT_YUV420P) ||
@@@ -161,11 -154,11 +161,11 @@@ static const FormatEntry format_entries
      [AV_PIX_FMT_RGB444BE]    = { 1, 1 },
      [AV_PIX_FMT_BGR444LE]    = { 1, 1 },
      [AV_PIX_FMT_BGR444BE]    = { 1, 1 },
-     [AV_PIX_FMT_Y400A]       = { 1, 0 },
+     [AV_PIX_FMT_YA8]         = { 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 },
Simple merge