[FFmpeg-devel] [PATCH v2 1/3] lavu/pix_fmt: add new pixel format x2rgb10

Wang, Fei W fei.w.wang at intel.com
Wed Apr 22 08:28:48 EEST 2020


> -----Original Message-----
> From: Wang, Fei W <fei.w.wang at intel.com>
> Sent: Wednesday, April 22, 2020 1:23 PM
> To: ffmpeg-devel at ffmpeg.org
> Cc: Wang, Fei W <fei.w.wang at intel.com>
> Subject: [PATCH v2 1/3] lavu/pix_fmt: add new pixel format x2rgb10
> 
> The format is packed RGB with each channel 10 bits available and include 2
> bits unused.
> 
> Signed-off-by: Fei Wang <fei.w.wang at intel.com>
> ---
>  libavutil/pixdesc.c                     | 24 ++++++++++++++++++++++++
>  libavutil/pixfmt.h                      |  3 +++
>  libavutil/version.h                     |  2 +-
>  tests/ref/fate/filter-pixdesc-x2rgb10le |  1 +
>  tests/ref/fate/sws-pixdesc-query        | 11 +++++++++++
>  5 files changed, 40 insertions(+), 1 deletion(-)  create mode 100644
> tests/ref/fate/filter-pixdesc-x2rgb10le
> 
> diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c index 9d61c52..23ec1ab
> 100644
> --- a/libavutil/pixdesc.c
> +++ b/libavutil/pixdesc.c
> @@ -252,6 +252,30 @@ static const AVPixFmtDescriptor
> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>          },
>          .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, 3, 9, 2 }, 	   /* R */
> +            { 0, 4, 1, 2, 10, 3, 9, 3 }, 	   /* G */
> +            { 0, 4, 0, 0, 10, 3, 9, 4 }, 	   /* 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, 3, 9, 2 }, 	   /* R */
> +            { 0, 4, 1, 2, 10, 3, 9, 3 }, 	   /* G */
> +            { 0, 4, 2, 0, 10, 3, 9, 4 }, 	   /* B */
> +        },
> +        .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_BE,
> +    },
>      [AV_PIX_FMT_YUV422P] = {
>          .name = "yuv422p",
>          .nb_components = 3,
> diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h index 1c625cf..71058d7
> 100644
> --- a/libavutil/pixfmt.h
> +++ b/libavutil/pixfmt.h
> @@ -358,6 +358,8 @@ enum AVPixelFormat {
>      AV_PIX_FMT_Y210BE,    ///< packed YUV 4:2:2 like YUYV422, 20bpp, data
> in the high bits, big-endian
>      AV_PIX_FMT_Y210LE,    ///< packed YUV 4:2:2 like YUYV422, 20bpp, data
> in the high bits, little-endian
> 
> +    AV_PIX_FMT_X2RGB10LE,    ///< packed RGB 10:10:10, 30bpp, (msb)2X
> 10R 10G 10B(lsb), little-endian, X=unused/undefined
> +    AV_PIX_FMT_X2RGB10BE,    ///< packed RGB 10:10:10, 30bpp, (msb)2X
> 10R 10G 10B(lsb), big-endian, X=unused/undefined
>      AV_PIX_FMT_NB         ///< number of pixel formats, DO NOT USE THIS if
> you want to link with shared libav* because the number of formats might
> differ between versions
>  };
> 
> @@ -447,6 +449,7 @@ enum AVPixelFormat {
>  #define AV_PIX_FMT_P016       AV_PIX_FMT_NE(P016BE,  P016LE)
> 
>  #define AV_PIX_FMT_Y210       AV_PIX_FMT_NE(Y210BE,  Y210LE)
> +#define AV_PIX_FMT_X2RGB10       AV_PIX_FMT_NE(X2RGB10BE,
> X2RGB10LE)
> 
>  /**
>    * Chromaticity coordinates of the source primaries.
> diff --git a/libavutil/version.h b/libavutil/version.h index 70836a5..e4fa0a9
> 100644
> --- a/libavutil/version.h
> +++ b/libavutil/version.h
> @@ -79,7 +79,7 @@
>   */
> 
>  #define LIBAVUTIL_VERSION_MAJOR  56
> -#define LIBAVUTIL_VERSION_MINOR  42
> +#define LIBAVUTIL_VERSION_MINOR  43
>  #define LIBAVUTIL_VERSION_MICRO 102
> 
>  #define LIBAVUTIL_VERSION_INT
> AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
> diff --git a/tests/ref/fate/filter-pixdesc-x2rgb10le b/tests/ref/fate/filter-
> pixdesc-x2rgb10le
> new file mode 100644
> index 0000000..94c8640
> --- /dev/null
> +++ b/tests/ref/fate/filter-pixdesc-x2rgb10le
> @@ -0,0 +1 @@
> +pixdesc-x2rgb10le    98d697ed4668daf535163d5e08c903bb
> diff --git a/tests/ref/fate/sws-pixdesc-query b/tests/ref/fate/sws-pixdesc-
> query
> index bc9a0d8..c3cccfa 100644
> --- a/tests/ref/fate/sws-pixdesc-query
> +++ b/tests/ref/fate/sws-pixdesc-query
> @@ -57,6 +57,8 @@ isNBPS:
>    nv20le
>    p010be
>    p010le
> +  x2rgb10be
> +  x2rgb10le
>    xyz12be
>    xyz12le
>    y210be
> @@ -141,6 +143,7 @@ isBE:
>    rgb555be
>    rgb565be
>    rgba64be
> +  x2rgb10be
>    xyz12be
>    y210be
>    ya16be
> @@ -436,6 +439,8 @@ isRGB:
>    rgb8
>    rgba64be
>    rgba64le
> +  x2rgb10be
> +  x2rgb10le
> 
>  Gray:
>    gray
> @@ -582,6 +587,8 @@ AnyRGB:
>    rgb8
>    rgba64be
>    rgba64le
> +  x2rgb10be
> +  x2rgb10le
> 
>  ALPHA:
>    ayuv64be
> @@ -689,6 +696,8 @@ Packed:
>    rgba64le
>    uyvy422
>    uyyvyy411
> +  x2rgb10be
> +  x2rgb10le
>    xyz12be
>    xyz12le
>    y210be
> @@ -853,6 +862,8 @@ PackedRGB:
>    rgb8
>    rgba64be
>    rgba64le
> +  x2rgb10be
> +  x2rgb10le
> 
>  PlanarRGB:
>    gbrap
> --
> 2.7.4
V2: fixed FATE fail for separate patch in this patch series.



More information about the ffmpeg-devel mailing list