diff --git a/doc/APIchanges b/doc/APIchanges
index b8bcddfc3a1432d59e1cd539223e7d64f1dd7ff5..93e8b771da2a155f4022e5b206d0387470f50a38 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -15,6 +15,10 @@ libavutil:     2012-10-22
 
 API changes, most recent first:
 
+2014-08-xx - xxxxxxx - lavu 53.21.1 - avstring.h
+  Rename AV_PIX_FMT_Y400A to AV_PIX_FMT_YA8 to better identify the format.
+  An alias pixel format and color space name are provided for compatibility.
+
 2014-08-xx - xxxxxxx - lavu 53.21.0 - pixdesc.h
   Support name aliases for pixel formats.
 
diff --git a/libavcodec/brenderpix.c b/libavcodec/brenderpix.c
index e0d033fcf919ed3fc10829fd5b1a47a9624bb946..02d922f8f5efcdab2501f7f84490ed092103d70f 100644
--- a/libavcodec/brenderpix.c
+++ b/libavcodec/brenderpix.c
@@ -197,7 +197,7 @@ static int pix_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
         bytes_pp = 4;
         break;
     case 18:
-        avctx->pix_fmt = AV_PIX_FMT_Y400A;
+        avctx->pix_fmt = AV_PIX_FMT_YA8;
         bytes_pp = 2;
         break;
     default:
diff --git a/libavcodec/libopenjpegdec.c b/libavcodec/libopenjpegdec.c
index 178e4488c41c184d52ece3fd33f78ebfa78e5db7..0cf46e613df0f6cd823a0956b9bad92a092859fa 100644
--- a/libavcodec/libopenjpegdec.c
+++ b/libavcodec/libopenjpegdec.c
@@ -50,7 +50,7 @@
 #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, \
