]> git.sesse.net Git - ffmpeg/blobdiff - libavutil/pixdesc.c
avutil/pixdesc: Remove deprecated off-by-one fields from pix fmt descs
[ffmpeg] / libavutil / pixdesc.c
index 970a83214c5062c1b92440b0953d30bf103146a3..e701005bc08b15d040a278df5ab482b70a35a571 100644 (file)
 #include "intreadwrite.h"
 #include "version.h"
 
-void av_read_image_line(uint16_t *dst,
+void av_read_image_line2(void *dst,
                         const uint8_t *data[4], const int linesize[4],
                         const AVPixFmtDescriptor *desc,
                         int x, int y, int c, int w,
-                        int read_pal_component)
+                        int read_pal_component,
+                        int dst_element_size)
 {
     AVComponentDescriptor comp = desc->comp[c];
     int plane = comp.plane;
     int depth = comp.depth;
-    int mask  = (1 << depth) - 1;
+    unsigned mask  = (1ULL << depth) - 1;
     int shift = comp.shift;
     int step  = comp.step;
     int flags = desc->flags;
+    uint16_t *dst16 = dst;
+    uint32_t *dst32 = dst;
 
     if (flags & AV_PIX_FMT_FLAG_BITSTREAM) {
         int skip = x * step + comp.offset;
@@ -57,38 +60,56 @@ void av_read_image_line(uint16_t *dst,
             shift -= step;
             p -= shift >> 3;
             shift &= 7;
-            *dst++ = val;
+            if (dst_element_size == 4) *dst32++ = val;
+            else                       *dst16++ = val;
         }
     } else {
         const uint8_t *p = data[plane] + y * linesize[plane] +
                            x * step + comp.offset;
         int is_8bit = shift + depth <= 8;
+        int is_16bit= shift + depth <=16;
 
         if (is_8bit)
             p += !!(flags & AV_PIX_FMT_FLAG_BE);
 
         while (w--) {
-            int val = is_8bit ? *p :
-                flags & AV_PIX_FMT_FLAG_BE ? AV_RB16(p) : AV_RL16(p);
+            unsigned val;
+            if     (is_8bit)  val = *p;
+            else if(is_16bit) val = flags & AV_PIX_FMT_FLAG_BE ? AV_RB16(p) : AV_RL16(p);
+            else              val = flags & AV_PIX_FMT_FLAG_BE ? AV_RB32(p) : AV_RL32(p);
             val = (val >> shift) & mask;
             if (read_pal_component)
                 val = data[1][4 * val + c];
             p += step;
-            *dst++ = val;
+            if (dst_element_size == 4) *dst32++ = val;
+            else                       *dst16++ = val;
         }
     }
 }
 
-void av_write_image_line(const uint16_t *src,
+void av_read_image_line(uint16_t *dst,
+                        const uint8_t *data[4], const int linesize[4],
+                        const AVPixFmtDescriptor *desc,
+                        int x, int y, int c, int w,
+                        int read_pal_component)
+{
+    av_read_image_line2(dst, data, linesize, desc,x, y, c, w,
+                        read_pal_component,
+                        2);
+}
+
+void av_write_image_line2(const void *src,
                          uint8_t *data[4], const int linesize[4],
                          const AVPixFmtDescriptor *desc,
-                         int x, int y, int c, int w)
+                         int x, int y, int c, int w, int src_element_size)
 {
     AVComponentDescriptor comp = desc->comp[c];
     int plane = comp.plane;
     int depth = comp.depth;
     int step  = comp.step;
     int flags = desc->flags;
+    const uint32_t *src32 = src;
+    const uint16_t *src16 = src;
 
     if (flags & AV_PIX_FMT_FLAG_BITSTREAM) {
         int skip = x * step + comp.offset;
@@ -96,7 +117,7 @@ void av_write_image_line(const uint16_t *src,
         int shift = 8 - depth - (skip & 7);
 
         while (w--) {
-            *p |= *src++ << shift;
+            *p |= (src_element_size == 4 ? *src32++ : *src16++) << shift;
             shift -= step;
             p -= shift >> 3;
             shift &= 7;
@@ -109,17 +130,28 @@ void av_write_image_line(const uint16_t *src,
         if (shift + depth <= 8) {
             p += !!(flags & AV_PIX_FMT_FLAG_BE);
             while (w--) {
-                *p |= (*src++ << shift);
+                *p |= ((src_element_size == 4 ? *src32++ : *src16++) << shift);
                 p += step;
             }
         } else {
             while (w--) {
-                if (flags & AV_PIX_FMT_FLAG_BE) {
-                    uint16_t val = AV_RB16(p) | (*src++ << shift);
-                    AV_WB16(p, val);
+                unsigned s = (src_element_size == 4 ? *src32++ : *src16++);
+                if (shift + depth <= 16) {
+                    if (flags & AV_PIX_FMT_FLAG_BE) {
+                        uint16_t val = AV_RB16(p) | (s << shift);
+                        AV_WB16(p, val);
+                    } else {
+                        uint16_t val = AV_RL16(p) | (s << shift);
+                        AV_WL16(p, val);
+                    }
                 } else {
-                    uint16_t val = AV_RL16(p) | (*src++ << shift);
-                    AV_WL16(p, val);
+                    if (flags & AV_PIX_FMT_FLAG_BE) {
+                        uint32_t val = AV_RB32(p) | (s << shift);
+                        AV_WB32(p, val);
+                    } else {
+                        uint32_t val = AV_RL32(p) | (s << shift);
+                        AV_WL32(p, val);
+                    }
                 }
                 p += step;
             }
@@ -127,9 +159,14 @@ void av_write_image_line(const uint16_t *src,
     }
 }
 
-#if FF_API_PLUS1_MINUS1
-FF_DISABLE_DEPRECATION_WARNINGS
-#endif
+void av_write_image_line(const uint16_t *src,
+                         uint8_t *data[4], const int linesize[4],
+                         const AVPixFmtDescriptor *desc,
+                         int x, int y, int c, int w)
+{
+    av_write_image_line2(src, data, linesize, desc, x, y, c, w, 2);
+}
+
 static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
     [AV_PIX_FMT_YUV420P] = {
         .name = "yuv420p",
@@ -137,9 +174,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
-            { 1, 1, 0, 0, 8, 0, 7, 1 },        /* U */
-            { 2, 1, 0, 0, 8, 0, 7, 1 },        /* V */
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 1, 0, 0, 8 },        /* U */
+            { 2, 1, 0, 0, 8 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -149,9 +186,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 8, 1, 7, 1 },        /* Y */
-            { 0, 4, 1, 0, 8, 3, 7, 2 },        /* U */
-            { 0, 4, 3, 0, 8, 3, 7, 4 },        /* V */
+            { 0, 2, 0, 0, 8 },        /* Y */
+            { 0, 4, 1, 0, 8 },        /* U */
+            { 0, 4, 3, 0, 8 },        /* V */
         },
     },
     [AV_PIX_FMT_YVYU422] = {
@@ -160,10 +197,33 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 8, 1, 7, 1 },        /* Y */
-            { 0, 4, 3, 0, 8, 3, 7, 4 },        /* U */
-            { 0, 4, 1, 0, 8, 3, 7, 2 },        /* V */
+            { 0, 2, 0, 0, 8 },        /* Y */
+            { 0, 4, 3, 0, 8 },        /* U */
+            { 0, 4, 1, 0, 8 },        /* V */
+        },
+    },
+    [AV_PIX_FMT_Y210LE] = {
+        .name = "y210le",
+        .nb_components = 3,
+        .log2_chroma_w = 1,
+        .log2_chroma_h = 0,
+        .comp = {
+            { 0, 4, 0, 6, 10 },        /* Y */
+            { 0, 8, 2, 6, 10 },        /* U */
+            { 0, 8, 6, 6, 10 },        /* V */
+        },
+    },
+    [AV_PIX_FMT_Y210BE] = {
+        .name = "y210be",
+        .nb_components = 3,
+        .log2_chroma_w = 1,
+        .log2_chroma_h = 0,
+        .comp = {
+            { 0, 4, 0, 6, 10 },        /* Y */
+            { 0, 8, 2, 6, 10 },        /* U */
+            { 0, 8, 6, 6, 10 },        /* V */
         },
+        .flags = AV_PIX_FMT_FLAG_BE,
     },
     [AV_PIX_FMT_RGB24] = {
         .name = "rgb24",
@@ -171,9 +231,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 3, 0, 0, 8, 2, 7, 1 },        /* R */
-            { 0, 3, 1, 0, 8, 2, 7, 2 },        /* G */
-            { 0, 3, 2, 0, 8, 2, 7, 3 },        /* B */
+            { 0, 3, 0, 0, 8 },        /* R */
+            { 0, 3, 1, 0, 8 },        /* G */
+            { 0, 3, 2, 0, 8 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB,
     },
@@ -183,21 +243,45 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 3, 2, 0, 8, 2, 7, 3 },        /* R */
-            { 0, 3, 1, 0, 8, 2, 7, 2 },        /* G */
-            { 0, 3, 0, 0, 8, 2, 7, 1 },        /* B */
+            { 0, 3, 2, 0, 8 },        /* R */
+            { 0, 3, 1, 0, 8 },        /* G */
+            { 0, 3, 0, 0, 8 },        /* B */
+        },
+        .flags = AV_PIX_FMT_FLAG_RGB,
+    },
+    [AV_PIX_FMT_X2RGB10LE] = {
+        .name = "x2rgb10le",
+        .nb_components= 3,
+        .log2_chroma_w= 0,
+        .log2_chroma_h= 0,
+        .comp = {
+            { 0, 4, 2, 4, 10 },       /* R */
+            { 0, 4, 1, 2, 10 },       /* G */
+            { 0, 4, 0, 0, 10 },       /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB,
     },
+    [AV_PIX_FMT_X2RGB10BE] = {
+        .name = "x2rgb10be",
+        .nb_components= 3,
+        .log2_chroma_w= 0,
+        .log2_chroma_h= 0,
+        .comp = {
+            { 0, 4, 0, 4, 10 },       /* R */
+            { 0, 4, 1, 2, 10 },       /* G */
+            { 0, 4, 2, 0, 10 },       /* B */
+        },
+        .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_BE,
+    },
     [AV_PIX_FMT_YUV422P] = {
         .name = "yuv422p",
         .nb_components = 3,
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
-            { 1, 1, 0, 0, 8, 0, 7, 1 },        /* U */
-            { 2, 1, 0, 0, 8, 0, 7, 1 },        /* V */
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 1, 0, 0, 8 },        /* U */
+            { 2, 1, 0, 0, 8 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -207,9 +291,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
-            { 1, 1, 0, 0, 8, 0, 7, 1 },        /* U */
-            { 2, 1, 0, 0, 8, 0, 7, 1 },        /* V */
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 1, 0, 0, 8 },        /* U */
+            { 2, 1, 0, 0, 8 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -219,9 +303,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 2,
         .log2_chroma_h = 2,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
-            { 1, 1, 0, 0, 8, 0, 7, 1 },        /* U */
-            { 2, 1, 0, 0, 8, 0, 7, 1 },        /* V */
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 1, 0, 0, 8 },        /* U */
+            { 2, 1, 0, 0, 8 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -231,9 +315,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 2,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
-            { 1, 1, 0, 0, 8, 0, 7, 1 },        /* U */
-            { 2, 1, 0, 0, 8, 0, 7, 1 },        /* V */
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 1, 0, 0, 8 },        /* U */
+            { 2, 1, 0, 0, 8 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -243,9 +327,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 2,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
-            { 1, 1, 0, 0, 8, 0, 7, 1 },        /* U */
-            { 2, 1, 0, 0, 8, 0, 7, 1 },        /* V */
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 1, 0, 0, 8 },        /* U */
+            { 2, 1, 0, 0, 8 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -255,7 +339,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
+            { 0, 1, 0, 0, 8 },        /* Y */
         },
         .flags = FF_PSEUDOPAL,
         .alias = "gray8,y8",
@@ -266,7 +350,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 1, 0, 0, 1, 0, 0, 1 },        /* Y */
+            { 0, 1, 0, 0, 1 },        /* Y */
         },
         .flags = AV_PIX_FMT_FLAG_BITSTREAM,
     },
