111 "format", GST_TYPE_FOURCC, codec_fcc, NULL); |
116 "format", GST_TYPE_FOURCC, codec_fcc, NULL); |
112 if (codec_name) |
117 if (codec_name) |
113 *codec_name = g_strdup ("Uncompressed packed YVU 4:1:0"); |
118 *codec_name = g_strdup ("Uncompressed packed YVU 4:1:0"); |
114 break; |
119 break; |
115 |
120 |
|
121 case GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'): |
|
122 caps = gst_caps_new_simple ("video/x-raw-yuv", |
|
123 "format", GST_TYPE_FOURCC, codec_fcc, NULL); |
|
124 if (codec_name) |
|
125 *codec_name = g_strdup ("Uncompressed packed YUV 4:2:2"); |
|
126 break; |
|
127 |
116 case GST_MAKE_FOURCC ('M', 'J', 'P', 'G'): /* YUY2 MJPEG */ |
128 case GST_MAKE_FOURCC ('M', 'J', 'P', 'G'): /* YUY2 MJPEG */ |
117 case GST_MAKE_FOURCC ('A', 'V', 'R', 'n'): |
129 case GST_MAKE_FOURCC ('A', 'V', 'R', 'n'): |
118 case GST_MAKE_FOURCC ('I', 'J', 'P', 'G'): |
130 case GST_MAKE_FOURCC ('I', 'J', 'P', 'G'): |
119 case GST_MAKE_FOURCC ('i', 'j', 'p', 'g'): |
131 case GST_MAKE_FOURCC ('i', 'j', 'p', 'g'): |
120 case GST_MAKE_FOURCC ('J', 'P', 'G', 'L'): |
132 case GST_MAKE_FOURCC ('d', 'm', 'b', '1'): |
|
133 case GST_MAKE_FOURCC ('A', 'C', 'D', 'V'): |
|
134 case GST_MAKE_FOURCC ('Q', 'I', 'V', 'G'): |
121 caps = gst_caps_new_simple ("image/jpeg", NULL); |
135 caps = gst_caps_new_simple ("image/jpeg", NULL); |
122 if (codec_name) |
136 if (codec_name) |
123 *codec_name = g_strdup ("Motion JPEG"); |
137 *codec_name = g_strdup ("Motion JPEG"); |
124 break; |
138 break; |
125 |
139 |
132 |
146 |
133 case GST_MAKE_FOURCC ('P', 'I', 'X', 'L'): /* Miro/Pinnacle fourccs */ |
147 case GST_MAKE_FOURCC ('P', 'I', 'X', 'L'): /* Miro/Pinnacle fourccs */ |
134 case GST_MAKE_FOURCC ('V', 'I', 'X', 'L'): /* Miro/Pinnacle fourccs */ |
148 case GST_MAKE_FOURCC ('V', 'I', 'X', 'L'): /* Miro/Pinnacle fourccs */ |
135 caps = gst_caps_new_simple ("image/jpeg", NULL); |
149 caps = gst_caps_new_simple ("image/jpeg", NULL); |
136 if (codec_name) |
150 if (codec_name) |
137 *codec_name = g_strdup ("Miro/Pinnacle Motion JPEG Video"); |
151 *codec_name = g_strdup ("Miro/Pinnacle Motion JPEG"); |
|
152 break; |
|
153 |
|
154 case GST_MAKE_FOURCC ('C', 'J', 'P', 'G'): |
|
155 caps = gst_caps_new_simple ("image/jpeg", NULL); |
|
156 if (codec_name) |
|
157 *codec_name = g_strdup ("Creative Webcam JPEG"); |
|
158 break; |
|
159 |
|
160 case GST_MAKE_FOURCC ('S', 'L', 'M', 'J'): |
|
161 caps = gst_caps_new_simple ("image/jpeg", NULL); |
|
162 if (codec_name) |
|
163 *codec_name = g_strdup ("SL Motion JPEG"); |
|
164 break; |
|
165 |
|
166 case GST_MAKE_FOURCC ('J', 'P', 'G', 'L'): |
|
167 caps = gst_caps_new_simple ("image/jpeg", NULL); |
|
168 if (codec_name) |
|
169 *codec_name = g_strdup ("Pegasus Lossless JPEG"); |
138 break; |
170 break; |
139 |
171 |
140 case GST_MAKE_FOURCC ('S', 'P', '5', '3'): |
172 case GST_MAKE_FOURCC ('S', 'P', '5', '3'): |
141 case GST_MAKE_FOURCC ('S', 'P', '5', '4'): |
173 case GST_MAKE_FOURCC ('S', 'P', '5', '4'): |
142 case GST_MAKE_FOURCC ('S', 'P', '5', '5'): |
174 case GST_MAKE_FOURCC ('S', 'P', '5', '5'): |
161 case GST_MAKE_FOURCC ('M', 'P', 'E', 'G'): |
193 case GST_MAKE_FOURCC ('M', 'P', 'E', 'G'): |
162 case GST_MAKE_FOURCC ('M', 'P', 'G', 'I'): |
194 case GST_MAKE_FOURCC ('M', 'P', 'G', 'I'): |
163 case GST_MAKE_FOURCC ('m', 'p', 'g', '1'): |
195 case GST_MAKE_FOURCC ('m', 'p', 'g', '1'): |
164 case GST_MAKE_FOURCC ('M', 'P', 'G', '1'): |
196 case GST_MAKE_FOURCC ('M', 'P', 'G', '1'): |
165 case GST_MAKE_FOURCC ('P', 'I', 'M', '1'): |
197 case GST_MAKE_FOURCC ('P', 'I', 'M', '1'): |
|
198 case GST_MAKE_FOURCC (0x01, 0x00, 0x00, 0x10): |
166 caps = gst_caps_new_simple ("video/mpeg", |
199 caps = gst_caps_new_simple ("video/mpeg", |
167 "systemstream", G_TYPE_BOOLEAN, FALSE, |
200 "systemstream", G_TYPE_BOOLEAN, FALSE, |
168 "mpegversion", G_TYPE_INT, 1, NULL); |
201 "mpegversion", G_TYPE_INT, 1, NULL); |
169 if (codec_name) |
202 if (codec_name) |
170 *codec_name = g_strdup ("MPEG-1 video"); |
203 *codec_name = g_strdup ("MPEG-1 video"); |
171 break; |
204 break; |
|
205 |
172 case GST_MAKE_FOURCC ('M', 'P', 'G', '2'): |
206 case GST_MAKE_FOURCC ('M', 'P', 'G', '2'): |
173 case GST_MAKE_FOURCC ('m', 'p', 'g', '2'): |
207 case GST_MAKE_FOURCC ('m', 'p', 'g', '2'): |
|
208 case GST_MAKE_FOURCC ('P', 'I', 'M', '2'): |
|
209 case GST_MAKE_FOURCC ('D', 'V', 'R', ' '): |
|
210 case GST_MAKE_FOURCC (0x02, 0x00, 0x00, 0x10): |
174 caps = gst_caps_new_simple ("video/mpeg", |
211 caps = gst_caps_new_simple ("video/mpeg", |
175 "systemstream", G_TYPE_BOOLEAN, FALSE, |
212 "systemstream", G_TYPE_BOOLEAN, FALSE, |
176 "mpegversion", G_TYPE_INT, 2, NULL); |
213 "mpegversion", G_TYPE_INT, 2, NULL); |
177 if (codec_name) |
214 if (codec_name) |
178 *codec_name = g_strdup ("MPEG-2 video"); |
215 *codec_name = g_strdup ("MPEG-2 video"); |
|
216 break; |
|
217 |
|
218 case GST_MAKE_FOURCC ('L', 'M', 'P', '2'): |
|
219 caps = gst_caps_new_simple ("video/mpeg", |
|
220 "systemstream", G_TYPE_BOOLEAN, FALSE, |
|
221 "mpegversion", G_TYPE_INT, 2, NULL); |
|
222 if (codec_name) |
|
223 *codec_name = g_strdup ("Lead MPEG-2 video"); |
179 break; |
224 break; |
180 |
225 |
181 case GST_MAKE_FOURCC ('H', '2', '6', '3'): |
226 case GST_MAKE_FOURCC ('H', '2', '6', '3'): |
182 case GST_MAKE_FOURCC ('h', '2', '6', '3'): |
227 case GST_MAKE_FOURCC ('h', '2', '6', '3'): |
183 case GST_MAKE_FOURCC ('i', '2', '6', '3'): |
228 case GST_MAKE_FOURCC ('i', '2', '6', '3'): |
184 case GST_MAKE_FOURCC ('U', '2', '6', '3'): |
229 case GST_MAKE_FOURCC ('U', '2', '6', '3'): |
|
230 case GST_MAKE_FOURCC ('v', 'i', 'v', '1'): |
|
231 case GST_MAKE_FOURCC ('T', '2', '6', '3'): |
185 caps = gst_caps_new_simple ("video/x-h263", |
232 caps = gst_caps_new_simple ("video/x-h263", |
186 "variant", G_TYPE_STRING, "itu", NULL); |
233 "variant", G_TYPE_STRING, "itu", NULL); |
187 if (codec_name) |
234 if (codec_name) |
188 *codec_name = g_strdup ("ITU H.26n"); |
235 *codec_name = g_strdup ("ITU H.26n"); |
189 break; |
236 break; |
231 "variant", G_TYPE_STRING, "intel", NULL); |
278 "variant", G_TYPE_STRING, "intel", NULL); |
232 if (codec_name) |
279 if (codec_name) |
233 *codec_name = g_strdup ("Intel H.263"); |
280 *codec_name = g_strdup ("Intel H.263"); |
234 break; |
281 break; |
235 |
282 |
|
283 case GST_MAKE_FOURCC ('V', 'X', '1', 'K'): |
|
284 caps = gst_caps_new_simple ("video/x-h263", |
|
285 "variant", G_TYPE_STRING, "lucent", NULL); |
|
286 if (codec_name) |
|
287 *codec_name = g_strdup ("Lucent VX1000S H.263"); |
|
288 break; |
|
289 |
|
290 case GST_MAKE_FOURCC ('X', '2', '6', '4'): |
|
291 case GST_MAKE_FOURCC ('x', '2', '6', '4'): |
236 case GST_MAKE_FOURCC ('H', '2', '6', '4'): |
292 case GST_MAKE_FOURCC ('H', '2', '6', '4'): |
237 case GST_MAKE_FOURCC ('h', '2', '6', '4'): |
293 case GST_MAKE_FOURCC ('h', '2', '6', '4'): |
238 case GST_MAKE_FOURCC ('a', 'v', 'c', '1'): |
294 case GST_MAKE_FOURCC ('a', 'v', 'c', '1'): |
239 case GST_MAKE_FOURCC ('A', 'V', 'C', '1'): |
295 case GST_MAKE_FOURCC ('A', 'V', 'C', '1'): |
240 caps = gst_caps_new_simple ("video/x-h264", |
296 caps = gst_caps_new_simple ("video/x-h264", |
248 "variant", G_TYPE_STRING, "videosoft", NULL); |
304 "variant", G_TYPE_STRING, "videosoft", NULL); |
249 if (codec_name) |
305 if (codec_name) |
250 *codec_name = g_strdup ("VideoSoft H.264"); |
306 *codec_name = g_strdup ("VideoSoft H.264"); |
251 break; |
307 break; |
252 |
308 |
|
309 case GST_MAKE_FOURCC ('L', '2', '6', '4'): |
|
310 /* http://www.leadcodecs.com/Codecs/LEAD-H264.htm */ |
|
311 caps = gst_caps_new_simple ("video/x-h264", |
|
312 "variant", G_TYPE_STRING, "lead", NULL); |
|
313 if (codec_name) |
|
314 *codec_name = g_strdup ("Lead H.264"); |
|
315 break; |
|
316 |
253 case GST_MAKE_FOURCC ('S', 'E', 'D', 'G'): |
317 case GST_MAKE_FOURCC ('S', 'E', 'D', 'G'): |
254 caps = gst_caps_new_simple ("video/mpeg", |
318 caps = gst_caps_new_simple ("video/mpeg", |
255 "mpegversion", G_TYPE_INT, 4, NULL); |
319 "mpegversion", G_TYPE_INT, 4, NULL); |
256 if (codec_name) |
320 if (codec_name) |
257 *codec_name = g_strdup ("Samsung MPEG-4"); |
321 *codec_name = g_strdup ("Samsung MPEG-4"); |
258 break; |
322 break; |
259 |
323 |
|
324 case GST_MAKE_FOURCC ('M', '4', 'C', 'C'): |
|
325 caps = gst_caps_new_simple ("video/mpeg", |
|
326 "mpegversion", G_TYPE_INT, 4, NULL); |
|
327 if (codec_name) |
|
328 *codec_name = g_strdup ("Divio MPEG-4"); |
|
329 break; |
|
330 |
260 case GST_MAKE_FOURCC ('D', 'I', 'V', '3'): |
331 case GST_MAKE_FOURCC ('D', 'I', 'V', '3'): |
261 case GST_MAKE_FOURCC ('d', 'i', 'v', '3'): |
332 case GST_MAKE_FOURCC ('d', 'i', 'v', '3'): |
|
333 case GST_MAKE_FOURCC ('D', 'V', 'X', '3'): |
|
334 case GST_MAKE_FOURCC ('d', 'v', 'x', '3'): |
262 case GST_MAKE_FOURCC ('D', 'I', 'V', '4'): |
335 case GST_MAKE_FOURCC ('D', 'I', 'V', '4'): |
263 case GST_MAKE_FOURCC ('d', 'i', 'v', '4'): |
336 case GST_MAKE_FOURCC ('d', 'i', 'v', '4'): |
264 case GST_MAKE_FOURCC ('D', 'I', 'V', '5'): |
337 case GST_MAKE_FOURCC ('D', 'I', 'V', '5'): |
265 case GST_MAKE_FOURCC ('d', 'i', 'v', '5'): |
338 case GST_MAKE_FOURCC ('d', 'i', 'v', '5'): |
266 case GST_MAKE_FOURCC ('D', 'I', 'V', '6'): |
339 case GST_MAKE_FOURCC ('D', 'I', 'V', '6'): |
329 "msmpegversion", G_TYPE_INT, 43, NULL); |
403 "msmpegversion", G_TYPE_INT, 43, NULL); |
330 if (codec_name) |
404 if (codec_name) |
331 *codec_name = g_strdup ("Microsoft MPEG-4 4.3"); |
405 *codec_name = g_strdup ("Microsoft MPEG-4 4.3"); |
332 break; |
406 break; |
333 |
407 |
|
408 case GST_MAKE_FOURCC ('M', 'P', '4', 'S'): |
334 case GST_MAKE_FOURCC ('M', '4', 'S', '2'): |
409 case GST_MAKE_FOURCC ('M', '4', 'S', '2'): |
335 caps = gst_caps_new_simple ("video/mpeg", |
410 caps = gst_caps_new_simple ("video/mpeg", |
336 "mpegversion", G_TYPE_INT, 4, NULL); |
411 "mpegversion", G_TYPE_INT, 4, NULL); |
337 if (codec_name) |
412 if (codec_name) |
338 *codec_name = g_strdup ("Microsoft ISO MPEG-4 1.1"); |
413 *codec_name = g_strdup ("Microsoft ISO MPEG-4 1.1"); |
339 break; |
414 break; |
340 |
415 |
341 case GST_MAKE_FOURCC ('F', 'M', 'P', '4'): |
416 case GST_MAKE_FOURCC ('F', 'M', 'P', '4'): |
342 case GST_MAKE_FOURCC ('U', 'M', 'P', '4'): |
417 case GST_MAKE_FOURCC ('U', 'M', 'P', '4'): |
|
418 case GST_MAKE_FOURCC ('F', 'F', 'D', 'S'): |
343 caps = gst_caps_new_simple ("video/mpeg", |
419 caps = gst_caps_new_simple ("video/mpeg", |
344 "mpegversion", G_TYPE_INT, 4, NULL); |
420 "mpegversion", G_TYPE_INT, 4, NULL); |
345 if (codec_name) |
421 if (codec_name) |
346 *codec_name = g_strdup ("FFmpeg MPEG-4"); |
422 *codec_name = g_strdup ("FFmpeg MPEG-4"); |
347 break; |
423 break; |
348 |
424 |
|
425 case GST_MAKE_FOURCC ('E', 'M', '4', 'A'): |
|
426 case GST_MAKE_FOURCC ('E', 'P', 'V', 'H'): |
|
427 case GST_MAKE_FOURCC ('F', 'V', 'F', 'W'): |
|
428 case GST_MAKE_FOURCC ('I', 'N', 'M', 'C'): |
|
429 case GST_MAKE_FOURCC ('D', 'I', 'G', 'I'): |
|
430 case GST_MAKE_FOURCC ('D', 'M', '2', 'K'): |
|
431 case GST_MAKE_FOURCC ('D', 'C', 'O', 'D'): |
|
432 case GST_MAKE_FOURCC ('M', 'V', 'X', 'M'): |
|
433 case GST_MAKE_FOURCC ('P', 'M', '4', 'V'): |
|
434 case GST_MAKE_FOURCC ('S', 'M', 'P', '4'): |
|
435 case GST_MAKE_FOURCC ('D', 'X', 'G', 'M'): |
|
436 case GST_MAKE_FOURCC ('V', 'I', 'D', 'M'): |
|
437 case GST_MAKE_FOURCC ('M', '4', 'T', '3'): |
|
438 case GST_MAKE_FOURCC ('G', 'E', 'O', 'X'): |
|
439 caps = gst_caps_new_simple ("video/mpeg", |
|
440 "mpegversion", G_TYPE_INT, 4, NULL); |
|
441 if (codec_name) |
|
442 *codec_name = g_strdup ("MPEG-4"); |
|
443 break; |
|
444 |
349 case GST_MAKE_FOURCC ('3', 'i', 'v', 'd'): |
445 case GST_MAKE_FOURCC ('3', 'i', 'v', 'd'): |
350 case GST_MAKE_FOURCC ('3', 'I', 'V', 'D'): |
446 case GST_MAKE_FOURCC ('3', 'I', 'V', 'D'): |
|
447 caps = gst_caps_new_simple ("video/x-msmpeg", |
|
448 "msmpegversion", G_TYPE_INT, 43, NULL); |
351 if (codec_name) |
449 if (codec_name) |
352 *codec_name = g_strdup ("Microsoft MPEG-4 4.3"); /* FIXME? */ |
450 *codec_name = g_strdup ("Microsoft MPEG-4 4.3"); /* FIXME? */ |
353 return gst_caps_from_string ("video/x-msmpeg, msmpegversion = (int) 43"); |
451 break; |
354 |
452 |
355 case GST_MAKE_FOURCC ('3', 'I', 'V', '1'): |
453 case GST_MAKE_FOURCC ('3', 'I', 'V', '1'): |
356 case GST_MAKE_FOURCC ('3', 'I', 'V', '2'): |
454 case GST_MAKE_FOURCC ('3', 'I', 'V', '2'): |
357 caps = gst_caps_new_simple ("video/x-3ivx", NULL); |
455 caps = gst_caps_new_simple ("video/x-3ivx", NULL); |
358 if (codec_name) |
456 if (codec_name) |
359 *codec_name = g_strdup ("3ivx"); |
457 *codec_name = g_strdup ("3ivx"); |
360 break; |
458 break; |
361 |
459 |
362 case GST_MAKE_FOURCC ('D', 'V', 'S', 'D'): |
460 case GST_MAKE_FOURCC ('D', 'V', 'S', 'D'): |
363 case GST_MAKE_FOURCC ('d', 'v', 's', 'd'): |
461 case GST_MAKE_FOURCC ('d', 'v', 's', 'd'): |
|
462 case GST_MAKE_FOURCC ('d', 'v', 'c', ' '): |
|
463 case GST_MAKE_FOURCC ('d', 'v', '2', '5'): |
|
464 caps = gst_caps_new_simple ("video/x-dv", |
|
465 "systemstream", G_TYPE_BOOLEAN, FALSE, |
|
466 "dvversion", G_TYPE_INT, 25, NULL); |
|
467 if (codec_name) |
|
468 *codec_name = g_strdup ("Generic DV"); |
|
469 break; |
|
470 |
364 case GST_MAKE_FOURCC ('C', 'D', 'V', 'C'): |
471 case GST_MAKE_FOURCC ('C', 'D', 'V', 'C'): |
|
472 case GST_MAKE_FOURCC ('c', 'd', 'v', 'c'): |
365 caps = gst_caps_new_simple ("video/x-dv", |
473 caps = gst_caps_new_simple ("video/x-dv", |
366 "systemstream", G_TYPE_BOOLEAN, FALSE, NULL); |
474 "systemstream", G_TYPE_BOOLEAN, FALSE, |
367 if (codec_name) |
475 "dvversion", G_TYPE_INT, 25, NULL); |
368 *codec_name = g_strdup ("Generic DV"); |
476 if (codec_name) |
|
477 *codec_name = g_strdup ("Canopus DV"); |
|
478 break; |
|
479 |
|
480 case GST_MAKE_FOURCC ('D', 'V', '5', '0'): |
|
481 case GST_MAKE_FOURCC ('d', 'v', '5', '0'): |
|
482 caps = gst_caps_new_simple ("video/x-dv", |
|
483 "systemstream", G_TYPE_BOOLEAN, FALSE, |
|
484 "dvversion", G_TYPE_INT, 50, NULL); |
|
485 if (codec_name) |
|
486 *codec_name = g_strdup ("DVCPro50 Video"); |
369 break; |
487 break; |
370 |
488 |
371 case GST_MAKE_FOURCC ('W', 'M', 'V', '1'): |
489 case GST_MAKE_FOURCC ('W', 'M', 'V', '1'): |
372 caps = gst_caps_new_simple ("video/x-wmv", |
490 caps = gst_caps_new_simple ("video/x-wmv", |
373 "wmvversion", G_TYPE_INT, 1, NULL); |
491 "wmvversion", G_TYPE_INT, 1, NULL); |
604 |
725 |
605 case GST_MAKE_FOURCC ('d', 'r', 'a', 'c'): |
726 case GST_MAKE_FOURCC ('d', 'r', 'a', 'c'): |
606 caps = gst_caps_new_simple ("video/x-dirac", NULL); |
727 caps = gst_caps_new_simple ("video/x-dirac", NULL); |
607 if (codec_name) |
728 if (codec_name) |
608 *codec_name = g_strdup ("Dirac"); |
729 *codec_name = g_strdup ("Dirac"); |
|
730 break; |
|
731 |
|
732 case GST_RIFF_rpza: |
|
733 case GST_RIFF_azpr: |
|
734 case GST_MAKE_FOURCC ('R', 'P', 'Z', 'A'): |
|
735 caps = gst_caps_new_simple ("video/x-apple-video", NULL); |
|
736 if (codec_name) |
|
737 *codec_name = g_strdup ("Apple Video (RPZA)"); |
|
738 break; |
|
739 |
|
740 |
|
741 case GST_MAKE_FOURCC ('F', 'F', 'V', '1'): |
|
742 caps = gst_caps_new_simple ("video/x-ffv", |
|
743 "ffvversion", G_TYPE_INT, 1, NULL); |
|
744 if (codec_name) |
|
745 *codec_name = g_strdup ("FFmpeg lossless video codec"); |
|
746 break; |
|
747 |
|
748 case GST_MAKE_FOURCC ('K', 'M', 'V', 'C'): |
|
749 caps = gst_caps_new_simple ("video/x-kmvc", NULL); |
|
750 if (codec_name) |
|
751 *codec_name = g_strdup ("Karl Morton's video codec"); |
|
752 break; |
|
753 |
|
754 case GST_MAKE_FOURCC ('v', 'p', '6', '0'): |
|
755 case GST_MAKE_FOURCC ('V', 'P', '6', '0'): |
|
756 caps = gst_caps_new_simple ("video/x-vp6", NULL); |
|
757 if (codec_name) |
|
758 *codec_name = g_strdup ("On2 VP6"); |
|
759 break; |
|
760 |
|
761 case GST_MAKE_FOURCC ('L', 'M', '2', '0'): |
|
762 caps = gst_caps_new_simple ("video/x-mimic", NULL); |
|
763 if (codec_name) |
|
764 *codec_name = g_strdup ("Mimic webcam"); |
|
765 break; |
|
766 |
|
767 case GST_MAKE_FOURCC ('T', 'H', 'E', 'O'): |
|
768 case GST_MAKE_FOURCC ('t', 'h', 'e', 'o'): |
|
769 caps = gst_caps_new_simple ("video/x-theora", NULL); |
|
770 if (codec_name) |
|
771 *codec_name = g_strdup ("Theora video codec"); |
|
772 |
|
773 break; |
|
774 |
|
775 case GST_MAKE_FOURCC ('F', 'P', 'S', '1'): |
|
776 caps = gst_caps_new_simple ("video/x-fraps", NULL); |
|
777 if (codec_name) |
|
778 *codec_name = g_strdup ("Fraps video"); |
|
779 |
609 break; |
780 break; |
610 |
781 |
611 default: |
782 default: |
612 GST_WARNING ("Unknown video fourcc %" GST_FOURCC_FORMAT, |
783 GST_WARNING ("Unknown video fourcc %" GST_FOURCC_FORMAT, |
613 GST_FOURCC_ARGS (codec_fcc)); |
784 GST_FOURCC_ARGS (codec_fcc)); |
1056 rate_max = 48000; |
1241 rate_max = 48000; |
1057 caps = gst_caps_new_simple ("audio/mpeg", |
1242 caps = gst_caps_new_simple ("audio/mpeg", |
1058 "mpegversion", G_TYPE_INT, 1, "layer", G_TYPE_INT, 3, NULL); |
1243 "mpegversion", G_TYPE_INT, 1, "layer", G_TYPE_INT, 3, NULL); |
1059 if (codec_name) |
1244 if (codec_name) |
1060 *codec_name = g_strdup ("MPEG-1 layer 3"); |
1245 *codec_name = g_strdup ("MPEG-1 layer 3"); |
|
1246 break; |
|
1247 |
|
1248 case GST_RIFF_WAVE_FORMAT_AMR_NB: /* amr-nb */ |
|
1249 rate_min = 8000; |
|
1250 rate_max = 8000; |
|
1251 channels_max = 1; |
|
1252 caps = gst_caps_new_simple ("audio/AMR", NULL); |
|
1253 if (codec_name) |
|
1254 *codec_name = g_strdup ("AMR Narrow Band (NB)"); |
|
1255 break; |
|
1256 |
|
1257 case GST_RIFF_WAVE_FORMAT_AMR_WB: /* amr-wb */ |
|
1258 rate_min = 16000; |
|
1259 rate_max = 16000; |
|
1260 channels_max = 1; |
|
1261 caps = gst_caps_new_simple ("audio/AMR-WB", NULL); |
|
1262 if (codec_name) |
|
1263 *codec_name = g_strdup ("AMR Wide Band (WB)"); |
1061 break; |
1264 break; |
1062 |
1265 |
1063 case GST_RIFF_WAVE_FORMAT_VORBIS1: /* ogg/vorbis mode 1 */ |
1266 case GST_RIFF_WAVE_FORMAT_VORBIS1: /* ogg/vorbis mode 1 */ |
1064 case GST_RIFF_WAVE_FORMAT_VORBIS2: /* ogg/vorbis mode 2 */ |
1267 case GST_RIFF_WAVE_FORMAT_VORBIS2: /* ogg/vorbis mode 2 */ |
1065 case GST_RIFF_WAVE_FORMAT_VORBIS3: /* ogg/vorbis mode 3 */ |
1268 case GST_RIFF_WAVE_FORMAT_VORBIS3: /* ogg/vorbis mode 3 */ |
1066 case GST_RIFF_WAVE_FORMAT_VORBIS1PLUS: /* ogg/vorbis mode 1+ */ |
1269 case GST_RIFF_WAVE_FORMAT_VORBIS1PLUS: /* ogg/vorbis mode 1+ */ |
1067 case GST_RIFF_WAVE_FORMAT_VORBIS2PLUS: /* ogg/vorbis mode 2+ */ |
1270 case GST_RIFF_WAVE_FORMAT_VORBIS2PLUS: /* ogg/vorbis mode 2+ */ |
1068 case GST_RIFF_WAVE_FORMAT_VORBIS3PLUS: /* ogg/vorbis mode 3+ */ |
1271 case GST_RIFF_WAVE_FORMAT_VORBIS3PLUS: /* ogg/vorbis mode 3+ */ |
|
1272 rate_max = 192000; |
1069 caps = gst_caps_new_simple ("audio/x-vorbis", NULL); |
1273 caps = gst_caps_new_simple ("audio/x-vorbis", NULL); |
1070 if (codec_name) |
1274 if (codec_name) |
1071 *codec_name = g_strdup ("Vorbis"); |
1275 *codec_name = g_strdup ("Vorbis"); |
1072 break; |
1276 break; |
1073 |
1277 |
1117 gst_caps_set_simple (caps, |
1328 gst_caps_set_simple (caps, |
1118 "bitrate", GST_TYPE_INT_RANGE, 0, G_MAXINT, NULL); |
1329 "bitrate", GST_TYPE_INT_RANGE, 0, G_MAXINT, NULL); |
1119 } |
1330 } |
1120 break; |
1331 break; |
1121 } |
1332 } |
1122 case GST_RIFF_WAVE_FORMAT_WMAV3_L: |
|
1123 { |
|
1124 /* WMA Version 9 Lossless */ |
|
1125 goto unknown; |
|
1126 } |
|
1127 case GST_RIFF_WAVE_FORMAT_SONY_ATRAC3: |
1333 case GST_RIFF_WAVE_FORMAT_SONY_ATRAC3: |
1128 caps = gst_caps_new_simple ("audio/x-vnd.sony.atrac3", NULL); |
1334 caps = gst_caps_new_simple ("audio/x-vnd.sony.atrac3", NULL); |
1129 if (codec_name) |
1335 if (codec_name) |
1130 *codec_name = g_strdup ("Sony ATRAC3"); |
1336 *codec_name = g_strdup ("Sony ATRAC3"); |
1131 break; |
1337 break; |
1132 |
1338 |
|
1339 case GST_RIFF_WAVE_FORMAT_SIREN: |
|
1340 caps = gst_caps_new_simple ("audio/x-siren", NULL); |
|
1341 if (codec_name) |
|
1342 *codec_name = g_strdup ("Siren7"); |
|
1343 rate_chan = FALSE; |
|
1344 break; |
|
1345 |
|
1346 case GST_RIFF_WAVE_FORMAT_ADPCM_IMA_DK4: |
|
1347 rate_min = 8000; |
|
1348 rate_max = 96000; |
|
1349 channels_max = 2; |
|
1350 caps = |
|
1351 gst_caps_new_simple ("audio/x-adpcm", "layout", G_TYPE_STRING, "dk4", |
|
1352 NULL); |
|
1353 if (codec_name) |
|
1354 *codec_name = g_strdup ("IMA/DK4 ADPCM"); |
|
1355 break; |
|
1356 case GST_RIFF_WAVE_FORMAT_ADPCM_IMA_DK3: |
|
1357 rate_min = 8000; |
|
1358 rate_max = 96000; |
|
1359 channels_max = 2; |
|
1360 caps = |
|
1361 gst_caps_new_simple ("audio/x-adpcm", "layout", G_TYPE_STRING, "dk3", |
|
1362 NULL); |
|
1363 if (codec_name) |
|
1364 *codec_name = g_strdup ("IMA/DK3 ADPCM"); |
|
1365 break; |
|
1366 |
|
1367 case GST_RIFF_WAVE_FORMAT_ADPCM_IMA_WAV: |
|
1368 rate_min = 8000; |
|
1369 rate_max = 96000; |
|
1370 channels_max = 2; |
|
1371 caps = |
|
1372 gst_caps_new_simple ("audio/x-adpcm", "layout", G_TYPE_STRING, "dvi", |
|
1373 NULL); |
|
1374 if (codec_name) |
|
1375 *codec_name = g_strdup ("IMA/WAV ADPCM"); |
|
1376 break; |
1133 case GST_RIFF_WAVE_FORMAT_EXTENSIBLE:{ |
1377 case GST_RIFF_WAVE_FORMAT_EXTENSIBLE:{ |
1134 guint16 valid_bits_per_sample; |
1378 guint16 valid_bits_per_sample; |
1135 guint32 channel_mask; |
1379 guint32 channel_mask; |
1136 guint32 subformat_guid[4]; |
1380 guint32 subformat_guid[4]; |
1137 const guint8 *data; |
1381 const guint8 *data; |
1347 gst_caps_set_simple (caps, |
1589 gst_caps_set_simple (caps, |
1348 "block_align", G_TYPE_INT, strf->blockalign, NULL); |
1590 "block_align", G_TYPE_INT, strf->blockalign, NULL); |
1349 } |
1591 } |
1350 } else { |
1592 } else { |
1351 if (rate_chan) { |
1593 if (rate_chan) { |
1352 gst_caps_set_simple (caps, |
1594 if (rate_min == rate_max) |
1353 "rate", GST_TYPE_INT_RANGE, rate_min, rate_max, |
1595 gst_caps_set_simple (caps, "rate", G_TYPE_INT, rate_min, NULL); |
1354 "channels", GST_TYPE_INT_RANGE, 1, channels_max, NULL); |
1596 else |
|
1597 gst_caps_set_simple (caps, |
|
1598 "rate", GST_TYPE_INT_RANGE, rate_min, rate_max, NULL); |
|
1599 if (channels_max == 1) |
|
1600 gst_caps_set_simple (caps, "channels", G_TYPE_INT, 1, NULL); |
|
1601 else |
|
1602 gst_caps_set_simple (caps, |
|
1603 "channels", GST_TYPE_INT_RANGE, 1, channels_max, NULL); |
1355 } |
1604 } |
1356 if (block_align) { |
1605 if (block_align) { |
1357 gst_caps_set_simple (caps, |
1606 gst_caps_set_simple (caps, |
1358 "block_align", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL); |
1607 "block_align", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL); |
1359 } |
1608 } |
1432 GST_MAKE_FOURCC ('D', 'I', 'B', ' '), |
1681 GST_MAKE_FOURCC ('D', 'I', 'B', ' '), |
1433 GST_MAKE_FOURCC ('D', 'I', 'V', '3'), |
1682 GST_MAKE_FOURCC ('D', 'I', 'V', '3'), |
1434 GST_MAKE_FOURCC ('D', 'I', 'V', 'X'), |
1683 GST_MAKE_FOURCC ('D', 'I', 'V', 'X'), |
1435 GST_MAKE_FOURCC ('D', 'U', 'C', 'K'), |
1684 GST_MAKE_FOURCC ('D', 'U', 'C', 'K'), |
1436 GST_MAKE_FOURCC ('D', 'V', 'S', 'D'), |
1685 GST_MAKE_FOURCC ('D', 'V', 'S', 'D'), |
|
1686 GST_MAKE_FOURCC ('D', 'V', '5', '0'), |
1437 GST_MAKE_FOURCC ('D', 'X', '5', '0'), |
1687 GST_MAKE_FOURCC ('D', 'X', '5', '0'), |
|
1688 GST_MAKE_FOURCC ('M', '4', 'C', 'C'), |
1438 GST_MAKE_FOURCC ('F', 'L', 'V', '1'), |
1689 GST_MAKE_FOURCC ('F', 'L', 'V', '1'), |
1439 GST_MAKE_FOURCC ('H', '2', '6', '3'), |
1690 GST_MAKE_FOURCC ('H', '2', '6', '3'), |
|
1691 GST_MAKE_FOURCC ('V', 'X', '1', 'K'), |
1440 GST_MAKE_FOURCC ('H', '2', '6', '4'), |
1692 GST_MAKE_FOURCC ('H', '2', '6', '4'), |
1441 GST_MAKE_FOURCC ('H', 'F', 'Y', 'U'), |
1693 GST_MAKE_FOURCC ('H', 'F', 'Y', 'U'), |
1442 GST_MAKE_FOURCC ('I', '2', '6', '3'), |
1694 GST_MAKE_FOURCC ('I', '2', '6', '3'), |
1443 GST_MAKE_FOURCC ('I', '4', '2', '0'), |
1695 GST_MAKE_FOURCC ('I', '4', '2', '0'), |
1444 GST_MAKE_FOURCC ('I', 'V', '3', '2'), |
1696 GST_MAKE_FOURCC ('I', 'V', '3', '2'), |
1445 GST_MAKE_FOURCC ('I', 'V', '4', '1'), |
1697 GST_MAKE_FOURCC ('I', 'V', '4', '1'), |
1446 GST_MAKE_FOURCC ('I', 'V', '5', '0'), |
1698 GST_MAKE_FOURCC ('I', 'V', '5', '0'), |
1447 GST_MAKE_FOURCC ('L', '2', '6', '3'), |
1699 GST_MAKE_FOURCC ('L', '2', '6', '3'), |
|
1700 GST_MAKE_FOURCC ('L', '2', '6', '4'), |
1448 GST_MAKE_FOURCC ('M', '2', '6', '3'), |
1701 GST_MAKE_FOURCC ('M', '2', '6', '3'), |
1449 GST_MAKE_FOURCC ('M', '4', 'S', '2'), |
1702 GST_MAKE_FOURCC ('M', '4', 'S', '2'), |
1450 GST_MAKE_FOURCC ('M', 'J', 'P', 'G'), |
1703 GST_MAKE_FOURCC ('M', 'J', 'P', 'G'), |
1451 GST_MAKE_FOURCC ('M', 'P', '4', '2'), |
1704 GST_MAKE_FOURCC ('M', 'P', '4', '2'), |
1452 GST_MAKE_FOURCC ('M', 'P', '4', '3'), |
1705 GST_MAKE_FOURCC ('M', 'P', '4', '3'), |
1459 GST_MAKE_FOURCC ('R', 'T', '2', '1'), |
1712 GST_MAKE_FOURCC ('R', 'T', '2', '1'), |
1460 GST_MAKE_FOURCC ('S', 'P', '5', '3'), |
1713 GST_MAKE_FOURCC ('S', 'P', '5', '3'), |
1461 GST_MAKE_FOURCC ('T', 'M', '2', '0'), |
1714 GST_MAKE_FOURCC ('T', 'M', '2', '0'), |
1462 GST_MAKE_FOURCC ('T', 'S', 'C', 'C'), |
1715 GST_MAKE_FOURCC ('T', 'S', 'C', 'C'), |
1463 GST_MAKE_FOURCC ('U', 'L', 'T', 'I'), |
1716 GST_MAKE_FOURCC ('U', 'L', 'T', 'I'), |
|
1717 GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'), |
1464 GST_MAKE_FOURCC ('V', 'C', 'R', '1'), |
1718 GST_MAKE_FOURCC ('V', 'C', 'R', '1'), |
1465 GST_MAKE_FOURCC ('V', 'C', 'R', '2'), |
1719 GST_MAKE_FOURCC ('V', 'C', 'R', '2'), |
1466 GST_MAKE_FOURCC ('V', 'D', 'O', 'W'), |
1720 GST_MAKE_FOURCC ('V', 'D', 'O', 'W'), |
1467 GST_MAKE_FOURCC ('V', 'I', 'V', 'O'), |
1721 GST_MAKE_FOURCC ('V', 'I', 'V', 'O'), |
1468 GST_MAKE_FOURCC ('V', 'M', 'n', 'c'), |
1722 GST_MAKE_FOURCC ('V', 'M', 'n', 'c'), |
1478 GST_MAKE_FOURCC ('Z', 'L', 'I', 'B'), |
1732 GST_MAKE_FOURCC ('Z', 'L', 'I', 'B'), |
1479 GST_MAKE_FOURCC ('c', 'v', 'i', 'd'), |
1733 GST_MAKE_FOURCC ('c', 'v', 'i', 'd'), |
1480 GST_MAKE_FOURCC ('h', '2', '6', '4'), |
1734 GST_MAKE_FOURCC ('h', '2', '6', '4'), |
1481 GST_MAKE_FOURCC ('m', 's', 'v', 'c'), |
1735 GST_MAKE_FOURCC ('m', 's', 'v', 'c'), |
1482 GST_MAKE_FOURCC ('x', '2', '6', '3'), |
1736 GST_MAKE_FOURCC ('x', '2', '6', '3'), |
1483 GST_MAKE_FOURCC ('d', 'r', 'a', 'c') |
1737 GST_MAKE_FOURCC ('d', 'r', 'a', 'c'), |
1484 /* FILL ME */ |
1738 GST_MAKE_FOURCC ('F', 'F', 'V', '1'), |
|
1739 GST_MAKE_FOURCC ('K', 'M', 'V', 'C'), |
|
1740 GST_MAKE_FOURCC ('V', 'P', '6', '0'), |
|
1741 GST_MAKE_FOURCC ('L', 'M', '2', '0'), |
|
1742 GST_MAKE_FOURCC ('R', 'P', 'Z', 'A'), |
|
1743 GST_MAKE_FOURCC ('T', 'H', 'E', 'O'), |
|
1744 GST_MAKE_FOURCC ('F', 'P', 'S', '1'), |
|
1745 /* FILL ME */ |
1485 }; |
1746 }; |
1486 guint i; |
1747 guint i; |
1487 GstCaps *caps, *one; |
1748 GstCaps *caps, *one; |
1488 |
1749 |
1489 caps = gst_caps_new_empty (); |
1750 caps = gst_caps_new_empty (); |
1515 GST_RIFF_WAVE_FORMAT_ALAW, |
1776 GST_RIFF_WAVE_FORMAT_ALAW, |
1516 GST_RIFF_WAVE_FORMAT_MULAW, |
1777 GST_RIFF_WAVE_FORMAT_MULAW, |
1517 GST_RIFF_WAVE_FORMAT_WMS, |
1778 GST_RIFF_WAVE_FORMAT_WMS, |
1518 GST_RIFF_WAVE_FORMAT_ADPCM, |
1779 GST_RIFF_WAVE_FORMAT_ADPCM, |
1519 GST_RIFF_WAVE_FORMAT_DVI_ADPCM, |
1780 GST_RIFF_WAVE_FORMAT_DVI_ADPCM, |
|
1781 GST_RIFF_WAVE_FORMAT_DSP_TRUESPEECH, |
1520 GST_RIFF_WAVE_FORMAT_WMAV1, |
1782 GST_RIFF_WAVE_FORMAT_WMAV1, |
1521 GST_RIFF_WAVE_FORMAT_WMAV2, |
1783 GST_RIFF_WAVE_FORMAT_WMAV2, |
1522 GST_RIFF_WAVE_FORMAT_WMAV3, |
1784 GST_RIFF_WAVE_FORMAT_WMAV3, |
1523 GST_RIFF_WAVE_FORMAT_SONY_ATRAC3, |
1785 GST_RIFF_WAVE_FORMAT_SONY_ATRAC3, |
1524 GST_RIFF_WAVE_FORMAT_IEEE_FLOAT, |
1786 GST_RIFF_WAVE_FORMAT_IEEE_FLOAT, |
1525 GST_RIFF_WAVE_FORMAT_VOXWARE |
1787 GST_RIFF_WAVE_FORMAT_VOXWARE_METASOUND, |
1526 /* FILL ME */ |
1788 GST_RIFF_WAVE_FORMAT_ADPCM_IMA_DK4, |
|
1789 GST_RIFF_WAVE_FORMAT_ADPCM_IMA_DK3, |
|
1790 GST_RIFF_WAVE_FORMAT_ADPCM_IMA_WAV, |
|
1791 GST_RIFF_WAVE_FORMAT_AMR_NB, |
|
1792 GST_RIFF_WAVE_FORMAT_AMR_WB, |
|
1793 GST_RIFF_WAVE_FORMAT_SIREN, |
|
1794 /* FILL ME */ |
1527 }; |
1795 }; |
1528 guint i; |
1796 guint i; |
1529 GstCaps *caps, *one; |
1797 GstCaps *caps, *one; |
1530 |
1798 |
1531 caps = gst_caps_new_empty (); |
1799 caps = gst_caps_new_empty (); |