Merge commit 'dd343fd986459f467a2d1d70c26101dff1d47d68'
authorJames Almer <jamrial@gmail.com>
Mon, 23 Oct 2017 21:15:49 +0000 (18:15 -0300)
committerJames Almer <jamrial@gmail.com>
Mon, 23 Oct 2017 21:15:49 +0000 (18:15 -0300)
* commit 'dd343fd986459f467a2d1d70c26101dff1d47d68':
  lavu: Drop deprecated VDPAU pixel formats

Merged-by: James Almer <jamrial@gmail.com>
12 files changed:
1  2 
configure
libavcodec/allcodecs.c
libavcodec/h263dec.c
libavcodec/h264_picture.c
libavcodec/h264dec.c
libavcodec/mpeg12dec.c
libavcodec/mpeg4videodec.c
libavcodec/vc1dec.c
libavcodec/vdpau.c
libavutil/pixdesc.c
libavutil/pixfmt.h
libavutil/version.h

diff --cc configure
+++ b/configure
@@@ -2806,84 -2248,35 +2806,73 @@@ h264_qsv_decoder_deps="libmfx
  h264_qsv_decoder_select="h264_mp4toannexb_bsf h264_parser qsvdec h264_qsv_hwaccel"
  h264_qsv_encoder_deps="libmfx"
  h264_qsv_encoder_select="qsvenc"
 +h264_rkmpp_decoder_deps="rkmpp"
 +h264_rkmpp_decoder_select="h264_mp4toannexb_bsf"
  h264_vaapi_encoder_deps="VAEncPictureParameterBufferH264"
 -h264_vaapi_encoder_select="vaapi_encode golomb"
 +h264_vaapi_encoder_select="cbs_h264 vaapi_encode"
- h264_vdpau_decoder_deps="vdpau"
- h264_vdpau_decoder_select="h264_decoder"
 +h264_v4l2m2m_decoder_deps="v4l2_m2m h264_v4l2_m2m"
 +h264_v4l2m2m_encoder_deps="v4l2_m2m h264_v4l2_m2m"
 +hevc_cuvid_decoder_deps="cuda cuvid"
 +hevc_cuvid_decoder_select="hevc_mp4toannexb_bsf"
 +hevc_mediacodec_decoder_deps="mediacodec"
 +hevc_mediacodec_decoder_select="hevc_mp4toannexb_bsf hevc_parser"
  hevc_nvenc_encoder_deps="nvenc"
  hevc_qsv_decoder_deps="libmfx"
 -hevc_qsv_decoder_select="hevc_mp4toannexb_bsf hevc_parser hevc_qsv_hwaccel qsvdec"
 +hevc_qsv_decoder_select="hevc_mp4toannexb_bsf hevc_parser qsvdec hevc_qsv_hwaccel"
  hevc_qsv_encoder_deps="libmfx"
 -hevc_qsv_encoder_select="hevc_ps qsvenc"
 +hevc_qsv_encoder_select="hevcparse qsvenc"
 +hevc_rkmpp_decoder_deps="rkmpp"
 +hevc_rkmpp_decoder_select="hevc_mp4toannexb_bsf"
  hevc_vaapi_encoder_deps="VAEncPictureParameterBufferHEVC"
 -hevc_vaapi_encoder_select="vaapi_encode golomb"
 +hevc_vaapi_encoder_select="cbs_h265 vaapi_encode"
 +hevc_v4l2m2m_decoder_deps="v4l2_m2m hevc_v4l2_m2m"
 +hevc_v4l2m2m_encoder_deps="v4l2_m2m hevc_v4l2_m2m"
 +mjpeg_cuvid_decoder_deps="cuda cuvid"
  mjpeg_vaapi_encoder_deps="VAEncPictureParameterBufferJPEG"
  mjpeg_vaapi_encoder_select="vaapi_encode jpegtables"