@@ -276,7 +360,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 1, 0, 7, 1, 0, 0, 1 },        /* Y */
+            { 0, 1, 0, 7, 1 },        /* Y */
         },
         .flags = AV_PIX_FMT_FLAG_BITSTREAM,
     },
@@ -286,7 +370,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },
+            { 0, 1, 0, 0, 8 },
         },
         .flags = AV_PIX_FMT_FLAG_PAL | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -296,9 +380,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
-            { 1, 1, 0, 0, 8, 0, 7, 1 },        /* U */
-            { 2, 1, 0, 0, 8, 0, 7, 1 },        /* V */
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 1, 0, 0, 8 },        /* U */
+            { 2, 1, 0, 0, 8 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -308,9 +392,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
-            { 1, 1, 0, 0, 8, 0, 7, 1 },        /* U */
-            { 2, 1, 0, 0, 8, 0, 7, 1 },        /* V */
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 1, 0, 0, 8 },        /* U */
+            { 2, 1, 0, 0, 8 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -320,9 +404,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
-            { 1, 1, 0, 0, 8, 0, 7, 1 },        /* U */
-            { 2, 1, 0, 0, 8, 0, 7, 1 },        /* V */
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 1, 0, 0, 8 },        /* U */
+            { 2, 1, 0, 0, 8 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -336,9 +420,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 1, 0, 8, 1, 7, 2 },        /* Y */
-            { 0, 4, 0, 0, 8, 3, 7, 1 },        /* U */
-            { 0, 4, 2, 0, 8, 3, 7, 3 },        /* V */
+            { 0, 2, 1, 0, 8 },        /* Y */
+            { 0, 4, 0, 0, 8 },        /* U */
+            { 0, 4, 2, 0, 8 },        /* V */
         },
     },
     [AV_PIX_FMT_UYYVYY411] = {
@@ -347,9 +431,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 2,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 4, 1, 0, 8, 3, 7, 2 },        /* Y */
-            { 0, 6, 0, 0, 8, 5, 7, 1 },        /* U */
-            { 0, 6, 3, 0, 8, 5, 7, 4 },        /* V */
+            { 0, 4, 1, 0, 8 },        /* Y */
+            { 0, 6, 0, 0, 8 },        /* U */
+            { 0, 6, 3, 0, 8 },        /* V */
         },
     },
     [AV_PIX_FMT_BGR8] = {
@@ -358,9 +442,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 1, 0, 0, 3, 0, 2, 1 },        /* R */
-            { 0, 1, 0, 3, 3, 0, 2, 1 },        /* G */
-            { 0, 1, 0, 6, 2, 0, 1, 1 },        /* B */
+            { 0, 1, 0, 0, 3 },        /* R */
+            { 0, 1, 0, 3, 3 },        /* G */
+            { 0, 1, 0, 6, 2 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB | FF_PSEUDOPAL,
     },
@@ -370,9 +454,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 4, 3, 0, 1, 3, 0, 4 },        /* R */
-            { 0, 4, 1, 0, 2, 3, 1, 2 },        /* G */
-            { 0, 4, 0, 0, 1, 3, 0, 1 },        /* B */
+            { 0, 4, 3, 0, 1 },        /* R */
+            { 0, 4, 1, 0, 2 },        /* G */
+            { 0, 4, 0, 0, 1 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_BITSTREAM | AV_PIX_FMT_FLAG_RGB,
     },
@@ -382,9 +466,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 1, 0, 0, 1, 0, 0, 1 },        /* R */
-            { 0, 1, 0, 1, 2, 0, 1, 1 },        /* G */
-            { 0, 1, 0, 3, 1, 0, 0, 1 },        /* B */
+            { 0, 1, 0, 0, 1 },        /* R */
+            { 0, 1, 0, 1, 2 },        /* G */
+            { 0, 1, 0, 3, 1 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB | FF_PSEUDOPAL,
     },
@@ -394,9 +478,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 1, 0, 6, 2, 0, 1, 1 },        /* R */
-            { 0, 1, 0, 3, 3, 0, 2, 1 },        /* G */
-            { 0, 1, 0, 0, 3, 0, 2, 1 },        /* B */
+            { 0, 1, 0, 6, 2 },        /* R */
+            { 0, 1, 0, 3, 3 },        /* G */
+            { 0, 1, 0, 0, 3 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB | FF_PSEUDOPAL,
     },
@@ -406,9 +490,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 4, 0, 0, 1, 3, 0, 1 },        /* R */
-            { 0, 4, 1, 0, 2, 3, 1, 2 },        /* G */
-            { 0, 4, 3, 0, 1, 3, 0, 4 },        /* B */
+            { 0, 4, 0, 0, 1 },        /* R */
+            { 0, 4, 1, 0, 2 },        /* G */
+            { 0, 4, 3, 0, 1 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_BITSTREAM | AV_PIX_FMT_FLAG_RGB,
     },
@@ -418,9 +502,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 1, 0, 3, 1, 0, 0, 1 },        /* R */
-            { 0, 1, 0, 1, 2, 0, 1, 1 },        /* G */
-            { 0, 1, 0, 0, 1, 0, 0, 1 },        /* B */
+            { 0, 1, 0, 3, 1 },        /* R */
+            { 0, 1, 0, 1, 2 },        /* G */
+            { 0, 1, 0, 0, 1 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB | FF_PSEUDOPAL,
     },
@@ -430,9 +514,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
-            { 1, 2, 0, 0, 8, 1, 7, 1 },        /* U */
-            { 1, 2, 1, 0, 8, 1, 7, 2 },        /* V */
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 2, 0, 0, 8 },        /* U */
+            { 1, 2, 1, 0, 8 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -442,9 +526,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
-            { 1, 2, 1, 0, 8, 1, 7, 2 },        /* U */
-            { 1, 2, 0, 0, 8, 1, 7, 1 },        /* V */
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 2, 1, 0, 8 },        /* U */
+            { 1, 2, 0, 0, 8 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -454,10 +538,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 4, 1, 0, 8, 3, 7, 2 },        /* R */
-            { 0, 4, 2, 0, 8, 3, 7, 3 },        /* G */
-            { 0, 4, 3, 0, 8, 3, 7, 4 },        /* B */
-            { 0, 4, 0, 0, 8, 3, 7, 1 },        /* A */
+            { 0, 4, 1, 0, 8 },        /* R */
+            { 0, 4, 2, 0, 8 },        /* G */
+            { 0, 4, 3, 0, 8 },        /* B */
+            { 0, 4, 0, 0, 8 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -467,10 +551,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 4, 0, 0, 8, 3, 7, 1 },        /* R */
-            { 0, 4, 1, 0, 8, 3, 7, 2 },        /* G */
-            { 0, 4, 2, 0, 8, 3, 7, 3 },        /* B */
-            { 0, 4, 3, 0, 8, 3, 7, 4 },        /* A */
+            { 0, 4, 0, 0, 8 },        /* R */
+            { 0, 4, 1, 0, 8 },        /* G */
+            { 0, 4, 2, 0, 8 },        /* B */
+            { 0, 4, 3, 0, 8 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -480,10 +564,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 4, 3, 0, 8, 3, 7, 4 },        /* R */
-            { 0, 4, 2, 0, 8, 3, 7, 3 },        /* G */
-            { 0, 4, 1, 0, 8, 3, 7, 2 },        /* B */
-            { 0, 4, 0, 0, 8, 3, 7, 1 },        /* A */
+            { 0, 4, 3, 0, 8 },        /* R */
+            { 0, 4, 2, 0, 8 },        /* G */
+            { 0, 4, 1, 0, 8 },        /* B */
+            { 0, 4, 0, 0, 8 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -493,10 +577,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 4, 2, 0, 8, 3, 7, 3 },        /* R */
-            { 0, 4, 1, 0, 8, 3, 7, 2 },        /* G */
-            { 0, 4, 0, 0, 8, 3, 7, 1 },        /* B */
-            { 0, 4, 3, 0, 8, 3, 7, 4 },        /* A */
+            { 0, 4, 2, 0, 8 },        /* R */
+            { 0, 4, 1, 0, 8 },        /* G */
+            { 0, 4, 0, 0, 8 },        /* B */
+            { 0, 4, 3, 0, 8 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -506,9 +590,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w= 0,
         .log2_chroma_h= 0,
         .comp = {
-            { 0, 4, 1, 0, 8, 3, 7, 2 },        /* R */
-            { 0, 4, 2, 0, 8, 3, 7, 3 },        /* G */
-            { 0, 4, 3, 0, 8, 3, 7, 4 },        /* B */
+            { 0, 4, 1, 0, 8 },        /* R */
+            { 0, 4, 2, 0, 8 },        /* G */
+            { 0, 4, 3, 0, 8 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB,
     },
@@ -518,9 +602,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w= 0,
         .log2_chroma_h= 0,
         .comp = {
-            { 0, 4, 0, 0, 8, 3, 7, 1 },        /* R */
-            { 0, 4, 1, 0, 8, 3, 7, 2 },        /* G */
-            { 0, 4, 2, 0, 8, 3, 7, 3 },        /* B */
+            { 0, 4, 0, 0, 8 },        /* R */
+            { 0, 4, 1, 0, 8 },        /* G */
+            { 0, 4, 2, 0, 8 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB,
     },
@@ -530,9 +614,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w= 0,
         .log2_chroma_h= 0,
         .comp = {
-            { 0, 4, 3, 0, 8, 3, 7, 4 },        /* R */
-            { 0, 4, 2, 0, 8, 3, 7, 3 },        /* G */
-            { 0, 4, 1, 0, 8, 3, 7, 2 },        /* B */
+            { 0, 4, 3, 0, 8 },        /* R */
+            { 0, 4, 2, 0, 8 },        /* G */
+            { 0, 4, 1, 0, 8 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB,
     },
@@ -542,9 +626,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w= 0,
         .log2_chroma_h= 0,
         .comp = {
-            { 0, 4, 2, 0, 8, 3, 7, 3 },        /* R */
-            { 0, 4, 1, 0, 8, 3, 7, 2 },        /* G */
-            { 0, 4, 0, 0, 8, 3, 7, 1 },        /* B */
+            { 0, 4, 2, 0, 8 },        /* R */
+            { 0, 4, 1, 0, 8 },        /* G */
+            { 0, 4, 0, 0, 8 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB,
     },
@@ -554,7 +638,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 9, 1, 8, 1 },       /* Y */
+            { 0, 2, 0, 0, 9 },       /* Y */
         },
         .flags = AV_PIX_FMT_FLAG_BE,
         .alias = "y9be",
@@ -565,7 +649,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 9, 1, 8, 1 },       /* Y */
+            { 0, 2, 0, 0, 9 },       /* Y */
         },
         .alias = "y9le",
     },
