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:
		
							parent
							
								
									9ca3b8b7cd
								
							
						
					
					
						commit
						e95b08a7dd
					
				| @ -2504,6 +2504,34 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { | |||||||
|         }, |         }, | ||||||
|         .flags = AV_PIX_FMT_FLAG_ALPHA, |         .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[] = { | static const char * const color_range_names[] = { | ||||||
|  | |||||||
| @ -369,6 +369,9 @@ enum AVPixelFormat { | |||||||
| 
 | 
 | ||||||
|     AV_PIX_FMT_VUYA,        ///< packed VUYA 4:4:4, 32bpp, VUYAVUYA...
 |     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
 |     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_P216       AV_PIX_FMT_NE(P216BE, P216LE) | ||||||
| #define AV_PIX_FMT_P416       AV_PIX_FMT_NE(P416BE, P416LE) | #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. |   * 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. |   * These values match the ones defined by ISO/IEC 23091-2_2019 subclause 8.1 and ITU-T H.273. | ||||||
|  | |||||||
| @ -80,7 +80,7 @@ | |||||||
| 
 | 
 | ||||||
| #define LIBAVUTIL_VERSION_MAJOR  57 | #define LIBAVUTIL_VERSION_MAJOR  57 | ||||||
| #define LIBAVUTIL_VERSION_MINOR  33 | #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, \ | #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ | ||||||
|                                                LIBAVUTIL_VERSION_MINOR, \ |                                                LIBAVUTIL_VERSION_MINOR, \ | ||||||
|  | |||||||
| @ -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 | 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 | 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 | 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 | ||||||
|  | |||||||
| @ -21,6 +21,8 @@ is16BPS: | |||||||
|   rgb48le |   rgb48le | ||||||
|   rgba64be |   rgba64be | ||||||
|   rgba64le |   rgba64le | ||||||
|  |   rgbaf16be | ||||||
|  |   rgbaf16le | ||||||
|   ya16be |   ya16be | ||||||
|   ya16le |   ya16le | ||||||
|   yuv420p16be |   yuv420p16be | ||||||
| @ -157,6 +159,7 @@ isBE: | |||||||
|   rgb555be |   rgb555be | ||||||
|   rgb565be |   rgb565be | ||||||
|   rgba64be |   rgba64be | ||||||
|  |   rgbaf16be | ||||||
|   x2bgr10be |   x2bgr10be | ||||||
|   x2rgb10be |   x2rgb10be | ||||||
|   xyz12be |   xyz12be | ||||||
| @ -479,6 +482,8 @@ isRGB: | |||||||
|   rgb8 |   rgb8 | ||||||
|   rgba64be |   rgba64be | ||||||
|   rgba64le |   rgba64le | ||||||
|  |   rgbaf16be | ||||||
|  |   rgbaf16le | ||||||
|   x2bgr10be |   x2bgr10be | ||||||
|   x2bgr10le |   x2bgr10le | ||||||
|   x2rgb10be |   x2rgb10be | ||||||
| @ -629,6 +634,8 @@ AnyRGB: | |||||||
|   rgb8 |   rgb8 | ||||||
|   rgba64be |   rgba64be | ||||||
|   rgba64le |   rgba64le | ||||||
|  |   rgbaf16be | ||||||
|  |   rgbaf16le | ||||||
|   x2bgr10be |   x2bgr10be | ||||||
|   x2bgr10le |   x2bgr10le | ||||||
|   x2rgb10be |   x2rgb10be | ||||||
| @ -655,6 +662,8 @@ ALPHA: | |||||||
|   rgb32_1 |   rgb32_1 | ||||||
|   rgba64be |   rgba64be | ||||||
|   rgba64le |   rgba64le | ||||||
|  |   rgbaf16be | ||||||
|  |   rgbaf16le | ||||||
|   vuya |   vuya | ||||||
|   ya16be |   ya16be | ||||||
|   ya16le |   ya16le | ||||||
| @ -739,6 +748,8 @@ Packed: | |||||||
|   rgb8 |   rgb8 | ||||||
|   rgba64be |   rgba64be | ||||||
|   rgba64le |   rgba64le | ||||||
|  |   rgbaf16be | ||||||
|  |   rgbaf16le | ||||||
|   uyvy422 |   uyvy422 | ||||||
|   uyyvyy411 |   uyyvyy411 | ||||||
|   vuya |   vuya | ||||||
| @ -918,6 +929,8 @@ PackedRGB: | |||||||
|   rgb8 |   rgb8 | ||||||
|   rgba64be |   rgba64be | ||||||
|   rgba64le |   rgba64le | ||||||
|  |   rgbaf16be | ||||||
|  |   rgbaf16le | ||||||
|   x2bgr10be |   x2bgr10be | ||||||
|   x2bgr10le |   x2bgr10le | ||||||
|   x2rgb10be |   x2rgb10be | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user