xref: /haiku/src/add-ons/media/plugins/ffmpeg/CodecTable.cpp (revision eb47b26534e55948dbb8860916c671f9cf6f37f9)
1 /*
2  * Copyright (C) 2001 Carlos Hasan. All Rights Reserved.
3  * Copyright (C) 2001 François Revol. All Rights Reserved.
4  * Copyright (C) 2001 Axel Dörfler. All Rights Reserved.
5  *
6  * Distributed under the terms of the MIT License.
7  */
8 
9 #include "CodecTable.h"
10 
11 #define HAS_WMA_AUDIO
12 //#define HAS_MACE_AUDIO
13 #define HAS_PHOTO_JPEG
14 #define HAS_MOTION_JPEG
15 
16 #define FOURCC(a) B_SWAP_INT32(a)
17 
18 const struct codec_table gCodecTable[] = {
19 
20 	{CODEC_ID_PCM_ALAW,		B_MEDIA_ENCODED_AUDIO,	B_WAV_FORMAT_FAMILY,	0x06, "aLaw"},
21 	{CODEC_ID_PCM_ALAW,		B_MEDIA_ENCODED_AUDIO,	B_AIFF_FORMAT_FAMILY,	'alaw' , "aLaw"},
22 	{CODEC_ID_PCM_ALAW,		B_MEDIA_ENCODED_AUDIO,	B_AIFF_FORMAT_FAMILY,	'ALAW' , "aLaw"},
23 	{CODEC_ID_PCM_ALAW,		B_MEDIA_ENCODED_AUDIO,	B_MISC_FORMAT_FAMILY,	(uint64('au') << 32) | 27, "aLaw"},
24 
25 	{CODEC_ID_PCM_MULAW,	B_MEDIA_ENCODED_AUDIO,	B_QUICKTIME_FORMAT_FAMILY,	'ulaw', "µLaw"},
26 	{CODEC_ID_PCM_ALAW,		B_MEDIA_ENCODED_AUDIO,	B_QUICKTIME_FORMAT_FAMILY,	'alaw', "aLaw"},
27 	{CODEC_ID_PCM_ALAW,		B_MEDIA_ENCODED_AUDIO,	B_QUICKTIME_FORMAT_FAMILY,	'ALAW', "aLaw"},
28 
29 	{CODEC_ID_PCM_MULAW,	B_MEDIA_ENCODED_AUDIO,	B_WAV_FORMAT_FAMILY,	0x07, "µLaw"},
30 	{CODEC_ID_PCM_MULAW,	B_MEDIA_ENCODED_AUDIO,	B_AIFF_FORMAT_FAMILY,	'ulaw', "µLaw"},
31 	{CODEC_ID_PCM_MULAW,	B_MEDIA_ENCODED_AUDIO,	B_AIFF_FORMAT_FAMILY,	'ULAW', "µLaw"},
32 	{CODEC_ID_PCM_MULAW,	B_MEDIA_ENCODED_AUDIO,	B_MISC_FORMAT_FAMILY,	(uint64('au') << 32) | 1, "µLaw"},
33 
34 	{CODEC_ID_ADPCM_IMA_WAV,	B_MEDIA_ENCODED_AUDIO,	B_WAV_FORMAT_FAMILY,	0x0011, "IMA ADPCM"},
35 	{CODEC_ID_ADPCM_MS,			B_MEDIA_ENCODED_AUDIO,	B_WAV_FORMAT_FAMILY,	0x0002, "MS ADPCM"},
36 	{CODEC_ID_ADPCM_IMA_WAV,	B_MEDIA_ENCODED_AUDIO,	B_QUICKTIME_FORMAT_FAMILY,	0x6D730011, "IMA ADPCM"},
37 	{CODEC_ID_ADPCM_MS,			B_MEDIA_ENCODED_AUDIO,	B_QUICKTIME_FORMAT_FAMILY,	0x6D730002, "MS ADPCM"},
38 	{CODEC_ID_MP2,				B_MEDIA_ENCODED_AUDIO,	B_QUICKTIME_FORMAT_FAMILY,	0x6D730050, "MP Layer2"},
39 	{CODEC_ID_MP2,				B_MEDIA_ENCODED_AUDIO,	B_QUICKTIME_FORMAT_FAMILY,	0x6D730055, "MP Layer3"},
40 	{CODEC_ID_MP2,				B_MEDIA_ENCODED_AUDIO,	B_MPEG_FORMAT_FAMILY,	0x6D730050, "MP Layer2"},
41 	{CODEC_ID_MP2,				B_MEDIA_ENCODED_AUDIO,	B_MPEG_FORMAT_FAMILY,	0x6D730055, "MP Layer3"},
42 #if 0
43 	{CODEC_ID_MP2,		B_MEDIA_ENCODED_AUDIO,	B_WAV_FORMAT_FAMILY,	0x0050, "MPEG Audio Layer 2"},	/* mpeg audio layer 2 */
44 	{CODEC_ID_MP2,		B_MEDIA_ENCODED_AUDIO,	B_WAV_FORMAT_FAMILY,	0x0055, "MPEG Audio Layer 3"},	/* mpeg audio layer 3 */
45 #endif
46 
47 	{CODEC_ID_ADPCM_IMA_QT,		B_MEDIA_ENCODED_AUDIO,	B_QUICKTIME_FORMAT_FAMILY,	'ima4', "Quicktime IMA4"},
48 	{CODEC_ID_ADPCM_IMA_QT,		B_MEDIA_ENCODED_AUDIO,	B_QUICKTIME_FORMAT_FAMILY,	'IMA4', "Quicktime IMA4"},
49 	{CODEC_ID_AAC,			B_MEDIA_ENCODED_AUDIO,	B_QUICKTIME_FORMAT_FAMILY,	'mp4a', "MPEG4 AAC"},
50 	{CODEC_ID_MPEG4,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'mp4v', "MPEG4 Video"},
51 	{CODEC_ID_AAC,			B_MEDIA_ENCODED_AUDIO,	B_QUICKTIME_FORMAT_FAMILY,	'a4pm', "MPEG4 AAC"},
52 	{CODEC_ID_MPEG4,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'v4pm', "MPEG4 Video"},
53 	{CODEC_ID_AAC,			B_MEDIA_ENCODED_AUDIO,	B_MISC_FORMAT_FAMILY,	'mp4a', "MPEG4 AAC"},	/* For matroska */
54 	{CODEC_ID_AAC,			B_MEDIA_ENCODED_AUDIO,	B_MISC_FORMAT_FAMILY,	'a4pm', "MPEG4 AAC"},	/* For matroska */
55 	{CODEC_ID_AC3,			B_MEDIA_ENCODED_AUDIO,	B_WAV_FORMAT_FAMILY,	0x2000, "AC3"},
56 
57 #ifdef HAS_MACE_AUDIO
58 	{CODEC_ID_MACE3,	B_MEDIA_ENCODED_AUDIO,	B_QUICKTIME_FORMAT_FAMILY,	'MAC3', "MACE 3:1"},
59 	{CODEC_ID_MACE6,	B_MEDIA_ENCODED_AUDIO,	B_QUICKTIME_FORMAT_FAMILY,	'MAC6', "MACE 6:1"},
60 #endif
61 
62 	{CODEC_ID_WMAV1,	B_MEDIA_ENCODED_AUDIO,	B_WAV_FORMAT_FAMILY,	0x160, "MS WMA v1"},
63 	{CODEC_ID_WMAV2,	B_MEDIA_ENCODED_AUDIO,	B_WAV_FORMAT_FAMILY,	0x161, "MS WMA v2"},
64 
65 	{CODEC_ID_FLAC,		B_MEDIA_ENCODED_AUDIO,	B_WAV_FORMAT_FAMILY,	'flac', "FLAC"},
66 
67 	{CODEC_ID_CINEPAK,	B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY,	FOURCC('cvid'), "Cinepak Video"},
68 	{CODEC_ID_CINEPAK,	B_MEDIA_ENCODED_VIDEO, B_QUICKTIME_FORMAT_FAMILY,	'cvid', "Cinepak Video"},
69 
70 	{CODEC_ID_MSRLE,	B_MEDIA_ENCODED_VIDEO, B_QUICKTIME_FORMAT_FAMILY,	FOURCC(' elr'), "MS RLE"}, // ???
71 
72 	{CODEC_ID_MSRLE,	B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY,	FOURCC('RLE '), "MS RLE"}, // ???
73 	{CODEC_ID_MSRLE,	B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY,	FOURCC('mrle'), "MS RLE"}, // ???
74 
75 	{CODEC_ID_MSVIDEO1,	B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY,	FOURCC('MSVC'), "MS Video 1 (MSVC)"},
76 	{CODEC_ID_MSVIDEO1,	B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY,	FOURCC('msvc'), "MS Video 1 (msvc)"},
77 	{CODEC_ID_MSVIDEO1,	B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY,	FOURCC('CRAM'), "MS Video 1 (CRAM)"},
78 	{CODEC_ID_MSVIDEO1,	B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY,	FOURCC('cram'), "MS Video 1 (cram)"},
79 	{CODEC_ID_MSVIDEO1,	B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY,	FOURCC('WHAM'), "MS Video 1 (WHAM)"},
80 	{CODEC_ID_MSVIDEO1,	B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY,	FOURCC('wham'), "MS Video 1 (wham)"},
81 	{CODEC_ID_MSVIDEO1,	B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY,	0x01, "MS Video 1 (1)"},
82 	{CODEC_ID_MSVIDEO1,	B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY,	FOURCC(0x01), "MS Video 1 (not 1)"},
83 
84 	{CODEC_ID_H263,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('U263'), "U263"},
85 	{CODEC_ID_H263,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('H263'), "U263"},
86 //	{CODEC_ID_H263P,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('U263'), "U263"},
87 	{CODEC_ID_H263I,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('I263'), "Intel H263"},	/* intel h263 */
88 	{CODEC_ID_H263,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'h263', "H263"},
89 	{CODEC_ID_H263,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'H263', "H263"},
90 
91 	{CODEC_ID_H264,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	'h264', "H264"},
92 	{CODEC_ID_H264,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	'H264', "H264"},
93 	{CODEC_ID_H264,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	'x264', "H264"},
94 	{CODEC_ID_H264,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'avc1', "AVC"},	/* MPEG-4 AVC */
95 
96 #ifdef HAS_PHOTO_JPEG
97 	{CODEC_ID_MJPEG,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'JPEG', "Photo-JPEG"},
98 	{CODEC_ID_MJPEG,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'jpeg', "Photo-JPEG"}, /* used in BeOS_BBC.mov */
99 	{CODEC_ID_MJPEG,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'GEPJ', "Photo-JPEG"},
100 	{CODEC_ID_MJPEG,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'gepj', "Photo-JPEG"}, /* used in BeOS_BBC.mov */
101 #endif
102 #ifdef HAS_MOTION_JPEG
103 	{CODEC_ID_MJPEG,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('MJPG'), "Motion JPEG"},
104 	{CODEC_ID_MJPEG,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('mjpg'), "Motion JPEG"},
105 	{CODEC_ID_MJPEG,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'AVDJ', "Motion JPEG"},
106 	{CODEC_ID_MJPEG,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'mjpa', "Motion JPEG"},
107 	{CODEC_ID_MJPEGB,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'mjpb', "Motion JPEG"},
108 	{CODEC_ID_MJPEG,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'JDVA', "Motion JPEG"},
109 	{CODEC_ID_MJPEG,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'apjm', "Motion JPEG"},
110 	{CODEC_ID_MJPEGB,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'bpjm', "Motion JPEG"},
111 #endif
112 
113 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'FMP4', "ffmpeg MPEG4"},
114 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'4PMF', "ffmpeg MPEG4"},
115 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'DIVX', "MPEG4"},	/* OpenDivX */ /* XXX: doesn't seem to work */
116 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'divx', "MPEG4"},	/* OpenDivX */
117 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'mp4v', "MPEG4"},	/* MPEG-4 ASP */
118 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'XVID', "XviD (MPEG4)"},	/* OpenDivX ??? XXX: test */
119 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	'FMP4', "ffmpeg MPEG4"},
120 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	'4PMF', "ffmpeg MPEG4"},
121 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('DIVX'), "MPEG4"},	/* OpenDivX */
122 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('divx'), "MPEG4"},	/* OpenDivX */
123 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('XVID'), "XviD (MPEG4)"},	/* XVID */
124 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('xvid'), "XviD (MPEG4)"},	/* XVID */
125 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('DX50'), "DivX 5 (MPEG4)"},	/* DivX 5.0 */
126 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('dx50'), "DivX 5 (MPEG4)"},	/* DivX 5.0 */
127 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('3IV2'), "3ivx v2"},	/* 3ivx v2 */
128 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('3iv2'), "3ivx v2"},	/* 3ivx v2 */
129 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('ffds'), "ff DirectShow"},	/* XVID Variant */
130 
131 	{CODEC_ID_MPEG4,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('\004\0\0\0'), "MPEG4"}, /* some broken avi use this */
132 	{CODEC_ID_MSMPEG4V3,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('DIV3'), "DivX ;-) (MS MPEG4 v3)"},	/* default signature when using MSMPEG4 */
133 	{CODEC_ID_MSMPEG4V3,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('div3'), "DivX ;-) (MS MPEG4 v3)"},
134 	{CODEC_ID_MSMPEG4V3,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('DIV4'), "DivX ;-) (MS MPEG4 v3)"},
135 	{CODEC_ID_MSMPEG4V3,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('div4'), "DivX ;-) (MS MPEG4 v3)"},
136 	{CODEC_ID_MSMPEG4V3,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('DIV5'), "DivX ;-) (MS MPEG4 v3)"},
137 	{CODEC_ID_MSMPEG4V3,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('div5'), "DivX ;-) (MS MPEG4 v3)"},
138 	{CODEC_ID_MSMPEG4V3,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('DIV6'), "DivX ;-) (MS MPEG4 v3)"},
139 	{CODEC_ID_MSMPEG4V3,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('div6'), "DivX ;-) (MS MPEG4 v3)"},
140 	{CODEC_ID_MSMPEG4V1,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('MP41'), "MS MPEG4 v1"},	/* microsoft mpeg4 v1 */
141 	{CODEC_ID_MSMPEG4V1,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('mp41'), "MS MPEG4 v1"},	/* microsoft mpeg4 v1 */
142 	{CODEC_ID_MSMPEG4V2,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('MP42'), "MS MPEG4 v2"},	/* seems to be broken */
143 	{CODEC_ID_MSMPEG4V2,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('mp42'), "MS MPEG4 v2"},	/* seems to be broken */
144 	{CODEC_ID_MSMPEG4V3,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('MP43'), "MS MPEG4 v3"},	/* microsoft mpeg4 v3 */
145 	{CODEC_ID_MPEG4,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('S4PM'), "MPEG4"},	/* mpeg4 */
146 	{CODEC_ID_MSMPEG4V3,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('34PM'), "MS MPEG4 v3"},	/* microsoft mpeg4 v3 */
147 	{CODEC_ID_MSMPEG4V3,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('mp43'), "MS MPEG4 v3"},	/* microsoft mpeg4 v3 */
148 	{CODEC_ID_MSMPEG4V1,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('MPG4'), "MS MPEG4"},
149 	{CODEC_ID_MSMPEG4V3,	B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('AP41'), "Angel Potion (MS MPEG4 v3)"},	/* AngelPotion 1 (it's so simple to release a new codec... :^) ) */
150 
151 	{CODEC_ID_WMV1,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('WMV1'), "Microsoft WMV v1"},
152 	{CODEC_ID_WMV2,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('WMV2'), "Microsoft WMV v2"},
153 	{CODEC_ID_WMV3,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('WMV3'), "Microsoft WMV v3"},
154 
155 //SVQ1
156 	{CODEC_ID_SVQ1,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	'SVQ1', "Sorenson Video v1"},
157 	{CODEC_ID_SVQ1,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	'svq1', "Sorenson Video v1"},
158 	{CODEC_ID_SVQ1,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'SVQ1', "Sorenson Video v1"},
159 	{CODEC_ID_SVQ1,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'svq1', "Sorenson Video v1"},
160 	{CODEC_ID_SVQ1,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'svqi', "Sorenson Video v1"}, /* (from QT specs) */
161 
162 	{CODEC_ID_SVQ3,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'SVQ3', "Sorenson Video v3"},
163 	{CODEC_ID_SVQ3,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'svq3', "Sorenson Video v3"},
164 
165 	{CODEC_ID_SVQ1,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	'1QVS', "Sorenson Video v1"},
166 	{CODEC_ID_SVQ1,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	'1qvs', "Sorenson Video v1"},
167 	{CODEC_ID_SVQ1,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'1QVS', "Sorenson Video v1"},
168 	{CODEC_ID_SVQ1,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'1qvs', "Sorenson Video v1"},
169 	{CODEC_ID_SVQ1,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'iqvs', "Sorenson Video v1"}, /* (from QT specs) */
170 
171 	{CODEC_ID_SVQ3,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'3QVS', "Sorenson Video v3"},
172 	{CODEC_ID_SVQ3,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'3qvs', "Sorenson Video v3"},
173 
174 /*
175 	{CODEC_ID_RV10,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	'RV10', "RealVideo v1"},
176 	{CODEC_ID_RV10,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	'rv10', "RealVideo v1"},
177 	{CODEC_ID_RV10,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'RV10', "RealVideo v1"},
178 	{CODEC_ID_RV10,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'rv10', "RealVideo v1"},
179 */
180 	{CODEC_ID_DVVIDEO,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('dvsd'), "DV Video"},
181 	{CODEC_ID_DVVIDEO,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('DVSD'), "DV Video"},
182 	{CODEC_ID_DVVIDEO,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('dvhd'), "DV Video"},
183 	{CODEC_ID_DVVIDEO,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('dvsl'), "DV Video"},
184 	{CODEC_ID_DVVIDEO,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('dv25'), "DV Video"},
185 	{CODEC_ID_DVVIDEO,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'dvc ', "DV Video"},
186 	{CODEC_ID_DVVIDEO,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'dvcp', "DV Video"},
187 
188 	{CODEC_ID_MPEG1VIDEO,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'MPG1', "MPEG1 Video"},
189 	{CODEC_ID_MPEG1VIDEO,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'MPG2', "MPEG1 Video"},
190 	{CODEC_ID_MPEG1VIDEO,	B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'PIM1', "MPEG1 Video"},
191 
192 	{CODEC_ID_MPEG1VIDEO,	B_MEDIA_ENCODED_VIDEO,	B_MPEG_FORMAT_FAMILY,	B_MPEG_1_VIDEO, "MPEG1 Video"},
193 	{CODEC_ID_MPEG2VIDEO,	B_MEDIA_ENCODED_VIDEO,	B_MPEG_FORMAT_FAMILY,	B_MPEG_2_VIDEO, "MPEG2 Video"},
194 
195 	{CODEC_ID_INDEO3,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('iv31'), "Indeo 3"},
196 	{CODEC_ID_INDEO3,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('iv32'), "Indeo 3"},
197 	{CODEC_ID_INDEO3,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('IV31'), "Indeo 3"},
198 	{CODEC_ID_INDEO3,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('IV32'), "Indeo 3"},
199 
200 	{CODEC_ID_INDEO5,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('iv50'), "Indeo 5"},
201 	{CODEC_ID_INDEO5,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	FOURCC('IV50'), "Indeo 5"},
202 
203 	{CODEC_ID_VP3,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'VP31', "On2 VP3"},
204 	{CODEC_ID_VP6F,		B_MEDIA_ENCODED_VIDEO,	B_QUICKTIME_FORMAT_FAMILY,	'VP6F', "On2 VP6"},
205 
206 	{CODEC_ID_CYUV,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	'cyuv', "CYUV"},
207 	{CODEC_ID_CYUV,		B_MEDIA_ENCODED_VIDEO,	B_AVI_FORMAT_FAMILY,	'CYUV', "CYUV"},
208 
209 	{CODEC_ID_NONE,		B_MEDIA_UNKNOWN_TYPE,	B_ANY_FORMAT_FAMILY,	0, "null codec !!!"}
210 };
211 
212 const int gCodecCount = (sizeof(gCodecTable) / sizeof(codec_table) - 1);
213 
214 
215 media_format gAVCodecFormats[sizeof(gCodecTable)];
216 
217