@@ -575,7 +659,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },       /* Y */
+            { 0, 2, 0, 0, 10 },       /* Y */
         },
         .flags = AV_PIX_FMT_FLAG_BE,
         .alias = "y10be",
@@ -586,7 +670,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },       /* Y */
+            { 0, 2, 0, 0, 10 },       /* Y */
         },
         .alias = "y10le",
     },
@@ -596,7 +680,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 12, 1, 11, 1 },       /* Y */
+            { 0, 2, 0, 0, 12 },       /* Y */
         },
         .flags = AV_PIX_FMT_FLAG_BE,
         .alias = "y12be",
@@ -607,7 +691,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 12, 1, 11, 1 },       /* Y */
+            { 0, 2, 0, 0, 12 },       /* Y */
         },
         .alias = "y12le",
     },
@@ -617,7 +701,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 14, 1, 13, 1 },       /* Y */
+            { 0, 2, 0, 0, 14 },       /* Y */
         },
         .flags = AV_PIX_FMT_FLAG_BE,
         .alias = "y14be",
@@ -628,7 +712,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 14, 1, 13, 1 },       /* Y */
+            { 0, 2, 0, 0, 14 },       /* Y */
         },
         .alias = "y14le",
     },
@@ -638,7 +722,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 16, 1, 15, 1 },       /* Y */
+            { 0, 2, 0, 0, 16 },       /* Y */
         },
         .flags = AV_PIX_FMT_FLAG_BE,
         .alias = "y16be",
@@ -649,7 +733,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 16, 1, 15, 1 },       /* Y */
+            { 0, 2, 0, 0, 16 },       /* Y */
         },
         .alias = "y16le",
     },
@@ -659,9 +743,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
-            { 1, 1, 0, 0, 8, 0, 7, 1 },        /* U */
-            { 2, 1, 0, 0, 8, 0, 7, 1 },        /* V */
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 1, 0, 0, 8 },        /* U */
+            { 2, 1, 0, 0, 8 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -671,9 +755,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
-            { 1, 1, 0, 0, 8, 0, 7, 1 },        /* U */
-            { 2, 1, 0, 0, 8, 0, 7, 1 },        /* V */
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 1, 0, 0, 8 },        /* U */
+            { 2, 1, 0, 0, 8 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -683,9 +767,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* Y */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },        /* U */
-            { 2, 2, 0, 0, 10, 1, 9, 1 },        /* V */
+            { 0, 2, 0, 0, 10 },        /* Y */
+            { 1, 2, 0, 0, 10 },        /* U */
+            { 2, 2, 0, 0, 10 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -695,9 +779,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* Y */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },        /* U */
-            { 2, 2, 0, 0, 10, 1, 9, 1 },        /* V */
+            { 0, 2, 0, 0, 10 },        /* Y */
+            { 1, 2, 0, 0, 10 },        /* U */
+            { 2, 2, 0, 0, 10 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -707,9 +791,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 12, 1, 11, 1 },        /* Y */
-            { 1, 2, 0, 0, 12, 1, 11, 1 },        /* U */
-            { 2, 2, 0, 0, 12, 1, 11, 1 },        /* V */
+            { 0, 2, 0, 0, 12 },        /* Y */
+            { 1, 2, 0, 0, 12 },        /* U */
+            { 2, 2, 0, 0, 12 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -719,9 +803,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 12, 1, 11, 1 },        /* Y */
-            { 1, 2, 0, 0, 12, 1, 11, 1 },        /* U */
-            { 2, 2, 0, 0, 12, 1, 11, 1 },        /* V */
+            { 0, 2, 0, 0, 12 },        /* Y */
+            { 1, 2, 0, 0, 12 },        /* U */
+            { 2, 2, 0, 0, 12 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -731,10 +815,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
-            { 1, 1, 0, 0, 8, 0, 7, 1 },        /* U */
-            { 2, 1, 0, 0, 8, 0, 7, 1 },        /* V */
-            { 3, 1, 0, 0, 8, 0, 7, 1 },        /* A */
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 1, 0, 0, 8 },        /* U */
+            { 2, 1, 0, 0, 8 },        /* V */
+            { 3, 1, 0, 0, 8 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -744,10 +828,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
-            { 1, 1, 0, 0, 8, 0, 7, 1 },        /* U */
-            { 2, 1, 0, 0, 8, 0, 7, 1 },        /* V */
-            { 3, 1, 0, 0, 8, 0, 7, 1 },        /* A */
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 1, 0, 0, 8 },        /* U */
+            { 2, 1, 0, 0, 8 },        /* V */
+            { 3, 1, 0, 0, 8 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -757,10 +841,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
-            { 1, 1, 0, 0, 8, 0, 7, 1 },        /* U */
-            { 2, 1, 0, 0, 8, 0, 7, 1 },        /* V */
-            { 3, 1, 0, 0, 8, 0, 7, 1 },        /* A */
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 1, 0, 0, 8 },        /* U */
+            { 2, 1, 0, 0, 8 },        /* V */
+            { 3, 1, 0, 0, 8 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -770,10 +854,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 9, 1, 8, 1 },        /* Y */
-            { 1, 2, 0, 0, 9, 1, 8, 1 },        /* U */
-            { 2, 2, 0, 0, 9, 1, 8, 1 },        /* V */
-            { 3, 2, 0, 0, 9, 1, 8, 1 },        /* A */
+            { 0, 2, 0, 0, 9 },        /* Y */
+            { 1, 2, 0, 0, 9 },        /* U */
+            { 2, 2, 0, 0, 9 },        /* V */
+            { 3, 2, 0, 0, 9 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -783,10 +867,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 9, 1, 8, 1 },        /* Y */
-            { 1, 2, 0, 0, 9, 1, 8, 1 },        /* U */
-            { 2, 2, 0, 0, 9, 1, 8, 1 },        /* V */
-            { 3, 2, 0, 0, 9, 1, 8, 1 },        /* A */
+            { 0, 2, 0, 0, 9 },        /* Y */
+            { 1, 2, 0, 0, 9 },        /* U */
+            { 2, 2, 0, 0, 9 },        /* V */
+            { 3, 2, 0, 0, 9 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -796,10 +880,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 9, 1, 8, 1 },        /* Y */
-            { 1, 2, 0, 0, 9, 1, 8, 1 },        /* U */
-            { 2, 2, 0, 0, 9, 1, 8, 1 },        /* V */
-            { 3, 2, 0, 0, 9, 1, 8, 1 },        /* A */
+            { 0, 2, 0, 0, 9 },        /* Y */
+            { 1, 2, 0, 0, 9 },        /* U */
+            { 2, 2, 0, 0, 9 },        /* V */
+            { 3, 2, 0, 0, 9 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -809,10 +893,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 9, 1, 8, 1 },        /* Y */
-            { 1, 2, 0, 0, 9, 1, 8, 1 },        /* U */
-            { 2, 2, 0, 0, 9, 1, 8, 1 },        /* V */
-            { 3, 2, 0, 0, 9, 1, 8, 1 },        /* A */
+            { 0, 2, 0, 0, 9 },        /* Y */
+            { 1, 2, 0, 0, 9 },        /* U */
+            { 2, 2, 0, 0, 9 },        /* V */
+            { 3, 2, 0, 0, 9 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -822,10 +906,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 9, 1, 8, 1 },        /* Y */
-            { 1, 2, 0, 0, 9, 1, 8, 1 },        /* U */
-            { 2, 2, 0, 0, 9, 1, 8, 1 },        /* V */
-            { 3, 2, 0, 0, 9, 1, 8, 1 },        /* A */
+            { 0, 2, 0, 0, 9 },        /* Y */
+            { 1, 2, 0, 0, 9 },        /* U */
+            { 2, 2, 0, 0, 9 },        /* V */
+            { 3, 2, 0, 0, 9 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -835,10 +919,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 9, 1, 8, 1 },        /* Y */
-            { 1, 2, 0, 0, 9, 1, 8, 1 },        /* U */
-            { 2, 2, 0, 0, 9, 1, 8, 1 },        /* V */
-            { 3, 2, 0, 0, 9, 1, 8, 1 },        /* A */
+            { 0, 2, 0, 0, 9 },        /* Y */
+            { 1, 2, 0, 0, 9 },        /* U */
+            { 2, 2, 0, 0, 9 },        /* V */
+            { 3, 2, 0, 0, 9 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -848,10 +932,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* Y */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },        /* U */
-            { 2, 2, 0, 0, 10, 1, 9, 1 },        /* V */
-            { 3, 2, 0, 0, 10, 1, 9, 1 },        /* A */
+            { 0, 2, 0, 0, 10 },        /* Y */
+            { 1, 2, 0, 0, 10 },        /* U */
+            { 2, 2, 0, 0, 10 },        /* V */
+            { 3, 2, 0, 0, 10 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -861,10 +945,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* Y */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },        /* U */
-            { 2, 2, 0, 0, 10, 1, 9, 1 },        /* V */
-            { 3, 2, 0, 0, 10, 1, 9, 1 },        /* A */
+            { 0, 2, 0, 0, 10 },        /* Y */
+            { 1, 2, 0, 0, 10 },        /* U */
+            { 2, 2, 0, 0, 10 },        /* V */
+            { 3, 2, 0, 0, 10 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -874,10 +958,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* Y */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },        /* U */
-            { 2, 2, 0, 0, 10, 1, 9, 1 },        /* V */
-            { 3, 2, 0, 0, 10, 1, 9, 1 },        /* A */
+            { 0, 2, 0, 0, 10 },        /* Y */
+            { 1, 2, 0, 0, 10 },        /* U */
+            { 2, 2, 0, 0, 10 },        /* V */
+            { 3, 2, 0, 0, 10 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -887,10 +971,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* Y */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },        /* U */
-            { 2, 2, 0, 0, 10, 1, 9, 1 },        /* V */
-            { 3, 2, 0, 0, 10, 1, 9, 1 },        /* A */
+            { 0, 2, 0, 0, 10 },        /* Y */
+            { 1, 2, 0, 0, 10 },        /* U */
+            { 2, 2, 0, 0, 10 },        /* V */
+            { 3, 2, 0, 0, 10 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -900,10 +984,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* Y */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },        /* U */
-            { 2, 2, 0, 0, 10, 1, 9, 1 },        /* V */
-            { 3, 2, 0, 0, 10, 1, 9, 1 },        /* A */
+            { 0, 2, 0, 0, 10 },        /* Y */
+            { 1, 2, 0, 0, 10 },        /* U */
+            { 2, 2, 0, 0, 10 },        /* V */
+            { 3, 2, 0, 0, 10 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -913,10 +997,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* Y */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },        /* U */
-            { 2, 2, 0, 0, 10, 1, 9, 1 },        /* V */
-            { 3, 2, 0, 0, 10, 1, 9, 1 },        /* A */
+            { 0, 2, 0, 0, 10 },        /* Y */
+            { 1, 2, 0, 0, 10 },        /* U */
+            { 2, 2, 0, 0, 10 },        /* V */
+            { 3, 2, 0, 0, 10 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -926,10 +1010,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 16, 1, 15, 1 },        /* Y */
-            { 1, 2, 0, 0, 16, 1, 15, 1 },        /* U */
-            { 2, 2, 0, 0, 16, 1, 15, 1 },        /* V */
-            { 3, 2, 0, 0, 16, 1, 15, 1 },        /* A */
+            { 0, 2, 0, 0, 16 },        /* Y */
+            { 1, 2, 0, 0, 16 },        /* U */
+            { 2, 2, 0, 0, 16 },        /* V */
+            { 3, 2, 0, 0, 16 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -939,10 +1023,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 16, 1, 15, 1 },        /* Y */
-            { 1, 2, 0, 0, 16, 1, 15, 1 },        /* U */
-            { 2, 2, 0, 0, 16, 1, 15, 1 },        /* V */
-            { 3, 2, 0, 0, 16, 1, 15, 1 },        /* A */
+            { 0, 2, 0, 0, 16 },        /* Y */
+            { 1, 2, 0, 0, 16 },        /* U */
+            { 2, 2, 0, 0, 16 },        /* V */
+            { 3, 2, 0, 0, 16 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -952,10 +1036,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 16, 1, 15, 1 },        /* Y */
-            { 1, 2, 0, 0, 16, 1, 15, 1 },        /* U */
-            { 2, 2, 0, 0, 16, 1, 15, 1 },        /* V */
-            { 3, 2, 0, 0, 16, 1, 15, 1 },        /* A */
+            { 0, 2, 0, 0, 16 },        /* Y */
+            { 1, 2, 0, 0, 16 },        /* U */
+            { 2, 2, 0, 0, 16 },        /* V */
+            { 3, 2, 0, 0, 16 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -965,10 +1049,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 16, 1, 15, 1 },        /* Y */
-            { 1, 2, 0, 0, 16, 1, 15, 1 },        /* U */
-            { 2, 2, 0, 0, 16, 1, 15, 1 },        /* V */
-            { 3, 2, 0, 0, 16, 1, 15, 1 },        /* A */
+            { 0, 2, 0, 0, 16 },        /* Y */
+            { 1, 2, 0, 0, 16 },        /* U */
+            { 2, 2, 0, 0, 16 },        /* V */
+            { 3, 2, 0, 0, 16 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -978,10 +1062,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 16, 1, 15, 1 },        /* Y */
-            { 1, 2, 0, 0, 16, 1, 15, 1 },        /* U */
-            { 2, 2, 0, 0, 16, 1, 15, 1 },        /* V */
-            { 3, 2, 0, 0, 16, 1, 15, 1 },        /* A */
+            { 0, 2, 0, 0, 16 },        /* Y */
+            { 1, 2, 0, 0, 16 },        /* U */
+            { 2, 2, 0, 0, 16 },        /* V */
+            { 3, 2, 0, 0, 16 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -991,10 +1075,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 16, 1, 15, 1 },        /* Y */
-            { 1, 2, 0, 0, 16, 1, 15, 1 },        /* U */
-            { 2, 2, 0, 0, 16, 1, 15, 1 },        /* V */
-            { 3, 2, 0, 0, 16, 1, 15, 1 },        /* A */
+            { 0, 2, 0, 0, 16 },        /* Y */
+            { 1, 2, 0, 0, 16 },        /* U */
+            { 2, 2, 0, 0, 16 },        /* V */
+            { 3, 2, 0, 0, 16 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -1004,9 +1088,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 6, 0, 0, 16, 5, 15, 1 },       /* R */
-            { 0, 6, 2, 0, 16, 5, 15, 3 },       /* G */
-            { 0, 6, 4, 0, 16, 5, 15, 5 },       /* B */
+            { 0, 6, 0, 0, 16 },       /* R */
+            { 0, 6, 2, 0, 16 },       /* G */
+            { 0, 6, 4, 0, 16 },       /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_BE,
     },
