Browse Source

pixfmt: add AV_PIX_FMT_GRAY32

This is a useful format for high-precision intermediates.
Lynne 1 month ago
parent
commit
300b82c3ea
2 changed files with 25 additions and 0 deletions
  1. 21 0
      libavutil/pixdesc.c
  2. 4 0
      libavutil/pixfmt.h

+ 21 - 0
libavutil/pixdesc.c

@@ -797,6 +797,27 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
         },
         .alias = "y16le",
     },
+    [AV_PIX_FMT_GRAY32BE] = {
+        .name = "gray32be",
+        .nb_components = 1,
+        .log2_chroma_w = 0,
+        .log2_chroma_h = 0,
+        .comp = {
+            { 0, 4, 0, 0, 32 },       /* Y */
+        },
+        .flags = AV_PIX_FMT_FLAG_BE,
+        .alias = "y32be",
+    },
+    [AV_PIX_FMT_GRAY32LE] = {
+        .name = "gray32le",
+        .nb_components = 1,
+        .log2_chroma_w = 0,
+        .log2_chroma_h = 0,
+        .comp = {
+            { 0, 4, 0, 0, 32 },       /* Y */
+        },
+        .alias = "y32le",
+    },
     [AV_PIX_FMT_YUV440P] = {
         .name = "yuv440p",
         .nb_components = 3,

+ 4 - 0
libavutil/pixfmt.h

@@ -476,6 +476,9 @@ enum AVPixelFormat {
      */
     AV_PIX_FMT_AMF_SURFACE,
 
+    AV_PIX_FMT_GRAY32BE,    ///<         Y        , 32bpp, big-endian
+    AV_PIX_FMT_GRAY32LE,    ///<         Y        , 32bpp, 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
 };
 
@@ -497,6 +500,7 @@ enum AVPixelFormat {
 #define AV_PIX_FMT_GRAY12 AV_PIX_FMT_NE(GRAY12BE, GRAY12LE)
 #define AV_PIX_FMT_GRAY14 AV_PIX_FMT_NE(GRAY14BE, GRAY14LE)
 #define AV_PIX_FMT_GRAY16 AV_PIX_FMT_NE(GRAY16BE, GRAY16LE)
+#define AV_PIX_FMT_GRAY32 AV_PIX_FMT_NE(GRAY32BE, GRAY32LE)
 #define AV_PIX_FMT_YA16   AV_PIX_FMT_NE(YA16BE,   YA16LE)
 #define AV_PIX_FMT_RGB48  AV_PIX_FMT_NE(RGB48BE,  RGB48LE)
 #define AV_PIX_FMT_RGB565 AV_PIX_FMT_NE(RGB565BE, RGB565LE)