#define VLC_CODEC_WMVP VLC_FOURCC('W','M','V','P')
#define VLC_CODEC_WMVP2 VLC_FOURCC('W','V','P','2')
#define VLC_CODEC_VC1 VLC_FOURCC('V','C','-','1')
+#define VLC_CODEC_DAALA VLC_FOURCC('d','a','a','l')
#define VLC_CODEC_THEORA VLC_FOURCC('t','h','e','o')
#define VLC_CODEC_TARKIN VLC_FOURCC('t','a','r','k')
#define VLC_CODEC_DIRAC VLC_FOURCC('d','r','a','c')
#define VLC_CODEC_CDG VLC_FOURCC('C','D','G',' ')
#define VLC_CODEC_FRWU VLC_FOURCC('F','R','W','U')
#define VLC_CODEC_AMV VLC_FOURCC('A','M','V',' ')
+#define VLC_CODEC_VP7 VLC_FOURCC('V','P','7','0')
#define VLC_CODEC_VP8 VLC_FOURCC('V','P','8','0')
+#define VLC_CODEC_VP9 VLC_FOURCC('V','P','9','0')
#define VLC_CODEC_JPEG2000 VLC_FOURCC('J','P','2','K')
#define VLC_CODEC_LAGARITH VLC_FOURCC('L','A','G','S')
#define VLC_CODEC_FLASHSV2 VLC_FOURCC('F','S','V','2')
#define VLC_CODEC_TSC2 VLC_FOURCC('T','S','C','2')
#define VLC_CODEC_MTS2 VLC_FOURCC('M','T','S','2')
#define VLC_CODEC_HEVC VLC_FOURCC('h','e','v','c')
-#define VLC_CODEC_VP9 VLC_FOURCC('V','P','9','0')
#define VLC_CODEC_ICOD VLC_FOURCC('i','c','o','d')
#define VLC_CODEC_G2M2 VLC_FOURCC('G','2','M','2')
#define VLC_CODEC_G2M3 VLC_FOURCC('G','2','M','3')
#define VLC_CODEC_BINKVIDEO VLC_FOURCC('B','I','K','f')
#define VLC_CODEC_BINKAUDIO_DCT VLC_FOURCC('B','A','U','1')
#define VLC_CODEC_BINKAUDIO_RDFT VLC_FOURCC('B','A','U','2')
+#define VLC_CODEC_XAN_WC4 VLC_FOURCC('X','x','a','n')
+#define VLC_CODEC_LCL_MSZH VLC_FOURCC('M','S','Z','H')
+#define VLC_CODEC_LCL_ZLIB VLC_FOURCC('Z','L','I','B')
+#define VLC_CODEC_THP VLC_FOURCC('T','H','P','0')
+#define VLC_CODEC_ESCAPE124 VLC_FOURCC('E','1','2','4')
+#define VLC_CODEC_KGV1 VLC_FOURCC('K','G','V','1')
+#define VLC_CODEC_CLLC VLC_FOURCC('C','L','L','C')
+#define VLC_CODEC_AURA VLC_FOURCC('A','U','R','A')
+#define VLC_CODEC_FIC VLC_FOURCC('F','I','C','V')
+#define VLC_CODEC_TMV VLC_FOURCC('T','M','A','V')
+#define VLC_CODEC_XAN_WC3 VLC_FOURCC('X','A','N','3')
+#define VLC_CODEC_WS_VQA VLC_FOURCC('W','V','Q','A')
+#define VLC_CODEC_MMVIDEO VLC_FOURCC('M','M','V','I')
+#define VLC_CODEC_AVS VLC_FOURCC('A','V','S','V')
+#define VLC_CODEC_DSICINVIDEO VLC_FOURCC('D','C','I','V')
+#define VLC_CODEC_TIERTEXSEQVIDEO VLC_FOURCC('T','S','E','Q')
+#define VLC_CODEC_DXA VLC_FOURCC('D','E','X','A')
+#define VLC_CODEC_C93 VLC_FOURCC('I','C','9','3')
+#define VLC_CODEC_BETHSOFTVID VLC_FOURCC('B','V','I','D')
+#define VLC_CODEC_VB VLC_FOURCC('V','B','V','1')
+#define VLC_CODEC_RL2 VLC_FOURCC('R','L','V','2')
+#define VLC_CODEC_BFI VLC_FOURCC('B','F','&','I')
+#define VLC_CODEC_CMV VLC_FOURCC('E','C','M','V')
+#define VLC_CODEC_MOTIONPIXELS VLC_FOURCC('M','P','I','X')
+#define VLC_CODEC_TGV VLC_FOURCC('T','G','V','V')
+#define VLC_CODEC_TGQ VLC_FOURCC('T','G','Q','V')
+#define VLC_CODEC_TQI VLC_FOURCC('T','Q','I','V')
+#define VLC_CODEC_MAD VLC_FOURCC('M','A','D','V')
+#define VLC_CODEC_ANM VLC_FOURCC('A','N','I','M')
+#define VLC_CODEC_YOP VLC_FOURCC('Y','O','P','V')
+#define VLC_CODEC_JV VLC_FOURCC('J','V','0','0')
+#define VLC_CODEC_DFA VLC_FOURCC('D','F','I','A')
+#define VLC_CODEC_HNM4_VIDEO VLC_FOURCC('H','N','M','4')
+#define VLC_CODEC_TDSC VLC_FOURCC('T','D','S','C')
+#define VLC_CODEC_HQX VLC_FOURCC('C','H','Q','X')
+
+/***********
+ * Chromas
+ ***********/
+
+/* Planar YUV */
/* Planar YUV 4:1:0 Y:V:U */
#define VLC_CODEC_YV9 VLC_FOURCC('Y','V','U','9')
-/* Planar YUV 4:2:0 Y:V:U */
-#define VLC_CODEC_YV12 VLC_FOURCC('Y','V','1','2')
/* Planar YUV 4:1:0 Y:U:V */
#define VLC_CODEC_I410 VLC_FOURCC('I','4','1','0')
/* Planar YUV 4:1:1 Y:U:V */
#define VLC_CODEC_I411 VLC_FOURCC('I','4','1','1')
+
+/* Planar YUV 4:2:0 Y:V:U */
+#define VLC_CODEC_YV12 VLC_FOURCC('Y','V','1','2')
/* Planar YUV 4:2:0 Y:U:V 8-bit */
#define VLC_CODEC_I420 VLC_FOURCC('I','4','2','0')
/* Planar YUV 4:2:0 Y:U:V 9-bit stored on 16 bits */
/* Planar YUV 4:2:0 Y:U:V 10-bit stored on 16 bits */
#define VLC_CODEC_I420_10L VLC_FOURCC('I','0','A','L')
#define VLC_CODEC_I420_10B VLC_FOURCC('I','0','A','B')
+
/* Planar YUV 4:2:2 Y:U:V 8-bit */
#define VLC_CODEC_I422 VLC_FOURCC('I','4','2','2')
/* Planar YUV 4:2:2 Y:U:V 9-bit stored on 16 bits */
/* Planar YUV 4:2:2 Y:U:V 10-bit stored on 16 bits */
#define VLC_CODEC_I422_10L VLC_FOURCC('I','2','A','L')
#define VLC_CODEC_I422_10B VLC_FOURCC('I','2','A','B')
+
/* Planar YUV 4:4:0 Y:U:V */
#define VLC_CODEC_I440 VLC_FOURCC('I','4','4','0')
/* Planar YUV 4:4:4 Y:U:V 8-bit */
/* Planar YUV 4:4:4 Y:U:V 10-bit stored on 16 bits */
#define VLC_CODEC_I444_10L VLC_FOURCC('I','4','A','L')
#define VLC_CODEC_I444_10B VLC_FOURCC('I','4','A','B')
+/* Planar YUV 4:4:4 Y:U:V 16-bit */
+#define VLC_CODEC_I444_16L VLC_FOURCC('I','4','F','L')
+#define VLC_CODEC_I444_16B VLC_FOURCC('I','4','F','B')
+
/* Planar YUV 4:2:0 Y:U:V full scale */
#define VLC_CODEC_J420 VLC_FOURCC('J','4','2','0')
/* Planar YUV 4:2:2 Y:U:V full scale */
#define VLC_CODEC_J444 VLC_FOURCC('J','4','4','4')
/* Palettized YUV with palette element Y:U:V:A */
#define VLC_CODEC_YUVP VLC_FOURCC('Y','U','V','P')
+
/* Planar YUV 4:4:4 Y:U:V:A */
#define VLC_CODEC_YUVA VLC_FOURCC('Y','U','V','A')
/* Planar YUV 4:2:2 Y:U:V:A */
#define VLC_CODEC_YUV422A VLC_FOURCC('I','4','2','A')
/* Planar YUV 4:2:0 Y:U:V:A */
#define VLC_CODEC_YUV420A VLC_FOURCC('I','4','0','A')
+
+/* Planar Y:U:V:A 4:4:4 10bits */
+#define VLC_CODEC_YUVA_444_10L VLC_FOURCC('Y','A','0','L')
+#define VLC_CODEC_YUVA_444_10B VLC_FOURCC('Y','A','0','B')
+
+/* Semi-planar Y/UV */
+
+/* 2 planes Y/UV 4:2:0 */
+#define VLC_CODEC_NV12 VLC_FOURCC('N','V','1','2')
+/* 2 planes Y/VU 4:2:0 */
+#define VLC_CODEC_NV21 VLC_FOURCC('N','V','2','1')
+/* 2 planes Y/UV 4:2:2 */
+#define VLC_CODEC_NV16 VLC_FOURCC('N','V','1','6')
+/* 2 planes Y/VU 4:2:2 */
+#define VLC_CODEC_NV61 VLC_FOURCC('N','V','6','1')
+/* 2 planes Y/UV 4:4:4 */
+#define VLC_CODEC_NV24 VLC_FOURCC('N','V','2','4')
+/* 2 planes Y/VU 4:4:4 */
+#define VLC_CODEC_NV42 VLC_FOURCC('N','V','4','2')
+
+/* Packed YUV */
+
+/* Packed YUV 4:2:2, U:Y:V:Y */
+#define VLC_CODEC_UYVY VLC_FOURCC('U','Y','V','Y')
+/* Packed YUV 4:2:2, V:Y:U:Y */
+#define VLC_CODEC_VYUY VLC_FOURCC('V','Y','U','Y')
+/* Packed YUV 4:2:2, Y:U:Y:V */
+#define VLC_CODEC_YUYV VLC_FOURCC('Y','U','Y','2')
+/* Packed YUV 4:2:2, Y:V:Y:U */
+#define VLC_CODEC_YVYU VLC_FOURCC('Y','V','Y','U')
+/* Packed YUV 2:1:1, Y:U:Y:V */
+#define VLC_CODEC_Y211 VLC_FOURCC('Y','2','1','1')
+/* Packed YUV 4:2:2, U:Y:V:Y, reverted */
+#define VLC_CODEC_CYUV VLC_FOURCC('c','y','u','v')
+/* 10-bit 4:2:2 Component YCbCr */
+#define VLC_CODEC_V210 VLC_FOURCC('v','2','1','0')
+/* I420 packed for RTP (RFC 4175) */
+#define VLC_CODEC_R420 VLC_FOURCC('r','4','2','0')
+
+
+/* RGB */
+
/* Palettized RGB with palette element R:G:B */
#define VLC_CODEC_RGBP VLC_FOURCC('R','G','B','P')
/* 8 bits RGB */
#define VLC_CODEC_RGB8 VLC_FOURCC('R','G','B','8')
/* 12 bits RGB padded to 16 bits */
#define VLC_CODEC_RGB12 VLC_FOURCC('R','V','1','2')
-/* 16 bits RGBA (12 bits RGB + 4 bits alpha) */
-#define VLC_CODEC_RGBA16 VLC_FOURCC('A','V','1','6')
/* 15 bits RGB padded to 16 bits */
#define VLC_CODEC_RGB15 VLC_FOURCC('R','V','1','5')
-/* 16 bits RGBA (15 bits RGB + 1 bit alpha) */
-#define VLC_CODEC_RGBT VLC_FOURCC('R','G','B','T')
/* 16 bits RGB */
#define VLC_CODEC_RGB16 VLC_FOURCC('R','V','1','6')
/* 24 bits RGB */
#define VLC_CODEC_RGBA VLC_FOURCC('R','G','B','A')
/* 32 bits ARGB */
#define VLC_CODEC_ARGB VLC_FOURCC('A','R','G','B')
+/* 32 bits BGRA */
+#define VLC_CODEC_BGRA VLC_FOURCC('B','G','R','A')
+
+/* Planar GBR 4:4:4 8 bits */
+#define VLC_CODEC_GBR_PLANAR VLC_FOURCC('G','B','R','8')
+#define VLC_CODEC_GBR_PLANAR_9B VLC_FOURCC('G','B','9','B')
+#define VLC_CODEC_GBR_PLANAR_9L VLC_FOURCC('G','B','9','L')
+#define VLC_CODEC_GBR_PLANAR_10B VLC_FOURCC('G','B','A','B')
+#define VLC_CODEC_GBR_PLANAR_10L VLC_FOURCC('G','B','A','L')
+#define VLC_CODEC_GBR_PLANAR_16L VLC_FOURCC('G','B','F','L')
+#define VLC_CODEC_GBR_PLANAR_16B VLC_FOURCC('G','B','F','B')
+
/* 8 bits grey */
#define VLC_CODEC_GREY VLC_FOURCC('G','R','E','Y')
-/* Packed YUV 4:2:2, U:Y:V:Y */
-#define VLC_CODEC_UYVY VLC_FOURCC('U','Y','V','Y')
-/* Packed YUV 4:2:2, V:Y:U:Y */
-#define VLC_CODEC_VYUY VLC_FOURCC('V','Y','U','Y')
-/* Packed YUV 4:2:2, Y:U:Y:V */
-#define VLC_CODEC_YUYV VLC_FOURCC('Y','U','Y','2')
-/* Packed YUV 4:2:2, Y:V:Y:U */
-#define VLC_CODEC_YVYU VLC_FOURCC('Y','V','Y','U')
-/* Packed YUV 2:1:1, Y:U:Y:V */
-#define VLC_CODEC_Y211 VLC_FOURCC('Y','2','1','1')
-/* Packed YUV 4:2:2, U:Y:V:Y, reverted */
-#define VLC_CODEC_CYUV VLC_FOURCC('c','y','u','v')
-/* 10-bit 4:2:2 Component YCbCr */
-#define VLC_CODEC_V210 VLC_FOURCC('v','2','1','0')
-/* 2 planes Y/UV 4:2:0 */
-#define VLC_CODEC_NV12 VLC_FOURCC('N','V','1','2')
-/* 2 planes Y/VU 4:2:0 */
-#define VLC_CODEC_NV21 VLC_FOURCC('N','V','2','1')
-/* 2 planes Y/UV 4:2:2 */
-#define VLC_CODEC_NV16 VLC_FOURCC('N','V','1','6')
-/* 2 planes Y/VU 4:2:2 */
-#define VLC_CODEC_NV61 VLC_FOURCC('N','V','6','1')
-/* 2 planes Y/UV 4:4:4 */
-#define VLC_CODEC_NV24 VLC_FOURCC('N','V','2','4')
-/* 2 planes Y/VU 4:4:4 */
-#define VLC_CODEC_NV42 VLC_FOURCC('N','V','4','2')
/* VDPAU video surface YCbCr 4:2:0 */
#define VLC_CODEC_VDPAU_VIDEO_420 VLC_FOURCC('V','D','V','0')
/* MediaCodec/IOMX opaque buffer type */
#define VLC_CODEC_ANDROID_OPAQUE VLC_FOURCC('A','N','O','P')
+/* Broadcom MMAL opaque buffer type */
+#define VLC_CODEC_MMAL_OPAQUE VLC_FOURCC('M','M','A','L')
+
/* Image codec (video) */
#define VLC_CODEC_PNG VLC_FOURCC('p','n','g',' ')
#define VLC_CODEC_PPM VLC_FOURCC('p','p','m',' ')
#define VLC_CODEC_PGMYUV VLC_FOURCC('p','g','m','y')
#define VLC_CODEC_PAM VLC_FOURCC('p','a','m',' ')
#define VLC_CODEC_JPEG VLC_FOURCC('j','p','e','g')
+#define VLC_CODEC_BPG VLC_FOURCC('B','P','G',0xFB)
#define VLC_CODEC_JPEGLS VLC_FOURCC('M','J','L','S')
#define VLC_CODEC_BMP VLC_FOURCC('b','m','p',' ')
#define VLC_CODEC_TIFF VLC_FOURCC('t','i','f','f')
#define VLC_CODEC_GIF VLC_FOURCC('g','i','f',' ')
#define VLC_CODEC_TARGA VLC_FOURCC('t','g','a',' ')
+#define VLC_CODEC_SVG VLC_FOURCC('s','v','g',' ')
#define VLC_CODEC_SGI VLC_FOURCC('s','g','i',' ')
#define VLC_CODEC_PNM VLC_FOURCC('p','n','m',' ')
#define VLC_CODEC_PCX VLC_FOURCC('p','c','x',' ')
#define VLC_CODEC_XWD VLC_FOURCC('X','W','D',' ')
+#define VLC_CODEC_TXD VLC_FOURCC('T','X','D',' ')
/* Audio codec */
#define VLC_CODEC_ADPCM_YAMAHA VLC_FOURCC('m','s',0x00,0x20)
#define VLC_CODEC_ADPCM_DK3 VLC_FOURCC('m','s',0x00,0x62)
#define VLC_CODEC_ADPCM_DK4 VLC_FOURCC('m','s',0x00,0x61)
+#define VLC_CODEC_ADPCM_THP VLC_FOURCC('T','H','P','A')
#define VLC_CODEC_G723_1 VLC_FOURCC('g','7','2', 0x31)
#define VLC_CODEC_G729 VLC_FOURCC('g','7','2','9')
#define VLC_CODEC_VMDAUDIO VLC_FOURCC('v','m','d','a')
#define VLC_CODEC_DVD_LPCM VLC_FOURCC('l','p','c','m')
#define VLC_CODEC_DVDA_LPCM VLC_FOURCC('a','p','c','m')
#define VLC_CODEC_BD_LPCM VLC_FOURCC('b','p','c','m')
+#define VLC_CODEC_WIDI_LPCM VLC_FOURCC('w','p','c','m')
#define VLC_CODEC_SDDS VLC_FOURCC('s','d','d','s')
#define VLC_CODEC_MIDI VLC_FOURCC('M','I','D','I')
#define VLC_CODEC_RALF VLC_FOURCC('R','A','L','F')
#define VLC_CODEC_S8 VLC_FOURCC('s','8',' ',' ')
#define VLC_CODEC_U8 VLC_FOURCC('u','8',' ',' ')
#define VLC_CODEC_S16L VLC_FOURCC('s','1','6','l')
+#define VLC_CODEC_S16L_PLANAR VLC_FOURCC('s','1','l','p')
#define VLC_CODEC_S16B VLC_FOURCC('s','1','6','b')
#define VLC_CODEC_U16L VLC_FOURCC('u','1','6','l')
#define VLC_CODEC_U16B VLC_FOURCC('u','1','6','b')
#define VLC_CODEC_ULEAD_DV_AUDIO_PAL VLC_FOURCC('m','s',0x02,0x16)
#define VLC_CODEC_INDEO_AUDIO VLC_FOURCC('m','s',0x04,0x02)
#define VLC_CODEC_METASOUND VLC_FOURCC('m','s',0x00,0x75)
+#define VLC_CODEC_ON2AVC VLC_FOURCC('m','s',0x05,0x00)
+#define VLC_CODEC_TAK VLC_FOURCC('t','a','k',' ')
+#define VLC_CODEC_SMACKAUDIO VLC_FOURCC('S','M','K','A')
+#define VLC_CODEC_ADPCM_IMA_EA_SEAD VLC_FOURCC('S','E','A','D')
+#define VLC_CODEC_ADPCM_EA_R1 VLC_FOURCC('E','A','R','1')
+#define VLC_CODEC_ADPCM_IMA_APC VLC_FOURCC('A','I','P','C')
/* Subtitle */
#define VLC_CODEC_SPU VLC_FOURCC('s','p','u',' ')
#define VLC_CODEC_USF VLC_FOURCC('u','s','f',' ')
#define VLC_CODEC_OGT VLC_FOURCC('o','g','t',' ')
#define VLC_CODEC_CVD VLC_FOURCC('c','v','d',' ')
+#define VLC_CODEC_TX3G VLC_FOURCC('t','x','3','g')
+#define VLC_CODEC_ARIB_A VLC_FOURCC('a','r','b','a')
+#define VLC_CODEC_ARIB_C VLC_FOURCC('a','r','b','c')
/* Blu-ray Presentation Graphics */
#define VLC_CODEC_BD_PG VLC_FOURCC('b','d','p','g')
/* EBU STL (TECH. 3264-E) */
#define VLC_CODEC_EBU_STL VLC_FOURCC('S','T','L',' ')
#define VLC_CODEC_SCTE_27 VLC_FOURCC('S','C','2','7')
+/* EIA-608 */
+#define VLC_CODEC_EIA608_1 VLC_FOURCC('c','c','1',' ')
+#define VLC_CODEC_EIA608_2 VLC_FOURCC('c','c','2',' ')
+#define VLC_CODEC_EIA608_3 VLC_FOURCC('c','c','3',' ')
+#define VLC_CODEC_EIA608_4 VLC_FOURCC('c','c','4',' ')
+#define VLC_CODEC_TTML VLC_FOURCC('T','T','M','L')
/* XYZ colorspace 12 bits packed in 16 bits, organisation |XXX0|YYY0|ZZZ0| */
#define VLC_CODEC_XYZ12 VLC_FOURCC('X','Y','1','2')
* It returns a vlc_chroma_description_t describing the request fourcc or NULL
* if not found.
*/
-VLC_API const vlc_chroma_description_t * vlc_fourcc_GetChromaDescription( vlc_fourcc_t fourcc );
+VLC_API const vlc_chroma_description_t * vlc_fourcc_GetChromaDescription( vlc_fourcc_t fourcc ) VLC_USED;
#endif /* _VLC_FOURCC_H */