@@ -1016,9 +1100,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 6, 0, 0, 16, 5, 15, 1 },       /* R */
-            { 0, 6, 2, 0, 16, 5, 15, 3 },       /* G */
-            { 0, 6, 4, 0, 16, 5, 15, 5 },       /* B */
+            { 0, 6, 0, 0, 16 },       /* R */
+            { 0, 6, 2, 0, 16 },       /* G */
+            { 0, 6, 4, 0, 16 },       /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB,
     },
@@ -1028,10 +1112,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 8, 0, 0, 16, 7, 15, 1 },       /* R */
-            { 0, 8, 2, 0, 16, 7, 15, 3 },       /* G */
-            { 0, 8, 4, 0, 16, 7, 15, 5 },       /* B */
-            { 0, 8, 6, 0, 16, 7, 15, 7 },       /* A */
+            { 0, 8, 0, 0, 16 },       /* R */
+            { 0, 8, 2, 0, 16 },       /* G */
+            { 0, 8, 4, 0, 16 },       /* B */
+            { 0, 8, 6, 0, 16 },       /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -1041,10 +1125,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 8, 0, 0, 16, 7, 15, 1 },       /* R */
-            { 0, 8, 2, 0, 16, 7, 15, 3 },       /* G */
-            { 0, 8, 4, 0, 16, 7, 15, 5 },       /* B */
-            { 0, 8, 6, 0, 16, 7, 15, 7 },       /* A */
+            { 0, 8, 0, 0, 16 },       /* R */
+            { 0, 8, 2, 0, 16 },       /* G */
+            { 0, 8, 4, 0, 16 },       /* B */
+            { 0, 8, 6, 0, 16 },       /* A */
         },
         .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -1054,9 +1138,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, -1, 3, 5, 1, 4, 0 },        /* R */
-            { 0, 2,  0, 5, 6, 1, 5, 1 },        /* G */
-            { 0, 2,  0, 0, 5, 1, 4, 1 },        /* B */
+            { 0, 2, -1, 3, 5 },        /* R */
+            { 0, 2,  0, 5, 6 },        /* G */
+            { 0, 2,  0, 0, 5 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB,
     },
@@ -1066,9 +1150,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 1, 3, 5, 1, 4, 2 },        /* R */
-            { 0, 2, 0, 5, 6, 1, 5, 1 },        /* G */
-            { 0, 2, 0, 0, 5, 1, 4, 1 },        /* B */
+            { 0, 2, 1, 3, 5 },        /* R */
+            { 0, 2, 0, 5, 6 },        /* G */
+            { 0, 2, 0, 0, 5 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB,
     },
@@ -1078,9 +1162,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, -1, 2, 5, 1, 4, 0 },        /* R */
-            { 0, 2,  0, 5, 5, 1, 4, 1 },        /* G */
-            { 0, 2,  0, 0, 5, 1, 4, 1 },        /* B */
+            { 0, 2, -1, 2, 5 },        /* R */
+            { 0, 2,  0, 5, 5 },        /* G */
+            { 0, 2,  0, 0, 5 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB,
     },
@@ -1090,9 +1174,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 1, 2, 5, 1, 4, 2 },        /* R */
-            { 0, 2, 0, 5, 5, 1, 4, 1 },        /* G */
-            { 0, 2, 0, 0, 5, 1, 4, 1 },        /* B */
+            { 0, 2, 1, 2, 5 },        /* R */
+            { 0, 2, 0, 5, 5 },        /* G */
+            { 0, 2, 0, 0, 5 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB,
     },
@@ -1102,9 +1186,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, -1, 0, 4, 1, 3, 0 },        /* R */
-            { 0, 2,  0, 4, 4, 1, 3, 1 },        /* G */
-            { 0, 2,  0, 0, 4, 1, 3, 1 },        /* B */
+            { 0, 2, -1, 0, 4 },        /* R */
+            { 0, 2,  0, 4, 4 },        /* G */
+            { 0, 2,  0, 0, 4 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB,
     },
@@ -1114,9 +1198,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 1, 0, 4, 1, 3, 2 },        /* R */
-            { 0, 2, 0, 4, 4, 1, 3, 1 },        /* G */
-            { 0, 2, 0, 0, 4, 1, 3, 1 },        /* B */
+            { 0, 2, 1, 0, 4 },        /* R */
+            { 0, 2, 0, 4, 4 },        /* G */
+            { 0, 2, 0, 0, 4 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB,
     },
@@ -1126,9 +1210,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 6, 4, 0, 16, 5, 15, 5 },       /* R */
-            { 0, 6, 2, 0, 16, 5, 15, 3 },       /* G */
-            { 0, 6, 0, 0, 16, 5, 15, 1 },       /* B */
+            { 0, 6, 4, 0, 16 },       /* R */
+            { 0, 6, 2, 0, 16 },       /* G */
+            { 0, 6, 0, 0, 16 },       /* B */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB,
     },
@@ -1138,9 +1222,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 6, 4, 0, 16, 5, 15, 5 },       /* R */
-            { 0, 6, 2, 0, 16, 5, 15, 3 },       /* G */
-            { 0, 6, 0, 0, 16, 5, 15, 1 },       /* B */
+            { 0, 6, 4, 0, 16 },       /* R */
+            { 0, 6, 2, 0, 16 },       /* G */
+            { 0, 6, 0, 0, 16 },       /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB,
     },
