1 /***************************************************************************** 2 * vlc_fourcc.h: Definition of various FOURCC and helpers 3 ***************************************************************************** 4 * Copyright (C) 2009 Laurent Aimar 5 * $Id: 9042a48a9bd206c8fb6228bbb04dbde136c25499 $ 6 * 7 * Authors: Laurent Aimar <fenrir _AT_ videolan _DOT_ com> 8 * 9 * This program is free software; you can redistribute it and/or modify it 10 * under the terms of the GNU Lesser General Public License as published by 11 * the Free Software Foundation; either version 2.1 of the License, or 12 * (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU Lesser General Public License for more details. 18 * 19 * You should have received a copy of the GNU Lesser General Public License 20 * along with this program; if not, write to the Free Software Foundation, 21 * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. 22 *****************************************************************************/ 23 24 #ifndef VLC_FOURCC_H 25 #define VLC_FOURCC_H 1 26 27 #define VLC_CODEC_UNKNOWN VLC_FOURCC('u','n','d','f') 28 29 /* Video codec */ 30 #define VLC_CODEC_MPGV VLC_FOURCC('m','p','g','v') 31 #define VLC_CODEC_MP4V VLC_FOURCC('m','p','4','v') 32 #define VLC_CODEC_DIV1 VLC_FOURCC('D','I','V','1') 33 #define VLC_CODEC_DIV2 VLC_FOURCC('D','I','V','2') 34 #define VLC_CODEC_DIV3 VLC_FOURCC('D','I','V','3') 35 #define VLC_CODEC_SVQ1 VLC_FOURCC('S','V','Q','1') 36 #define VLC_CODEC_SVQ3 VLC_FOURCC('S','V','Q','3') 37 #define VLC_CODEC_H264 VLC_FOURCC('h','2','6','4') 38 #define VLC_CODEC_H263 VLC_FOURCC('h','2','6','3') 39 #define VLC_CODEC_H263I VLC_FOURCC('I','2','6','3') 40 #define VLC_CODEC_H263P VLC_FOURCC('I','L','V','R') 41 #define VLC_CODEC_FLV1 VLC_FOURCC('F','L','V','1') 42 #define VLC_CODEC_H261 VLC_FOURCC('h','2','6','1') 43 #define VLC_CODEC_MJPG VLC_FOURCC('M','J','P','G') 44 #define VLC_CODEC_MJPGB VLC_FOURCC('m','j','p','b') 45 #define VLC_CODEC_LJPG VLC_FOURCC('L','J','P','G') 46 #define VLC_CODEC_WMV1 VLC_FOURCC('W','M','V','1') 47 #define VLC_CODEC_WMV2 VLC_FOURCC('W','M','V','2') 48 #define VLC_CODEC_WMV3 VLC_FOURCC('W','M','V','3') 49 #define VLC_CODEC_WMVA VLC_FOURCC('W','M','V','A') 50 #define VLC_CODEC_WMVP VLC_FOURCC('W','M','V','P') 51 #define VLC_CODEC_WMVP2 VLC_FOURCC('W','V','P','2') 52 #define VLC_CODEC_VC1 VLC_FOURCC('V','C','-','1') 53 #define VLC_CODEC_DAALA VLC_FOURCC('d','a','a','l') 54 #define VLC_CODEC_THEORA VLC_FOURCC('t','h','e','o') 55 #define VLC_CODEC_TARKIN VLC_FOURCC('t','a','r','k') 56 #define VLC_CODEC_DIRAC VLC_FOURCC('d','r','a','c') 57 #define VLC_CODEC_OGGSPOTS VLC_FOURCC('S','P','O','T') 58 #define VLC_CODEC_CAVS VLC_FOURCC('C','A','V','S') 59 #define VLC_CODEC_NUV VLC_FOURCC('N','J','P','G') 60 #define VLC_CODEC_RV10 VLC_FOURCC('R','V','1','0') 61 #define VLC_CODEC_RV13 VLC_FOURCC('R','V','1','3') 62 #define VLC_CODEC_RV20 VLC_FOURCC('R','V','2','0') 63 #define VLC_CODEC_RV30 VLC_FOURCC('R','V','3','0') 64 #define VLC_CODEC_RV40 VLC_FOURCC('R','V','4','0') 65 #define VLC_CODEC_VP3 VLC_FOURCC('V','P','3',' ') 66 #define VLC_CODEC_VP5 VLC_FOURCC('V','P','5',' ') 67 #define VLC_CODEC_VP6 VLC_FOURCC('V','P','6','2') 68 #define VLC_CODEC_VP6F VLC_FOURCC('V','P','6','F') 69 #define VLC_CODEC_VP6A VLC_FOURCC('V','P','6','A') 70 #define VLC_CODEC_MSVIDEO1 VLC_FOURCC('M','S','V','C') 71 #define VLC_CODEC_FLIC VLC_FOURCC('F','L','I','C') 72 #define VLC_CODEC_SP5X VLC_FOURCC('S','P','5','X') 73 #define VLC_CODEC_DV VLC_FOURCC('d','v',' ',' ') 74 #define VLC_CODEC_MSRLE VLC_FOURCC('m','r','l','e') 75 #define VLC_CODEC_HUFFYUV VLC_FOURCC('H','F','Y','U') 76 #define VLC_CODEC_FFVHUFF VLC_FOURCC('F','F','V','H') 77 #define VLC_CODEC_ASV1 VLC_FOURCC('A','S','V','1') 78 #define VLC_CODEC_ASV2 VLC_FOURCC('A','S','V','2') 79 #define VLC_CODEC_FFV1 VLC_FOURCC('F','F','V','1') 80 #define VLC_CODEC_VCR1 VLC_FOURCC('V','C','R','1') 81 #define VLC_CODEC_CLJR VLC_FOURCC('C','L','J','R') 82 #define VLC_CODEC_RPZA VLC_FOURCC('r','p','z','a') 83 #define VLC_CODEC_SMC VLC_FOURCC('s','m','c',' ') 84 #define VLC_CODEC_CINEPAK VLC_FOURCC('C','V','I','D') 85 #define VLC_CODEC_TSCC VLC_FOURCC('T','S','C','C') 86 #define VLC_CODEC_CSCD VLC_FOURCC('C','S','C','D') 87 #define VLC_CODEC_ZMBV VLC_FOURCC('Z','M','B','V') 88 #define VLC_CODEC_VMNC VLC_FOURCC('V','M','n','c') 89 #define VLC_CODEC_FMVC VLC_FOURCC('F','M','V','C') 90 #define VLC_CODEC_FRAPS VLC_FOURCC('F','P','S','1') 91 #define VLC_CODEC_TRUEMOTION1 VLC_FOURCC('D','U','C','K') 92 #define VLC_CODEC_TRUEMOTION2 VLC_FOURCC('T','M','2','0') 93 #define VLC_CODEC_QTRLE VLC_FOURCC('r','l','e',' ') 94 #define VLC_CODEC_QDRAW VLC_FOURCC('q','d','r','w') 95 #define VLC_CODEC_QPEG VLC_FOURCC('Q','P','E','G') 96 #define VLC_CODEC_ULTI VLC_FOURCC('U','L','T','I') 97 #define VLC_CODEC_VIXL VLC_FOURCC('V','I','X','L') 98 #define VLC_CODEC_LOCO VLC_FOURCC('L','O','C','O') 99 #define VLC_CODEC_WNV1 VLC_FOURCC('W','N','V','1') 100 #define VLC_CODEC_AASC VLC_FOURCC('A','A','S','C') 101 #define VLC_CODEC_INDEO2 VLC_FOURCC('I','V','2','0') 102 #define VLC_CODEC_INDEO3 VLC_FOURCC('I','V','3','1') 103 #define VLC_CODEC_INDEO4 VLC_FOURCC('I','V','4','1') 104 #define VLC_CODEC_INDEO5 VLC_FOURCC('I','V','5','0') 105 #define VLC_CODEC_FLASHSV VLC_FOURCC('F','S','V','1') 106 #define VLC_CODEC_KMVC VLC_FOURCC('K','M','V','C') 107 #define VLC_CODEC_SMACKVIDEO VLC_FOURCC('S','M','K','2') 108 #define VLC_CODEC_DNXHD VLC_FOURCC('A','V','d','n') 109 #define VLC_CODEC_8BPS VLC_FOURCC('8','B','P','S') 110 #define VLC_CODEC_MIMIC VLC_FOURCC('M','L','2','O') 111 #define VLC_CODEC_INTERPLAY VLC_FOURCC('i','m','v','e') 112 #define VLC_CODEC_IDCIN VLC_FOURCC('I','D','C','I') 113 #define VLC_CODEC_4XM VLC_FOURCC('4','X','M','V') 114 #define VLC_CODEC_ROQ VLC_FOURCC('R','o','Q','v') 115 #define VLC_CODEC_MDEC VLC_FOURCC('M','D','E','C') 116 #define VLC_CODEC_VMDVIDEO VLC_FOURCC('V','M','D','V') 117 #define VLC_CODEC_CDG VLC_FOURCC('C','D','G',' ') 118 #define VLC_CODEC_FRWU VLC_FOURCC('F','R','W','U') 119 #define VLC_CODEC_AMV VLC_FOURCC('A','M','V',' ') 120 #define VLC_CODEC_VP7 VLC_FOURCC('V','P','7','0') 121 #define VLC_CODEC_VP8 VLC_FOURCC('V','P','8','0') 122 #define VLC_CODEC_VP9 VLC_FOURCC('V','P','9','0') 123 #define VLC_CODEC_VP10 VLC_FOURCC('V','P',':','0') 124 #define VLC_CODEC_AV1 VLC_FOURCC('a','v','0','1') 125 #define VLC_CODEC_JPEG2000 VLC_FOURCC('J','P','2','K') 126 #define VLC_CODEC_LAGARITH VLC_FOURCC('L','A','G','S') 127 #define VLC_CODEC_FLASHSV2 VLC_FOURCC('F','S','V','2') 128 #define VLC_CODEC_PRORES VLC_FOURCC('a','p','c','n') 129 #define VLC_CODEC_MXPEG VLC_FOURCC('M','X','P','G') 130 #define VLC_CODEC_CDXL VLC_FOURCC('C','D','X','L') 131 #define VLC_CODEC_BMVVIDEO VLC_FOURCC('B','M','V','V') 132 #define VLC_CODEC_UTVIDEO VLC_FOURCC('U','L','R','A') 133 #define VLC_CODEC_VBLE VLC_FOURCC('V','B','L','E') 134 #define VLC_CODEC_DXTORY VLC_FOURCC('x','t','o','r') 135 #define VLC_CODEC_MSS1 VLC_FOURCC('M','S','S','1') 136 #define VLC_CODEC_MSS2 VLC_FOURCC('M','S','S','2') 137 #define VLC_CODEC_MSA1 VLC_FOURCC('M','S','A','1') 138 #define VLC_CODEC_TSC2 VLC_FOURCC('T','S','C','2') 139 #define VLC_CODEC_MTS2 VLC_FOURCC('M','T','S','2') 140 #define VLC_CODEC_HEVC VLC_FOURCC('h','e','v','c') 141 #define VLC_CODEC_ICOD VLC_FOURCC('i','c','o','d') 142 #define VLC_CODEC_G2M2 VLC_FOURCC('G','2','M','2') 143 #define VLC_CODEC_G2M3 VLC_FOURCC('G','2','M','3') 144 #define VLC_CODEC_G2M4 VLC_FOURCC('G','2','M','4') 145 #define VLC_CODEC_BINKVIDEO VLC_FOURCC('B','I','K','f') 146 #define VLC_CODEC_BINKAUDIO_DCT VLC_FOURCC('B','A','U','1') 147 #define VLC_CODEC_BINKAUDIO_RDFT VLC_FOURCC('B','A','U','2') 148 #define VLC_CODEC_XAN_WC4 VLC_FOURCC('X','x','a','n') 149 #define VLC_CODEC_LCL_MSZH VLC_FOURCC('M','S','Z','H') 150 #define VLC_CODEC_LCL_ZLIB VLC_FOURCC('Z','L','I','B') 151 #define VLC_CODEC_THP VLC_FOURCC('T','H','P','0') 152 #define VLC_CODEC_ESCAPE124 VLC_FOURCC('E','1','2','4') 153 #define VLC_CODEC_KGV1 VLC_FOURCC('K','G','V','1') 154 #define VLC_CODEC_CLLC VLC_FOURCC('C','L','L','C') 155 #define VLC_CODEC_AURA VLC_FOURCC('A','U','R','A') 156 #define VLC_CODEC_FIC VLC_FOURCC('F','I','C','V') 157 #define VLC_CODEC_TMV VLC_FOURCC('T','M','A','V') 158 #define VLC_CODEC_XAN_WC3 VLC_FOURCC('X','A','N','3') 159 #define VLC_CODEC_WS_VQA VLC_FOURCC('W','V','Q','A') 160 #define VLC_CODEC_MMVIDEO VLC_FOURCC('M','M','V','I') 161 #define VLC_CODEC_AVS VLC_FOURCC('A','V','S','V') 162 #define VLC_CODEC_DSICINVIDEO VLC_FOURCC('D','C','I','V') 163 #define VLC_CODEC_TIERTEXSEQVIDEO VLC_FOURCC('T','S','E','Q') 164 #define VLC_CODEC_DXA VLC_FOURCC('D','E','X','A') 165 #define VLC_CODEC_C93 VLC_FOURCC('I','C','9','3') 166 #define VLC_CODEC_BETHSOFTVID VLC_FOURCC('B','V','I','D') 167 #define VLC_CODEC_VB VLC_FOURCC('V','B','V','1') 168 #define VLC_CODEC_RL2 VLC_FOURCC('R','L','V','2') 169 #define VLC_CODEC_BFI VLC_FOURCC('B','F','&','I') 170 #define VLC_CODEC_CMV VLC_FOURCC('E','C','M','V') 171 #define VLC_CODEC_MOTIONPIXELS VLC_FOURCC('M','P','I','X') 172 #define VLC_CODEC_TGV VLC_FOURCC('T','G','V','V') 173 #define VLC_CODEC_TGQ VLC_FOURCC('T','G','Q','V') 174 #define VLC_CODEC_TQI VLC_FOURCC('T','Q','I','V') 175 #define VLC_CODEC_MAD VLC_FOURCC('M','A','D','V') 176 #define VLC_CODEC_ANM VLC_FOURCC('A','N','I','M') 177 #define VLC_CODEC_YOP VLC_FOURCC('Y','O','P','V') 178 #define VLC_CODEC_JV VLC_FOURCC('J','V','0','0') 179 #define VLC_CODEC_DFA VLC_FOURCC('D','F','I','A') 180 #define VLC_CODEC_HNM4_VIDEO VLC_FOURCC('H','N','M','4') 181 #define VLC_CODEC_TDSC VLC_FOURCC('T','D','S','C') 182 #define VLC_CODEC_HQX VLC_FOURCC('C','H','Q','X') 183 #define VLC_CODEC_HQ_HQA VLC_FOURCC('C','U','V','C') 184 #define VLC_CODEC_HAP VLC_FOURCC('H','A','P','1') 185 #define VLC_CODEC_DXV VLC_FOURCC('D','X','D','3') 186 #define VLC_CODEC_CINEFORM VLC_FOURCC('C','F','H','D') 187 #define VLC_CODEC_SPEEDHQ VLC_FOURCC('S','H','Q','2') 188 #define VLC_CODEC_PIXLET VLC_FOURCC('p','x','l','t') 189 190 /*********** 191 * Chromas 192 ***********/ 193 194 /* Planar YUV */ 195 196 /* Planar YUV 4:1:0 Y:V:U */ 197 #define VLC_CODEC_YV9 VLC_FOURCC('Y','V','U','9') 198 /* Planar YUV 4:1:0 Y:U:V */ 199 #define VLC_CODEC_I410 VLC_FOURCC('I','4','1','0') 200 /* Planar YUV 4:1:1 Y:U:V */ 201 #define VLC_CODEC_I411 VLC_FOURCC('I','4','1','1') 202 203 /* Planar YUV 4:2:0 Y:V:U */ 204 #define VLC_CODEC_YV12 VLC_FOURCC('Y','V','1','2') 205 /* Planar YUV 4:2:0 Y:U:V 8-bit */ 206 #define VLC_CODEC_I420 VLC_FOURCC('I','4','2','0') 207 /* Planar YUV 4:2:0 Y:U:V 9-bit stored on 16 bits */ 208 #define VLC_CODEC_I420_9L VLC_FOURCC('I','0','9','L') 209 #define VLC_CODEC_I420_9B VLC_FOURCC('I','0','9','B') 210 /* Planar YUV 4:2:0 Y:U:V 10-bit stored on 16 bits LSB */ 211 #define VLC_CODEC_I420_10L VLC_FOURCC('I','0','A','L') 212 #define VLC_CODEC_I420_10B VLC_FOURCC('I','0','A','B') 213 /* Planar YUV 4:2:0 Y:U:V 12-bit stored on 16 bits */ 214 #define VLC_CODEC_I420_12L VLC_FOURCC('I','0','C','L') 215 #define VLC_CODEC_I420_12B VLC_FOURCC('I','0','C','B') 216 217 /* Planar YUV 4:2:0 Y:U:V 16-bit stored on 16 bits */ 218 #define VLC_CODEC_I420_16L VLC_FOURCC('I','0','F','L') 219 #define VLC_CODEC_I420_16B VLC_FOURCC('I','0','F','B') 220 221 /* Planar YUV 4:2:2 Y:U:V 8-bit */ 222 #define VLC_CODEC_I422 VLC_FOURCC('I','4','2','2') 223 /* Planar YUV 4:2:2 Y:U:V 9-bit stored on 16 bits */ 224 #define VLC_CODEC_I422_9L VLC_FOURCC('I','2','9','L') 225 #define VLC_CODEC_I422_9B VLC_FOURCC('I','2','9','B') 226 /* Planar YUV 4:2:2 Y:U:V 10-bit stored on 16 bits */ 227 #define VLC_CODEC_I422_10L VLC_FOURCC('I','2','A','L') 228 #define VLC_CODEC_I422_10B VLC_FOURCC('I','2','A','B') 229 /* Planar YUV 4:2:2 Y:U:V 12-bit stored on 16 bits */ 230 #define VLC_CODEC_I422_12L VLC_FOURCC('I','2','C','L') 231 #define VLC_CODEC_I422_12B VLC_FOURCC('I','2','C','B') 232 233 /* Planar YUV 4:4:0 Y:U:V */ 234 #define VLC_CODEC_I440 VLC_FOURCC('I','4','4','0') 235 /* Planar YUV 4:4:4 Y:U:V 8-bit */ 236 #define VLC_CODEC_I444 VLC_FOURCC('I','4','4','4') 237 /* Planar YUV 4:4:4 Y:U:V 9-bit stored on 16 bits */ 238 #define VLC_CODEC_I444_9L VLC_FOURCC('I','4','9','L') 239 #define VLC_CODEC_I444_9B VLC_FOURCC('I','4','9','B') 240 /* Planar YUV 4:4:4 Y:U:V 10-bit stored on 16 bits */ 241 #define VLC_CODEC_I444_10L VLC_FOURCC('I','4','A','L') 242 #define VLC_CODEC_I444_10B VLC_FOURCC('I','4','A','B') 243 /* Planar YUV 4:4:4 Y:U:V 12-bit stored on 16 bits */ 244 #define VLC_CODEC_I444_12L VLC_FOURCC('I','4','C','L') 245 #define VLC_CODEC_I444_12B VLC_FOURCC('I','4','C','B') 246 /* Planar YUV 4:4:4 Y:U:V 16-bit */ 247 #define VLC_CODEC_I444_16L VLC_FOURCC('I','4','F','L') 248 #define VLC_CODEC_I444_16B VLC_FOURCC('I','4','F','B') 249 250 /* Planar YUV 4:2:0 Y:U:V full scale */ 251 #define VLC_CODEC_J420 VLC_FOURCC('J','4','2','0') 252 /* Planar YUV 4:2:2 Y:U:V full scale */ 253 #define VLC_CODEC_J422 VLC_FOURCC('J','4','2','2') 254 /* Planar YUV 4:4:0 Y:U:V full scale */ 255 #define VLC_CODEC_J440 VLC_FOURCC('J','4','4','0') 256 /* Planar YUV 4:4:4 Y:U:V full scale */ 257 #define VLC_CODEC_J444 VLC_FOURCC('J','4','4','4') 258 /* Palettized YUV with palette element Y:U:V:A */ 259 #define VLC_CODEC_YUVP VLC_FOURCC('Y','U','V','P') 260 261 /* Planar YUV 4:4:4 Y:U:V:A */ 262 #define VLC_CODEC_YUVA VLC_FOURCC('Y','U','V','A') 263 /* Planar YUV 4:2:2 Y:U:V:A */ 264 #define VLC_CODEC_YUV422A VLC_FOURCC('I','4','2','A') 265 /* Planar YUV 4:2:0 Y:U:V:A */ 266 #define VLC_CODEC_YUV420A VLC_FOURCC('I','4','0','A') 267 268 /* Planar Y:U:V:A 4:4:4 10bits */ 269 #define VLC_CODEC_YUVA_444_10L VLC_FOURCC('Y','A','0','L') 270 #define VLC_CODEC_YUVA_444_10B VLC_FOURCC('Y','A','0','B') 271 272 /* Semi-planar Y/UV */ 273 274 /* 2 planes Y/UV 4:2:0 */ 275 #define VLC_CODEC_NV12 VLC_FOURCC('N','V','1','2') 276 /* 2 planes Y/VU 4:2:0 */ 277 #define VLC_CODEC_NV21 VLC_FOURCC('N','V','2','1') 278 /* 2 planes Y/UV 4:2:2 */ 279 #define VLC_CODEC_NV16 VLC_FOURCC('N','V','1','6') 280 /* 2 planes Y/VU 4:2:2 */ 281 #define VLC_CODEC_NV61 VLC_FOURCC('N','V','6','1') 282 /* 2 planes Y/UV 4:4:4 */ 283 #define VLC_CODEC_NV24 VLC_FOURCC('N','V','2','4') 284 /* 2 planes Y/VU 4:4:4 */ 285 #define VLC_CODEC_NV42 VLC_FOURCC('N','V','4','2') 286 /* 2 planes Y/UV 4:2:0 10-bit */ 287 #define VLC_CODEC_P010 VLC_FOURCC('P','0','1','0') 288 289 /* Packed YUV */ 290 291 /* Packed YUV 4:2:2, U:Y:V:Y */ 292 #define VLC_CODEC_UYVY VLC_FOURCC('U','Y','V','Y') 293 /* Packed YUV 4:2:2, V:Y:U:Y */ 294 #define VLC_CODEC_VYUY VLC_FOURCC('V','Y','U','Y') 295 /* Packed YUV 4:2:2, Y:U:Y:V */ 296 #define VLC_CODEC_YUYV VLC_FOURCC('Y','U','Y','2') 297 /* Packed YUV 4:2:2, Y:V:Y:U */ 298 #define VLC_CODEC_YVYU VLC_FOURCC('Y','V','Y','U') 299 /* Packed YUV 2:1:1, Y:U:Y:V */ 300 #define VLC_CODEC_Y211 VLC_FOURCC('Y','2','1','1') 301 /* Packed YUV 4:2:2, U:Y:V:Y, reverted */ 302 #define VLC_CODEC_CYUV VLC_FOURCC('c','y','u','v') 303 /* 10-bit 4:2:2 Component YCbCr */ 304 #define VLC_CODEC_V210 VLC_FOURCC('v','2','1','0') 305 /* I420 packed for RTP (RFC 4175) */ 306 #define VLC_CODEC_R420 VLC_FOURCC('r','4','2','0') 307 /* Packed YUV 4:4:4 V:U:Y:A */ 308 #define VLC_CODEC_VUYA VLC_FOURCC('V','U','Y','A') 309 310 311 /* RGB */ 312 313 /* Palettized RGB with palette element R:G:B */ 314 #define VLC_CODEC_RGBP VLC_FOURCC('R','G','B','P') 315 /* 8 bits RGB */ 316 #define VLC_CODEC_RGB8 VLC_FOURCC('R','G','B','8') 317 /* 12 bits RGB padded to 16 bits */ 318 #define VLC_CODEC_RGB12 VLC_FOURCC('R','V','1','2') 319 /* 15 bits RGB padded to 16 bits */ 320 #define VLC_CODEC_RGB15 VLC_FOURCC('R','V','1','5') 321 /* 16 bits RGB */ 322 #define VLC_CODEC_RGB16 VLC_FOURCC('R','V','1','6') 323 /* 24 bits RGB */ 324 #define VLC_CODEC_RGB24 VLC_FOURCC('R','V','2','4') 325 /* 24 bits RGB padded to 32 bits */ 326 #define VLC_CODEC_RGB32 VLC_FOURCC('R','V','3','2') 327 /* 32 bits RGBA */ 328 #define VLC_CODEC_RGBA VLC_FOURCC('R','G','B','A') 329 /* 32 bits ARGB */ 330 #define VLC_CODEC_ARGB VLC_FOURCC('A','R','G','B') 331 /* 32 bits BGRA */ 332 #define VLC_CODEC_BGRA VLC_FOURCC('B','G','R','A') 333 /* 32 bits BGRA 10:10:10:2 */ 334 #define VLC_CODEC_RGBA10 VLC_FOURCC('R','G','A','0') 335 /* 64 bits RGBA */ 336 #define VLC_CODEC_RGBA64 VLC_FOURCC('R','G','A','4') 337 338 /* Planar GBR 4:4:4 8 bits */ 339 #define VLC_CODEC_GBR_PLANAR VLC_FOURCC('G','B','R','8') 340 #define VLC_CODEC_GBR_PLANAR_9B VLC_FOURCC('G','B','9','B') 341 #define VLC_CODEC_GBR_PLANAR_9L VLC_FOURCC('G','B','9','L') 342 #define VLC_CODEC_GBR_PLANAR_10B VLC_FOURCC('G','B','A','B') 343 #define VLC_CODEC_GBR_PLANAR_10L VLC_FOURCC('G','B','A','L') 344 #define VLC_CODEC_GBR_PLANAR_16L VLC_FOURCC('G','B','F','L') 345 #define VLC_CODEC_GBR_PLANAR_16B VLC_FOURCC('G','B','F','B') 346 347 /* 8 bits grey */ 348 #define VLC_CODEC_GREY VLC_FOURCC('G','R','E','Y') 349 350 /* VDPAU video surface YCbCr 4:2:0 */ 351 #define VLC_CODEC_VDPAU_VIDEO_420 VLC_FOURCC('V','D','V','0') 352 /* VDPAU video surface YCbCr 4:2:2 */ 353 #define VLC_CODEC_VDPAU_VIDEO_422 VLC_FOURCC('V','D','V','2') 354 /* VDPAU video surface YCbCr 4:4:4 */ 355 #define VLC_CODEC_VDPAU_VIDEO_444 VLC_FOURCC('V','D','V','4') 356 /* VDPAU output surface RGBA */ 357 #define VLC_CODEC_VDPAU_OUTPUT VLC_FOURCC('V','D','O','R') 358 359 /* VAAPI opaque surface */ 360 #define VLC_CODEC_VAAPI_420 VLC_FOURCC('V','A','O','P') /* 4:2:0 8 bpc */ 361 #define VLC_CODEC_VAAPI_420_10BPP VLC_FOURCC('V','A','O','0') /* 4:2:0 10 bpc */ 362 363 /* MediaCodec/IOMX opaque buffer type */ 364 #define VLC_CODEC_ANDROID_OPAQUE VLC_FOURCC('A','N','O','P') 365 366 /* Broadcom MMAL opaque buffer type */ 367 #define VLC_CODEC_MMAL_OPAQUE VLC_FOURCC('M','M','A','L') 368 369 /* DXVA2 opaque video surface for use with D3D9 */ 370 #define VLC_CODEC_D3D9_OPAQUE VLC_FOURCC('D','X','A','9') /* 4:2:0 8 bpc */ 371 #define VLC_CODEC_D3D9_OPAQUE_10B VLC_FOURCC('D','X','A','0') /* 4:2:0 10 bpc */ 372 373 /* D3D11VA opaque video surface for use with D3D11 */ 374 #define VLC_CODEC_D3D11_OPAQUE VLC_FOURCC('D','X','1','1') /* 4:2:0 8 bpc */ 375 #define VLC_CODEC_D3D11_OPAQUE_10B VLC_FOURCC('D','X','1','0') /* 4:2:0 10 bpc */ 376 377 /* CVPixelBuffer opaque buffer type */ 378 #define VLC_CODEC_CVPX_NV12 VLC_FOURCC('C','V','P','N') 379 #define VLC_CODEC_CVPX_UYVY VLC_FOURCC('C','V','P','Y') 380 #define VLC_CODEC_CVPX_I420 VLC_FOURCC('C','V','P','I') 381 #define VLC_CODEC_CVPX_BGRA VLC_FOURCC('C','V','P','B') 382 #define VLC_CODEC_CVPX_P010 VLC_FOURCC('C','V','P','P') 383 384 /* Image codec (video) */ 385 #define VLC_CODEC_PNG VLC_FOURCC('p','n','g',' ') 386 #define VLC_CODEC_PPM VLC_FOURCC('p','p','m',' ') 387 #define VLC_CODEC_PGM VLC_FOURCC('p','g','m',' ') 388 #define VLC_CODEC_PGMYUV VLC_FOURCC('p','g','m','y') 389 #define VLC_CODEC_PAM VLC_FOURCC('p','a','m',' ') 390 #define VLC_CODEC_JPEG VLC_FOURCC('j','p','e','g') 391 #define VLC_CODEC_BPG VLC_FOURCC('B','P','G',0xFB) 392 #define VLC_CODEC_JPEGLS VLC_FOURCC('M','J','L','S') 393 #define VLC_CODEC_BMP VLC_FOURCC('b','m','p',' ') 394 #define VLC_CODEC_TIFF VLC_FOURCC('t','i','f','f') 395 #define VLC_CODEC_GIF VLC_FOURCC('g','i','f',' ') 396 #define VLC_CODEC_TARGA VLC_FOURCC('t','g','a',' ') 397 #define VLC_CODEC_SVG VLC_FOURCC('s','v','g',' ') 398 #define VLC_CODEC_SGI VLC_FOURCC('s','g','i',' ') 399 #define VLC_CODEC_PNM VLC_FOURCC('p','n','m',' ') 400 #define VLC_CODEC_PCX VLC_FOURCC('p','c','x',' ') 401 #define VLC_CODEC_XWD VLC_FOURCC('X','W','D',' ') 402 #define VLC_CODEC_TXD VLC_FOURCC('T','X','D',' ') 403 404 405 /* Audio codec */ 406 #define VLC_CODEC_MPGA VLC_FOURCC('m','p','g','a') 407 #define VLC_CODEC_MP4A VLC_FOURCC('m','p','4','a') 408 #define VLC_CODEC_ALS VLC_FOURCC('a','l','s',' ') 409 #define VLC_CODEC_A52 VLC_FOURCC('a','5','2',' ') 410 #define VLC_CODEC_EAC3 VLC_FOURCC('e','a','c','3') 411 #define VLC_CODEC_DTS VLC_FOURCC('d','t','s',' ') 412 #define VLC_CODEC_WMA1 VLC_FOURCC('W','M','A','1') 413 #define VLC_CODEC_WMA2 VLC_FOURCC('W','M','A','2') 414 #define VLC_CODEC_WMAP VLC_FOURCC('W','M','A','P') 415 #define VLC_CODEC_WMAL VLC_FOURCC('W','M','A','L') 416 #define VLC_CODEC_WMAS VLC_FOURCC('W','M','A','S') 417 #define VLC_CODEC_FLAC VLC_FOURCC('f','l','a','c') 418 #define VLC_CODEC_MLP VLC_FOURCC('m','l','p',' ') 419 #define VLC_CODEC_TRUEHD VLC_FOURCC('t','r','h','d') 420 #define VLC_CODEC_DVAUDIO VLC_FOURCC('d','v','a','u') 421 #define VLC_CODEC_SPEEX VLC_FOURCC('s','p','x',' ') 422 #define VLC_CODEC_OPUS VLC_FOURCC('O','p','u','s') 423 #define VLC_CODEC_VORBIS VLC_FOURCC('v','o','r','b') 424 #define VLC_CODEC_MACE3 VLC_FOURCC('M','A','C','3') 425 #define VLC_CODEC_MACE6 VLC_FOURCC('M','A','C','6') 426 #define VLC_CODEC_MUSEPACK7 VLC_FOURCC('M','P','C',' ') 427 #define VLC_CODEC_MUSEPACK8 VLC_FOURCC('M','P','C','K') 428 #define VLC_CODEC_RA_144 VLC_FOURCC('1','4','_','4') 429 #define VLC_CODEC_RA_288 VLC_FOURCC('2','8','_','8') 430 #define VLC_CODEC_INTERPLAY_DPCM VLC_FOURCC('i','d','p','c') 431 #define VLC_CODEC_ROQ_DPCM VLC_FOURCC('R','o','Q','a') 432 #define VLC_CODEC_DSICINAUDIO VLC_FOURCC('D','C','I','A') 433 #define VLC_CODEC_ADPCM_4XM VLC_FOURCC('4','x','m','a') 434 #define VLC_CODEC_ADPCM_EA VLC_FOURCC('A','D','E','A') 435 #define VLC_CODEC_ADPCM_XA VLC_FOURCC('x','a',' ',' ') 436 #define VLC_CODEC_ADPCM_ADX VLC_FOURCC('a','d','x',' ') 437 #define VLC_CODEC_ADPCM_IMA_WS VLC_FOURCC('A','I','W','S') 438 #define VLC_CODEC_ADPCM_G722 VLC_FOURCC('g','7','2','2') 439 #define VLC_CODEC_ADPCM_G726 VLC_FOURCC('g','7','2','6') 440 #define VLC_CODEC_ADPCM_SWF VLC_FOURCC('S','W','F','a') 441 #define VLC_CODEC_ADPCM_MS VLC_FOURCC('m','s',0x00,0x02) 442 #define VLC_CODEC_ADPCM_IMA_WAV VLC_FOURCC('m','s',0x00,0x11) 443 #define VLC_CODEC_ADPCM_IMA_AMV VLC_FOURCC('i','m','a','v') 444 #define VLC_CODEC_ADPCM_IMA_QT VLC_FOURCC('i','m','a','4') 445 #define VLC_CODEC_ADPCM_YAMAHA VLC_FOURCC('m','s',0x00,0x20) 446 #define VLC_CODEC_ADPCM_DK3 VLC_FOURCC('m','s',0x00,0x62) 447 #define VLC_CODEC_ADPCM_DK4 VLC_FOURCC('m','s',0x00,0x61) 448 #define VLC_CODEC_ADPCM_CREATIVE VLC_FOURCC('m','s',0x00,0xC0) 449 #define VLC_CODEC_ADPCM_SBPRO_2 VLC_FOURCC('m','s',0x00,0xC2) 450 #define VLC_CODEC_ADPCM_SBPRO_3 VLC_FOURCC('m','s',0x00,0xC3) 451 #define VLC_CODEC_ADPCM_SBPRO_4 VLC_FOURCC('m','s',0x00,0xC4) 452 #define VLC_CODEC_ADPCM_THP VLC_FOURCC('T','H','P','A') 453 #define VLC_CODEC_ADPCM_XA_EA VLC_FOURCC('X','A','J', 0) 454 #define VLC_CODEC_G723_1 VLC_FOURCC('g','7','2', 0x31) 455 #define VLC_CODEC_G729 VLC_FOURCC('g','7','2','9') 456 #define VLC_CODEC_VMDAUDIO VLC_FOURCC('v','m','d','a') 457 #define VLC_CODEC_AMR_NB VLC_FOURCC('s','a','m','r') 458 #define VLC_CODEC_AMR_WB VLC_FOURCC('s','a','w','b') 459 #define VLC_CODEC_ALAC VLC_FOURCC('a','l','a','c') 460 #define VLC_CODEC_QDM2 VLC_FOURCC('Q','D','M','2') 461 #define VLC_CODEC_QDMC VLC_FOURCC('Q','D','M','C') 462 #define VLC_CODEC_COOK VLC_FOURCC('c','o','o','k') 463 #define VLC_CODEC_SIPR VLC_FOURCC('s','i','p','r') 464 #define VLC_CODEC_TTA VLC_FOURCC('T','T','A','1') 465 #define VLC_CODEC_SHORTEN VLC_FOURCC('s','h','n',' ') 466 #define VLC_CODEC_WAVPACK VLC_FOURCC('W','V','P','K') 467 #define VLC_CODEC_GSM VLC_FOURCC('g','s','m',' ') 468 #define VLC_CODEC_GSM_MS VLC_FOURCC('a','g','s','m') 469 #define VLC_CODEC_ATRAC1 VLC_FOURCC('a','t','r','1') 470 #define VLC_CODEC_ATRAC3 VLC_FOURCC('a','t','r','c') 471 #define VLC_CODEC_ATRAC3P VLC_FOURCC('a','t','r','p') 472 #define VLC_CODEC_IMC VLC_FOURCC(0x1,0x4,0x0,0x0) 473 #define VLC_CODEC_TRUESPEECH VLC_FOURCC(0x22,0x0,0x0,0x0) 474 #define VLC_CODEC_NELLYMOSER VLC_FOURCC('N','E','L','L') 475 #define VLC_CODEC_APE VLC_FOURCC('A','P','E',' ') 476 #define VLC_CODEC_QCELP VLC_FOURCC('Q','c','l','p') 477 #define VLC_CODEC_302M VLC_FOURCC('3','0','2','m') 478 #define VLC_CODEC_DVD_LPCM VLC_FOURCC('l','p','c','m') 479 #define VLC_CODEC_DVDA_LPCM VLC_FOURCC('a','p','c','m') 480 #define VLC_CODEC_BD_LPCM VLC_FOURCC('b','p','c','m') 481 #define VLC_CODEC_WIDI_LPCM VLC_FOURCC('w','p','c','m') 482 #define VLC_CODEC_SDDS VLC_FOURCC('s','d','d','s') 483 #define VLC_CODEC_MIDI VLC_FOURCC('M','I','D','I') 484 #define VLC_CODEC_RALF VLC_FOURCC('R','A','L','F') 485 486 #define VLC_CODEC_S8 VLC_FOURCC('s','8',' ',' ') 487 #define VLC_CODEC_U8 VLC_FOURCC('u','8',' ',' ') 488 #define VLC_CODEC_S16L VLC_FOURCC('s','1','6','l') 489 #define VLC_CODEC_S16L_PLANAR VLC_FOURCC('s','1','l','p') 490 #define VLC_CODEC_S16B VLC_FOURCC('s','1','6','b') 491 #define VLC_CODEC_U16L VLC_FOURCC('u','1','6','l') 492 #define VLC_CODEC_U16B VLC_FOURCC('u','1','6','b') 493 #define VLC_CODEC_S20B VLC_FOURCC('s','2','0','b') 494 #define VLC_CODEC_S24L VLC_FOURCC('s','2','4','l') 495 #define VLC_CODEC_S24B VLC_FOURCC('s','2','4','b') 496 #define VLC_CODEC_U24L VLC_FOURCC('u','2','4','l') 497 #define VLC_CODEC_U24B VLC_FOURCC('u','2','4','b') 498 #define VLC_CODEC_S24L32 VLC_FOURCC('s','2','4','4') 499 #define VLC_CODEC_S24B32 VLC_FOURCC('S','2','4','4') 500 #define VLC_CODEC_S32L VLC_FOURCC('s','3','2','l') 501 #define VLC_CODEC_S32B VLC_FOURCC('s','3','2','b') 502 #define VLC_CODEC_U32L VLC_FOURCC('u','3','2','l') 503 #define VLC_CODEC_U32B VLC_FOURCC('u','3','2','b') 504 #define VLC_CODEC_F32L VLC_FOURCC('f','3','2','l') 505 #define VLC_CODEC_F32B VLC_FOURCC('f','3','2','b') 506 #define VLC_CODEC_F64L VLC_FOURCC('f','6','4','l') 507 #define VLC_CODEC_F64B VLC_FOURCC('f','6','4','b') 508 509 #define VLC_CODEC_ALAW VLC_FOURCC('a','l','a','w') 510 #define VLC_CODEC_MULAW VLC_FOURCC('m','l','a','w') 511 #define VLC_CODEC_DAT12 VLC_FOURCC('L','P','1','2') 512 #define VLC_CODEC_S24DAUD VLC_FOURCC('d','a','u','d') 513 #define VLC_CODEC_TWINVQ VLC_FOURCC('T','W','I','N') 514 #define VLC_CODEC_BMVAUDIO VLC_FOURCC('B','M','V','A') 515 #define VLC_CODEC_ULEAD_DV_AUDIO_NTSC VLC_FOURCC('m','s',0x02,0x15) 516 #define VLC_CODEC_ULEAD_DV_AUDIO_PAL VLC_FOURCC('m','s',0x02,0x16) 517 #define VLC_CODEC_INDEO_AUDIO VLC_FOURCC('m','s',0x04,0x02) 518 #define VLC_CODEC_METASOUND VLC_FOURCC('m','s',0x00,0x75) 519 #define VLC_CODEC_ON2AVC VLC_FOURCC('m','s',0x05,0x00) 520 #define VLC_CODEC_TAK VLC_FOURCC('t','a','k',' ') 521 #define VLC_CODEC_SMACKAUDIO VLC_FOURCC('S','M','K','A') 522 #define VLC_CODEC_ADPCM_IMA_EA_SEAD VLC_FOURCC('S','E','A','D') 523 #define VLC_CODEC_ADPCM_EA_R1 VLC_FOURCC('E','A','R','1') 524 #define VLC_CODEC_ADPCM_IMA_APC VLC_FOURCC('A','I','P','C') 525 526 /* Subtitle */ 527 #define VLC_CODEC_SPU VLC_FOURCC('s','p','u',' ') 528 #define VLC_CODEC_DVBS VLC_FOURCC('d','v','b','s') 529 #define VLC_CODEC_SUBT VLC_FOURCC('s','u','b','t') 530 #define VLC_CODEC_XSUB VLC_FOURCC('X','S','U','B') 531 #define VLC_CODEC_SSA VLC_FOURCC('s','s','a',' ') 532 #define VLC_CODEC_TEXT VLC_FOURCC('T','E','X','T') 533 #define VLC_CODEC_TELETEXT VLC_FOURCC('t','e','l','x') 534 #define VLC_CODEC_KATE VLC_FOURCC('k','a','t','e') 535 #define VLC_CODEC_CMML VLC_FOURCC('c','m','m','l') 536 #define VLC_CODEC_ITU_T140 VLC_FOURCC('t','1','4','0') 537 #define VLC_CODEC_USF VLC_FOURCC('u','s','f',' ') 538 #define VLC_CODEC_OGT VLC_FOURCC('o','g','t',' ') 539 #define VLC_CODEC_CVD VLC_FOURCC('c','v','d',' ') 540 #define VLC_CODEC_TX3G VLC_FOURCC('t','x','3','g') 541 #define VLC_CODEC_ARIB_A VLC_FOURCC('a','r','b','a') 542 #define VLC_CODEC_ARIB_C VLC_FOURCC('a','r','b','c') 543 /* Blu-ray Presentation Graphics */ 544 #define VLC_CODEC_BD_PG VLC_FOURCC('b','d','p','g') 545 #define VLC_CODEC_BD_TEXT VLC_FOURCC('b','d','t','x') 546 /* EBU STL (TECH. 3264-E) */ 547 #define VLC_CODEC_EBU_STL VLC_FOURCC('S','T','L',' ') 548 #define VLC_CODEC_SCTE_18 VLC_FOURCC('S','C','1','8') 549 #define VLC_CODEC_SCTE_27 VLC_FOURCC('S','C','2','7') 550 /* EIA/CEA-608/708 */ 551 #define VLC_CODEC_CEA608 VLC_FOURCC('c','6','0','8') 552 #define VLC_CODEC_CEA708 VLC_FOURCC('c','7','0','8') 553 #define VLC_CODEC_TTML VLC_FOURCC('T','T','M','L') 554 #define VLC_CODEC_WEBVTT VLC_FOURCC('w','v','t','t') 555 556 /* XYZ colorspace 12 bits packed in 16 bits, organisation |XXX0|YYY0|ZZZ0| */ 557 #define VLC_CODEC_XYZ12 VLC_FOURCC('X','Y','1','2') 558 559 560 /* Special endian dependent values 561 * The suffic N means Native 562 * The suffix I means Inverted (ie non native) */ 563 #ifdef WORDS_BIGENDIAN 564 # define VLC_CODEC_S16N VLC_CODEC_S16B 565 # define VLC_CODEC_U16N VLC_CODEC_U16B 566 # define VLC_CODEC_S24N VLC_CODEC_S24B 567 # define VLC_CODEC_U24N VLC_CODEC_U24B 568 # define VLC_CODEC_S32N VLC_CODEC_S32B 569 # define VLC_CODEC_U32N VLC_CODEC_U32B 570 # define VLC_CODEC_FL32 VLC_CODEC_F32B 571 # define VLC_CODEC_FL64 VLC_CODEC_F64B 572 573 # define VLC_CODEC_S16I VLC_CODEC_S16L 574 # define VLC_CODEC_U16I VLC_CODEC_U16L 575 # define VLC_CODEC_S24I VLC_CODEC_S24L 576 # define VLC_CODEC_U24I VLC_CODEC_U24L 577 # define VLC_CODEC_S32I VLC_CODEC_S32L 578 # define VLC_CODEC_U32I VLC_CODEC_U32L 579 580 #else 581 # define VLC_CODEC_S16N VLC_CODEC_S16L 582 # define VLC_CODEC_U16N VLC_CODEC_U16L 583 # define VLC_CODEC_S24N VLC_CODEC_S24L 584 # define VLC_CODEC_U24N VLC_CODEC_U24L 585 # define VLC_CODEC_S32N VLC_CODEC_S32L 586 # define VLC_CODEC_U32N VLC_CODEC_U32L 587 # define VLC_CODEC_FL32 VLC_CODEC_F32L 588 # define VLC_CODEC_FL64 VLC_CODEC_F64L 589 590 # define VLC_CODEC_S16I VLC_CODEC_S16B 591 # define VLC_CODEC_U16I VLC_CODEC_U16B 592 # define VLC_CODEC_S24I VLC_CODEC_S24B 593 # define VLC_CODEC_U24I VLC_CODEC_U24B 594 # define VLC_CODEC_S32I VLC_CODEC_S32B 595 # define VLC_CODEC_U32I VLC_CODEC_U32B 596 #endif 597 598 /* Non official codecs, used to force a profile in an encoder */ 599 /* MPEG-1 video */ 600 #define VLC_CODEC_MP1V VLC_FOURCC('m','p','1','v') 601 /* MPEG-2 video */ 602 #define VLC_CODEC_MP2V VLC_FOURCC('m','p','2','v') 603 /* MPEG-I/II layer 2 audio */ 604 #define VLC_CODEC_MP2 VLC_FOURCC('m','p','2',' ') 605 /* MPEG-I/II layer 3 audio */ 606 #define VLC_CODEC_MP3 VLC_FOURCC('m','p','3',' ') 607 608 /** 609 * It returns the codec associated to a fourcc within an ES category. 610 * 611 * If not found, it will return the given fourcc. 612 * If found, it will always be one of the VLC_CODEC_ defined above. 613 * 614 * You may use UNKNOWN_ES for the ES category if you don't have the information. 615 */ 616 VLC_API vlc_fourcc_t vlc_fourcc_GetCodec( int i_cat, vlc_fourcc_t i_fourcc ); 617 618 /** 619 * It returns the codec associated to a fourcc stored in a zero terminated 620 * string. 621 * 622 * If the string is NULL or does not have exactly 4 characters, it will 623 * return 0, otherwise it behaves like vlc_fourcc_GetCodec. 624 * 625 * Provided for convenience. 626 */ 627 VLC_API vlc_fourcc_t vlc_fourcc_GetCodecFromString( int i_cat, const char * ); 628 629 /** 630 * It converts the given fourcc to an audio codec when possible. 631 * 632 * The fourccs converted are aflt, araw/pcm , twos, sowt. When an incompatible i_bits 633 * is detected, 0 is returned. 634 * The other fourccs go through vlc_fourcc_GetCodec and i_bits is not checked. 635 */ 636 VLC_API vlc_fourcc_t vlc_fourcc_GetCodecAudio( vlc_fourcc_t i_fourcc, int i_bits ); 637 638 /** 639 * It returns the description of the given fourcc or NULL if not found. 640 * 641 * You may use UNKNOWN_ES for the ES category if you don't have the information. 642 */ 643 VLC_API const char * vlc_fourcc_GetDescription( int i_cat, vlc_fourcc_t i_fourcc ); 644 645 /** 646 * It returns a list (terminated with the value 0) of YUV fourccs in 647 * decreasing priority order for the given chroma. 648 * 649 * It will always return a non NULL pointer that must not be freed. 650 */ 651 VLC_API const vlc_fourcc_t * vlc_fourcc_GetYUVFallback( vlc_fourcc_t ); 652 653 /** 654 * It returns a list (terminated with the value 0) of RGB fourccs in 655 * decreasing priority order for the given chroma. 656 * 657 * It will always return a non NULL pointer that must not be freed. 658 */ 659 VLC_API const vlc_fourcc_t * vlc_fourcc_GetRGBFallback( vlc_fourcc_t ); 660 661 /** 662 * It returns true if the given fourcc is YUV and false otherwise. 663 */ 664 VLC_API bool vlc_fourcc_IsYUV( vlc_fourcc_t ); 665 666 /** 667 * It returns true if the two fourccs are equivalent if their U&V planes are 668 * swapped. 669 */ 670 VLC_API bool vlc_fourcc_AreUVPlanesSwapped(vlc_fourcc_t , vlc_fourcc_t ); 671 672 /** 673 * Chroma related information. 674 */ 675 typedef struct { 676 unsigned plane_count; 677 struct { 678 vlc_rational_t w; 679 vlc_rational_t h; 680 } p[4]; 681 unsigned pixel_size; /* Number of bytes per pixel for a plane */ 682 unsigned pixel_bits; /* Number of bits actually used bits per pixel for a plane */ 683 } vlc_chroma_description_t; 684 685 /** 686 * It returns a vlc_chroma_description_t describing the requested fourcc or NULL 687 * if not found. 688 */ 689 VLC_API const vlc_chroma_description_t * vlc_fourcc_GetChromaDescription( vlc_fourcc_t fourcc ) VLC_USED; 690 691 #endif /* _VLC_FOURCC_H */ 692 693