annotate libmpdemux/extension.c @ 13395:07708ec98d87

New MD5 sum video output driver. For every frame, it calculates the MD5 sum and writes a list of those sums to an, optionally specified, output file. It does not rely on external programs to be installed. The MD5 sum code is borrowed from the uCIFS library, written by Christopher R. Hertel in 2004 and released under the LGPL license. Note: This driver is not yet activated and will not be compiled and linked to libvo. A separate patch will take care of that. This is just for adding the files to the repository.
author ivo
date Mon, 20 Sep 2004 01:01:08 +0000
parents aad5a7c76f34
children 37116118ab6a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9006
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
1
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
2 #include <stdio.h>
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
3 #include <stdlib.h>
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
4 #include <string.h>
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
5
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
6 #include "config.h"
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
7
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
8 #include "stream.h"
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
9 #include "demuxer.h"
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
10
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
11 /*
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
12 * An autodetection based on the extension is not a good idea, but we don't care ;-)
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
13 */
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
14 static struct {
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
15 char *extension;
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
16 int demuxer_type;
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
17 } extensions_table[] = {
9134
f033fdd54da3 - mpeg extensions removed, it causes misdetction of renamed avi/asf files
arpi
parents: 9079
diff changeset
18 // { "mpeg", DEMUXER_TYPE_MPEG_PS },
f033fdd54da3 - mpeg extensions removed, it causes misdetction of renamed avi/asf files
arpi
parents: 9079
diff changeset
19 // { "mpg", DEMUXER_TYPE_MPEG_PS },
f033fdd54da3 - mpeg extensions removed, it causes misdetction of renamed avi/asf files
arpi
parents: 9079
diff changeset
20 // { "mpe", DEMUXER_TYPE_MPEG_PS },
9008
654bc667a450 - added some more
arpi
parents: 9006
diff changeset
21 { "vob", DEMUXER_TYPE_MPEG_PS },
654bc667a450 - added some more
arpi
parents: 9006
diff changeset
22 { "m2v", DEMUXER_TYPE_MPEG_PS },
9006
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
23 { "avi", DEMUXER_TYPE_AVI },
9134
f033fdd54da3 - mpeg extensions removed, it causes misdetction of renamed avi/asf files
arpi
parents: 9079
diff changeset
24 { "mp4", DEMUXER_TYPE_MOV },
9006
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
25 { "mov", DEMUXER_TYPE_MOV },
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
26 { "qt", DEMUXER_TYPE_MOV },
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
27 { "asx", DEMUXER_TYPE_ASF },
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
28 { "asf", DEMUXER_TYPE_ASF },
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
29 { "wmv", DEMUXER_TYPE_ASF },
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
30 { "wma", DEMUXER_TYPE_ASF },
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
31 { "viv", DEMUXER_TYPE_VIVO },
9008
654bc667a450 - added some more
arpi
parents: 9006
diff changeset
32 { "vivo", DEMUXER_TYPE_VIVO },
9006
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
33 { "rm", DEMUXER_TYPE_REAL },
9008
654bc667a450 - added some more
arpi
parents: 9006
diff changeset
34 { "rmvb", DEMUXER_TYPE_REAL },
9006
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
35 { "ra", DEMUXER_TYPE_REAL },
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
36 { "y4m", DEMUXER_TYPE_Y4M },
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
37 { "mp3", DEMUXER_TYPE_AUDIO },
9008
654bc667a450 - added some more
arpi
parents: 9006
diff changeset
38 { "wav", DEMUXER_TYPE_AUDIO },
11004
d48eccbbb984 FLAC decoding support via imported libmpflac.
lumag
parents: 9134
diff changeset
39 { "flac", DEMUXER_TYPE_AUDIO },
d48eccbbb984 FLAC decoding support via imported libmpflac.
lumag
parents: 9134
diff changeset
40 { "fla", DEMUXER_TYPE_AUDIO },
9006
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
41 { "ogg", DEMUXER_TYPE_OGG },
9008
654bc667a450 - added some more
arpi
parents: 9006
diff changeset
42 { "ogm", DEMUXER_TYPE_OGG },
9134
f033fdd54da3 - mpeg extensions removed, it causes misdetction of renamed avi/asf files
arpi
parents: 9079
diff changeset
43 // { "pls", DEMUXER_TYPE_PLAYLIST },
f033fdd54da3 - mpeg extensions removed, it causes misdetction of renamed avi/asf files
arpi
parents: 9079
diff changeset
44 // { "m3u", DEMUXER_TYPE_PLAYLIST },
9008
654bc667a450 - added some more
arpi
parents: 9006
diff changeset
45 { "xm", DEMUXER_TYPE_XMMS },
654bc667a450 - added some more
arpi
parents: 9006
diff changeset
46 { "mod", DEMUXER_TYPE_XMMS },
654bc667a450 - added some more
arpi
parents: 9006
diff changeset
47 { "s3m", DEMUXER_TYPE_XMMS },
654bc667a450 - added some more
arpi
parents: 9006
diff changeset
48 { "it", DEMUXER_TYPE_XMMS },
654bc667a450 - added some more
arpi
parents: 9006
diff changeset
49 { "mid", DEMUXER_TYPE_XMMS },
654bc667a450 - added some more
arpi
parents: 9006
diff changeset
50 { "midi", DEMUXER_TYPE_XMMS },
12175
da8e39bfe121 nsv (Nullsoft streaming video) demuxer
rtognimp
parents: 11004
diff changeset
51 { "vqf", DEMUXER_TYPE_XMMS },
12477
1550ef7117c4 Add detection of nsa streamed by aol ultravox server
rtognimp
parents: 12175
diff changeset
52 { "nsv", DEMUXER_TYPE_NSV },
13072
aad5a7c76f34 nut is only handled by lavf, speed up detection
alex
parents: 12477
diff changeset
53 { "nsa", DEMUXER_TYPE_NSV },
aad5a7c76f34 nut is only handled by lavf, speed up detection
alex
parents: 12477
diff changeset
54 { "nut", DEMUXER_TYPE_LAVF }
9006
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
55 };
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
56
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
57 int demuxer_type_by_filename(char* filename){
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
58 int i;
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
59 char* extension=strrchr(filename,'.');
9079
b1ea14b9694b cosmetic for 0.90, printf->mp_msg (hm..probably arpi will piss of me?:)
alex
parents: 9008
diff changeset
60 mp_msg(MSGT_OPEN, MSGL_V, "Searching demuxer type for filename %s ext: %s\n",filename,extension);
9006
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
61 if(extension) {
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
62 ++extension;
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
63 // mp_msg(MSGT_CPLAYER,MSGL_DBG2,"Extension: %s\n", extension );
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
64 // Look for the extension in the extensions table
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
65 for( i=0 ; i<(sizeof(extensions_table)/sizeof(extensions_table[0])) ; i++ ) {
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
66 if( !strcasecmp(extension, extensions_table[i].extension) ) {
9079
b1ea14b9694b cosmetic for 0.90, printf->mp_msg (hm..probably arpi will piss of me?:)
alex
parents: 9008
diff changeset
67 mp_msg(MSGT_OPEN, MSGL_V, "Trying demuxer %d based on filename extension\n",extensions_table[i].demuxer_type);
9006
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
68 return extensions_table[i].demuxer_type;
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
69 }
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
70 }
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
71 }
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
72 return DEMUXER_TYPE_UNKNOWN;
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
73 }
d00997f12257 extension-based filetype detection for headerless files (mp3 vs mpeg, etc)
arpi
parents:
diff changeset
74