@@ -1150,10 +1234,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 8, 4, 0, 16, 7, 15, 5 },       /* R */
-            { 0, 8, 2, 0, 16, 7, 15, 3 },       /* G */
-            { 0, 8, 0, 0, 16, 7, 15, 1 },       /* B */
-            { 0, 8, 6, 0, 16, 7, 15, 7 },       /* A */
+            { 0, 8, 4, 0, 16 },       /* R */
+            { 0, 8, 2, 0, 16 },       /* G */
+            { 0, 8, 0, 0, 16 },       /* B */
+            { 0, 8, 6, 0, 16 },       /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -1163,10 +1247,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 8, 4, 0, 16, 7, 15, 5 },       /* R */
-            { 0, 8, 2, 0, 16, 7, 15, 3 },       /* G */
-            { 0, 8, 0, 0, 16, 7, 15, 1 },       /* B */
-            { 0, 8, 6, 0, 16, 7, 15, 7 },       /* A */
+            { 0, 8, 4, 0, 16 },       /* R */
+            { 0, 8, 2, 0, 16 },       /* G */
+            { 0, 8, 0, 0, 16 },       /* B */
+            { 0, 8, 6, 0, 16 },       /* A */
         },
         .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -1176,9 +1260,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2,  0, 0, 5, 1, 4, 1 },        /* R */
-            { 0, 2,  0, 5, 6, 1, 5, 1 },        /* G */
-            { 0, 2, -1, 3, 5, 1, 4, 0 },        /* B */
+            { 0, 2,  0, 0, 5 },        /* R */
+            { 0, 2,  0, 5, 6 },        /* G */
+            { 0, 2, -1, 3, 5 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB,
     },
@@ -1188,9 +1272,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 5, 1, 4, 1 },        /* R */
-            { 0, 2, 0, 5, 6, 1, 5, 1 },        /* G */
-            { 0, 2, 1, 3, 5, 1, 4, 2 },        /* B */
+            { 0, 2, 0, 0, 5 },        /* R */
+            { 0, 2, 0, 5, 6 },        /* G */
+            { 0, 2, 1, 3, 5 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB,
     },
@@ -1200,9 +1284,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2,  0, 0, 5, 1, 4, 1 },       /* R */
-            { 0, 2,  0, 5, 5, 1, 4, 1 },       /* G */
-            { 0, 2, -1, 2, 5, 1, 4, 0 },       /* B */
+            { 0, 2,  0, 0, 5 },       /* R */
+            { 0, 2,  0, 5, 5 },       /* G */
+            { 0, 2, -1, 2, 5 },       /* B */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB,
      },
@@ -1212,9 +1296,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 5, 1, 4, 1 },        /* R */
-            { 0, 2, 0, 5, 5, 1, 4, 1 },        /* G */
-            { 0, 2, 1, 2, 5, 1, 4, 2 },        /* B */
+            { 0, 2, 0, 0, 5 },        /* R */
+            { 0, 2, 0, 5, 5 },        /* G */
+            { 0, 2, 1, 2, 5 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB,
     },
@@ -1224,9 +1308,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2,  0, 0, 4, 1, 3, 1 },       /* R */
-            { 0, 2,  0, 4, 4, 1, 3, 1 },       /* G */
-            { 0, 2, -1, 0, 4, 1, 3, 0 },       /* B */
+            { 0, 2,  0, 0, 4 },       /* R */
+            { 0, 2,  0, 4, 4 },       /* G */
+            { 0, 2, -1, 0, 4 },       /* B */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB,
      },
@@ -1236,48 +1320,27 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 4, 1, 3, 1 },        /* R */
-            { 0, 2, 0, 4, 4, 1, 3, 1 },        /* G */
-            { 0, 2, 1, 0, 4, 1, 3, 2 },        /* B */
+            { 0, 2, 0, 0, 4 },        /* R */
+            { 0, 2, 0, 4, 4 },        /* G */
+            { 0, 2, 1, 0, 4 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_RGB,
     },
-#if FF_API_VAAPI
-    [AV_PIX_FMT_VAAPI_MOCO] = {
-        .name = "vaapi_moco",
-        .log2_chroma_w = 1,
-        .log2_chroma_h = 1,
-        .flags = AV_PIX_FMT_FLAG_HWACCEL,
-    },
-    [AV_PIX_FMT_VAAPI_IDCT] = {
-        .name = "vaapi_idct",
-        .log2_chroma_w = 1,
-        .log2_chroma_h = 1,
-        .flags = AV_PIX_FMT_FLAG_HWACCEL,
-    },
-    [AV_PIX_FMT_VAAPI_VLD] = {
-        .name = "vaapi_vld",
-        .log2_chroma_w = 1,
-        .log2_chroma_h = 1,
-        .flags = AV_PIX_FMT_FLAG_HWACCEL,
-    },
-#else
     [AV_PIX_FMT_VAAPI] = {
         .name = "vaapi",
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .flags = AV_PIX_FMT_FLAG_HWACCEL,
     },