diff --git a/libavcodec/libopenjpegenc.c b/libavcodec/libopenjpegenc.c
index 0fcc48ffdd808f7927fb3d7f751962b37ba7f5be..66633f4ad20e792f60de6ea66850a0870b1a9a5b 100644
--- a/libavcodec/libopenjpegenc.c
+++ b/libavcodec/libopenjpegenc.c
@@ -93,7 +93,7 @@ static opj_image_t *mj2_create_image(AVCodecContext *avctx, opj_cparameters_t *p
 
     switch (avctx->pix_fmt) {
     case AV_PIX_FMT_GRAY8:
-    case AV_PIX_FMT_GRAY8A:
+    case AV_PIX_FMT_YA8:
     case AV_PIX_FMT_GRAY16:
         color_space = CLRSPC_GRAY;
         break;
@@ -484,7 +484,7 @@ static int libopenjpeg_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
     switch (avctx->pix_fmt) {
     case AV_PIX_FMT_RGB24:
     case AV_PIX_FMT_RGBA:
-    case AV_PIX_FMT_GRAY8A:
+    case AV_PIX_FMT_YA8:
         cpyresult = libopenjpeg_copy_packed8(avctx, frame, image);
         break;
     case AV_PIX_FMT_XYZ12:
@@ -650,7 +650,7 @@ AVCodec ff_libopenjpeg_encoder = {
         AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA, AV_PIX_FMT_RGB48,
         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_YUVA422P,
         AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUVA444P,
diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c
index e46800ba7a1a9ef8d47f11e1241216d9a9a483d0..66a59ae8bd450f43f679104243d62225fe08cb24 100644
--- a/libavcodec/pngdec.c
+++ b/libavcodec/pngdec.c
@@ -654,7 +654,7 @@ static int decode_frame(AVCodecContext *avctx,
                     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",
diff --git a/libavcodec/raw.c b/libavcodec/raw.c
index 551a1722fc6056e973bce37ee7b9e1f32cbff35b..56c4a6b118225a7e27c727631c1cdb16854d22fc 100644
--- a/libavcodec/raw.c
+++ b/libavcodec/raw.c
@@ -146,7 +146,7 @@ const PixelFormatTag ff_raw_pix_fmt_tags[] = {
     { AV_PIX_FMT_YUVA420P,    MKTAG('Y', '4', 11 ,  8 ) },
     { AV_PIX_FMT_YUVA422P,    MKTAG('Y', '4', 10 ,  8 ) },
     { AV_PIX_FMT_YUVA444P,    MKTAG('Y', '4',  0 ,  8 ) },
-    { AV_PIX_FMT_GRAY8A,      MKTAG('Y', '2',  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') },
diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
index 3fb7e2ade5ec07bb653a80ed2fcb1aae68a0a8e0..5deafb51155958267e48a6d7d50238c88bb3c145 100644
--- a/libavutil/pixdesc.c
+++ b/libavutil/pixdesc.c
@@ -1550,14 +1550,15 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_h = 1,
         .flags = AV_PIX_FMT_FLAG_HWACCEL,
     },
-    [AV_PIX_FMT_GRAY8A] = {
-        .name = "gray8a",
+    [AV_PIX_FMT_YA8] = {
+        .name = "ya8",
         .nb_components = 2,
         .comp = {
             { 0, 1, 1, 0, 7 },        /* Y */
             { 0, 1, 2, 0, 7 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_ALPHA,
+        .alias = "gray8a",
     },
     [AV_PIX_FMT_GBRP] = {
         .name = "gbrp",
diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
index 3a6211789dca07bb821b5c925c02aa4d0a5a5a31..6e4568133e1a9210b951dcc67cfb37b9d1b265e7 100644
--- a/libavutil/pixfmt.h
+++ b/libavutil/pixfmt.h
@@ -145,7 +145,11 @@ 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
 
diff --git a/libavutil/version.h b/libavutil/version.h
index 69001f3d5044f2f0054197ea180f24a7b8771843..c31c1501d3e0e36ae488692c3a4ddec421b7385f 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -57,7 +57,7 @@
 
 #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, \
diff --git a/libswscale/input.c b/libswscale/input.c
index 6a39a3011d7cb02e9797e73423beed8459d08db9..15b0f5da3ce27fa31c724ccdb3be73014dde33c1 100644
--- a/libswscale/input.c
+++ b/libswscale/input.c
@@ -1217,7 +1217,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
 #endif
     case AV_PIX_FMT_YUYV422:
     case AV_PIX_FMT_YVYU422:
-    case AV_PIX_FMT_Y400A:
+    case AV_PIX_FMT_YA8:
         c->lumToYV12 = yuy2ToY_c;
         break;
     case AV_PIX_FMT_UYVY422:
@@ -1332,7 +1332,7 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
         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 :
diff --git a/libswscale/swscale-test.c b/libswscale/swscale-test.c
index e0b887e8756ab5162dff93d2a75a80072cd02955..22df13c0a760a818a013448745d527f87245323c 100644
--- a/libswscale/swscale-test.c
+++ b/libswscale/swscale-test.c
@@ -37,7 +37,7 @@
  * Should be removed when a cleaner pixel format system exists. */
 #define isGray(x)                      \
     ((x) == AV_PIX_FMT_GRAY8       ||     \
-     (x) == AV_PIX_FMT_Y400A       ||     \
+     (x) == AV_PIX_FMT_YA8         ||     \
      (x) == AV_PIX_FMT_GRAY16BE    ||     \
      (x) == AV_PIX_FMT_GRAY16LE)
 #define hasChroma(x)                   \
diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h
index 557b0ae52200edff58c70d8eba218de90193ec88..cf7b955bacf06c735ccb48bc1b68260c2285ac53 100644
--- a/libswscale/swscale_internal.h
+++ b/libswscale/swscale_internal.h
@@ -670,7 +670,7 @@ static av_always_inline int isRGB(enum AVPixelFormat pix_fmt)
 #else
 #define isGray(x)                      \
     ((x) == AV_PIX_FMT_GRAY8       ||  \
-     (x) == AV_PIX_FMT_Y400A       ||  \
+     (x) == AV_PIX_FMT_YA8         ||  \
      (x) == AV_PIX_FMT_GRAY16BE    ||  \
      (x) == AV_PIX_FMT_GRAY16LE)
 #endif
@@ -775,7 +775,7 @@ static av_always_inline int isALPHA(enum AVPixelFormat pix_fmt)
         || (x)==AV_PIX_FMT_YUYV422     \
         || (x)==AV_PIX_FMT_YVYU422     \
         || (x)==AV_PIX_FMT_UYVY422     \
-        || (x)==AV_PIX_FMT_Y400A       \
+        || (x)==AV_PIX_FMT_YA8       \
         ||  isRGBinInt(x)           \
         ||  isBGRinInt(x)           \
     )
diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
index 99148d138566b63cbf915a5660c2ae8085b6e20d..8161eb0c9348887ce895034b2b77fb5994cec89f 100644
--- a/libswscale/swscale_unscaled.c
+++ b/libswscale/swscale_unscaled.c
@@ -376,7 +376,7 @@ static int palToRgbWrapper(SwsContext *c, const uint8_t *src[], int srcStride[],
     uint8_t *dstPtr = dst[0] + dstStride[0] * srcSliceY;
     const uint8_t *srcPtr = src[0];
 
-    if (srcFormat == AV_PIX_FMT_GRAY8A) {
+    if (srcFormat == AV_PIX_FMT_YA8) {
         switch (dstFormat) {
         case AV_PIX_FMT_RGB32  : conv = gray8aToPacked32; break;
         case AV_PIX_FMT_BGR32  : conv = gray8aToPacked32; break;
@@ -1729,7 +1729,7 @@ void ff_get_unscaled_swscale(SwsContext *c)
     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) ||
diff --git a/libswscale/utils.c b/libswscale/utils.c
index 851965091a8d973a454aec3dced8656fda77eed4..22965310dabe79239505c53a8c6545898daa1603 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -161,7 +161,7 @@ static const FormatEntry format_entries[AV_PIX_FMT_NB] = {
     [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]    = { 1, 1, 1 },
diff --git a/libswscale/x86/swscale.c b/libswscale/x86/swscale.c
index 98cded2ec4da797f030823a19de5f971f95314b0..c4c0e28e53df005cb4b2e3ecac2fb750fd887907 100644
--- a/libswscale/x86/swscale.c
+++ b/libswscale/x86/swscale.c
@@ -448,7 +448,7 @@ switch(c->dstBpc){ \
         ASSIGN_VSCALE_FUNC(c->yuv2plane1, mmx, mmxext, cpu_flags & AV_CPU_FLAG_MMXEXT);
 
         switch (c->srcFormat) {
-        case AV_PIX_FMT_Y400A:
+        case AV_PIX_FMT_YA8:
             c->lumToYV12 = ff_yuyvToY_mmx;
             if (c->alpPixBuf)
                 c->alpToYV12 = ff_uyvyToY_mmx;
@@ -497,7 +497,7 @@ switch(c->dstBpc){ \
         ASSIGN_VSCALE_FUNC(c->yuv2plane1, sse2, sse2, 1);
 
         switch (c->srcFormat) {
-        case AV_PIX_FMT_Y400A:
+        case AV_PIX_FMT_YA8:
             c->lumToYV12 = ff_yuyvToY_sse2;
             if (c->alpPixBuf)
                 c->alpToYV12 = ff_uyvyToY_sse2;