- mpeg1_vdpau_decoder_deps="vdpau"
- mpeg1_vdpau_decoder_select="mpeg1video_decoder"
 +mpeg1_cuvid_decoder_deps="cuda cuvid"
 +mpeg1_v4l2m2m_decoder_deps="v4l2_m2m mpeg1_v4l2_m2m"
 +mpeg2_crystalhd_decoder_select="crystalhd"
 +mpeg2_cuvid_decoder_deps="cuda cuvid"
  mpeg2_mmal_decoder_deps="mmal"
 +mpeg2_mediacodec_decoder_deps="mediacodec"
  mpeg2_qsv_decoder_deps="libmfx"
 -mpeg2_qsv_decoder_select="qsvdec mpeg2_qsv_hwaccel mpegvideo_parser"
 +mpeg2_qsv_decoder_select="qsvdec mpeg2_qsv_hwaccel"
  mpeg2_qsv_encoder_deps="libmfx"
  mpeg2_qsv_encoder_select="qsvenc"
  mpeg2_vaapi_encoder_deps="VAEncPictureParameterBufferMPEG2"
 -mpeg2_vaapi_encoder_select="vaapi_encode"
 +mpeg2_vaapi_encoder_select="cbs_mpeg2 vaapi_encode"
 +mpeg2_v4l2m2m_decoder_deps="v4l2_m2m mpeg2_v4l2_m2m"
 +mpeg4_crystalhd_decoder_select="crystalhd"
 +mpeg4_cuvid_decoder_deps="cuda cuvid"
 +mpeg4_mediacodec_decoder_deps="mediacodec"
 +mpeg4_mmal_decoder_deps="mmal"
  mpeg4_omx_encoder_deps="omx"
- mpeg4_vdpau_decoder_deps="vdpau"
- mpeg4_vdpau_decoder_select="mpeg4_decoder"
 +mpeg4_v4l2m2m_decoder_deps="v4l2_m2m mpeg4_v4l2_m2m"
 +mpeg4_v4l2m2m_encoder_deps="v4l2_m2m mpeg4_v4l2_m2m"
- mpeg_vdpau_decoder_deps="vdpau"
- mpeg_vdpau_decoder_select="mpeg2video_decoder"
 +msmpeg4_crystalhd_decoder_select="crystalhd"
 +nvenc_h264_encoder_select="h264_nvenc_encoder"
 +nvenc_hevc_encoder_select="hevc_nvenc_encoder"
 +vc1_crystalhd_decoder_select="crystalhd"
 +vc1_cuvid_decoder_deps="cuda cuvid"
  vc1_mmal_decoder_deps="mmal"
- vc1_vdpau_decoder_deps="vdpau"
- vc1_vdpau_decoder_select="vc1_decoder"
 -vc1_qsv_decoder_deps="libmfx"
 -vc1_qsv_decoder_select="qsvdec vc1_qsv_hwaccel vc1_parser"
 +vc1_v4l2m2m_decoder_deps="v4l2_m2m vc1_v4l2_m2m"
 +vp8_cuvid_decoder_deps="cuda cuvid"
 +vp8_mediacodec_decoder_deps="mediacodec"
  vp8_qsv_decoder_deps="libmfx"
  vp8_qsv_decoder_select="qsvdec vp8_qsv_hwaccel vp8_parser"
 +vp8_rkmpp_decoder_deps="rkmpp"
  vp8_vaapi_encoder_deps="VAEncPictureParameterBufferVP8"
  vp8_vaapi_encoder_select="vaapi_encode"
 -
 -nvenc_h264_encoder_select="h264_nvenc_encoder"
 -nvenc_hevc_encoder_select="hevc_nvenc_encoder"
 +vp8_v4l2m2m_decoder_deps="v4l2_m2m vp8_v4l2_m2m"
 +vp8_v4l2m2m_encoder_deps="v4l2_m2m vp8_v4l2_m2m"
 +vp9_cuvid_decoder_deps="cuda cuvid"
 +vp9_mediacodec_decoder_deps="mediacodec"
 +vp9_rkmpp_decoder_deps="rkmpp"
 +vp9_vaapi_encoder_deps="VAEncPictureParameterBufferVP9"
 +vp9_vaapi_encoder_select="vaapi_encode"
 +vp9_v4l2m2m_decoder_deps="v4l2_m2m vp9_v4l2_m2m"
 +wmv3_crystalhd_decoder_select="crystalhd"
- wmv3_vdpau_decoder_select="vc1_vdpau_decoder"
  
  # parsers
  h264_parser_select="golomb h264dsp h264parse"