-#endif
     [AV_PIX_FMT_YUV420P9LE] = {
         .name = "yuv420p9le",
         .nb_components = 3,
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 9, 1, 8, 1 },        /* Y */
-            { 1, 2, 0, 0, 9, 1, 8, 1 },        /* U */
-            { 2, 2, 0, 0, 9, 1, 8, 1 },        /* V */
+            { 0, 2, 0, 0, 9 },        /* Y */
+            { 1, 2, 0, 0, 9 },        /* U */
+            { 2, 2, 0, 0, 9 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1287,9 +1350,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 9, 1, 8, 1 },        /* Y */
-            { 1, 2, 0, 0, 9, 1, 8, 1 },        /* U */
-            { 2, 2, 0, 0, 9, 1, 8, 1 },        /* V */
+            { 0, 2, 0, 0, 9 },        /* Y */
+            { 1, 2, 0, 0, 9 },        /* U */
+            { 2, 2, 0, 0, 9 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1299,9 +1362,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* Y */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },        /* U */
-            { 2, 2, 0, 0, 10, 1, 9, 1 },        /* V */
+            { 0, 2, 0, 0, 10 },        /* Y */
+            { 1, 2, 0, 0, 10 },        /* U */
+            { 2, 2, 0, 0, 10 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1311,9 +1374,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* Y */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },        /* U */
-            { 2, 2, 0, 0, 10, 1, 9, 1 },        /* V */
+            { 0, 2, 0, 0, 10 },        /* Y */
+            { 1, 2, 0, 0, 10 },        /* U */
+            { 2, 2, 0, 0, 10 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1323,9 +1386,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 12, 1, 11, 1 },        /* Y */
-            { 1, 2, 0, 0, 12, 1, 11, 1 },        /* U */
-            { 2, 2, 0, 0, 12, 1, 11, 1 },        /* V */
+            { 0, 2, 0, 0, 12 },        /* Y */
+            { 1, 2, 0, 0, 12 },        /* U */
+            { 2, 2, 0, 0, 12 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1335,9 +1398,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 12, 1, 11, 1 },        /* Y */
-            { 1, 2, 0, 0, 12, 1, 11, 1 },        /* U */
-            { 2, 2, 0, 0, 12, 1, 11, 1 },        /* V */
+            { 0, 2, 0, 0, 12 },        /* Y */
+            { 1, 2, 0, 0, 12 },        /* U */
+            { 2, 2, 0, 0, 12 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1347,9 +1410,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 14, 1, 13, 1 },        /* Y */
-            { 1, 2, 0, 0, 14, 1, 13, 1 },        /* U */
-            { 2, 2, 0, 0, 14, 1, 13, 1 },        /* V */
+            { 0, 2, 0, 0, 14 },        /* Y */
+            { 1, 2, 0, 0, 14 },        /* U */
+            { 2, 2, 0, 0, 14 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1359,9 +1422,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 14, 1, 13, 1 },        /* Y */
-            { 1, 2, 0, 0, 14, 1, 13, 1 },        /* U */
-            { 2, 2, 0, 0, 14, 1, 13, 1 },        /* V */
+            { 0, 2, 0, 0, 14 },        /* Y */
+            { 1, 2, 0, 0, 14 },        /* U */
+            { 2, 2, 0, 0, 14 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1371,9 +1434,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 16, 1, 15, 1 },        /* Y */
-            { 1, 2, 0, 0, 16, 1, 15, 1 },        /* U */
-            { 2, 2, 0, 0, 16, 1, 15, 1 },        /* V */
+            { 0, 2, 0, 0, 16 },        /* Y */
+            { 1, 2, 0, 0, 16 },        /* U */
+            { 2, 2, 0, 0, 16 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1383,9 +1446,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 16, 1, 15, 1 },        /* Y */
-            { 1, 2, 0, 0, 16, 1, 15, 1 },        /* U */
-            { 2, 2, 0, 0, 16, 1, 15, 1 },        /* V */
+            { 0, 2, 0, 0, 16 },        /* Y */
+            { 1, 2, 0, 0, 16 },        /* U */
+            { 2, 2, 0, 0, 16 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1395,9 +1458,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 9, 1, 8, 1 },        /* Y */
-            { 1, 2, 0, 0, 9, 1, 8, 1 },        /* U */
-            { 2, 2, 0, 0, 9, 1, 8, 1 },        /* V */
+            { 0, 2, 0, 0, 9 },        /* Y */
+            { 1, 2, 0, 0, 9 },        /* U */
+            { 2, 2, 0, 0, 9 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1407,9 +1470,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 9, 1, 8, 1 },        /* Y */
-            { 1, 2, 0, 0, 9, 1, 8, 1 },        /* U */
-            { 2, 2, 0, 0, 9, 1, 8, 1 },        /* V */
+            { 0, 2, 0, 0, 9 },        /* Y */
+            { 1, 2, 0, 0, 9 },        /* U */
+            { 2, 2, 0, 0, 9 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1419,9 +1482,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* Y */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },        /* U */
-            { 2, 2, 0, 0, 10, 1, 9, 1 },        /* V */
+            { 0, 2, 0, 0, 10 },        /* Y */
+            { 1, 2, 0, 0, 10 },        /* U */
+            { 2, 2, 0, 0, 10 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1431,9 +1494,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* Y */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },        /* U */
-            { 2, 2, 0, 0, 10, 1, 9, 1 },        /* V */
+            { 0, 2, 0, 0, 10 },        /* Y */
+            { 1, 2, 0, 0, 10 },        /* U */
+            { 2, 2, 0, 0, 10 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1443,9 +1506,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 12, 1, 11, 1 },        /* Y */
-            { 1, 2, 0, 0, 12, 1, 11, 1 },        /* U */
-            { 2, 2, 0, 0, 12, 1, 11, 1 },        /* V */
+            { 0, 2, 0, 0, 12 },        /* Y */
+            { 1, 2, 0, 0, 12 },        /* U */
+            { 2, 2, 0, 0, 12 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1455,9 +1518,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 12, 1, 11, 1 },        /* Y */
-            { 1, 2, 0, 0, 12, 1, 11, 1 },        /* U */
-            { 2, 2, 0, 0, 12, 1, 11, 1 },        /* V */
+            { 0, 2, 0, 0, 12 },        /* Y */
+            { 1, 2, 0, 0, 12 },        /* U */
+            { 2, 2, 0, 0, 12 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1467,9 +1530,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 14, 1, 13, 1 },        /* Y */
-            { 1, 2, 0, 0, 14, 1, 13, 1 },        /* U */
-            { 2, 2, 0, 0, 14, 1, 13, 1 },        /* V */
+            { 0, 2, 0, 0, 14 },        /* Y */
+            { 1, 2, 0, 0, 14 },        /* U */
+            { 2, 2, 0, 0, 14 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1479,9 +1542,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 14, 1, 13, 1 },        /* Y */
-            { 1, 2, 0, 0, 14, 1, 13, 1 },        /* U */
-            { 2, 2, 0, 0, 14, 1, 13, 1 },        /* V */
+            { 0, 2, 0, 0, 14 },        /* Y */
+            { 1, 2, 0, 0, 14 },        /* U */
+            { 2, 2, 0, 0, 14 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1491,9 +1554,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 16, 1, 15, 1 },        /* Y */
-            { 1, 2, 0, 0, 16, 1, 15, 1 },        /* U */
-            { 2, 2, 0, 0, 16, 1, 15, 1 },        /* V */
+            { 0, 2, 0, 0, 16 },        /* Y */
+            { 1, 2, 0, 0, 16 },        /* U */
+            { 2, 2, 0, 0, 16 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1503,9 +1566,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 16, 1, 15, 1 },        /* Y */
-            { 1, 2, 0, 0, 16, 1, 15, 1 },        /* U */
-            { 2, 2, 0, 0, 16, 1, 15, 1 },        /* V */
+            { 0, 2, 0, 0, 16 },        /* Y */
+            { 1, 2, 0, 0, 16 },        /* U */
+            { 2, 2, 0, 0, 16 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1515,9 +1578,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 16, 1, 15, 1 },        /* Y */
-            { 1, 2, 0, 0, 16, 1, 15, 1 },        /* U */
-            { 2, 2, 0, 0, 16, 1, 15, 1 },        /* V */
+            { 0, 2, 0, 0, 16 },        /* Y */
+            { 1, 2, 0, 0, 16 },        /* U */
+            { 2, 2, 0, 0, 16 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1527,9 +1590,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 16, 1, 15, 1 },        /* Y */
-            { 1, 2, 0, 0, 16, 1, 15, 1 },        /* U */
-            { 2, 2, 0, 0, 16, 1, 15, 1 },        /* V */
+            { 0, 2, 0, 0, 16 },        /* Y */
+            { 1, 2, 0, 0, 16 },        /* U */
+            { 2, 2, 0, 0, 16 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1539,9 +1602,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* Y */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },        /* U */
-            { 2, 2, 0, 0, 10, 1, 9, 1 },        /* V */
+            { 0, 2, 0, 0, 10 },        /* Y */
+            { 1, 2, 0, 0, 10 },        /* U */
+            { 2, 2, 0, 0, 10 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1551,9 +1614,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* Y */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },        /* U */
-            { 2, 2, 0, 0, 10, 1, 9, 1 },        /* V */
+            { 0, 2, 0, 0, 10 },        /* Y */
+            { 1, 2, 0, 0, 10 },        /* U */
+            { 2, 2, 0, 0, 10 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1563,9 +1626,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 9, 1, 8, 1 },        /* Y */
-            { 1, 2, 0, 0, 9, 1, 8, 1 },        /* U */
-            { 2, 2, 0, 0, 9, 1, 8, 1 },        /* V */
+            { 0, 2, 0, 0, 9 },        /* Y */
+            { 1, 2, 0, 0, 9 },        /* U */
+            { 2, 2, 0, 0, 9 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1575,9 +1638,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 9, 1, 8, 1 },        /* Y */
-            { 1, 2, 0, 0, 9, 1, 8, 1 },        /* U */
-            { 2, 2, 0, 0, 9, 1, 8, 1 },        /* V */
+            { 0, 2, 0, 0, 9 },        /* Y */
+            { 1, 2, 0, 0, 9 },        /* U */
+            { 2, 2, 0, 0, 9 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1587,9 +1650,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 12, 1, 11, 1 },        /* Y */
-            { 1, 2, 0, 0, 12, 1, 11, 1 },        /* U */
-            { 2, 2, 0, 0, 12, 1, 11, 1 },        /* V */
+            { 0, 2, 0, 0, 12 },        /* Y */
+            { 1, 2, 0, 0, 12 },        /* U */
+            { 2, 2, 0, 0, 12 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1599,9 +1662,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 12, 1, 11, 1 },        /* Y */
-            { 1, 2, 0, 0, 12, 1, 11, 1 },        /* U */
-            { 2, 2, 0, 0, 12, 1, 11, 1 },        /* V */
+            { 0, 2, 0, 0, 12 },        /* Y */
+            { 1, 2, 0, 0, 12 },        /* U */
+            { 2, 2, 0, 0, 12 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1611,9 +1674,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 14, 1, 13, 1 },        /* Y */
-            { 1, 2, 0, 0, 14, 1, 13, 1 },        /* U */
-            { 2, 2, 0, 0, 14, 1, 13, 1 },        /* V */
+            { 0, 2, 0, 0, 14 },        /* Y */
+            { 1, 2, 0, 0, 14 },        /* U */
+            { 2, 2, 0, 0, 14 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1623,9 +1686,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 14, 1, 13, 1 },        /* Y */
-            { 1, 2, 0, 0, 14, 1, 13, 1 },        /* U */
-            { 2, 2, 0, 0, 14, 1, 13, 1 },        /* V */
+            { 0, 2, 0, 0, 14 },        /* Y */
+            { 1, 2, 0, 0, 14 },        /* U */
+            { 2, 2, 0, 0, 14 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1645,8 +1708,8 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .name = "ya8",
         .nb_components = 2,
         .comp = {
-            { 0, 2, 0, 0, 8, 1, 7, 1 },        /* Y */
-            { 0, 2, 1, 0, 8, 1, 7, 2 },        /* A */
+            { 0, 2, 0, 0, 8 },        /* Y */
+            { 0, 2, 1, 0, 8 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_ALPHA,
         .alias = "gray8a",
@@ -1655,8 +1718,8 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .name = "ya16le",
         .nb_components = 2,
         .comp = {
-            { 0, 4, 0, 0, 16, 3, 15, 1 },        /* Y */
-            { 0, 4, 2, 0, 16, 3, 15, 3 },        /* A */
+            { 0, 4, 0, 0, 16 },        /* Y */
+            { 0, 4, 2, 0, 16 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -1664,8 +1727,8 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .name = "ya16be",
         .nb_components = 2,
         .comp = {
-            { 0, 4, 0, 0, 16, 3, 15, 1 },        /* Y */
-            { 0, 4, 2, 0, 16, 3, 15, 3 },        /* A */
+            { 0, 4, 0, 0, 16 },        /* Y */
+            { 0, 4, 2, 0, 16 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -1679,9 +1742,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 1, 0, 0, 8, 0, 7, 1 },        /* R */
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* G */
-            { 1, 1, 0, 0, 8, 0, 7, 1 },        /* B */
+            { 2, 1, 0, 0, 8 },        /* R */
+            { 0, 1, 0, 0, 8 },        /* G */
+            { 1, 1, 0, 0, 8 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB,
     },
@@ -1691,9 +1754,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 2, 0, 0, 9, 1, 8, 1 },        /* R */
-            { 0, 2, 0, 0, 9, 1, 8, 1 },        /* G */
-            { 1, 2, 0, 0, 9, 1, 8, 1 },        /* B */
+            { 2, 2, 0, 0, 9 },        /* R */
+            { 0, 2, 0, 0, 9 },        /* G */
+            { 1, 2, 0, 0, 9 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB,
     },
@@ -1703,9 +1766,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 2, 0, 0, 9, 1, 8, 1 },        /* R */
-            { 0, 2, 0, 0, 9, 1, 8, 1 },        /* G */
-            { 1, 2, 0, 0, 9, 1, 8, 1 },        /* B */
+            { 2, 2, 0, 0, 9 },        /* R */
+            { 0, 2, 0, 0, 9 },        /* G */
+            { 1, 2, 0, 0, 9 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB,
     },
@@ -1715,9 +1778,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 2, 0, 0, 10, 1, 9, 1 },        /* R */
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* G */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },        /* B */
+            { 2, 2, 0, 0, 10 },        /* R */
+            { 0, 2, 0, 0, 10 },        /* G */
+            { 1, 2, 0, 0, 10 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB,
     },
@@ -1727,9 +1790,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 2, 0, 0, 10, 1, 9, 1 },        /* R */
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* G */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },        /* B */
+            { 2, 2, 0, 0, 10 },        /* R */
+            { 0, 2, 0, 0, 10 },        /* G */
+            { 1, 2, 0, 0, 10 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB,
     },
@@ -1739,9 +1802,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 2, 0, 0, 12, 1, 11, 1 },        /* R */
-            { 0, 2, 0, 0, 12, 1, 11, 1 },        /* G */
-            { 1, 2, 0, 0, 12, 1, 11, 1 },        /* B */
+            { 2, 2, 0, 0, 12 },        /* R */
+            { 0, 2, 0, 0, 12 },        /* G */
+            { 1, 2, 0, 0, 12 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB,
     },
@@ -1751,9 +1814,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 2, 0, 0, 12, 1, 11, 1 },        /* R */
-            { 0, 2, 0, 0, 12, 1, 11, 1 },        /* G */
-            { 1, 2, 0, 0, 12, 1, 11, 1 },        /* B */
+            { 2, 2, 0, 0, 12 },        /* R */
+            { 0, 2, 0, 0, 12 },        /* G */
+            { 1, 2, 0, 0, 12 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB,
     },
@@ -1763,9 +1826,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 2, 0, 0, 14, 1, 13, 1 },        /* R */
-            { 0, 2, 0, 0, 14, 1, 13, 1 },        /* G */
-            { 1, 2, 0, 0, 14, 1, 13, 1 },        /* B */
+            { 2, 2, 0, 0, 14 },        /* R */
+            { 0, 2, 0, 0, 14 },        /* G */
+            { 1, 2, 0, 0, 14 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB,
     },
@@ -1775,9 +1838,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 2, 0, 0, 14, 1, 13, 1 },        /* R */
-            { 0, 2, 0, 0, 14, 1, 13, 1 },        /* G */
-            { 1, 2, 0, 0, 14, 1, 13, 1 },        /* B */
+            { 2, 2, 0, 0, 14 },        /* R */
+            { 0, 2, 0, 0, 14 },        /* G */
+            { 1, 2, 0, 0, 14 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB,
     },
@@ -1787,9 +1850,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 2, 0, 0, 16, 1, 15, 1 },       /* R */
-            { 0, 2, 0, 0, 16, 1, 15, 1 },       /* G */
-            { 1, 2, 0, 0, 16, 1, 15, 1 },       /* B */
+            { 2, 2, 0, 0, 16 },       /* R */
+            { 0, 2, 0, 0, 16 },       /* G */
+            { 1, 2, 0, 0, 16 },       /* B */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB,
     },
@@ -1799,9 +1862,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 2, 0, 0, 16, 1, 15, 1 },       /* R */
-            { 0, 2, 0, 0, 16, 1, 15, 1 },       /* G */
-            { 1, 2, 0, 0, 16, 1, 15, 1 },       /* B */
+            { 2, 2, 0, 0, 16 },       /* R */
+            { 0, 2, 0, 0, 16 },       /* G */
+            { 1, 2, 0, 0, 16 },       /* B */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB,
     },
