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