xref: /haiku/src/add-ons/media/plugins/ffmpeg/MuxerTable.cpp (revision 626d341c24c92e58a4143ec615e12d20b28e2091)
16ac391b3SStephan Aßmus /*
26ac391b3SStephan Aßmus  * Copyright 2009 Stephan Aßmus <superstippi@gmx.de>
36ac391b3SStephan Aßmus  * All rights reserved. Distributed under the terms of the MIT license.
46ac391b3SStephan Aßmus  */
56ac391b3SStephan Aßmus 
66ac391b3SStephan Aßmus 
76ac391b3SStephan Aßmus #include "MuxerTable.h"
86ac391b3SStephan Aßmus 
96ac391b3SStephan Aßmus 
106ac391b3SStephan Aßmus const media_file_format gMuxerTable[] = {
116ac391b3SStephan Aßmus 	{
12*626d341cSAdrien Destugues 		media_file_format::B_READABLE
13*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_RAW_AUDIO
14*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
15*626d341cSAdrien Destugues 		{ 0 },
16*626d341cSAdrien Destugues 		B_WAV_FORMAT_FAMILY,
17*626d341cSAdrien Destugues 		100,
18*626d341cSAdrien Destugues 		{ 0 },
19*626d341cSAdrien Destugues 		"audio/ac3",
20*626d341cSAdrien Destugues 		"AC3",
21*626d341cSAdrien Destugues 		"ac3",
22*626d341cSAdrien Destugues 		"ac3",
23*626d341cSAdrien Destugues 		{ 0 }
24*626d341cSAdrien Destugues 	},
25*626d341cSAdrien Destugues 	{
26*626d341cSAdrien Destugues 		media_file_format::B_READABLE
27*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_RAW_VIDEO
28*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_RAW_AUDIO
29*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_VIDEO
30*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
31*626d341cSAdrien Destugues 		{ 0 },
32*626d341cSAdrien Destugues 		B_AVI_FORMAT_FAMILY,
33*626d341cSAdrien Destugues 		100,
34*626d341cSAdrien Destugues 		{ 0 },
35*626d341cSAdrien Destugues 		"video/x-asf",
36*626d341cSAdrien Destugues 		"ASF Movie",
37*626d341cSAdrien Destugues 		"asf",
38*626d341cSAdrien Destugues 		"asf",
39*626d341cSAdrien Destugues 		{ 0 }
40*626d341cSAdrien Destugues 	},
41*626d341cSAdrien Destugues 	{
42*626d341cSAdrien Destugues 		media_file_format::B_WRITABLE | media_file_format::B_READABLE
436ac391b3SStephan Aßmus 			| media_file_format::B_KNOWS_RAW_VIDEO
446ac391b3SStephan Aßmus 			| media_file_format::B_KNOWS_RAW_AUDIO
456ac391b3SStephan Aßmus 			| media_file_format::B_KNOWS_ENCODED_VIDEO
466ac391b3SStephan Aßmus 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
476ac391b3SStephan Aßmus 		{ 0 },
486ac391b3SStephan Aßmus 		B_AVI_FORMAT_FAMILY,
496ac391b3SStephan Aßmus 		100,
506ac391b3SStephan Aßmus 		{ 0 },
516ac391b3SStephan Aßmus 		"video/x-msvideo",
526ac391b3SStephan Aßmus 		"AVI (Audio Video Interleaved)",
534384acf6SStephan Aßmus 		"avi",
546ac391b3SStephan Aßmus 		"avi",
556ac391b3SStephan Aßmus 		{ 0 }
566ac391b3SStephan Aßmus 	},
5754897d5cSStephan Aßmus 	{
58*626d341cSAdrien Destugues 		media_file_format::B_WRITABLE | media_file_format::B_READABLE
59ead61989SStephan Aßmus 			| media_file_format::B_KNOWS_RAW_VIDEO
60ead61989SStephan Aßmus 			| media_file_format::B_KNOWS_RAW_AUDIO
61ead61989SStephan Aßmus 			| media_file_format::B_KNOWS_ENCODED_VIDEO
62ead61989SStephan Aßmus 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
63ead61989SStephan Aßmus 		{ 0 },
64*626d341cSAdrien Destugues 		B_QUICKTIME_FORMAT_FAMILY,
65eca9668aSStephan Aßmus 		100,
66eca9668aSStephan Aßmus 		{ 0 },
67*626d341cSAdrien Destugues 		"video/dv",
68*626d341cSAdrien Destugues 		"DV Movie",
69eca9668aSStephan Aßmus 		"dv",
70eca9668aSStephan Aßmus 		"dv",
71eca9668aSStephan Aßmus 		{ 0 }
72eca9668aSStephan Aßmus 	},
73eca9668aSStephan Aßmus 	{
74*626d341cSAdrien Destugues 		media_file_format::B_READABLE
75*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_RAW_AUDIO
76*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
77*626d341cSAdrien Destugues 		{ 0 },
78*626d341cSAdrien Destugues 		B_WAV_FORMAT_FAMILY,
79*626d341cSAdrien Destugues 		100,
80*626d341cSAdrien Destugues 		{ 0 },
81*626d341cSAdrien Destugues 		"audio/x-flac",
82*626d341cSAdrien Destugues 		"Free Lossless Audio",
83*626d341cSAdrien Destugues 		"flac",
84*626d341cSAdrien Destugues 		"flac",
85*626d341cSAdrien Destugues 		{ 0 }
86*626d341cSAdrien Destugues 	},
87*626d341cSAdrien Destugues 	{
88*626d341cSAdrien Destugues 		media_file_format::B_READABLE
89eca9668aSStephan Aßmus 			| media_file_format::B_KNOWS_RAW_VIDEO
90eca9668aSStephan Aßmus 			| media_file_format::B_KNOWS_RAW_AUDIO
91eca9668aSStephan Aßmus 			| media_file_format::B_KNOWS_ENCODED_VIDEO
92eca9668aSStephan Aßmus 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
93eca9668aSStephan Aßmus 		{ 0 },
94*626d341cSAdrien Destugues 		B_QUICKTIME_FORMAT_FAMILY,
95*626d341cSAdrien Destugues 		100,
96*626d341cSAdrien Destugues 		{ 0 },
97*626d341cSAdrien Destugues 		"video/x-flv",
98*626d341cSAdrien Destugues 		"Flash video",
99*626d341cSAdrien Destugues 		"flv",
100*626d341cSAdrien Destugues 		"flv",
101*626d341cSAdrien Destugues 		{ 0 }
102*626d341cSAdrien Destugues 	},
103*626d341cSAdrien Destugues 	{
104*626d341cSAdrien Destugues 		media_file_format::B_WRITABLE | media_file_format::B_READABLE
105*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_RAW_VIDEO
106*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_RAW_AUDIO
107*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_VIDEO
108*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
109*626d341cSAdrien Destugues 		{ 0 },
110*626d341cSAdrien Destugues 		B_QUICKTIME_FORMAT_FAMILY,
111ead61989SStephan Aßmus 		100,
112ead61989SStephan Aßmus 		{ 0 },
113ead61989SStephan Aßmus 		"video/x-matroska",
114*626d341cSAdrien Destugues 		"Matroska movie",
115ead61989SStephan Aßmus 		"mkv",
116ead61989SStephan Aßmus 		"mkv",
117ead61989SStephan Aßmus 		{ 0 }
118ead61989SStephan Aßmus 	},
119ead61989SStephan Aßmus 	{
120*626d341cSAdrien Destugues 		media_file_format::B_READABLE
121*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_RAW_VIDEO
122*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_RAW_AUDIO
123*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_VIDEO
124*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
125*626d341cSAdrien Destugues 		{ 0 },
126*626d341cSAdrien Destugues 		B_QUICKTIME_FORMAT_FAMILY,
127*626d341cSAdrien Destugues 		100,
128*626d341cSAdrien Destugues 		{ 0 },
129*626d341cSAdrien Destugues 		"video/x-mov",
130*626d341cSAdrien Destugues 		"Quicktime movie",
131*626d341cSAdrien Destugues 		"mov",
132*626d341cSAdrien Destugues 		"mov",
133*626d341cSAdrien Destugues 		{ 0 }
134*626d341cSAdrien Destugues 	},
135*626d341cSAdrien Destugues 	{
136*626d341cSAdrien Destugues 		media_file_format::B_READABLE
137*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_RAW_AUDIO
138*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
139*626d341cSAdrien Destugues 		{ 0 },
140*626d341cSAdrien Destugues 		B_MPEG_FORMAT_FAMILY,
141*626d341cSAdrien Destugues 		100,
142*626d341cSAdrien Destugues 		{ 0 },
143*626d341cSAdrien Destugues 		"audio/mpeg",
144*626d341cSAdrien Destugues 		"MPEG Layer 3",
145*626d341cSAdrien Destugues 		"mp3",
146*626d341cSAdrien Destugues 		"mp3",
147*626d341cSAdrien Destugues 		{ 0 }
148*626d341cSAdrien Destugues 	},
149*626d341cSAdrien Destugues 	{
150*626d341cSAdrien Destugues 		media_file_format::B_READABLE
151*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_VIDEO
152*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
153*626d341cSAdrien Destugues 		{ 0 },
154*626d341cSAdrien Destugues 		B_QUICKTIME_FORMAT_FAMILY,
155*626d341cSAdrien Destugues 		100,
156*626d341cSAdrien Destugues 		{ 0 },
157*626d341cSAdrien Destugues 		"video/mp4",
158*626d341cSAdrien Destugues 		"MPEG (Motion Picture Experts Group) format 4",
159*626d341cSAdrien Destugues 		"mp4",
160*626d341cSAdrien Destugues 		"mp4",
161*626d341cSAdrien Destugues 		{ 0 }
162*626d341cSAdrien Destugues 	},
163*626d341cSAdrien Destugues 	{
164*626d341cSAdrien Destugues 		media_file_format::B_WRITABLE | media_file_format::B_READABLE
16554897d5cSStephan Aßmus 			| media_file_format::B_KNOWS_ENCODED_VIDEO
16654897d5cSStephan Aßmus 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
16754897d5cSStephan Aßmus 		{ 0 },
16854897d5cSStephan Aßmus 		B_MPEG_FORMAT_FAMILY,
16954897d5cSStephan Aßmus 		100,
17054897d5cSStephan Aßmus 		{ 0 },
17154897d5cSStephan Aßmus 		"video/mpeg",
17254897d5cSStephan Aßmus 		"MPEG (Motion Picture Experts Group)",
17354897d5cSStephan Aßmus 		"mpg",
17454897d5cSStephan Aßmus 		"mpg",
17554897d5cSStephan Aßmus 		{ 0 }
17654897d5cSStephan Aßmus 	},
177*626d341cSAdrien Destugues 	{
178*626d341cSAdrien Destugues 		media_file_format::B_READABLE
179*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_VIDEO
180*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
181*626d341cSAdrien Destugues 		{ 0 },
182*626d341cSAdrien Destugues 		B_AVI_FORMAT_FAMILY,
183*626d341cSAdrien Destugues 		100,
184*626d341cSAdrien Destugues 		{ 0 },
185*626d341cSAdrien Destugues 		"video/mpeg",
186*626d341cSAdrien Destugues 		"MPEG TS",
187*626d341cSAdrien Destugues 		"mpegts",
188*626d341cSAdrien Destugues 		"mpegts",
189*626d341cSAdrien Destugues 		{ 0 }
190*626d341cSAdrien Destugues 	},
191*626d341cSAdrien Destugues 	{
192*626d341cSAdrien Destugues 		media_file_format::B_READABLE
193*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_VIDEO
194*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
195*626d341cSAdrien Destugues 		{ 0 },
196*626d341cSAdrien Destugues 		B_MPEG_FORMAT_FAMILY,
197*626d341cSAdrien Destugues 		100,
198*626d341cSAdrien Destugues 		{ 0 },
199*626d341cSAdrien Destugues 		"video/mpeg",
200*626d341cSAdrien Destugues 		"MPEG",
201*626d341cSAdrien Destugues 		"mpeg",
202*626d341cSAdrien Destugues 		"mpeg",
203*626d341cSAdrien Destugues 		{ 0 }
204*626d341cSAdrien Destugues 	},
205*626d341cSAdrien Destugues 	{
206*626d341cSAdrien Destugues 		media_file_format::B_READABLE
207*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_VIDEO
208*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
209*626d341cSAdrien Destugues 		{ 0 },
210*626d341cSAdrien Destugues 		B_QUICKTIME_FORMAT_FAMILY,
211*626d341cSAdrien Destugues 		100,
212*626d341cSAdrien Destugues 		{ 0 },
213*626d341cSAdrien Destugues 		"video/nsv",
214*626d341cSAdrien Destugues 		"NSV (NullSoft Video file)",
215*626d341cSAdrien Destugues 		"nsv",
216*626d341cSAdrien Destugues 		"nsv",
217*626d341cSAdrien Destugues 		{ 0 }
218*626d341cSAdrien Destugues 	},
2196780c24dSStephan Aßmus // TODO: This one rejects unknown codecs. We probably need to define
2206780c24dSStephan Aßmus // a media_format_family for it so that Encoders can announce their support
2216780c24dSStephan Aßmus // for it specifically.
22273e5249cSStephan Aßmus 	{
223*626d341cSAdrien Destugues 		media_file_format::B_WRITABLE | media_file_format::B_READABLE
22473e5249cSStephan Aßmus 			| media_file_format::B_KNOWS_ENCODED_VIDEO
22573e5249cSStephan Aßmus 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
22673e5249cSStephan Aßmus 		{ 0 },
22773e5249cSStephan Aßmus 		B_MISC_FORMAT_FAMILY,
22873e5249cSStephan Aßmus 		100,
22973e5249cSStephan Aßmus 		{ 0 },
230*626d341cSAdrien Destugues 		"audio/ogg",
23173e5249cSStephan Aßmus 		"Ogg (Xiph.Org Foundation)",
23273e5249cSStephan Aßmus 		"ogg",
23373e5249cSStephan Aßmus 		"ogg",
23473e5249cSStephan Aßmus 		{ 0 }
23573e5249cSStephan Aßmus 	},
2366d15d130SStephan Aßmus 	{
237*626d341cSAdrien Destugues 		media_file_format::B_READABLE
238*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_VIDEO
239*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
240*626d341cSAdrien Destugues 		{ 0 },
241*626d341cSAdrien Destugues 		B_AVI_FORMAT_FAMILY,
242*626d341cSAdrien Destugues 		100,
243*626d341cSAdrien Destugues 		{ 0 },
244*626d341cSAdrien Destugues 		"video/vnd.rn-realvideo",
245*626d341cSAdrien Destugues 		"RM (RealVideo clip)",
246*626d341cSAdrien Destugues 		"rm",
247*626d341cSAdrien Destugues 		"rm",
248*626d341cSAdrien Destugues 		{ 0 }
249*626d341cSAdrien Destugues 	},
250*626d341cSAdrien Destugues 	{
251*626d341cSAdrien Destugues 		media_file_format::B_READABLE
252*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_RAW_VIDEO
253*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_RAW_AUDIO
254*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_VIDEO
255*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
256*626d341cSAdrien Destugues 		{ 0 },
257*626d341cSAdrien Destugues 		B_QUICKTIME_FORMAT_FAMILY,
258*626d341cSAdrien Destugues 		100,
259*626d341cSAdrien Destugues 		{ 0 },
260*626d341cSAdrien Destugues 		"application/x-shockwave-flash",
261*626d341cSAdrien Destugues 		"Shockwave video",
262*626d341cSAdrien Destugues 		"swf",
263*626d341cSAdrien Destugues 		"swf",
264*626d341cSAdrien Destugues 		{ 0 }
265*626d341cSAdrien Destugues 	},
266*626d341cSAdrien Destugues 	{
267*626d341cSAdrien Destugues 		media_file_format::B_READABLE
268*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_VIDEO
269*626d341cSAdrien Destugues 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
270*626d341cSAdrien Destugues 		{ 0 },
271*626d341cSAdrien Destugues 		B_MPEG_FORMAT_FAMILY,
272*626d341cSAdrien Destugues 		100,
273*626d341cSAdrien Destugues 		{ 0 },
274*626d341cSAdrien Destugues 		"video/x-vob",
275*626d341cSAdrien Destugues 		"VOB movie",
276*626d341cSAdrien Destugues 		"vob",
277*626d341cSAdrien Destugues 		"vob",
278*626d341cSAdrien Destugues 		{ 0 }
279*626d341cSAdrien Destugues 	},
280*626d341cSAdrien Destugues 	{
2816d15d130SStephan Aßmus 		media_file_format::B_WRITABLE
2826d15d130SStephan Aßmus 			| media_file_format::B_KNOWS_ENCODED_AUDIO,
2836d15d130SStephan Aßmus 		{ 0 },
2846d15d130SStephan Aßmus 		B_WAV_FORMAT_FAMILY,
2856d15d130SStephan Aßmus 		100,
2866d15d130SStephan Aßmus 		{ 0 },
287*626d341cSAdrien Destugues 		"audio/wav",
2886d15d130SStephan Aßmus 		"WAV Format",
2896d15d130SStephan Aßmus 		"wav",
2906d15d130SStephan Aßmus 		"wav",
2916d15d130SStephan Aßmus 		{ 0 }
2926d15d130SStephan Aßmus 	},
2936ac391b3SStephan Aßmus };
2946ac391b3SStephan Aßmus 
2956ac391b3SStephan Aßmus const size_t gMuxerCount = sizeof(gMuxerTable) / sizeof(media_file_format);
2966ac391b3SStephan Aßmus 
297