file: update vendor branch to v5.04
[dragonfly.git] / contrib / file / magic / Magdir / riff
1
2 #------------------------------------------------------------------------------
3 # $File: riff,v 1.18 2009/09/19 16:28:12 christos Exp $
4 # riff:  file(1) magic for RIFF format
5 # See
6 #
7 #       http://www.seanet.com/users/matts/riffmci/riffmci.htm
8 #
9 # AVI section extended by Patrik Rådman <patrik+file-magic@iki.fi>
10 #
11 0       string          RIFF            RIFF (little-endian) data
12 # RIFF Palette format
13 >8      string          PAL             \b, palette
14 >>16    leshort         x               \b, version %d
15 >>18    leshort         x               \b, %d entries
16 # RIFF Device Independent Bitmap format
17 >8      string          RDIB            \b, device-independent bitmap
18 >>16    string          BM              
19 >>>30   leshort         12              \b, OS/2 1.x format
20 >>>>34  leshort         x               \b, %d x
21 >>>>36  leshort         x               %d
22 >>>30   leshort         64              \b, OS/2 2.x format
23 >>>>34  leshort         x               \b, %d x
24 >>>>36  leshort         x               %d
25 >>>30   leshort         40              \b, Windows 3.x format
26 >>>>34  lelong          x               \b, %d x
27 >>>>38  lelong          x               %d x
28 >>>>44  leshort         x               %d
29 # RIFF MIDI format
30 >8      string          RMID            \b, MIDI
31 # RIFF Multimedia Movie File format
32 >8      string          RMMP            \b, multimedia movie
33 # RIFF wrapper for MP3
34 >8      string          RMP3            \b, MPEG Layer 3 audio
35 # Microsoft WAVE format (*.wav)
36 >8      string          WAVE            \b, WAVE audio
37 !:mime  audio/x-wav
38 >>20    leshort         1               \b, Microsoft PCM
39 >>>34   leshort         >0              \b, %d bit
40 >>20    leshort         2               \b, Microsoft ADPCM
41 >>20    leshort         6               \b, ITU G.711 A-law
42 >>20    leshort         7               \b, ITU G.711 mu-law
43 >>20    leshort         17              \b, IMA ADPCM
44 >>20    leshort         20              \b, ITU G.723 ADPCM (Yamaha)
45 >>20    leshort         49              \b, GSM 6.10
46 >>20    leshort         64              \b, ITU G.721 ADPCM
47 >>20    leshort         80              \b, MPEG
48 >>20    leshort         85              \b, MPEG Layer 3
49 >>22    leshort         =1              \b, mono
50 >>22    leshort         =2              \b, stereo
51 >>22    leshort         >2              \b, %d channels
52 >>24    lelong          >0              %d Hz
53 # Corel Draw Picture
54 >8      string          CDRA            \b, Corel Draw Picture
55 !:mime  image/x-coreldraw
56 # AVI == Audio Video Interleave
57 >8      string          AVI\040         \b, AVI
58 !:mime  video/x-msvideo
59 >>12    string          LIST
60 >>>20   string          hdrlavih
61 >>>>&36 lelong          x               \b, %lu x
62 >>>>&40 lelong          x               %lu,
63 >>>>&4  lelong          >1000000        <1 fps,
64 >>>>&4  lelong          1000000         1.00 fps,
65 >>>>&4  lelong          500000          2.00 fps,
66 >>>>&4  lelong          333333          3.00 fps,
67 >>>>&4  lelong          250000          4.00 fps,
68 >>>>&4  lelong          200000          5.00 fps,
69 >>>>&4  lelong          166667          6.00 fps,
70 >>>>&4  lelong          142857          7.00 fps,
71 >>>>&4  lelong          125000          8.00 fps,
72 >>>>&4  lelong          111111          9.00 fps,
73 >>>>&4  lelong          100000          10.00 fps,
74 # ]9.9,10.1[
75 >>>>&4  lelong          <101010
76 >>>>>&-4        lelong  >99010
77 >>>>>>&-4       lelong  !100000         ~10 fps,
78 >>>>&4  lelong          83333           12.00 fps,
79 # ]11.9,12.1[
80 >>>>&4  lelong          <84034
81 >>>>>&-4        lelong  >82645
82 >>>>>>&-4       lelong  !83333          ~12 fps,
83 >>>>&4  lelong          66667           15.00 fps,
84 # ]14.9,15.1[
85 >>>>&4  lelong          <67114
86 >>>>>&-4        lelong  >66225
87 >>>>>>&-4       lelong  !66667          ~15 fps,
88 >>>>&4  lelong          50000           20.00 fps,
89 >>>>&4  lelong          41708           23.98 fps,
90 >>>>&4  lelong          41667           24.00 fps,
91 # ]23.9,24.1[
92 >>>>&4  lelong          <41841
93 >>>>>&-4        lelong  >41494
94 >>>>>>&-4       lelong  !41708
95 >>>>>>>&-4      lelong  !41667          ~24 fps,
96 >>>>&4  lelong          40000           25.00 fps,
97 # ]24.9,25.1[
98 >>>>&4  lelong          <40161
99 >>>>>&-4        lelong  >39841
100 >>>>>>&-4       lelong  !40000          ~25 fps,
101 >>>>&4  lelong          33367           29.97 fps,
102 >>>>&4  lelong          33333           30.00 fps,
103 # ]29.9,30.1[
104 >>>>&4  lelong          <33445
105 >>>>>&-4        lelong  >33223
106 >>>>>>&-4       lelong  !33367
107 >>>>>>>&-4      lelong  !33333          ~30 fps,
108 >>>>&4  lelong          <32224          >30 fps,
109 ##>>>>&4  lelong          x               (%lu)
110 ##>>>>&20 lelong          x               %lu frames,
111 # Note: The tests below assume that the AVI has 1 or 2 streams,
112 #       "vids" optionally followed by "auds".
113 #       (Should cover 99.9% of all AVIs.)
114 # assuming avih length = 56
115 >>>88   string  LIST
116 >>>>96  string  strlstrh
117 >>>>>108        string  vids    video:
118 >>>>>>&0        lelong  0               uncompressed
119 # skip past vids strh
120 >>>>>>(104.l+108)       string  strf
121 >>>>>>>(104.l+132)      lelong          1       RLE 8bpp
122 >>>>>>>(104.l+132)      string/c        cvid    Cinepak
123 >>>>>>>(104.l+132)      string/c        i263    Intel I.263
124 >>>>>>>(104.l+132)      string/c        iv32    Indeo 3.2
125 >>>>>>>(104.l+132)      string/c        iv41    Indeo 4.1
126 >>>>>>>(104.l+132)      string/c        iv50    Indeo 5.0
127 >>>>>>>(104.l+132)      string/c        mp42    Microsoft MPEG-4 v2
128 >>>>>>>(104.l+132)      string/c        mp43    Microsoft MPEG-4 v3
129 >>>>>>>(104.l+132)      string/c        fmp4    FFMpeg MPEG-4
130 >>>>>>>(104.l+132)      string/c        mjpg    Motion JPEG
131 >>>>>>>(104.l+132)      string/c        div3    DivX 3
132 >>>>>>>>112             string/c        div3    Low-Motion
133 >>>>>>>>112             string/c        div4    Fast-Motion
134 >>>>>>>(104.l+132)      string/c        divx    DivX 4
135 >>>>>>>(104.l+132)      string/c        dx50    DivX 5
136 >>>>>>>(104.l+132)      string/c        xvid    XviD
137 >>>>>>>(104.l+132)      string/c        h264    H.264
138 >>>>>>>(104.l+132)      string/c        wmv3    Windows Media Video 9
139 >>>>>>>(104.l+132)      string/c        h264    X.264 or H.264
140 >>>>>>>(104.l+132)      lelong  0
141 ##>>>>>>>(104.l+132)      string  x       (%.4s)
142 # skip past first (video) LIST
143 >>>>(92.l+96)   string  LIST
144 >>>>>(92.l+104) string  strlstrh
145 >>>>>>(92.l+116)        string          auds    \b, audio:
146 # auds strh length = 56:
147 >>>>>>>(92.l+172)       string          strf
148 >>>>>>>>(92.l+180)      leshort 0x0001  uncompressed PCM
149 >>>>>>>>(92.l+180)      leshort 0x0002  ADPCM
150 >>>>>>>>(92.l+180)      leshort 0x0006  aLaw
151 >>>>>>>>(92.l+180)      leshort 0x0007  uLaw
152 >>>>>>>>(92.l+180)      leshort 0x0050  MPEG-1 Layer 1 or 2
153 >>>>>>>>(92.l+180)      leshort 0x0055  MPEG-1 Layer 3
154 >>>>>>>>(92.l+180)      leshort 0x2000  Dolby AC3
155 >>>>>>>>(92.l+180)      leshort 0x0161  DivX
156 ##>>>>>>>>(92.l+180)      leshort x       (0x%.4x)
157 >>>>>>>>(92.l+182)      leshort 1       (mono,
158 >>>>>>>>(92.l+182)      leshort 2       (stereo,
159 >>>>>>>>(92.l+182)      leshort >2      (%d channels,
160 >>>>>>>>(92.l+184)      lelong  x       %d Hz)
161 # auds strh length = 64:
162 >>>>>>>(92.l+180)       string          strf
163 >>>>>>>>(92.l+188)      leshort 0x0001  uncompressed PCM
164 >>>>>>>>(92.l+188)      leshort 0x0002  ADPCM
165 >>>>>>>>(92.l+188)      leshort 0x0055  MPEG-1 Layer 3
166 >>>>>>>>(92.l+188)      leshort 0x2000  Dolby AC3
167 >>>>>>>>(92.l+188)      leshort 0x0161  DivX
168 ##>>>>>>>>(92.l+188)      leshort x       (0x%.4x)
169 >>>>>>>>(92.l+190)      leshort 1       (mono,
170 >>>>>>>>(92.l+190)      leshort 2       (stereo,
171 >>>>>>>>(92.l+190)      leshort >2      (%d channels,
172 >>>>>>>>(92.l+192)      lelong  x       %d Hz)
173 # Animated Cursor format
174 >8      string          ACON            \b, animated cursor
175 # SoundFont 2 <mpruett@sgi.com>
176 >8      string          sfbk            SoundFont/Bank
177 # MPEG-1 wrapped in a RIFF, apparently
178 >8      string          CDXA            \b, wrapped MPEG-1 (CDXA)
179 >8      string          4XMV            \b, 4X Movie file 
180
181 #
182 # XXX - some of the below may only appear in little-endian form.
183 #
184 # Also "MV93" appears to be for one form of Macromedia Director
185 # files, and "GDMF" appears to be another multimedia format.
186 #
187 0       string          RIFX            RIFF (big-endian) data
188 # RIFF Palette format
189 >8      string          PAL             \b, palette
190 >>16    beshort         x               \b, version %d
191 >>18    beshort         x               \b, %d entries
192 # RIFF Device Independent Bitmap format
193 >8      string          RDIB            \b, device-independent bitmap
194 >>16    string          BM              
195 >>>30   beshort         12              \b, OS/2 1.x format
196 >>>>34  beshort         x               \b, %d x
197 >>>>36  beshort         x               %d
198 >>>30   beshort         64              \b, OS/2 2.x format
199 >>>>34  beshort         x               \b, %d x
200 >>>>36  beshort         x               %d
201 >>>30   beshort         40              \b, Windows 3.x format
202 >>>>34  belong          x               \b, %d x
203 >>>>38  belong          x               %d x
204 >>>>44  beshort         x               %d
205 # RIFF MIDI format
206 >8      string          RMID            \b, MIDI
207 # RIFF Multimedia Movie File format
208 >8      string          RMMP            \b, multimedia movie
209 # Microsoft WAVE format (*.wav)
210 >8      string          WAVE            \b, WAVE audio
211 >>20    leshort         1               \b, Microsoft PCM
212 >>>34   leshort         >0              \b, %d bit
213 >>22    beshort         =1              \b, mono
214 >>22    beshort         =2              \b, stereo
215 >>22    beshort         >2              \b, %d channels
216 >>24    belong          >0              %d Hz
217 # Corel Draw Picture
218 >8      string          CDRA            \b, Corel Draw Picture
219 # AVI == Audio Video Interleave
220 >8      string          AVI\040         \b, AVI
221 # Animated Cursor format
222 >8      string          ACON            \b, animated cursor
223 # Notation Interchange File Format (big-endian only)
224 >8      string          NIFF            \b, Notation Interchange File Format
225 # SoundFont 2 <mpruett@sgi.com>
226 >8      string          sfbk            SoundFont/Bank