Browse code

pixfmt: add planar RGB formats.

Ronald S. Bultje authored on 2011/11/07 08:30:10
Showing 2 changed files
... ...
@@ -967,6 +967,86 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
967 967
             {0,1,2,0,7},        /* A */
968 968
         },
969 969
     },
970
+    [PIX_FMT_GBRP] = {
971
+        .name = "gbrp",
972
+        .nb_components= 3,
973
+        .log2_chroma_w= 0,
974
+        .log2_chroma_h= 0,
975
+        .comp = {
976
+            {0,0,1,0,7},        /* G */
977
+            {1,0,1,0,7},        /* B */
978
+            {2,0,1,0,7},        /* R */
979
+        },
980
+    },
981
+    [PIX_FMT_GBRP9LE] = {
982
+        .name = "gbrp9le",
983
+        .nb_components= 3,
984
+        .log2_chroma_w= 0,
985
+        .log2_chroma_h= 0,
986
+        .comp = {
987
+            {0,1,1,0,8},        /* G */
988
+            {1,1,1,0,8},        /* B */
989
+            {2,1,1,0,8},        /* R */
990
+        },
991
+    },
992
+    [PIX_FMT_GBRP9BE] = {
993
+        .name = "gbrp9be",
994
+        .nb_components= 3,
995
+        .log2_chroma_w= 0,
996
+        .log2_chroma_h= 0,
997
+        .comp = {
998
+            {0,1,1,0,8},        /* G */
999
+            {1,1,1,0,8},        /* B */
1000
+            {2,1,1,0,8},        /* R */
1001
+        },
1002
+        .flags = PIX_FMT_BE,
1003
+    },
1004
+    [PIX_FMT_GBRP10LE] = {
1005
+        .name = "gbrp10le",
1006
+        .nb_components= 3,
1007
+        .log2_chroma_w= 0,
1008
+        .log2_chroma_h= 0,
1009
+        .comp = {
1010
+            {0,1,1,0,9},        /* G */
1011
+            {1,1,1,0,9},        /* B */
1012
+            {2,1,1,0,9},        /* R */
1013
+        },
1014
+    },
1015
+    [PIX_FMT_GBRP10BE] = {
1016
+        .name = "gbrp10be",
1017
+        .nb_components= 3,
1018
+        .log2_chroma_w= 0,
1019
+        .log2_chroma_h= 0,
1020
+        .comp = {
1021
+            {0,1,1,0,9},        /* G */
1022
+            {1,1,1,0,9},        /* B */
1023
+            {2,1,1,0,9},        /* R */
1024
+        },
1025
+        .flags = PIX_FMT_BE,
1026
+    },
1027
+    [PIX_FMT_GBRP16LE] = {
1028
+        .name = "gbrp16le",
1029
+        .nb_components= 3,
1030
+        .log2_chroma_w= 0,
1031
+        .log2_chroma_h= 0,
1032
+        .comp = {
1033
+            {0,1,1,0,15},       /* G */
1034
+            {1,1,1,0,15},       /* B */
1035
+            {2,1,1,0,15},       /* R */
1036
+        },
1037
+    },
1038
+    [PIX_FMT_GBRP16BE] = {
1039
+        .name = "gbrp16be",
1040
+        .nb_components= 3,
1041
+        .log2_chroma_w= 0,
1042
+        .log2_chroma_h= 0,
1043
+        .comp = {
1044
+            {0,1,1,0,15},       /* G */
1045
+            {1,1,1,0,15},       /* B */
1046
+            {2,1,1,0,15},       /* R */
1047
+        },
1048
+        .flags = PIX_FMT_BE,
1049
+    },
970 1050
 };
971 1051
 
972 1052
 static enum PixelFormat get_pix_fmt_internal(const char *name)
... ...
@@ -150,6 +150,13 @@ enum PixelFormat {
150 150
     PIX_FMT_YUV422P9BE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
151 151
     PIX_FMT_YUV422P9LE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
152 152
     PIX_FMT_VDA_VLD,    ///< hardware decoding through VDA
153
+    PIX_FMT_GBRP,      ///< planar GBR 4:4:4 24bpp
154
+    PIX_FMT_GBRP9BE,   ///< planar GBR 4:4:4 27bpp, big endian
155
+    PIX_FMT_GBRP9LE,   ///< planar GBR 4:4:4 27bpp, little endian
156
+    PIX_FMT_GBRP10BE,  ///< planar GBR 4:4:4 30bpp, big endian
157
+    PIX_FMT_GBRP10LE,  ///< planar GBR 4:4:4 30bpp, little endian
158
+    PIX_FMT_GBRP16BE,  ///< planar GBR 4:4:4 48bpp, big endian
159
+    PIX_FMT_GBRP16LE,  ///< planar GBR 4:4:4 48bpp, little endian
153 160
     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
154 161
 };
155 162
 
... ...
@@ -184,4 +191,8 @@ enum PixelFormat {
184 184
 #define PIX_FMT_YUV422P16 PIX_FMT_NE(YUV422P16BE, YUV422P16LE)
185 185
 #define PIX_FMT_YUV444P16 PIX_FMT_NE(YUV444P16BE, YUV444P16LE)
186 186
 
187
+#define PIX_FMT_GBRP9     PIX_FMT_NE(GBRP9BE ,    GBRP9LE)
188
+#define PIX_FMT_GBRP10    PIX_FMT_NE(GBRP10BE,    GBRP10LE)
189
+#define PIX_FMT_GBRP16    PIX_FMT_NE(GBRP16BE,    GBRP16LE)
190
+
187 191
 #endif /* AVUTIL_PIXFMT_H */