[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