Add two 10 bit RGBA pixel format for hardware color space conversion support in VAAPI and QSV:
2:10:10:10 10 bit: A2R10G10B10 2:10:10:10 10 bit: A2B10G10R10 Add query support in fate. Signed-off-by: Xinpeng Sun <xinpeng....@intel.com> --- libavutil/pixdesc.c | 26 ++++++++++++++++++++++++++ libavutil/pixfmt.h | 3 +++ libavutil/version.h | 2 +- tests/ref/fate/sws-pixdesc-query | 12 ++++++++++++ 4 files changed, 42 insertions(+), 1 deletion(-) diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c index 05dd4a1e20..0ea0332d1d 100644 --- a/libavutil/pixdesc.c +++ b/libavutil/pixdesc.c @@ -540,6 +540,32 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { }, .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA, }, + [AV_PIX_FMT_A2R10G10B10] = { + .name = "a2r10g10b10", + .nb_components = 4, + .log2_chroma_w = 0, + .log2_chroma_h = 0, + .comp = { + { 0, 32, 20, 0, 10, 31, 9, 21 }, /* R */ + { 0, 32, 10, 0, 10, 31, 9, 11 }, /* G */ + { 0, 32, 0, 0, 10, 31, 9, 1 }, /* B */ + { 0, 32, 30, 0, 2, 31, 1, 31 }, /* A */ + }, + .flags = AV_PIX_FMT_FLAG_BITSTREAM | AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA, + }, + [AV_PIX_FMT_A2B10G10R10] = { + .name = "a2b10g10r10", + .nb_components = 4, + .log2_chroma_w = 0, + .log2_chroma_h = 0, + .comp = { + { 0, 32, 0, 0, 10, 31, 9, 1 }, /* R */ + { 0, 32, 10, 0, 10, 31, 9, 11 }, /* G */ + { 0, 32, 20, 0, 10, 31, 9, 21 }, /* B */ + { 0, 32, 30, 0, 2, 31, 1, 31 }, /* A */ + }, + .flags = AV_PIX_FMT_FLAG_BITSTREAM | AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA, + }, [AV_PIX_FMT_0RGB] = { .name = "0rgb", .nb_components= 3, diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h index d78e863d4b..7ceaccd56e 100644 --- a/libavutil/pixfmt.h +++ b/libavutil/pixfmt.h @@ -348,6 +348,9 @@ enum AVPixelFormat { AV_PIX_FMT_NV24, ///< planar YUV 4:4:4, 24bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V) AV_PIX_FMT_NV42, ///< as above, but U and V bytes are swapped + AV_PIX_FMT_A2R10G10B10, ///packed ARGB 2:10:10:10, 32bpp, ARGBARGB... + AV_PIX_FMT_A2B10G10R10, ///packed ABGR 2:10:10:10, 32bpp, ABGRABGR... + 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 }; diff --git a/libavutil/version.h b/libavutil/version.h index 3395769857..af3abf7265 100644 --- a/libavutil/version.h +++ b/libavutil/version.h @@ -79,7 +79,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 56 -#define LIBAVUTIL_VERSION_MINOR 35 +#define LIBAVUTIL_VERSION_MINOR 36 #define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ diff --git a/tests/ref/fate/sws-pixdesc-query b/tests/ref/fate/sws-pixdesc-query index e23492293e..7316abab44 100644 --- a/tests/ref/fate/sws-pixdesc-query +++ b/tests/ref/fate/sws-pixdesc-query @@ -33,6 +33,8 @@ is16BPS: yuva444p16le isNBPS: + a2b10g10r10 + a2r10g10b10 gbrap10be gbrap10le gbrap12be @@ -363,6 +365,8 @@ isSemiPlanarYUV: isRGB: 0bgr 0rgb + a2b10g10r10 + a2r10g10b10 bayer_bggr16be bayer_bggr16le bayer_bggr8 @@ -507,6 +511,8 @@ Bayer: AnyRGB: 0bgr 0rgb + a2b10g10r10 + a2r10g10b10 bayer_bggr16be bayer_bggr16le bayer_bggr8 @@ -579,6 +585,8 @@ AnyRGB: rgba64le ALPHA: + a2b10g10r10 + a2r10g10b10 ayuv64be ayuv64le bgr32 @@ -631,6 +639,8 @@ ALPHA: Packed: 0bgr 0rgb + a2b10g10r10 + a2r10g10b10 ayuv64be ayuv64le bayer_bggr16be @@ -800,6 +810,8 @@ Planar: PackedRGB: 0bgr 0rgb + a2b10g10r10 + a2r10g10b10 bayer_bggr16be bayer_bggr16le bayer_bggr8 -- 2.17.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".