On Wed,  2 Sep 2015 14:32:04 +0200
Vittorio Giovara <[email protected]> wrote:

> The new field values can be accessed directly without additional operations
> and are more intelligible in general.
> ---
> 
> This patch contains step_minus1 -> step.
> Vittorio
> 
>  libavcodec/libopenjpegdec.c |   2 +-
>  libavutil/imgutils.c        |  10 +-
>  libavutil/pixdesc.c         | 710 
> ++++++++++++++++++++++----------------------
>  libavutil/pixdesc.h         |  11 +-
>  libavutil/version.h         |   3 +
>  5 files changed, 376 insertions(+), 360 deletions(-)
> 
> diff --git a/libavcodec/libopenjpegdec.c b/libavcodec/libopenjpegdec.c
> index 3da6eec..f769916 100644
> --- a/libavcodec/libopenjpegdec.c
> +++ b/libavcodec/libopenjpegdec.c
> @@ -365,7 +365,7 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx,
>      }
>  
>      desc       = av_pix_fmt_desc_get(avctx->pix_fmt);
> -    pixel_size = desc->comp[0].step_minus1 + 1;
> +    pixel_size = desc->comp[0].step;
>      ispacked   = libopenjpeg_ispacked(avctx->pix_fmt);
>  
>      switch (pixel_size) {
> diff --git a/libavutil/imgutils.c b/libavutil/imgutils.c
> index 948a6f7..4fb7a9b 100644
> --- a/libavutil/imgutils.c
> +++ b/libavutil/imgutils.c
> @@ -40,8 +40,8 @@ void av_image_fill_max_pixsteps(int max_pixsteps[4], int 
> max_pixstep_comps[4],
>  
>      for (i = 0; i < 4; i++) {
>          const AVComponentDescriptor *comp = &(pixdesc->comp[i]);
> -        if ((comp->step_minus1+1) > max_pixsteps[comp->plane]) {
> -            max_pixsteps[comp->plane] = comp->step_minus1+1;
> +        if (comp->step > max_pixsteps[comp->plane]) {
> +            max_pixsteps[comp->plane] = comp->step;
>              if (max_pixstep_comps)
>                  max_pixstep_comps[comp->plane] = i;
>          }
> @@ -59,7 +59,7 @@ int av_image_get_linesize(enum AVPixelFormat pix_fmt, int 
> width, int plane)
>          return AVERROR(EINVAL);
>  
>      if (desc->flags & AV_PIX_FMT_FLAG_BITSTREAM)
> -        return (width * (desc->comp[0].step_minus1+1) + 7) >> 3;
> +        return (width * desc->comp[0].step + 7) >> 3;
>  
>      av_image_fill_max_pixsteps(max_step, max_step_comp, desc);
>      s = (max_step_comp[plane] == 1 || max_step_comp[plane] == 2) ? 
> desc->log2_chroma_w : 0;
> @@ -79,9 +79,9 @@ int av_image_fill_linesizes(int linesizes[4], enum 
> AVPixelFormat pix_fmt, int wi
>          return AVERROR(EINVAL);
>  
>      if (desc->flags & AV_PIX_FMT_FLAG_BITSTREAM) {
> -        if (width > (INT_MAX -7) / (desc->comp[0].step_minus1+1))
> +        if (width > (INT_MAX - 7) / desc->comp[0].step)
>              return AVERROR(EINVAL);
> -        linesizes[0] = (width * (desc->comp[0].step_minus1+1) + 7) >> 3;
> +        linesizes[0] = (width * desc->comp[0].step + 7) >> 3;
>          return 0;
>      }
>  
> diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
> index cec3543..29df6be 100644
> --- a/libavutil/pixdesc.c
> +++ b/libavutil/pixdesc.c
> @@ -41,7 +41,7 @@ void av_read_image_line(uint16_t *dst,
>      int depth = comp.depth_minus1 + 1;
>      int mask  = (1 << depth) - 1;
>      int shift = comp.shift;
> -    int step  = comp.step_minus1 + 1;
> +    int step  = comp.step;
>      int flags = desc->flags;
>  
>      if (flags & AV_PIX_FMT_FLAG_BITSTREAM) {
> @@ -86,7 +86,7 @@ void av_write_image_line(const uint16_t *src,
>      AVComponentDescriptor comp = desc->comp[c];
>      int plane = comp.plane;
>      int depth = comp.depth_minus1 + 1;
> -    int step  = comp.step_minus1 + 1;
> +    int step  = comp.step;
>      int flags = desc->flags;
>  
>      if (flags & AV_PIX_FMT_FLAG_BITSTREAM) {
> @@ -126,6 +126,9 @@ void av_write_image_line(const uint16_t *src,
>      }
>  }
>  
> +#if FF_API_PLUS1_MINUS1
> +FF_DISABLE_DEPRECATION_WARNINGS
> +#endif
>  static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>      [AV_PIX_FMT_YUV420P] = {
>          .name = "yuv420p",
> @@ -133,9 +136,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* Y */
> -            { 1, 0, 1, 0, 7 },        /* U */
> -            { 2, 0, 1, 0, 7 },        /* V */
> +            { 0, 1, 1, 0, 7, 0 },        /* Y */
> +            { 1, 1, 1, 0, 7, 0 },        /* U */
> +            { 2, 1, 1, 0, 7, 0 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -145,9 +148,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 7 },        /* Y */
> -            { 0, 3, 2, 0, 7 },        /* U */
> -            { 0, 3, 4, 0, 7 },        /* V */
> +            { 0, 2, 1, 0, 7, 1 },        /* Y */
> +            { 0, 4, 2, 0, 7, 3 },        /* U */
> +            { 0, 4, 4, 0, 7, 3 },        /* V */
>          },
>      },
>      [AV_PIX_FMT_YVYU422] = {
> @@ -156,9 +159,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 7 },        /* Y */
> -            { 0, 3, 2, 0, 7 },        /* V */
> -            { 0, 3, 4, 0, 7 },        /* U */
> +            { 0, 2, 1, 0, 7, 1 },        /* Y */
> +            { 0, 4, 2, 0, 7, 3 },        /* V */
> +            { 0, 4, 4, 0, 7, 3 },        /* U */
>          },
>      },
>      [AV_PIX_FMT_RGB24] = {
> @@ -167,9 +170,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, 7 },        /* R */
> -            { 0, 2, 2, 0, 7 },        /* G */
> -            { 0, 2, 3, 0, 7 },        /* B */
> +            { 0, 3, 1, 0, 7, 2 },        /* R */
> +            { 0, 3, 2, 0, 7, 2 },        /* G */
> +            { 0, 3, 3, 0, 7, 2 },        /* B */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -179,9 +182,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, 7 },        /* B */
> -            { 0, 2, 2, 0, 7 },        /* G */
> -            { 0, 2, 3, 0, 7 },        /* R */
> +            { 0, 3, 1, 0, 7, 2 },        /* B */
> +            { 0, 3, 2, 0, 7, 2 },        /* G */
> +            { 0, 3, 3, 0, 7, 2 },        /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -191,9 +194,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* Y */
> -            { 1, 0, 1, 0, 7 },        /* U */
> -            { 2, 0, 1, 0, 7 },        /* V */
> +            { 0, 1, 1, 0, 7, 0 },        /* Y */
> +            { 1, 1, 1, 0, 7, 0 },        /* U */
> +            { 2, 1, 1, 0, 7, 0 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -203,9 +206,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* Y */
> -            { 1, 0, 1, 0, 7 },        /* U */
> -            { 2, 0, 1, 0, 7 },        /* V */
> +            { 0, 1, 1, 0, 7, 0 },        /* Y */
> +            { 1, 1, 1, 0, 7, 0 },        /* U */
> +            { 2, 1, 1, 0, 7, 0 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -215,9 +218,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 2,
>          .log2_chroma_h = 2,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* Y */
> -            { 1, 0, 1, 0, 7 },        /* U */
> -            { 2, 0, 1, 0, 7 },        /* V */
> +            { 0, 1, 1, 0, 7, 0 },        /* Y */
> +            { 1, 1, 1, 0, 7, 0 },        /* U */
> +            { 2, 1, 1, 0, 7, 0 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -227,9 +230,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 2,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* Y */
> -            { 1, 0, 1, 0, 7 },        /* U */
> -            { 2, 0, 1, 0, 7 },        /* V */
> +            { 0, 1, 1, 0, 7, 0 },        /* Y */
> +            { 1, 1, 1, 0, 7, 0 },        /* U */
> +            { 2, 1, 1, 0, 7, 0 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -239,7 +242,7 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* Y */
> +            { 0, 1, 1, 0, 7, 0 },        /* Y */
>          },
>          .flags = AV_PIX_FMT_FLAG_PSEUDOPAL,
>          .alias = "gray8,y8",
> @@ -250,7 +253,7 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 0, 1, 0, 0 },        /* Y */
> +            { 0, 1, 1, 0, 0, 0 },        /* Y */
>          },
>          .flags = AV_PIX_FMT_FLAG_BITSTREAM,
>      },
> @@ -260,7 +263,7 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 0, 1, 7, 0 },        /* Y */
> +            { 0, 1, 1, 7, 0, 0 },        /* Y */
>          },
>          .flags = AV_PIX_FMT_FLAG_BITSTREAM,
>      },
> @@ -270,7 +273,7 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },
> +            { 0, 1, 1, 0, 7, 0 },
>          },
>          .flags = AV_PIX_FMT_FLAG_PAL,
>      },
> @@ -280,9 +283,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* Y */
> -            { 1, 0, 1, 0, 7 },        /* U */
> -            { 2, 0, 1, 0, 7 },        /* V */
> +            { 0, 1, 1, 0, 7, 0 },        /* Y */
> +            { 1, 1, 1, 0, 7, 0 },        /* U */
> +            { 2, 1, 1, 0, 7, 0 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -292,9 +295,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* Y */
> -            { 1, 0, 1, 0, 7 },        /* U */
> -            { 2, 0, 1, 0, 7 },        /* V */
> +            { 0, 1, 1, 0, 7, 0 },        /* Y */
> +            { 1, 1, 1, 0, 7, 0 },        /* U */
> +            { 2, 1, 1, 0, 7, 0 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -304,9 +307,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            {0, 0, 1, 0, 7},        /* Y */
> -            {1, 0, 1, 0, 7},        /* U */
> -            {2, 0, 1, 0, 7},        /* V */
> +            { 0, 1, 1, 0, 7, 0 },        /* Y */
> +            { 1, 1, 1, 0, 7, 0 },        /* U */
> +            { 2, 1, 1, 0, 7, 0 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -326,9 +329,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 2, 0, 7 },        /* Y */
> -            { 0, 3, 1, 0, 7 },        /* U */
> -            { 0, 3, 3, 0, 7 },        /* V */
> +            { 0, 2, 2, 0, 7, 1 },        /* Y */
> +            { 0, 4, 1, 0, 7, 3 },        /* U */
> +            { 0, 4, 3, 0, 7, 3 },        /* V */
>          },
>      },
>      [AV_PIX_FMT_UYYVYY411] = {
> @@ -337,9 +340,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 2,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 3, 2, 0, 7 },        /* Y */
> -            { 0, 5, 1, 0, 7 },        /* U */
> -            { 0, 5, 4, 0, 7 },        /* V */
> +            { 0, 4, 2, 0, 7, 3 },        /* Y */
> +            { 0, 6, 1, 0, 7, 5 },        /* U */
> +            { 0, 6, 4, 0, 7, 5 },        /* V */
>          },
>      },
>      [AV_PIX_FMT_BGR8] = {
> @@ -348,9 +351,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 0, 1, 6, 1 },        /* B */
> -            { 0, 0, 1, 3, 2 },        /* G */
> -            { 0, 0, 1, 0, 2 },        /* R */
> +            { 0, 1, 1, 6, 1, 0 },        /* B */
> +            { 0, 1, 1, 3, 2, 0 },        /* G */
> +            { 0, 1, 1, 0, 2, 0 },        /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_PSEUDOPAL,
>      },
> @@ -360,9 +363,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 3, 1, 0, 0 },        /* B */
> -            { 0, 3, 2, 0, 1 },        /* G */
> -            { 0, 3, 4, 0, 0 },        /* R */
> +            { 0, 4, 1, 0, 0, 3 },        /* B */
> +            { 0, 4, 2, 0, 1, 3 },        /* G */
> +            { 0, 4, 4, 0, 0, 3 },        /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_BITSTREAM | AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -372,9 +375,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 0, 1, 3, 0 },        /* B */
> -            { 0, 0, 1, 1, 1 },        /* G */
> -            { 0, 0, 1, 0, 0 },        /* R */
> +            { 0, 1, 1, 3, 0, 0 },        /* B */
> +            { 0, 1, 1, 1, 1, 0 },        /* G */
> +            { 0, 1, 1, 0, 0, 0 },        /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_PSEUDOPAL,
>      },
> @@ -384,9 +387,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 0, 1, 6, 1 },        /* R */
> -            { 0, 0, 1, 3, 2 },        /* G */
> -            { 0, 0, 1, 0, 2 },        /* B */
> +            { 0, 1, 1, 6, 1, 0 },        /* R */
> +            { 0, 1, 1, 3, 2, 0 },        /* G */
> +            { 0, 1, 1, 0, 2, 0 },        /* B */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_PSEUDOPAL,
>      },
> @@ -396,9 +399,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 3, 1, 0, 0 },        /* R */
> -            { 0, 3, 2, 0, 1 },        /* G */
> -            { 0, 3, 4, 0, 0 },        /* B */
> +            { 0, 4, 1, 0, 0, 3 },        /* R */
> +            { 0, 4, 2, 0, 1, 3 },        /* G */
> +            { 0, 4, 4, 0, 0, 3 },        /* B */
>          },
>          .flags = AV_PIX_FMT_FLAG_BITSTREAM | AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -408,9 +411,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 0, 1, 3, 0 },        /* R */
> -            { 0, 0, 1, 1, 1 },        /* G */
> -            { 0, 0, 1, 0, 0 },        /* B */
> +            { 0, 1, 1, 3, 0, 0 },        /* R */
> +            { 0, 1, 1, 1, 1, 0 },        /* G */
> +            { 0, 1, 1, 0, 0, 0 },        /* B */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_PSEUDOPAL,
>      },
> @@ -420,9 +423,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* Y */
> -            { 1, 1, 1, 0, 7 },        /* U */
> -            { 1, 1, 2, 0, 7 },        /* V */
> +            { 0, 1, 1, 0, 7, 0 },        /* Y */
> +            { 1, 2, 1, 0, 7, 1 },        /* U */
> +            { 1, 2, 2, 0, 7, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -432,9 +435,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* Y */
> -            { 1, 1, 1, 0, 7 },        /* V */
> -            { 1, 1, 2, 0, 7 },        /* U */
> +            { 0, 1, 1, 0, 7, 0 },        /* Y */
> +            { 1, 2, 1, 0, 7, 1 },        /* V */
> +            { 1, 2, 2, 0, 7, 1 },        /* U */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -444,10 +447,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 3, 1, 0, 7 },        /* A */
> -            { 0, 3, 2, 0, 7 },        /* R */
> -            { 0, 3, 3, 0, 7 },        /* G */
> -            { 0, 3, 4, 0, 7 },        /* B */
> +            { 0, 4, 1, 0, 7, 3 },        /* A */
> +            { 0, 4, 2, 0, 7, 3 },        /* R */
> +            { 0, 4, 3, 0, 7, 3 },        /* G */
> +            { 0, 4, 4, 0, 7, 3 },        /* B */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -457,10 +460,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 3, 1, 0, 7 },        /* R */
> -            { 0, 3, 2, 0, 7 },        /* G */
> -            { 0, 3, 3, 0, 7 },        /* B */
> -            { 0, 3, 4, 0, 7 },        /* A */
> +            { 0, 4, 1, 0, 7, 3 },        /* R */
> +            { 0, 4, 2, 0, 7, 3 },        /* G */
> +            { 0, 4, 3, 0, 7, 3 },        /* B */
> +            { 0, 4, 4, 0, 7, 3 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -470,10 +473,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 3, 1, 0, 7 },        /* A */
> -            { 0, 3, 2, 0, 7 },        /* B */
> -            { 0, 3, 3, 0, 7 },        /* G */
> -            { 0, 3, 4, 0, 7 },        /* R */
> +            { 0, 4, 1, 0, 7, 3 },        /* A */
> +            { 0, 4, 2, 0, 7, 3 },        /* B */
> +            { 0, 4, 3, 0, 7, 3 },        /* G */
> +            { 0, 4, 4, 0, 7, 3 },        /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -483,10 +486,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 3, 1, 0, 7 },        /* B */
> -            { 0, 3, 2, 0, 7 },        /* G */
> -            { 0, 3, 3, 0, 7 },        /* R */
> -            { 0, 3, 4, 0, 7 },        /* A */
> +            { 0, 4, 1, 0, 7, 3 },        /* B */
> +            { 0, 4, 2, 0, 7, 3 },        /* G */
> +            { 0, 4, 3, 0, 7, 3 },        /* R */
> +            { 0, 4, 4, 0, 7, 3 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -496,7 +499,7 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },       /* Y */
> +            { 0, 2, 1, 0, 15, 1 },       /* Y */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE,
>          .alias = "y16be",
> @@ -507,7 +510,7 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },       /* Y */
> +            { 0, 2, 1, 0, 15, 1 },       /* Y */
>          },
>          .alias = "y16le",
>      },
> @@ -517,9 +520,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* Y */
> -            { 1, 0, 1, 0, 7 },        /* U */
> -            { 2, 0, 1, 0, 7 },        /* V */
> +            { 0, 1, 1, 0, 7, 0 },        /* Y */
> +            { 1, 1, 1, 0, 7, 0 },        /* U */
> +            { 2, 1, 1, 0, 7, 0 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -529,9 +532,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* Y */
> -            { 1, 0, 1, 0, 7 },        /* U */
> -            { 2, 0, 1, 0, 7 },        /* V */
> +            { 0, 1, 1, 0, 7, 0 },        /* Y */
> +            { 1, 1, 1, 0, 7, 0 },        /* U */
> +            { 2, 1, 1, 0, 7, 0 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -541,10 +544,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* Y */
> -            { 1, 0, 1, 0, 7 },        /* U */
> -            { 2, 0, 1, 0, 7 },        /* V */
> -            { 3, 0, 1, 0, 7 },        /* A */
> +            { 0, 1, 1, 0, 7, 0 },        /* Y */
> +            { 1, 1, 1, 0, 7, 0 },        /* U */
> +            { 2, 1, 1, 0, 7, 0 },        /* V */
> +            { 3, 1, 1, 0, 7, 0 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -554,10 +557,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* Y */
> -            { 1, 0, 1, 0, 7 },        /* U */
> -            { 2, 0, 1, 0, 7 },        /* V */
> -            { 3, 0, 1, 0, 7 },        /* A */
> +            { 0, 1, 1, 0, 7, 0 },        /* Y */
> +            { 1, 1, 1, 0, 7, 0 },        /* U */
> +            { 2, 1, 1, 0, 7, 0 },        /* V */
> +            { 3, 1, 1, 0, 7, 0 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -567,10 +570,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* Y */
> -            { 1, 0, 1, 0, 7 },        /* U */
> -            { 2, 0, 1, 0, 7 },        /* V */
> -            { 3, 0, 1, 0, 7 },        /* A */
> +            { 0, 1, 1, 0, 7, 0 },        /* Y */
> +            { 1, 1, 1, 0, 7, 0 },        /* U */
> +            { 2, 1, 1, 0, 7, 0 },        /* V */
> +            { 3, 1, 1, 0, 7, 0 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -580,10 +583,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 1, 1, 0, 8 },        /* Y */
> -            { 1, 1, 1, 0, 8 },        /* U */
> -            { 2, 1, 1, 0, 8 },        /* V */
> -            { 3, 1, 1, 0, 8 },        /* A */
> +            { 0, 2, 1, 0, 8, 1 },        /* Y */
> +            { 1, 2, 1, 0, 8, 1 },        /* U */
> +            { 2, 2, 1, 0, 8, 1 },        /* V */
> +            { 3, 2, 1, 0, 8, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -593,10 +596,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 1, 1, 0, 8 },        /* Y */
> -            { 1, 1, 1, 0, 8 },        /* U */
> -            { 2, 1, 1, 0, 8 },        /* V */
> -            { 3, 1, 1, 0, 8 },        /* A */
> +            { 0, 2, 1, 0, 8, 1 },        /* Y */
> +            { 1, 2, 1, 0, 8, 1 },        /* U */
> +            { 2, 2, 1, 0, 8, 1 },        /* V */
> +            { 3, 2, 1, 0, 8, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -606,10 +609,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 8 },        /* Y */
> -            { 1, 1, 1, 0, 8 },        /* U */
> -            { 2, 1, 1, 0, 8 },        /* V */
> -            { 3, 1, 1, 0, 8 },        /* A */
> +            { 0, 2, 1, 0, 8, 1 },        /* Y */
> +            { 1, 2, 1, 0, 8, 1 },        /* U */
> +            { 2, 2, 1, 0, 8, 1 },        /* V */
> +            { 3, 2, 1, 0, 8, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | 
> AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -619,10 +622,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 8 },        /* Y */
> -            { 1, 1, 1, 0, 8 },        /* U */
> -            { 2, 1, 1, 0, 8 },        /* V */
> -            { 3, 1, 1, 0, 8 },        /* A */
> +            { 0, 2, 1, 0, 8, 1 },        /* Y */
> +            { 1, 2, 1, 0, 8, 1 },        /* U */
> +            { 2, 2, 1, 0, 8, 1 },        /* V */
> +            { 3, 2, 1, 0, 8, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -632,10 +635,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 8 },        /* Y */
> -            { 1, 1, 1, 0, 8 },        /* U */
> -            { 2, 1, 1, 0, 8 },        /* V */
> -            { 3, 1, 1, 0, 8 },        /* A */
> +            { 0, 2, 1, 0, 8, 1 },        /* Y */
> +            { 1, 2, 1, 0, 8, 1 },        /* U */
> +            { 2, 2, 1, 0, 8, 1 },        /* V */
> +            { 3, 2, 1, 0, 8, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | 
> AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -645,10 +648,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 8 },        /* Y */
> -            { 1, 1, 1, 0, 8 },        /* U */
> -            { 2, 1, 1, 0, 8 },        /* V */
> -            { 3, 1, 1, 0, 8 },        /* A */
> +            { 0, 2, 1, 0, 8, 1 },        /* Y */
> +            { 1, 2, 1, 0, 8, 1 },        /* U */
> +            { 2, 2, 1, 0, 8, 1 },        /* V */
> +            { 3, 2, 1, 0, 8, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -658,10 +661,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 1, 1, 0, 9 },        /* Y */
> -            { 1, 1, 1, 0, 9 },        /* U */
> -            { 2, 1, 1, 0, 9 },        /* V */
> -            { 3, 1, 1, 0, 9 },        /* A */
> +            { 0, 2, 1, 0, 9, 1 },        /* Y */
> +            { 1, 2, 1, 0, 9, 1 },        /* U */
> +            { 2, 2, 1, 0, 9, 1 },        /* V */
> +            { 3, 2, 1, 0, 9, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | 
> AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -671,10 +674,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 1, 1, 0, 9 },        /* Y */
> -            { 1, 1, 1, 0, 9 },        /* U */
> -            { 2, 1, 1, 0, 9 },        /* V */
> -            { 3, 1, 1, 0, 9 },        /* A */
> +            { 0, 2, 1, 0, 9, 1 },        /* Y */
> +            { 1, 2, 1, 0, 9, 1 },        /* U */
> +            { 2, 2, 1, 0, 9, 1 },        /* V */
> +            { 3, 2, 1, 0, 9, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -684,10 +687,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 9 },        /* Y */
> -            { 1, 1, 1, 0, 9 },        /* U */
> -            { 2, 1, 1, 0, 9 },        /* V */
> -            { 3, 1, 1, 0, 9 },        /* A */
> +            { 0, 2, 1, 0, 9, 1 },        /* Y */
> +            { 1, 2, 1, 0, 9, 1 },        /* U */
> +            { 2, 2, 1, 0, 9, 1 },        /* V */
> +            { 3, 2, 1, 0, 9, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | 
> AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -697,10 +700,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 9 },        /* Y */
> -            { 1, 1, 1, 0, 9 },        /* U */
> -            { 2, 1, 1, 0, 9 },        /* V */
> -            { 3, 1, 1, 0, 9 },        /* A */
> +            { 0, 2, 1, 0, 9, 1 },        /* Y */
> +            { 1, 2, 1, 0, 9, 1 },        /* U */
> +            { 2, 2, 1, 0, 9, 1 },        /* V */
> +            { 3, 2, 1, 0, 9, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -710,10 +713,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 9 },        /* Y */
> -            { 1, 1, 1, 0, 9 },        /* U */
> -            { 2, 1, 1, 0, 9 },        /* V */
> -            { 3, 1, 1, 0, 9 },        /* A */
> +            { 0, 2, 1, 0, 9, 1 },        /* Y */
> +            { 1, 2, 1, 0, 9, 1 },        /* U */
> +            { 2, 2, 1, 0, 9, 1 },        /* V */
> +            { 3, 2, 1, 0, 9, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | 
> AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -723,10 +726,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 9 },        /* Y */
> -            { 1, 1, 1, 0, 9 },        /* U */
> -            { 2, 1, 1, 0, 9 },        /* V */
> -            { 3, 1, 1, 0, 9 },        /* A */
> +            { 0, 2, 1, 0, 9, 1 },        /* Y */
> +            { 1, 2, 1, 0, 9, 1 },        /* U */
> +            { 2, 2, 1, 0, 9, 1 },        /* V */
> +            { 3, 2, 1, 0, 9, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -736,10 +739,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },        /* Y */
> -            { 1, 1, 1, 0, 15 },        /* U */
> -            { 2, 1, 1, 0, 15 },        /* V */
> -            { 3, 1, 1, 0, 15 },        /* A */
> +            { 0, 2, 1, 0, 15, 1 },        /* Y */
> +            { 1, 2, 1, 0, 15, 1 },        /* U */
> +            { 2, 2, 1, 0, 15, 1 },        /* V */
> +            { 3, 2, 1, 0, 15, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | 
> AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -749,10 +752,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },        /* Y */
> -            { 1, 1, 1, 0, 15 },        /* U */
> -            { 2, 1, 1, 0, 15 },        /* V */
> -            { 3, 1, 1, 0, 15 },        /* A */
> +            { 0, 2, 1, 0, 15, 1 },        /* Y */
> +            { 1, 2, 1, 0, 15, 1 },        /* U */
> +            { 2, 2, 1, 0, 15, 1 },        /* V */
> +            { 3, 2, 1, 0, 15, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -762,10 +765,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },        /* Y */
> -            { 1, 1, 1, 0, 15 },        /* U */
> -            { 2, 1, 1, 0, 15 },        /* V */
> -            { 3, 1, 1, 0, 15 },        /* A */
> +            { 0, 2, 1, 0, 15, 1 },        /* Y */
> +            { 1, 2, 1, 0, 15, 1 },        /* U */
> +            { 2, 2, 1, 0, 15, 1 },        /* V */
> +            { 3, 2, 1, 0, 15, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | 
> AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -775,10 +778,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },        /* Y */
> -            { 1, 1, 1, 0, 15 },        /* U */
> -            { 2, 1, 1, 0, 15 },        /* V */
> -            { 3, 1, 1, 0, 15 },        /* A */
> +            { 0, 2, 1, 0, 15, 1 },        /* Y */
> +            { 1, 2, 1, 0, 15, 1 },        /* U */
> +            { 2, 2, 1, 0, 15, 1 },        /* V */
> +            { 3, 2, 1, 0, 15, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -788,10 +791,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },        /* Y */
> -            { 1, 1, 1, 0, 15 },        /* U */
> -            { 2, 1, 1, 0, 15 },        /* V */
> -            { 3, 1, 1, 0, 15 },        /* A */
> +            { 0, 2, 1, 0, 15, 1 },        /* Y */
> +            { 1, 2, 1, 0, 15, 1 },        /* U */
> +            { 2, 2, 1, 0, 15, 1 },        /* V */
> +            { 3, 2, 1, 0, 15, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | 
> AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -801,10 +804,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },        /* Y */
> -            { 1, 1, 1, 0, 15 },        /* U */
> -            { 2, 1, 1, 0, 15 },        /* V */
> -            { 3, 1, 1, 0, 15 },        /* A */
> +            { 0, 2, 1, 0, 15, 1 },        /* Y */
> +            { 1, 2, 1, 0, 15, 1 },        /* U */
> +            { 2, 2, 1, 0, 15, 1 },        /* V */
> +            { 3, 2, 1, 0, 15, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -852,9 +855,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 5, 1, 0, 15 },       /* R */
> -            { 0, 5, 3, 0, 15 },       /* G */
> -            { 0, 5, 5, 0, 15 },       /* B */
> +            { 0, 6, 1, 0, 15, 5 },       /* R */
> +            { 0, 6, 3, 0, 15, 5 },       /* G */
> +            { 0, 6, 5, 0, 15, 5 },       /* B */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_BE,
>      },
> @@ -864,9 +867,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 5, 1, 0, 15 },       /* R */
> -            { 0, 5, 3, 0, 15 },       /* G */
> -            { 0, 5, 5, 0, 15 },       /* B */
> +            { 0, 6, 1, 0, 15, 5 },       /* R */
> +            { 0, 6, 3, 0, 15, 5 },       /* G */
> +            { 0, 6, 5, 0, 15, 5 },       /* B */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -876,10 +879,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 7, 1, 0, 15 },       /* R */
> -            { 0, 7, 3, 0, 15 },       /* G */
> -            { 0, 7, 5, 0, 15 },       /* B */
> -            { 0, 7, 7, 0, 15 },       /* A */
> +            { 0, 8, 1, 0, 15, 7 },       /* R */
> +            { 0, 8, 3, 0, 15, 7 },       /* G */
> +            { 0, 8, 5, 0, 15, 7 },       /* B */
> +            { 0, 8, 7, 0, 15, 7 },       /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB | 
> AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -889,10 +892,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 7, 1, 0, 15 },       /* R */
> -            { 0, 7, 3, 0, 15 },       /* G */
> -            { 0, 7, 5, 0, 15 },       /* B */
> -            { 0, 7, 7, 0, 15 },       /* A */
> +            { 0, 8, 1, 0, 15, 7 },       /* R */
> +            { 0, 8, 3, 0, 15, 7 },       /* G */
> +            { 0, 8, 5, 0, 15, 7 },       /* B */
> +            { 0, 8, 7, 0, 15, 7 },       /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -902,9 +905,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, 4 },        /* R */
> -            { 0, 1, 1, 5, 5 },        /* G */
> -            { 0, 1, 1, 0, 4 },        /* B */
> +            { 0, 2, 0, 3, 4, 1 },        /* R */
> +            { 0, 2, 1, 5, 5, 1 },        /* G */
> +            { 0, 2, 1, 0, 4, 1 },        /* B */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -914,9 +917,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 2, 3, 4 },        /* R */
> -            { 0, 1, 1, 5, 5 },        /* G */
> -            { 0, 1, 1, 0, 4 },        /* B */
> +            { 0, 2, 2, 3, 4, 1 },        /* R */
> +            { 0, 2, 1, 5, 5, 1 },        /* G */
> +            { 0, 2, 1, 0, 4, 1 },        /* B */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -926,9 +929,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 0, 2, 4 },        /* R */
> -            { 0, 1, 1, 5, 4 },        /* G */
> -            { 0, 1, 1, 0, 4 },        /* B */
> +            { 0, 2, 0, 2, 4, 1 },        /* R */
> +            { 0, 2, 1, 5, 4, 1 },        /* G */
> +            { 0, 2, 1, 0, 4, 1 },        /* B */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -938,9 +941,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 2, 2, 4 },        /* R */
> -            { 0, 1, 1, 5, 4 },        /* G */
> -            { 0, 1, 1, 0, 4 },        /* B */
> +            { 0, 2, 2, 2, 4, 1 },        /* R */
> +            { 0, 2, 1, 5, 4, 1 },        /* G */
> +            { 0, 2, 1, 0, 4, 1 },        /* B */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -950,9 +953,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 },        /* R */
> -            { 0, 1, 1, 4, 3 },        /* G */
> -            { 0, 1, 1, 0, 3 },        /* B */
> +            { 0, 2, 0, 0, 3, 1 },        /* R */
> +            { 0, 2, 1, 4, 3, 1 },        /* G */
> +            { 0, 2, 1, 0, 3, 1 },        /* B */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -962,9 +965,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 2, 0, 3 },        /* R */
> -            { 0, 1, 1, 4, 3 },        /* G */
> -            { 0, 1, 1, 0, 3 },        /* B */
> +            { 0, 2, 2, 0, 3, 1 },        /* R */
> +            { 0, 2, 1, 4, 3, 1 },        /* G */
> +            { 0, 2, 1, 0, 3, 1 },        /* B */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -974,9 +977,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 5, 1, 0, 15 },       /* B */
> -            { 0, 5, 3, 0, 15 },       /* G */
> -            { 0, 5, 5, 0, 15 },       /* R */
> +            { 0, 6, 1, 0, 15, 5 },       /* B */
> +            { 0, 6, 3, 0, 15, 5 },       /* G */
> +            { 0, 6, 5, 0, 15, 5 },       /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -986,9 +989,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 5, 1, 0, 15 },       /* B */
> -            { 0, 5, 3, 0, 15 },       /* G */
> -            { 0, 5, 5, 0, 15 },       /* R */
> +            { 0, 6, 1, 0, 15, 5 },       /* B */
> +            { 0, 6, 3, 0, 15, 5 },       /* G */
> +            { 0, 6, 5, 0, 15, 5 },       /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -998,10 +1001,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 5, 1, 0, 15 },       /* B */
> -            { 0, 5, 3, 0, 15 },       /* G */
> -            { 0, 5, 5, 0, 15 },       /* R */
> -            { 0, 5, 7, 0, 15 },       /* A */
> +            { 0, 6, 1, 0, 15, 5 },       /* B */
> +            { 0, 6, 3, 0, 15, 5 },       /* G */
> +            { 0, 6, 5, 0, 15, 5 },       /* R */
> +            { 0, 6, 7, 0, 15, 5 },       /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB | 
> AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -1011,10 +1014,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 5, 1, 0, 15 },       /* B */
> -            { 0, 5, 3, 0, 15 },       /* G */
> -            { 0, 5, 5, 0, 15 },       /* R */
> -            { 0, 5, 7, 0, 15 },       /* A */
> +            { 0, 6, 1, 0, 15, 5 },       /* B */
> +            { 0, 6, 3, 0, 15, 5 },       /* G */
> +            { 0, 6, 5, 0, 15, 5 },       /* R */
> +            { 0, 6, 7, 0, 15, 5 },       /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -1024,9 +1027,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, 4 },        /* B */
> -            { 0, 1, 1, 5, 5 },        /* G */
> -            { 0, 1, 1, 0, 4 },        /* R */
> +            { 0, 2, 0, 3, 4, 1 },        /* B */
> +            { 0, 2, 1, 5, 5, 1 },        /* G */
> +            { 0, 2, 1, 0, 4, 1 },        /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -1036,9 +1039,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 2, 3, 4 },        /* B */
> -            { 0, 1, 1, 5, 5 },        /* G */
> -            { 0, 1, 1, 0, 4 },        /* R */
> +            { 0, 2, 2, 3, 4, 1 },        /* B */
> +            { 0, 2, 1, 5, 5, 1 },        /* G */
> +            { 0, 2, 1, 0, 4, 1 },        /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -1048,9 +1051,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 0, 2, 4 },       /* B */
> -            { 0, 1, 1, 5, 4 },       /* G */
> -            { 0, 1, 1, 0, 4 },       /* R */
> +            { 0, 2, 0, 2, 4, 1 },       /* B */
> +            { 0, 2, 1, 5, 4, 1 },       /* G */
> +            { 0, 2, 1, 0, 4, 1 },       /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB,
>       },
> @@ -1060,9 +1063,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 2, 2, 4 },        /* B */
> -            { 0, 1, 1, 5, 4 },        /* G */
> -            { 0, 1, 1, 0, 4 },        /* R */
> +            { 0, 2, 2, 2, 4, 1 },        /* B */
> +            { 0, 2, 1, 5, 4, 1 },        /* G */
> +            { 0, 2, 1, 0, 4, 1 },        /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -1072,9 +1075,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 },       /* B */
> -            { 0, 1, 1, 4, 3 },       /* G */
> -            { 0, 1, 1, 0, 3 },       /* R */
> +            { 0, 2, 0, 0, 3, 1 },       /* B */
> +            { 0, 2, 1, 4, 3, 1 },       /* G */
> +            { 0, 2, 1, 0, 3, 1 },       /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB,
>       },
> @@ -1084,9 +1087,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 2, 0, 3 },        /* B */
> -            { 0, 1, 1, 4, 3 },        /* G */
> -            { 0, 1, 1, 0, 3 },        /* R */
> +            { 0, 2, 2, 0, 3, 1 },        /* B */
> +            { 0, 2, 1, 4, 3, 1 },        /* G */
> +            { 0, 2, 1, 0, 3, 1 },        /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -1120,9 +1123,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 1, 1, 0, 8 },        /* Y */
> -            { 1, 1, 1, 0, 8 },        /* U */
> -            { 2, 1, 1, 0, 8 },        /* V */
> +            { 0, 2, 1, 0, 8, 1 },        /* Y */
> +            { 1, 2, 1, 0, 8, 1 },        /* U */
> +            { 2, 2, 1, 0, 8, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1132,9 +1135,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 1, 1, 0, 8 },        /* Y */
> -            { 1, 1, 1, 0, 8 },        /* U */
> -            { 2, 1, 1, 0, 8 },        /* V */
> +            { 0, 2, 1, 0, 8, 1 },        /* Y */
> +            { 1, 2, 1, 0, 8, 1 },        /* U */
> +            { 2, 2, 1, 0, 8, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1144,9 +1147,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 1, 1, 0, 9 },        /* Y */
> -            { 1, 1, 1, 0, 9 },        /* U */
> -            { 2, 1, 1, 0, 9 },        /* V */
> +            { 0, 2, 1, 0, 9, 1 },        /* Y */
> +            { 1, 2, 1, 0, 9, 1 },        /* U */
> +            { 2, 2, 1, 0, 9, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1156,9 +1159,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 1, 1, 0, 9 },        /* Y */
> -            { 1, 1, 1, 0, 9 },        /* U */
> -            { 2, 1, 1, 0, 9 },        /* V */
> +            { 0, 2, 1, 0, 9, 1 },        /* Y */
> +            { 1, 2, 1, 0, 9, 1 },        /* U */
> +            { 2, 2, 1, 0, 9, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1168,9 +1171,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },        /* Y */
> -            { 1, 1, 1, 0, 15 },        /* U */
> -            { 2, 1, 1, 0, 15 },        /* V */
> +            { 0, 2, 1, 0, 15, 1 },        /* Y */
> +            { 1, 2, 1, 0, 15, 1 },        /* U */
> +            { 2, 2, 1, 0, 15, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1180,9 +1183,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 1,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },        /* Y */
> -            { 1, 1, 1, 0, 15 },        /* U */
> -            { 2, 1, 1, 0, 15 },        /* V */
> +            { 0, 2, 1, 0, 15, 1 },        /* Y */
> +            { 1, 2, 1, 0, 15, 1 },        /* U */
> +            { 2, 2, 1, 0, 15, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1192,9 +1195,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 8 },        /* Y */
> -            { 1, 1, 1, 0, 8 },        /* U */
> -            { 2, 1, 1, 0, 8 },        /* V */
> +            { 0, 2, 1, 0, 8, 1 },        /* Y */
> +            { 1, 2, 1, 0, 8, 1 },        /* U */
> +            { 2, 2, 1, 0, 8, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1204,9 +1207,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 8 },        /* Y */
> -            { 1, 1, 1, 0, 8 },        /* U */
> -            { 2, 1, 1, 0, 8 },        /* V */
> +            { 0, 2, 1, 0, 8, 1 },        /* Y */
> +            { 1, 2, 1, 0, 8, 1 },        /* U */
> +            { 2, 2, 1, 0, 8, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1216,9 +1219,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 9 },        /* Y */
> -            { 1, 1, 1, 0, 9 },        /* U */
> -            { 2, 1, 1, 0, 9 },        /* V */
> +            { 0, 2, 1, 0, 9, 1 },        /* Y */
> +            { 1, 2, 1, 0, 9, 1 },        /* U */
> +            { 2, 2, 1, 0, 9, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1228,9 +1231,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 9 },        /* Y */
> -            { 1, 1, 1, 0, 9 },        /* U */
> -            { 2, 1, 1, 0, 9 },        /* V */
> +            { 0, 2, 1, 0, 9, 1 },        /* Y */
> +            { 1, 2, 1, 0, 9, 1 },        /* U */
> +            { 2, 2, 1, 0, 9, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1240,9 +1243,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },        /* Y */
> -            { 1, 1, 1, 0, 15 },        /* U */
> -            { 2, 1, 1, 0, 15 },        /* V */
> +            { 0, 2, 1, 0, 15, 1 },        /* Y */
> +            { 1, 2, 1, 0, 15, 1 },        /* U */
> +            { 2, 2, 1, 0, 15, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1252,9 +1255,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },        /* Y */
> -            { 1, 1, 1, 0, 15 },        /* U */
> -            { 2, 1, 1, 0, 15 },        /* V */
> +            { 0, 2, 1, 0, 15, 1 },        /* Y */
> +            { 1, 2, 1, 0, 15, 1 },        /* U */
> +            { 2, 2, 1, 0, 15, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1264,9 +1267,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },        /* Y */
> -            { 1, 1, 1, 0, 15 },        /* U */
> -            { 2, 1, 1, 0, 15 },        /* V */
> +            { 0, 2, 1, 0, 15, 1 },        /* Y */
> +            { 1, 2, 1, 0, 15, 1 },        /* U */
> +            { 2, 2, 1, 0, 15, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1276,9 +1279,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },        /* Y */
> -            { 1, 1, 1, 0, 15 },        /* U */
> -            { 2, 1, 1, 0, 15 },        /* V */
> +            { 0, 2, 1, 0, 15, 1 },        /* Y */
> +            { 1, 2, 1, 0, 15, 1 },        /* U */
> +            { 2, 2, 1, 0, 15, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1288,9 +1291,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 9 },        /* Y */
> -            { 1, 1, 1, 0, 9 },        /* U */
> -            { 2, 1, 1, 0, 9 },        /* V */
> +            { 0, 2, 1, 0, 9, 1 },        /* Y */
> +            { 1, 2, 1, 0, 9, 1 },        /* U */
> +            { 2, 2, 1, 0, 9, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1300,9 +1303,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 9 },        /* Y */
> -            { 1, 1, 1, 0, 9 },        /* U */
> -            { 2, 1, 1, 0, 9 },        /* V */
> +            { 0, 2, 1, 0, 9, 1 },        /* Y */
> +            { 1, 2, 1, 0, 9, 1 },        /* U */
> +            { 2, 2, 1, 0, 9, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1312,9 +1315,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 8 },        /* Y */
> -            { 1, 1, 1, 0, 8 },        /* U */
> -            { 2, 1, 1, 0, 8 },        /* V */
> +            { 0, 2, 1, 0, 8, 1 },        /* Y */
> +            { 1, 2, 1, 0, 8, 1 },        /* U */
> +            { 2, 2, 1, 0, 8, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1324,9 +1327,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 8 },        /* Y */
> -            { 1, 1, 1, 0, 8 },        /* U */
> -            { 2, 1, 1, 0, 8 },        /* V */
> +            { 0, 2, 1, 0, 8, 1 },        /* Y */
> +            { 1, 2, 1, 0, 8, 1 },        /* U */
> +            { 2, 2, 1, 0, 8, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1346,8 +1349,8 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .name = "ya8",
>          .nb_components = 2,
>          .comp = {
> -            { 0, 1, 1, 0, 7 },        /* Y */
> -            { 0, 1, 2, 0, 7 },        /* A */
> +            { 0, 2, 1, 0, 7, 1 },        /* Y */
> +            { 0, 2, 2, 0, 7, 1 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_ALPHA,
>          .alias = "gray8a",
> @@ -1356,8 +1359,8 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .name = "ya16le",
>          .nb_components = 2,
>          .comp = {
> -            { 0, 3, 1, 0, 15 },        /* Y */
> -            { 0, 3, 3, 0, 15 },        /* A */
> +            { 0, 4, 1, 0, 15, 3 },        /* Y */
> +            { 0, 4, 3, 0, 15, 3 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -1365,8 +1368,8 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .name = "ya16be",
>          .nb_components = 2,
>          .comp = {
> -            { 0, 3, 1, 0, 15 },        /* Y */
> -            { 0, 3, 3, 0, 15 },        /* A */
> +            { 0, 4, 1, 0, 15, 3 },        /* Y */
> +            { 0, 4, 3, 0, 15, 3 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_ALPHA,
>      },
> @@ -1376,9 +1379,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* G */
> -            { 1, 0, 1, 0, 7 },        /* B */
> -            { 2, 0, 1, 0, 7 },        /* R */
> +            { 0, 1, 1, 0, 7, 0 },        /* G */
> +            { 1, 1, 1, 0, 7, 0 },        /* B */
> +            { 2, 1, 1, 0, 7, 0 },        /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -1388,9 +1391,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 8 },        /* G */
> -            { 1, 1, 1, 0, 8 },        /* B */
> -            { 2, 1, 1, 0, 8 },        /* R */
> +            { 0, 2, 1, 0, 8, 1 },        /* G */
> +            { 1, 2, 1, 0, 8, 1 },        /* B */
> +            { 2, 2, 1, 0, 8, 1 },        /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -1400,9 +1403,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 8 },        /* G */
> -            { 1, 1, 1, 0, 8 },        /* B */
> -            { 2, 1, 1, 0, 8 },        /* R */
> +            { 0, 2, 1, 0, 8, 1 },        /* G */
> +            { 1, 2, 1, 0, 8, 1 },        /* B */
> +            { 2, 2, 1, 0, 8, 1 },        /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | 
> AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -1412,9 +1415,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 9 },        /* G */
> -            { 1, 1, 1, 0, 9 },        /* B */
> -            { 2, 1, 1, 0, 9 },        /* R */
> +            { 0, 2, 1, 0, 9, 1 },        /* G */
> +            { 1, 2, 1, 0, 9, 1 },        /* B */
> +            { 2, 2, 1, 0, 9, 1 },        /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -1424,9 +1427,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 9 },        /* G */
> -            { 1, 1, 1, 0, 9 },        /* B */
> -            { 2, 1, 1, 0, 9 },        /* R */
> +            { 0, 2, 1, 0, 9, 1 },        /* G */
> +            { 1, 2, 1, 0, 9, 1 },        /* B */
> +            { 2, 2, 1, 0, 9, 1 },        /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | 
> AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -1436,9 +1439,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },       /* G */
> -            { 1, 1, 1, 0, 15 },       /* B */
> -            { 2, 1, 1, 0, 15 },       /* R */
> +            { 0, 2, 1, 0, 15, 1 },       /* G */
> +            { 1, 2, 1, 0, 15, 1 },       /* B */
> +            { 2, 2, 1, 0, 15, 1 },       /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -1448,9 +1451,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },       /* G */
> -            { 1, 1, 1, 0, 15 },       /* B */
> -            { 2, 1, 1, 0, 15 },       /* R */
> +            { 0, 2, 1, 0, 15, 1 },       /* G */
> +            { 1, 2, 1, 0, 15, 1 },       /* B */
> +            { 2, 2, 1, 0, 15, 1 },       /* R */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR | 
> AV_PIX_FMT_FLAG_RGB,
>      },
> @@ -1460,10 +1463,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* G */
> -            { 1, 0, 1, 0, 7 },        /* B */
> -            { 2, 0, 1, 0, 7 },        /* R */
> -            { 3, 0, 1, 0, 7 },        /* A */
> +            { 0, 1, 1, 0, 7, 0 },        /* G */
> +            { 1, 1, 1, 0, 7, 0 },        /* B */
> +            { 2, 1, 1, 0, 7, 0 },        /* R */
> +            { 3, 1, 1, 0, 7, 0 },        /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB |
>                   AV_PIX_FMT_FLAG_ALPHA,
> @@ -1474,10 +1477,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },       /* G */
> -            { 1, 1, 1, 0, 15 },       /* B */
> -            { 2, 1, 1, 0, 15 },       /* R */
> -            { 3, 1, 1, 0, 15 },       /* A */
> +            { 0, 2, 1, 0, 15, 1 },       /* G */
> +            { 1, 2, 1, 0, 15, 1 },       /* B */
> +            { 2, 2, 1, 0, 15, 1 },       /* R */
> +            { 3, 2, 1, 0, 15, 1 },       /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB |
>                   AV_PIX_FMT_FLAG_ALPHA,
> @@ -1488,10 +1491,10 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 15 },       /* G */
> -            { 1, 1, 1, 0, 15 },       /* B */
> -            { 2, 1, 1, 0, 15 },       /* R */
> -            { 3, 1, 1, 0, 15 },       /* A */
> +            { 0, 2, 1, 0, 15, 1 },       /* G */
> +            { 1, 2, 1, 0, 15, 1 },       /* B */
> +            { 2, 2, 1, 0, 15, 1 },       /* R */
> +            { 3, 2, 1, 0, 15, 1 },       /* A */
>          },
>          .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR |
>                   AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA,
> @@ -1508,9 +1511,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 5, 1, 4, 11 },       /* X */
> -            { 0, 5, 3, 4, 11 },       /* Y */
> -            { 0, 5, 5, 4, 11 },       /* Z */
> +            { 0, 6, 1, 4, 11, 5 },       /* X */
> +            { 0, 6, 3, 4, 11, 5 },       /* Y */
> +            { 0, 6, 5, 4, 11, 5 },       /* Z */
>        },
>        /*.flags = -- not used*/
>      },
> @@ -1520,9 +1523,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 0,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 5, 1, 4, 11 },       /* X */
> -            { 0, 5, 3, 4, 11 },       /* Y */
> -            { 0, 5, 5, 4, 11 },       /* Z */
> +            { 0, 6, 1, 4, 11, 5 },       /* X */
> +            { 0, 6, 3, 4, 11, 5 },       /* Y */
> +            { 0, 6, 5, 4, 11, 5 },       /* Z */
>         },
>          .flags = AV_PIX_FMT_FLAG_BE,
>      },
> @@ -1532,9 +1535,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 0, 1, 0, 7 },        /* Y */
> -            { 1, 1, 1, 0, 7 },        /* U */
> -            { 1, 1, 2, 0, 7 },        /* V */
> +            { 0, 1, 1, 0, 7, 0 },        /* Y */
> +            { 1, 2, 1, 0, 7, 1 },        /* U */
> +            { 1, 2, 2, 0, 7, 1 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1544,9 +1547,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 9 },        /* Y */
> -            { 1, 3, 1, 0, 9 },        /* U */
> -            { 1, 3, 3, 0, 9 },        /* V */
> +            { 0, 2, 1, 0, 9, 1 },        /* Y */
> +            { 1, 4, 1, 0, 9, 3 },        /* U */
> +            { 1, 4, 3, 0, 9, 3 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR,
>      },
> @@ -1556,9 +1559,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .log2_chroma_w = 1,
>          .log2_chroma_h = 0,
>          .comp = {
> -            { 0, 1, 1, 0, 9 },        /* Y */
> -            { 1, 3, 1, 0, 9 },        /* U */
> -            { 1, 3, 3, 0, 9 },        /* V */
> +            { 0, 2, 1, 0, 9, 1 },        /* Y */
> +            { 1, 4, 1, 0, 9, 3 },        /* U */
> +            { 1, 4, 3, 0, 9, 3 },        /* V */
>          },
>          .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_BE,
>      },
> @@ -1575,6 +1578,9 @@ static const AVPixFmtDescriptor 
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          .flags = AV_PIX_FMT_FLAG_HWACCEL,
>      },
>  };
> +#if FF_API_PLUS1_MINUS1
> +FF_ENABLE_DEPRECATION_WARNINGS
> +#endif
>  
>  static const char *color_range_names[AVCOL_RANGE_NB] = {
>      "unknown", "tv", "pc",
> diff --git a/libavutil/pixdesc.h b/libavutil/pixdesc.h
> index bba7e05..4a0b3b7 100644
> --- a/libavutil/pixdesc.h
> +++ b/libavutil/pixdesc.h
> @@ -34,10 +34,10 @@ typedef struct AVComponentDescriptor {
>      int plane;
>  
>      /**
> -     * Number of elements between 2 horizontally consecutive pixels minus 1.
> +     * Number of elements between 2 horizontally consecutive pixels.
>       * Elements are bits for bitstream formats, bytes otherwise.
>       */
> -    int step_minus1;
> +    int step;
>  
>      /**
>       * Number of elements before the component of the first pixel plus 1.
> @@ -55,6 +55,13 @@ typedef struct AVComponentDescriptor {
>       * Number of bits in the component minus 1.
>       */
>      int depth_minus1;
> +
> +#if FF_API_PLUS1_MINUS1
> +    /**
> +     * deprecated, use step
> +     */
> +    attribute_deprecated int step_minus1;
> +#endif
>  } AVComponentDescriptor;
>  
>  /**
> diff --git a/libavutil/version.h b/libavutil/version.h
> index cc09bc7..8640450 100644
> --- a/libavutil/version.h
> +++ b/libavutil/version.h
> @@ -93,6 +93,9 @@
>  #ifndef FF_API_CRYPTO_CONTEXT
>  #define FF_API_CRYPTO_CONTEXT           (LIBAVUTIL_VERSION_MAJOR < 56)
>  #endif
> +#ifndef FF_API_PLUS1_MINUS1
> +#define FF_API_PLUS1_MINUS1             (LIBAVUTIL_VERSION_MAJOR < 56)
> +#endif
>  
>  
>  /**

Looks good - I wonder, is there any test that takes care that the
descriptors are correct? I've tried to check them manually by reading
the patch, but of course that's a very error-prone process.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to