@@@ -206,18 -169,10 +206,15 @@@ static void register_all(void
      REGISTER_ENCDEC (H261,              h261);
      REGISTER_ENCDEC (H263,              h263);
      REGISTER_DECODER(H263I,             h263i);
 -    REGISTER_ENCODER(H263P,             h263p);
 +    REGISTER_ENCDEC (H263P,             h263p);
 +    REGISTER_DECODER(H263_V4L2M2M,      h263_v4l2m2m);
      REGISTER_DECODER(H264,              h264);
 +    REGISTER_DECODER(H264_CRYSTALHD,    h264_crystalhd);
 +    REGISTER_DECODER(H264_V4L2M2M,      h264_v4l2m2m);
 +    REGISTER_DECODER(H264_MEDIACODEC,   h264_mediacodec);
      REGISTER_DECODER(H264_MMAL,         h264_mmal);
      REGISTER_DECODER(H264_QSV,          h264_qsv);
- #if FF_API_VDPAU
-     REGISTER_DECODER(H264_VDPAU,        h264_vdpau);
- #endif
 +    REGISTER_DECODER(H264_RKMPP,        h264_rkmpp);
      REGISTER_ENCDEC (HAP,               hap);
      REGISTER_DECODER(HEVC,              hevc);
      REGISTER_DECODER(HEVC_QSV,          hevc_qsv);
      REGISTER_DECODER(MOTIONPIXELS,      motionpixels);
      REGISTER_ENCDEC (MPEG1VIDEO,        mpeg1video);
      REGISTER_ENCDEC (MPEG2VIDEO,        mpeg2video);
- #if FF_API_VDPAU
-     REGISTER_DECODER(MPEG4_VDPAU,       mpeg4_vdpau);
- #endif
 +    REGISTER_ENCDEC (MPEG4,             mpeg4);
 +    REGISTER_DECODER(MPEG4_CRYSTALHD,   mpeg4_crystalhd);
 +    REGISTER_DECODER(MPEG4_V4L2M2M,     mpeg4_v4l2m2m);
 +    REGISTER_DECODER(MPEG4_MMAL,        mpeg4_mmal);
- #if FF_API_VDPAU
-     REGISTER_DECODER(MPEG_VDPAU,        mpeg_vdpau);
-     REGISTER_DECODER(MPEG1_VDPAU,       mpeg1_vdpau);
- #endif
 +    REGISTER_DECODER(MPEGVIDEO,         mpegvideo);
 +    REGISTER_DECODER(MPEG1_V4L2M2M,     mpeg1_v4l2m2m);
      REGISTER_DECODER(MPEG2_MMAL,        mpeg2_mmal);
 +    REGISTER_DECODER(MPEG2_CRYSTALHD,   mpeg2_crystalhd);
 +    REGISTER_DECODER(MPEG2_V4L2M2M,     mpeg2_v4l2m2m);
      REGISTER_DECODER(MPEG2_QSV,         mpeg2_qsv);
 -    REGISTER_ENCDEC (MPEG4,             mpeg4);
 +    REGISTER_DECODER(MPEG2_MEDIACODEC,  mpeg2_mediacodec);
      REGISTER_DECODER(MSA1,              msa1);
 +    REGISTER_DECODER(MSCC,              mscc);
      REGISTER_DECODER(MSMPEG4V1,         msmpeg4v1);
      REGISTER_ENCDEC (MSMPEG4V2,         msmpeg4v2);
      REGISTER_ENCDEC (MSMPEG4V3,         msmpeg4v3);
      REGISTER_DECODER(VB,                vb);
      REGISTER_DECODER(VBLE,              vble);
      REGISTER_DECODER(VC1,               vc1);
- #if FF_API_VDPAU
-     REGISTER_DECODER(VC1_VDPAU,         vc1_vdpau);
- #endif
 +    REGISTER_DECODER(VC1_CRYSTALHD,     vc1_crystalhd);
      REGISTER_DECODER(VC1IMAGE,          vc1image);
      REGISTER_DECODER(VC1_MMAL,          vc1_mmal);
      REGISTER_DECODER(VC1_QSV,           vc1_qsv);
      REGISTER_ENCDEC (WMV1,              wmv1);
      REGISTER_ENCDEC (WMV2,              wmv2);
      REGISTER_DECODER(WMV3,              wmv3);
- #if FF_API_VDPAU
-     REGISTER_DECODER(WMV3_VDPAU,        wmv3_vdpau);
- #endif
 +    REGISTER_DECODER(WMV3_CRYSTALHD,    wmv3_crystalhd);
      REGISTER_DECODER(WMV3IMAGE,         wmv3image);
      REGISTER_DECODER(WNV1,              wnv1);
      REGISTER_DECODER(XAN_WC3,           xan_wc3);
Simple merge
Simple merge
  #include "mathops.h"
  #include "me_cmp.h"
  #include "mpegutils.h"
++#include "mpeg4video.h"
  #include "profiles.h"
  #include "rectangle.h"
  #include "thread.h"
- #include "vdpau_compat.h"
  
 -#include <assert.h>
 -
  const uint16_t ff_h264_mb_sizes[4] = { 256, 384, 512, 768 };
  
 +int avpriv_h264_has_num_reorder_frames(AVCodecContext *avctx)
 +{
 +    H264Context *h = avctx->priv_data;
 +    return h && h->ps.sps ? h->ps.sps->num_reorder_frames : 0;
 +}
 +
  static void h264_er_decode_mb(void *opaque, int ref, int mv_dir, int mv_type,
                                int (*mv)[2][4][2],
                                int mb_x, int mb_y, int mb_intra, int mb_skipped)
@@@ -47,8 -45,6 +47,7 @@@
  #include "profiles.h"
  #include "thread.h"
  #include "version.h"
- #include "vdpau_compat.h"
 +#include "xvmc_internal.h"
  
  typedef struct Mpeg1Context {
      MpegEncContext mpeg_enc_ctx;
@@@ -1130,30 -1105,7 +1129,24 @@@ static void quant_matrix_rebuild(uint16
          matrix[new_perm[i]] = temp_matrix[old_perm[i]];
  }
  
 -static const enum AVPixelFormat mpeg12_hwaccel_pixfmt_list_420[] = {
 +static const enum AVPixelFormat mpeg1_hwaccel_pixfmt_list_420[] = {
 +#if CONFIG_MPEG1_XVMC_HWACCEL
 +    AV_PIX_FMT_XVMC,
 +#endif
- #if CONFIG_MPEG1_VDPAU_DECODER && FF_API_VDPAU
-     AV_PIX_FMT_VDPAU_MPEG1,
- #endif
 +#if CONFIG_MPEG1_VDPAU_HWACCEL
 +    AV_PIX_FMT_VDPAU,
 +#endif
 +    AV_PIX_FMT_YUV420P,
 +    AV_PIX_FMT_NONE
 +};
 +
 +static const enum AVPixelFormat mpeg2_hwaccel_pixfmt_list_420[] = {
 +#if CONFIG_MPEG2_XVMC_HWACCEL
 +    AV_PIX_FMT_XVMC,
 +#endif
- #if CONFIG_MPEG_VDPAU_DECODER && FF_API_VDPAU
-     AV_PIX_FMT_VDPAU_MPEG2,
- #endif
 +#if CONFIG_MPEG2_VDPAU_HWACCEL
 +    AV_PIX_FMT_VDPAU,
 +#endif
  #if CONFIG_MPEG2_DXVA2_HWACCEL
      AV_PIX_FMT_DXVA2_VLD,
  #endif
@@@ -1205,26 -1145,7 +1192,22 @@@ static enum AVPixelFormat mpeg_get_pixe
      else
          pix_fmts = mpeg12_pixfmt_list_444;
  
 -    return ff_get_format(avctx, pix_fmts);
 +    return ff_thread_get_format(avctx, pix_fmts);
 +}
 +
 +static void setup_hwaccel_for_pixfmt(AVCodecContext *avctx)
 +{
 +    // until then pix_fmt may be changed right after codec init
-     if (avctx->hwaccel
- #if FF_API_VDPAU
-         || uses_vdpau(avctx)
- #endif
-         )
++    if (avctx->hwaccel)
 +        if (avctx->idct_algo == FF_IDCT_AUTO)
 +            avctx->idct_algo = FF_IDCT_NONE;
 +
 +    if (avctx->hwaccel && avctx->pix_fmt == AV_PIX_FMT_XVMC) {
 +        Mpeg1Context *s1 = avctx->priv_data;
 +        MpegEncContext *s = &s1->mpeg_enc_ctx;
 +
 +        s->pack_pblocks = 1;
 +    }
  }
  
  /* Call this function when we know all parameters.
@@@ -2883,56 -2608,6 +2853,24 @@@ AVCodec ff_mpeg2video_decoder = 
      .capabilities   = AV_CODEC_CAP_DRAW_HORIZ_BAND | AV_CODEC_CAP_DR1 |
                        AV_CODEC_CAP_TRUNCATED | AV_CODEC_CAP_DELAY |
                        AV_CODEC_CAP_SLICE_THREADS,
 +    .caps_internal  = FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM,
      .flush          = flush,
 +    .max_lowres     = 3,
      .profiles       = NULL_IF_CONFIG_SMALL(ff_mpeg2_video_profiles),
  };
- #if CONFIG_MPEG_VDPAU_DECODER && FF_API_VDPAU
- AVCodec ff_mpeg_vdpau_decoder = {
-     .name           = "mpegvideo_vdpau",
-     .long_name      = NULL_IF_CONFIG_SMALL("MPEG-1/2 video (VDPAU acceleration)"),
-     .type           = AVMEDIA_TYPE_VIDEO,
-     .id             = AV_CODEC_ID_MPEG2VIDEO,
-     .priv_data_size = sizeof(Mpeg1Context),
-     .init           = mpeg_decode_init,
-     .close          = mpeg_decode_end,
-     .decode         = mpeg_decode_frame,
-     .capabilities   = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_TRUNCATED |
-                       AV_CODEC_CAP_HWACCEL_VDPAU | AV_CODEC_CAP_DELAY,
-     .flush          = flush,
- };
- #endif
- #if CONFIG_MPEG1_VDPAU_DECODER && FF_API_VDPAU
- AVCodec ff_mpeg1_vdpau_decoder = {
-     .name           = "mpeg1video_vdpau",
-     .long_name      = NULL_IF_CONFIG_SMALL("MPEG-1 video (VDPAU acceleration)"),
-     .type           = AVMEDIA_TYPE_VIDEO,
-     .id             = AV_CODEC_ID_MPEG1VIDEO,
-     .priv_data_size = sizeof(Mpeg1Context),
-     .init           = mpeg_decode_init,
-     .close          = mpeg_decode_end,
-     .decode         = mpeg_decode_frame,
-     .capabilities   = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_TRUNCATED |
-                       AV_CODEC_CAP_HWACCEL_VDPAU | AV_CODEC_CAP_DELAY,
-     .flush          = flush,
- };
- #endif
 +
 +//legacy decoder
 +AVCodec ff_mpegvideo_decoder = {
 +    .name           = "mpegvideo",
 +    .long_name      = NULL_IF_CONFIG_SMALL("MPEG-1 video"),
 +    .type           = AVMEDIA_TYPE_VIDEO,
 +    .id             = AV_CODEC_ID_MPEG2VIDEO,
 +    .priv_data_size = sizeof(Mpeg1Context),
 +    .init           = mpeg_decode_init,
 +    .close          = mpeg_decode_end,
 +    .decode         = mpeg_decode_frame,
 +    .capabilities   = AV_CODEC_CAP_DRAW_HORIZ_BAND | AV_CODEC_CAP_DR1 | AV_CODEC_CAP_TRUNCATED | AV_CODEC_CAP_DELAY | AV_CODEC_CAP_SLICE_THREADS,
 +    .caps_internal  = FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM,
 +    .flush          = flush,
 +    .max_lowres     = 3,
 +};
@@@ -2843,31 -2625,4 +2843,5 @@@ AVCodec ff_mpeg4_decoder = 
      .pix_fmts              = ff_h263_hwaccel_pixfmt_list_420,
      .profiles              = NULL_IF_CONFIG_SMALL(ff_mpeg4_video_profiles),
      .update_thread_context = ONLY_IF_THREADS_ENABLED(mpeg4_update_thread_context),
 +    .priv_class = &mpeg4_class,
  };
- #if CONFIG_MPEG4_VDPAU_DECODER && FF_API_VDPAU
- static const AVClass mpeg4_vdpau_class = {
-     "MPEG4 Video VDPAU Decoder",
-     av_default_item_name,
-     mpeg4_options,
-     LIBAVUTIL_VERSION_INT,
- };
- AVCodec ff_mpeg4_vdpau_decoder = {
-     .name           = "mpeg4_vdpau",
-     .long_name      = NULL_IF_CONFIG_SMALL("MPEG-4 part 2 (VDPAU)"),
-     .type           = AVMEDIA_TYPE_VIDEO,
-     .id             = AV_CODEC_ID_MPEG4,
-     .priv_data_size = sizeof(Mpeg4DecContext),
-     .init           = decode_init,
-     .close          = ff_h263_decode_end,
-     .decode         = ff_h263_decode_frame,
-     .capabilities   = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_TRUNCATED | AV_CODEC_CAP_DELAY |
-                       AV_CODEC_CAP_HWACCEL_VDPAU,
-     .pix_fmts       = (const enum AVPixelFormat[]) { AV_PIX_FMT_VDPAU_MPEG4,
-                                                   AV_PIX_FMT_NONE },
-     .priv_class     = &mpeg4_vdpau_class,
- };
- #endif
@@@ -37,9 -37,6 +37,8 @@@
  #include "profiles.h"
  #include "vc1.h"
  #include "vc1data.h"
- #include "vdpau_compat.h"
 +#include "libavutil/avassert.h"
 +
  
  #if CONFIG_WMV3IMAGE_DECODER || CONFIG_VC1IMAGE_DECODER
  
  #include "h264dec.h"
  #include "vc1.h"
  #include "vdpau.h"
- #include "vdpau_compat.h"
  #include "vdpau_internal.h"
  
- #if FF_API_VDPAU
- #undef NDEBUG
- #include <assert.h>
- #endif
 +// XXX: at the time of adding this ifdefery, av_assert* wasn't use outside.
 +// When dropping it, make sure other av_assert* were not added since then.
 +
  /**
   * @addtogroup VDPAU_Decoding
   *
Simple merge
@@@ -137,15 -120,12 +130,12 @@@ enum AVPixelFormat 
      AV_PIX_FMT_YUV422P16BE,  ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
      AV_PIX_FMT_YUV444P16LE,  ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
      AV_PIX_FMT_YUV444P16BE,  ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
- #if FF_API_VDPAU
-     AV_PIX_FMT_VDPAU_MPEG4,  ///< MPEG-4 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
- #endif
      AV_PIX_FMT_DXVA2_VLD,    ///< HW decoding through DXVA2, Picture.data[3] contains a LPDIRECT3DSURFACE9 pointer
  
 -    AV_PIX_FMT_RGB444LE,  ///< packed RGB 4:4:4, 16bpp, (msb)4A 4R 4G 4B(lsb), little-endian, most significant bits to 0
 -    AV_PIX_FMT_RGB444BE,  ///< packed RGB 4:4:4, 16bpp, (msb)4A 4R 4G 4B(lsb), big-endian, most significant bits to 0
 -    AV_PIX_FMT_BGR444LE,  ///< packed BGR 4:4:4, 16bpp, (msb)4A 4B 4G 4R(lsb), little-endian, most significant bits to 1
 -    AV_PIX_FMT_BGR444BE,  ///< packed BGR 4:4:4, 16bpp, (msb)4A 4B 4G 4R(lsb), big-endian, most significant bits to 1
 +    AV_PIX_FMT_RGB444LE,  ///< packed RGB 4:4:4, 16bpp, (msb)4X 4R 4G 4B(lsb), little-endian, X=unused/undefined
 +    AV_PIX_FMT_RGB444BE,  ///< packed RGB 4:4:4, 16bpp, (msb)4X 4R 4G 4B(lsb), big-endian,    X=unused/undefined
 +    AV_PIX_FMT_BGR444LE,  ///< packed BGR 4:4:4, 16bpp, (msb)4X 4B 4G 4R(lsb), little-endian, X=unused/undefined
 +    AV_PIX_FMT_BGR444BE,  ///< packed BGR 4:4:4, 16bpp, (msb)4X 4B 4G 4R(lsb), big-endian,    X=unused/undefined
      AV_PIX_FMT_YA8,       ///< 8 bits gray, 8 bits alpha
  
      AV_PIX_FMT_Y400A = AV_PIX_FMT_YA8, ///< alias for AV_PIX_FMT_YA8
Simple merge