aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2022-09-14 14:09:02 +0200
committerPaul B Mahol <onemda@gmail.com>2022-09-25 18:34:48 +0200
commit63bb6d6a9b64f78e0cfbbc008947c9e0bf2fc409 (patch)
tree1956da6b15323bd827bdc16cce21ca76df73a379
parent54b29e1656979a6879221c0d2d0b50cc91e43bdc (diff)
downloadffmpeg-63bb6d6a9b64f78e0cfbbc008947c9e0bf2fc409.tar.gz
avutil: add RGB single-precision float formats
-rw-r--r--libavutil/pixdesc.c25
-rw-r--r--libavutil/pixfmt.h3
-rw-r--r--tests/ref/fate/imgutils2
-rw-r--r--tests/ref/fate/sws-pixdesc-query9
4 files changed, 39 insertions, 0 deletions
diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
index b472a94f60..248d5f29cd 100644
--- a/libavutil/pixdesc.c
+++ b/libavutil/pixdesc.c
@@ -2636,6 +2636,31 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
},
.flags = AV_PIX_FMT_FLAG_BE,
},
+ [AV_PIX_FMT_RGBF32BE] = {
+ .name = "rgbf32be",
+ .nb_components = 3,
+ .log2_chroma_w = 0,
+ .log2_chroma_h = 0,
+ .comp = {
+ { 0, 12, 0, 0, 32 }, /* R */
+ { 0, 12, 4, 0, 32 }, /* G */
+ { 0, 12, 8, 0, 32 }, /* B */
+ },
+ .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_RGB |
+ AV_PIX_FMT_FLAG_FLOAT,
+ },
+ [AV_PIX_FMT_RGBF32LE] = {
+ .name = "rgbf32le",
+ .nb_components = 3,
+ .log2_chroma_w = 0,
+ .log2_chroma_h = 0,
+ .comp = {
+ { 0, 12, 0, 0, 32 }, /* R */
+ { 0, 12, 4, 0, 32 }, /* G */
+ { 0, 12, 8, 0, 32 }, /* B */
+ },
+ .flags = AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_FLOAT,
+ },
};
static const char * const color_range_names[] = {
diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
index a1c4c9fb75..3c34d73e2c 100644
--- a/libavutil/pixfmt.h
+++ b/libavutil/pixfmt.h
@@ -386,6 +386,9 @@ enum AVPixelFormat {
AV_PIX_FMT_XV36BE, ///< packed XVYU 4:4:4, 48bpp, data in the high bits, zeros in the low bits, big-endian, variant of Y412 where alpha channel is left undefined
AV_PIX_FMT_XV36LE, ///< packed XVYU 4:4:4, 48bpp, data in the high bits, zeros in the low bits, little-endian, variant of Y412 where alpha channel is left undefined
+ AV_PIX_FMT_RGBF32BE, ///< IEEE-754 single precision packed RGB 32:32:32, 96bpp, RGBRGB..., big-endian
+ AV_PIX_FMT_RGBF32LE, ///< IEEE-754 single precision packed RGB 32:32:32, 96bpp, RGBRGB..., 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
};
diff --git a/tests/ref/fate/imgutils b/tests/ref/fate/imgutils
index de73513e7c..8ad5615ed8 100644
--- a/tests/ref/fate/imgutils
+++ b/tests/ref/fate/imgutils
@@ -258,3 +258,5 @@ xv30be planes: 1, linesizes: 256 0 0 0, plane_sizes: 12288 0
xv30le planes: 1, linesizes: 256 0 0 0, plane_sizes: 12288 0 0 0, plane_offsets: 0 0 0, total_size: 12288
xv36be planes: 1, linesizes: 512 0 0 0, plane_sizes: 24576 0 0 0, plane_offsets: 0 0 0, total_size: 24576
xv36le planes: 1, linesizes: 512 0 0 0, plane_sizes: 24576 0 0 0, plane_offsets: 0 0 0, total_size: 24576
+rgbf32be planes: 1, linesizes: 768 0 0 0, plane_sizes: 36864 0 0 0, plane_offsets: 0 0 0, total_size: 36864
+rgbf32le planes: 1, linesizes: 768 0 0 0, plane_sizes: 36864 0 0 0, plane_offsets: 0 0 0, total_size: 36864
diff --git a/tests/ref/fate/sws-pixdesc-query b/tests/ref/fate/sws-pixdesc-query
index 20fc596ce9..e850d52d12 100644
--- a/tests/ref/fate/sws-pixdesc-query
+++ b/tests/ref/fate/sws-pixdesc-query
@@ -169,6 +169,7 @@ isBE:
rgb565be
rgba64be
rgbaf16be
+ rgbf32be
x2bgr10be
x2rgb10be
xv30be
@@ -509,6 +510,8 @@ isRGB:
rgba64le
rgbaf16be
rgbaf16le
+ rgbf32be
+ rgbf32le
x2bgr10be
x2bgr10le
x2rgb10be
@@ -661,6 +664,8 @@ AnyRGB:
rgba64le
rgbaf16be
rgbaf16le
+ rgbf32be
+ rgbf32le
x2bgr10be
x2bgr10le
x2rgb10be
@@ -775,6 +780,8 @@ Packed:
rgba64le
rgbaf16be
rgbaf16le
+ rgbf32be
+ rgbf32le
uyvy422
uyyvyy411
vuya
@@ -965,6 +972,8 @@ PackedRGB:
rgba64le
rgbaf16be
rgbaf16le
+ rgbf32be
+ rgbf32le
x2bgr10be
x2bgr10le
x2rgb10be