1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

lavu/pixfmt: add packed RGBA float16 format

This is the default format of the Windows compositor and what DXGI
Desktop Duplication will give you for any kind of HDR output.
This commit is contained in:
Timo Rothenpieler 2022-08-07 21:03:59 +02:00
parent 9ca3b8b7cd
commit e95b08a7dd
5 changed files with 49 additions and 1 deletions

View File

@ -2504,6 +2504,34 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
},
.flags = AV_PIX_FMT_FLAG_ALPHA,
},
[AV_PIX_FMT_RGBAF16BE] = {
.name = "rgbaf16be",
.nb_components = 4,
.log2_chroma_w = 0,
.log2_chroma_h = 0,
.comp = {
{ 0, 8, 0, 0, 16 }, /* R */
{ 0, 8, 2, 0, 16 }, /* G */
{ 0, 8, 4, 0, 16 }, /* B */
{ 0, 8, 6, 0, 16 }, /* A */
},
.flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB |
AV_PIX_FMT_FLAG_ALPHA | AV_PIX_FMT_FLAG_FLOAT,
},
[AV_PIX_FMT_RGBAF16LE] = {
.name = "rgbaf16le",
.nb_components = 4,
.log2_chroma_w = 0,
.log2_chroma_h = 0,
.comp = {
{ 0, 8, 0, 0, 16 }, /* R */
{ 0, 8, 2, 0, 16 }, /* G */
{ 0, 8, 4, 0, 16 }, /* B */
{ 0, 8, 6, 0, 16 }, /* A */
},
.flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA |
AV_PIX_FMT_FLAG_FLOAT,
},
};
static const char * const color_range_names[] = {

View File

@ -369,6 +369,9 @@ enum AVPixelFormat {
AV_PIX_FMT_VUYA, ///< packed VUYA 4:4:4, 32bpp, VUYAVUYA...
AV_PIX_FMT_RGBAF16BE, ///< IEEE-754 half precision packed RGBA 16:16:16:16, 64bpp, RGBARGBA..., big-endian
AV_PIX_FMT_RGBAF16LE, ///< IEEE-754 half precision packed RGBA 16:16:16:16, 64bpp, RGBARGBA..., little-endian
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
};
@ -466,6 +469,8 @@ enum AVPixelFormat {
#define AV_PIX_FMT_P216 AV_PIX_FMT_NE(P216BE, P216LE)
#define AV_PIX_FMT_P416 AV_PIX_FMT_NE(P416BE, P416LE)
#define AV_PIX_FMT_RGBAF16 AV_PIX_FMT_NE(RGBAF16BE, RGBAF16LE)
/**
* Chromaticity coordinates of the source primaries.
* These values match the ones defined by ISO/IEC 23091-2_2019 subclause 8.1 and ITU-T H.273.

View File

@ -80,7 +80,7 @@
#define LIBAVUTIL_VERSION_MAJOR 57
#define LIBAVUTIL_VERSION_MINOR 33
#define LIBAVUTIL_VERSION_MICRO 100
#define LIBAVUTIL_VERSION_MICRO 101
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \

View File

@ -247,3 +247,5 @@ p216le planes: 2, linesizes: 128 128 0 0, plane_sizes: 6144 6144
p416be planes: 2, linesizes: 128 256 0 0, plane_sizes: 6144 12288 0 0, plane_offsets: 6144 0 0, total_size: 18432
p416le planes: 2, linesizes: 128 256 0 0, plane_sizes: 6144 12288 0 0, plane_offsets: 6144 0 0, total_size: 18432
vuya planes: 1, linesizes: 256 0 0 0, plane_sizes: 12288 0 0 0, plane_offsets: 0 0 0, total_size: 12288
rgbaf16be planes: 1, linesizes: 512 0 0 0, plane_sizes: 24576 0 0 0, plane_offsets: 0 0 0, total_size: 24576
rgbaf16le planes: 1, linesizes: 512 0 0 0, plane_sizes: 24576 0 0 0, plane_offsets: 0 0 0, total_size: 24576

View File

@ -21,6 +21,8 @@ is16BPS:
rgb48le
rgba64be
rgba64le
rgbaf16be
rgbaf16le
ya16be
ya16le
yuv420p16be
@ -157,6 +159,7 @@ isBE:
rgb555be
rgb565be
rgba64be
rgbaf16be
x2bgr10be
x2rgb10be
xyz12be
@ -479,6 +482,8 @@ isRGB:
rgb8
rgba64be
rgba64le
rgbaf16be
rgbaf16le
x2bgr10be
x2bgr10le
x2rgb10be
@ -629,6 +634,8 @@ AnyRGB:
rgb8
rgba64be
rgba64le
rgbaf16be
rgbaf16le
x2bgr10be
x2bgr10le
x2rgb10be
@ -655,6 +662,8 @@ ALPHA:
rgb32_1
rgba64be
rgba64le
rgbaf16be
rgbaf16le
vuya
ya16be
ya16le
@ -739,6 +748,8 @@ Packed:
rgb8
rgba64be
rgba64le
rgbaf16be
rgbaf16le
uyvy422
uyyvyy411
vuya
@ -918,6 +929,8 @@ PackedRGB:
rgb8
rgba64be
rgba64le
rgbaf16be
rgbaf16le
x2bgr10be
x2bgr10le
x2rgb10be