@@ -1811,10 +1874,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 1, 0, 0, 8, 0, 7, 1 },        /* R */
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* G */
-            { 1, 1, 0, 0, 8, 0, 7, 1 },        /* B */
-            { 3, 1, 0, 0, 8, 0, 7, 1 },        /* A */
+            { 2, 1, 0, 0, 8 },        /* R */
+            { 0, 1, 0, 0, 8 },        /* G */
+            { 1, 1, 0, 0, 8 },        /* B */
+            { 3, 1, 0, 0, 8 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB |
                  AV_PIX_FMT_FLAG_ALPHA,
@@ -1825,10 +1888,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 2, 0, 0, 16, 1, 15, 1 },       /* R */
-            { 0, 2, 0, 0, 16, 1, 15, 1 },       /* G */
-            { 1, 2, 0, 0, 16, 1, 15, 1 },       /* B */
-            { 3, 2, 0, 0, 16, 1, 15, 1 },       /* A */
+            { 2, 2, 0, 0, 16 },       /* R */
+            { 0, 2, 0, 0, 16 },       /* G */
+            { 1, 2, 0, 0, 16 },       /* B */
+            { 3, 2, 0, 0, 16 },       /* A */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB |
                  AV_PIX_FMT_FLAG_ALPHA,
@@ -1839,10 +1902,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 2, 0, 0, 16, 1, 15, 1 },       /* R */
-            { 0, 2, 0, 0, 16, 1, 15, 1 },       /* G */
-            { 1, 2, 0, 0, 16, 1, 15, 1 },       /* B */
-            { 3, 2, 0, 0, 16, 1, 15, 1 },       /* A */
+            { 2, 2, 0, 0, 16 },       /* R */
+            { 0, 2, 0, 0, 16 },       /* G */
+            { 1, 2, 0, 0, 16 },       /* B */
+            { 3, 2, 0, 0, 16 },       /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR |
                  AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
@@ -1859,9 +1922,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 6, 0, 4, 12, 5, 11, 1 },       /* X */
-            { 0, 6, 2, 4, 12, 5, 11, 3 },       /* Y */
-            { 0, 6, 4, 4, 12, 5, 11, 5 },       /* Z */
+            { 0, 6, 0, 4, 12 },       /* X */
+            { 0, 6, 2, 4, 12 },       /* Y */
+            { 0, 6, 4, 4, 12 },       /* Z */
       },
       /*.flags = -- not used*/
     },
@@ -1871,9 +1934,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 6, 0, 4, 12, 5, 11, 1 },       /* X */
-            { 0, 6, 2, 4, 12, 5, 11, 3 },       /* Y */
-            { 0, 6, 4, 4, 12, 5, 11, 5 },       /* Z */
+            { 0, 6, 0, 4, 12 },       /* X */
+            { 0, 6, 2, 4, 12 },       /* Y */
+            { 0, 6, 4, 4, 12 },       /* Z */
        },
         .flags = AV_PIX_FMT_FLAG_BE,
     },
@@ -1883,9 +1946,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w= 0, \
         .log2_chroma_h= 0, \
         .comp = {          \
-            {0,1,0,0,2,0,1,1},\
-            {0,1,0,0,4,0,3,1},\
-            {0,1,0,0,2,0,1,1},\
+            { 0, 1, 0, 0, 2 }, \
+            { 0, 1, 0, 0, 4 }, \
+            { 0, 1, 0, 0, 2 }, \
         },                 \
 
 #define BAYER16_DESC_COMMON \
@@ -1893,9 +1956,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w= 0, \
         .log2_chroma_h= 0, \
         .comp = {          \
-            {0,2,0,0,4,1,3,1},\
-            {0,2,0,0,8,1,7,1},\
-            {0,2,0,0,4,1,3,1},\
+            { 0, 2, 0, 0, 4 }, \
+            { 0, 2, 0, 0, 8 }, \
+            { 0, 2, 0, 0, 4 }, \
         },                 \
 
     [AV_PIX_FMT_BAYER_BGGR8] = {
@@ -1964,9 +2027,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
-            { 1, 2, 0, 0, 8, 1, 7, 1 },        /* U */
-            { 1, 2, 1, 0, 8, 1, 7, 2 },        /* V */
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 2, 0, 0, 8 },        /* U */
+            { 1, 2, 1, 0, 8 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1976,9 +2039,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* Y */
-            { 1, 4, 0, 0, 10, 3, 9, 1 },        /* U */
-            { 1, 4, 2, 0, 10, 3, 9, 3 },        /* V */
+            { 0, 2, 0, 0, 10 },        /* Y */
+            { 1, 4, 0, 0, 10 },        /* U */
+            { 1, 4, 2, 0, 10 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -1988,9 +2051,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 2, 0, 0, 10, 1, 9, 1 },        /* Y */
-            { 1, 4, 0, 0, 10, 3, 9, 1 },        /* U */
-            { 1, 4, 2, 0, 10, 3, 9, 3 },        /* V */
+            { 0, 2, 0, 0, 10 },        /* Y */
+            { 1, 4, 0, 0, 10 },        /* U */
+            { 1, 4, 2, 0, 10 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_BE,
     },
@@ -2016,10 +2079,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 8, 2, 0, 16, 7, 15, 3 },        /* Y */
-            { 0, 8, 4, 0, 16, 7, 15, 5 },        /* U */
-            { 0, 8, 6, 0, 16, 7, 15, 7 },        /* V */
-            { 0, 8, 0, 0, 16, 7, 15, 1 },        /* A */
+            { 0, 8, 2, 0, 16 },        /* Y */
+            { 0, 8, 4, 0, 16 },        /* U */
+            { 0, 8, 6, 0, 16 },        /* V */
+            { 0, 8, 0, 0, 16 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -2029,10 +2092,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 8, 2, 0, 16, 7, 15, 3 },        /* Y */
-            { 0, 8, 4, 0, 16, 7, 15, 5 },        /* U */
-            { 0, 8, 6, 0, 16, 7, 15, 7 },        /* V */
-            { 0, 8, 0, 0, 16, 7, 15, 1 },        /* A */
+            { 0, 8, 2, 0, 16 },        /* Y */
+            { 0, 8, 4, 0, 16 },        /* U */
+            { 0, 8, 6, 0, 16 },        /* V */
+            { 0, 8, 0, 0, 16 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_ALPHA,
     },
@@ -2042,9 +2105,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 6, 10, 1, 9, 1 },        /* Y */
-            { 1, 4, 0, 6, 10, 3, 9, 1 },        /* U */
-            { 1, 4, 2, 6, 10, 3, 9, 3 },        /* V */
+            { 0, 2, 0, 6, 10 },        /* Y */
+            { 1, 4, 0, 6, 10 },        /* U */
+            { 1, 4, 2, 6, 10 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -2054,9 +2117,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 6, 10, 1, 9, 1 },        /* Y */
-            { 1, 4, 0, 6, 10, 3, 9, 1 },        /* U */
-            { 1, 4, 2, 6, 10, 3, 9, 3 },        /* V */
+            { 0, 2, 0, 6, 10 },        /* Y */
+            { 1, 4, 0, 6, 10 },        /* U */
+            { 1, 4, 2, 6, 10 },        /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_BE,
     },
@@ -2066,9 +2129,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 16, 1, 15, 1 },       /* Y */
-            { 1, 4, 0, 0, 16, 3, 15, 1 },       /* U */
-            { 1, 4, 2, 0, 16, 3, 15, 3 },       /* V */
+            { 0, 2, 0, 0, 16 },       /* Y */
+            { 1, 4, 0, 0, 16 },       /* U */
+            { 1, 4, 2, 0, 16 },       /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR,
     },
@@ -2078,9 +2141,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 1,
         .log2_chroma_h = 1,
         .comp = {
-            { 0, 2, 0, 0, 16, 1, 15, 1 },       /* Y */
-            { 1, 4, 0, 0, 16, 3, 15, 1 },       /* U */
-            { 1, 4, 2, 0, 16, 3, 15, 3 },       /* V */
+            { 0, 2, 0, 0, 16 },       /* Y */
+            { 1, 4, 0, 0, 16 },       /* U */
+            { 1, 4, 2, 0, 16 },       /* V */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_BE,
     },
@@ -2090,10 +2153,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 2, 0, 0, 12, 1, 11, 1 },       /* R */
-            { 0, 2, 0, 0, 12, 1, 11, 1 },       /* G */
-            { 1, 2, 0, 0, 12, 1, 11, 1 },       /* B */
-            { 3, 2, 0, 0, 12, 1, 11, 1 },       /* A */
+            { 2, 2, 0, 0, 12 },       /* R */
+            { 0, 2, 0, 0, 12 },       /* G */
+            { 1, 2, 0, 0, 12 },       /* B */
+            { 3, 2, 0, 0, 12 },       /* A */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB |
                  AV_PIX_FMT_FLAG_ALPHA,
@@ -2104,10 +2167,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 2, 0, 0, 12, 1, 11, 1 },       /* R */
-            { 0, 2, 0, 0, 12, 1, 11, 1 },       /* G */
-            { 1, 2, 0, 0, 12, 1, 11, 1 },       /* B */
-            { 3, 2, 0, 0, 12, 1, 11, 1 },       /* A */
+            { 2, 2, 0, 0, 12 },       /* R */
+            { 0, 2, 0, 0, 12 },       /* G */
+            { 1, 2, 0, 0, 12 },       /* B */
+            { 3, 2, 0, 0, 12 },       /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR |
                  AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
@@ -2118,10 +2181,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 2, 0, 0, 10, 1, 9, 1 },       /* R */
-            { 0, 2, 0, 0, 10, 1, 9, 1 },       /* G */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },       /* B */
-            { 3, 2, 0, 0, 10, 1, 9, 1 },       /* A */
+            { 2, 2, 0, 0, 10 },       /* R */
+            { 0, 2, 0, 0, 10 },       /* G */
+            { 1, 2, 0, 0, 10 },       /* B */
+            { 3, 2, 0, 0, 10 },       /* A */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB |
                  AV_PIX_FMT_FLAG_ALPHA,
@@ -2132,10 +2195,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 2, 0, 0, 10, 1, 9, 1 },       /* R */
-            { 0, 2, 0, 0, 10, 1, 9, 1 },       /* G */
-            { 1, 2, 0, 0, 10, 1, 9, 1 },       /* B */
-            { 3, 2, 0, 0, 10, 1, 9, 1 },       /* A */
+            { 2, 2, 0, 0, 10 },       /* R */
+            { 0, 2, 0, 0, 10 },       /* G */
+            { 1, 2, 0, 0, 10 },       /* B */
+            { 3, 2, 0, 0, 10 },       /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR |
                  AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
@@ -2150,9 +2213,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 4, 0, 0, 32, 3, 31, 1 },        /* R */
-            { 0, 4, 0, 0, 32, 3, 31, 1 },        /* G */
-            { 1, 4, 0, 0, 32, 3, 31, 1 },        /* B */
+            { 2, 4, 0, 0, 32 },        /* R */
+            { 0, 4, 0, 0, 32 },        /* G */
+            { 1, 4, 0, 0, 32 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR |
                  AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_FLOAT,
@@ -2163,9 +2226,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 4, 0, 0, 32, 3, 31, 1 },        /* R */
-            { 0, 4, 0, 0, 32, 3, 31, 1 },        /* G */
-            { 1, 4, 0, 0, 32, 3, 31, 1 },        /* B */
+            { 2, 4, 0, 0, 32 },        /* R */
+            { 0, 4, 0, 0, 32 },        /* G */
+            { 1, 4, 0, 0, 32 },        /* B */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_FLOAT | AV_PIX_FMT_FLAG_RGB,
     },
@@ -2175,10 +2238,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 4, 0, 0, 32, 3, 31, 1 },        /* R */
-            { 0, 4, 0, 0, 32, 3, 31, 1 },        /* G */
-            { 1, 4, 0, 0, 32, 3, 31, 1 },        /* B */
-            { 3, 4, 0, 0, 32, 3, 31, 1 },        /* A */
+            { 2, 4, 0, 0, 32 },        /* R */
+            { 0, 4, 0, 0, 32 },        /* G */
+            { 1, 4, 0, 0, 32 },        /* B */
+            { 3, 4, 0, 0, 32 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR |
                  AV_PIX_FMT_FLAG_ALPHA | AV_PIX_FMT_FLAG_RGB |
@@ -2190,10 +2253,10 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 2, 4, 0, 0, 32, 3, 31, 1 },        /* R */
-            { 0, 4, 0, 0, 32, 3, 31, 1 },        /* G */
-            { 1, 4, 0, 0, 32, 3, 31, 1 },        /* B */
-            { 3, 4, 0, 0, 32, 3, 31, 1 },        /* A */
+            { 2, 4, 0, 0, 32 },        /* R */
+            { 0, 4, 0, 0, 32 },        /* G */
+            { 1, 4, 0, 0, 32 },        /* B */
+            { 3, 4, 0, 0, 32 },        /* A */
         },
         .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA |
                  AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_FLOAT,
@@ -2212,7 +2275,7 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 4, 0, 0, 32, 3, 31, 1 },       /* Y */
+            { 0, 4, 0, 0, 32 },       /* Y */
         },
         .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_FLOAT,
         .alias = "yf32be",
@@ -2223,15 +2286,92 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         .log2_chroma_w = 0,
         .log2_chroma_h = 0,
         .comp = {
-            { 0, 4, 0, 0, 32, 3, 31, 1 },       /* Y */
+            { 0, 4, 0, 0, 32 },       /* Y */
         },
         .flags = AV_PIX_FMT_FLAG_FLOAT,
         .alias = "yf32le",
     },
+    [AV_PIX_FMT_YUVA422P12BE] = {
+        .name = "yuva422p12be",
+        .nb_components = 4,
+        .log2_chroma_w = 1,
+        .log2_chroma_h = 0,
+        .comp = {
+            { 0, 2, 0, 0, 12 },        /* Y */
+            { 1, 2, 0, 0, 12 },        /* U */
+            { 2, 2, 0, 0, 12 },        /* V */
+            { 3, 2, 0, 0, 12 },        /* A */
+        },
+        .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
+    },
+    [AV_PIX_FMT_YUVA422P12LE] = {
+        .name = "yuva422p12le",
+        .nb_components = 4,
+        .log2_chroma_w = 1,
+        .log2_chroma_h = 0,
+        .comp = {
+            { 0, 2, 0, 0, 12 },        /* Y */
+            { 1, 2, 0, 0, 12 },        /* U */
+            { 2, 2, 0, 0, 12 },        /* V */
+            { 3, 2, 0, 0, 12 },        /* A */
+        },
+        .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
+    },
+    [AV_PIX_FMT_YUVA444P12BE] = {
+        .name = "yuva444p12be",
+        .nb_components = 4,
+        .log2_chroma_w = 0,
+        .log2_chroma_h = 0,
+        .comp = {
+            { 0, 2, 0, 0, 12 },        /* Y */
+            { 1, 2, 0, 0, 12 },        /* U */
+            { 2, 2, 0, 0, 12 },        /* V */
+            { 3, 2, 0, 0, 12 },        /* A */
+        },
+        .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
+    },
+    [AV_PIX_FMT_YUVA444P12LE] = {
+        .name = "yuva444p12le",
+        .nb_components = 4,
+        .log2_chroma_w = 0,
+        .log2_chroma_h = 0,
+        .comp = {
+            { 0, 2, 0, 0, 12 },        /* Y */
+            { 1, 2, 0, 0, 12 },        /* U */
+            { 2, 2, 0, 0, 12 },        /* V */
+            { 3, 2, 0, 0, 12 },        /* A */
+        },
+        .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
+    },
+    [AV_PIX_FMT_NV24] = {
+        .name = "nv24",
+        .nb_components = 3,
+        .log2_chroma_w = 0,
+        .log2_chroma_h = 0,
+        .comp = {
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 2, 0, 0, 8 },        /* U */
+            { 1, 2, 1, 0, 8 },        /* V */
+        },
+        .flags = AV_PIX_FMT_FLAG_PLANAR,
+    },
+    [AV_PIX_FMT_NV42] = {
+        .name = "nv42",
+        .nb_components = 3,
+        .log2_chroma_w = 0,
+        .log2_chroma_h = 0,
+        .comp = {
+            { 0, 1, 0, 0, 8 },        /* Y */
+            { 1, 2, 1, 0, 8 },        /* U */
+            { 1, 2, 0, 0, 8 },        /* V */
+        },
+        .flags = AV_PIX_FMT_FLAG_PLANAR,
+    },
+    [AV_PIX_FMT_VULKAN] = {
+        .name = "vulkan",
+        .flags = AV_PIX_FMT_FLAG_HWACCEL,
+    },
 };
-#if FF_API_PLUS1_MINUS1
-FF_ENABLE_DEPRECATION_WARNINGS
-#endif
 
 static const char * const color_range_names[] = {
     [AVCOL_RANGE_UNSPECIFIED] = "unknown",
@@ -2253,7 +2393,7 @@ static const char * const color_primaries_names[AVCOL_PRI_NB] = {
     [AVCOL_PRI_SMPTE428] = "smpte428",
     [AVCOL_PRI_SMPTE431] = "smpte431",
     [AVCOL_PRI_SMPTE432] = "smpte432",
-    [AVCOL_PRI_JEDEC_P22] = "jedec-p22",
+    [AVCOL_PRI_EBU3213] = "ebu3213",
 };
 
 static const char * const color_transfer_names[] = {
@@ -2348,10 +2488,6 @@ enum AVPixelFormat av_get_pix_fmt(const char *name)
         pix_fmt = get_pix_fmt_internal(name2);
     }
 
-#if FF_API_VAAPI
-    if (pix_fmt == AV_PIX_FMT_NONE && !strcmp(name, "vaapi"))
-        pix_fmt = AV_PIX_FMT_VAAPI;
-#endif
     return pix_fmt;
 }
 
@@ -2492,7 +2628,7 @@ void ff_check_pixfmt_descriptors(void){
                 continue;
             av_read_image_line(tmp, (void*)data, linesize, d, 0, 0, j, 2, 0);
             av_assert0(tmp[0] == 0 && tmp[1] == 0);
-            tmp[0] = tmp[1] = (1<<c->depth) - 1;
+            tmp[0] = tmp[1] = (1ULL << c->depth) - 1;
             av_write_image_line(tmp, data, linesize, d, 0, 0, j, 2);
         }
     }
@@ -2535,11 +2671,13 @@ static int get_color_type(const AVPixFmtDescriptor *desc) {
     if(desc->nb_components == 1 || desc->nb_components == 2)
         return FF_COLOR_GRAY;
 
-    if(desc->name && !strncmp(desc->name, "yuvj", 4))
-        return FF_COLOR_YUV_JPEG;
+    if (desc->name) {
+        if (av_strstart(desc->name, "yuvj", NULL))
+            return FF_COLOR_YUV_JPEG;
 
-    if(desc->name && !strncmp(desc->name, "xyz", 3))
-        return FF_COLOR_XYZ;
+        if (av_strstart(desc->name, "xyz", NULL))
+            return FF_COLOR_XYZ;
+    }
 
     if(desc->flags & AV_PIX_FMT_FLAG_RGB)
         return  FF_COLOR_RGB;
@@ -2740,8 +2878,7 @@ int av_color_range_from_name(const char *name)
     int i;
 
     for (i = 0; i < FF_ARRAY_ELEMS(color_range_names); i++) {
-        size_t len = strlen(color_range_names[i]);
-        if (!strncmp(color_range_names[i], name, len))
+        if (av_strstart(name, color_range_names[i], NULL))
             return i;
     }
 
@@ -2759,13 +2896,10 @@ int av_color_primaries_from_name(const char *name)
     int i;
 
     for (i = 0; i < FF_ARRAY_ELEMS(color_primaries_names); i++) {
-        size_t len;
-
         if (!color_primaries_names[i])
             continue;
 
-        len = strlen(color_primaries_names[i]);
-        if (!strncmp(color_primaries_names[i], name, len))
+        if (av_strstart(name, color_primaries_names[i], NULL))
             return i;
     }
 
@@ -2783,13 +2917,10 @@ int av_color_transfer_from_name(const char *name)
     int i;
 
     for (i = 0; i < FF_ARRAY_ELEMS(color_transfer_names); i++) {
-        size_t len;
-
         if (!color_transfer_names[i])
             continue;
 
-        len = strlen(color_transfer_names[i]);
-        if (!strncmp(color_transfer_names[i], name, len))
+        if (av_strstart(name, color_transfer_names[i], NULL))
             return i;
     }
 
@@ -2807,13 +2938,10 @@ int av_color_space_from_name(const char *name)
     int i;
 
     for (i = 0; i < FF_ARRAY_ELEMS(color_space_names); i++) {
-        size_t len;
-
         if (!color_space_names[i])
             continue;
 
-        len = strlen(color_space_names[i]);
-        if (!strncmp(color_space_names[i], name, len))
+        if (av_strstart(name, color_space_names[i], NULL))
             return i;
     }
 
@@ -2831,13 +2959,10 @@ int av_chroma_location_from_name(const char *name)
     int i;
 
     for (i = 0; i < FF_ARRAY_ELEMS(chroma_location_names); i++) {
-        size_t len;
-
         if (!chroma_location_names[i])
             continue;
 
-        len = strlen(chroma_location_names[i]);
-        if (!strncmp(chroma_location_names[i], name, len))
+        if (av_strstart(name, chroma_location_names[i], NULL))
             return i;
     }