/[drupal]/contributions/modules/mimedetect/magic
ViewVC logotype

Contents of /contributions/modules/mimedetect/magic

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Sat Jan 5 05:04:09 2008 UTC (22 months, 3 weeks ago) by dopry
Branch: MAIN
CVS Tags: DRUPAL-6--1-0, DRUPAL-6--1-1, DRUPAL-6--1-2, DRUPAL-5--1-0-beta, DRUPAL-6--1-0-beta1, DRUPAL-5--1-1, DRUPAL-5--1-0, DRUPAL-5--1-3, DRUPAL-5--1-2, HEAD
Branch point for: DRUPAL-5, DRUPAL-6--1
Initial import of MimeDetect module.
1 # Magic data for file(1) command.
2 # Format is described in magic(5).
3 # Don't edit this file, edit /etc/magic or send your suggested inclusions to
4 # this file as a wishlist bug against file (using the reportbug utility).
5
6
7 #------------------------------------------------------------------------------
8 # Localstuff: file(1) magic for locally observed files
9 #
10 # $File: Localstuff,v 1.4 2003/03/23 04:17:27 christos Exp $
11 # Add any locally observed files here. Remember:
12 # text if readable, executable if runnable binary, data if unreadable.
13 #------------------------------------------------------------------------------
14 # acorn: file(1) magic for files found on Acorn systems
15 #
16
17 # RISC OS Chunk File Format
18 # From RISC OS Programmer's Reference Manual, Appendix D
19 # We guess the file type from the type of the first chunk.
20 0 lelong 0xc3cbc6c5 RISC OS Chunk data
21 >12 string OBJ_ \b, AOF object
22 >12 string LIB_ \b, ALF library
23
24 # RISC OS AIF, contains "SWI OS_Exit" at offset 16.
25 16 lelong 0xef000011 RISC OS AIF executable
26
27 # RISC OS Draw files
28 # From RISC OS Programmer's Reference Manual, Appendix E
29 0 string Draw RISC OS Draw file data
30
31 # RISC OS new format font files
32 # From RISC OS Programmer's Reference Manual, Appendix E
33 0 string FONT\0 RISC OS outline font data,
34 >5 byte x version %d
35 0 string FONT\1 RISC OS 1bpp font data,
36 >5 byte x version %d
37 0 string FONT\4 RISC OS 4bpp font data
38 >5 byte x version %d
39
40 # RISC OS Music files
41 # From RISC OS Programmer's Reference Manual, Appendix E
42 0 string Maestro\r RISC OS music file
43 >8 byte x version %d
44
45
46 #------------------------------------------------------------------------------
47 # adi: file(1) magic for ADi's objects
48 # From Gregory McGarry <g.mcgarry@ieee.org>
49 #
50 0 leshort 0x521c COFF DSP21k
51 >18 lelong &02 executable,
52 >18 lelong ^02
53 >>18 lelong &01 static object,
54 >>18 lelong ^01 relocatable object,
55 >18 lelong &010 stripped
56 >18 lelong ^010 not stripped
57
58 #------------------------------------------------------------------------------
59 # adventure: file(1) magic for Adventure game files
60 #
61 # from Allen Garvin <earendil@faeryland.tamu-commerce.edu>
62 # Edited by Dave Chapeskie <dchapes@ddm.on.ca> Jun 28, 1998
63 # Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
64 #
65 # ALAN
66 # I assume there are other, lower versions, but these are the only ones I
67 # saw in the archive.
68 0 beshort 0x0206 ALAN game data
69 >2 byte <10 version 2.6%d
70
71
72 # Infocom (see z-machine)
73 #------------------------------------------------------------------------------
74 # Z-machine: file(1) magic for Z-machine binaries.
75 #
76 # This will match ${TEX_BASE}/texmf/omega/ocp/char2uni/inbig5.ocp which
77 # appears to be a version-0 Z-machine binary.
78 #
79 # The (false match) message is to correct that behavior. Perhaps it is
80 # not needed.
81 #
82 16 belong&0xfe00f0f0 0x3030 Infocom game data
83 >0 ubyte 0 (false match)
84 >0 ubyte >0 (Z-machine %d,
85 >>2 ubeshort x Release %d /
86 >>18 string >\0 Serial %.6s)
87
88 #------------------------------------------------------------------------------
89 # Glulx: file(1) magic for Glulx binaries.
90 #
91 # I haven't checked for false matches yet.
92 #
93 0 string Glul Glulx game data
94 >4 beshort x (Version %d
95 >>6 byte x \b.%d
96 >>8 byte x \b.%d)
97 >36 string Info Compiled by Inform
98
99
100
101 # For Quetzal and blorb magic see iff
102
103
104 # TADS (Text Adventure Development System)
105 # All files are machine-independent (games compile to byte-code) and are tagged
106 # with a version string of the form "V2.<digit>.<digit>\0" (but TADS 3 is
107 # on the way).
108 # Game files start with "TADS2 bin\n\r\032\0" then the compiler version.
109 0 string TADS2\ bin TADS
110 >9 belong !0x0A0D1A00 game data, CORRUPTED
111 >9 belong 0x0A0D1A00
112 >>13 string >\0 %s game data
113 # Resource files start with "TADS2 rsc\n\r\032\0" then the compiler version.
114 0 string TADS2\ rsc TADS
115 >9 belong !0x0A0D1A00 resource data, CORRUPTED
116 >9 belong 0x0A0D1A00
117 >>13 string >\0 %s resource data
118 # Some saved game files start with "TADS2 save/g\n\r\032\0", a little-endian
119 # 2-byte length N, the N-char name of the game file *without* a NUL (darn!),
120 # "TADS2 save\n\r\032\0" and the interpreter version.
121 0 string TADS2\ save/g TADS
122 >12 belong !0x0A0D1A00 saved game data, CORRUPTED
123 >12 belong 0x0A0D1A00
124 >>(16.s+32) string >\0 %s saved game data
125 # Other saved game files start with "TADS2 save\n\r\032\0" and the interpreter
126 # version.
127 0 string TADS2\ save TADS
128 >10 belong !0x0A0D1A00 saved game data, CORRUPTED
129 >10 belong 0x0A0D1A00
130 >>14 string >\0 %s saved game data
131
132 #------------------------------------------------------------------------------
133 # allegro: file(1) magic for Allegro datafiles
134 # Toby Deshane <hac@shoelace.digivill.net>
135 #
136 0 belong 0x736C6821 Allegro datafile (packed)
137 0 belong 0x736C682E Allegro datafile (not packed/autodetect)
138 0 belong 0x736C682B Allegro datafile (appended exe data)
139
140 #------------------------------------------------------------------------------
141 # alliant: file(1) magic for Alliant FX series a.out files
142 #
143 # If the FX series is the one that had a processor with a 68K-derived
144 # instruction set, the "short" should probably become "beshort" and the
145 # "long" should probably become "belong".
146 # If it's the i860-based one, they should probably become either the
147 # big-endian or little-endian versions, depending on the mode they ran
148 # the 860 in....
149 #
150 0 short 0420 0420 Alliant virtual executable
151 >2 short &0x0020 common library
152 >16 long >0 not stripped
153 0 short 0421 0421 Alliant compact executable
154 >2 short &0x0020 common library
155 >16 long >0 not stripped
156 #------------------------------------------------------------------------------
157 # alpha architecture description
158 #
159
160 0 leshort 0603 COFF format alpha
161 >22 leshort&030000 !020000 executable
162 >24 leshort 0410 pure
163 >24 leshort 0413 paged
164 >22 leshort&020000 !0 dynamically linked
165 >16 lelong !0 not stripped
166 >16 lelong 0 stripped
167 >22 leshort&030000 020000 shared library
168 >24 leshort 0407 object
169 >27 byte x - version %d
170 >26 byte x .%d
171 >28 byte x -%d
172
173 # Basic recognition of Digital UNIX core dumps - Mike Bremford <mike@opac.bl.uk>
174 #
175 # The actual magic number is just "Core", followed by a 2-byte version
176 # number; however, treating any file that begins with "Core" as a Digital
177 # UNIX core dump file may produce too many false hits, so we include one
178 # byte of the version number as well; DU 5.0 appears only to be up to
179 # version 2.
180 #
181 0 string Core\001 Alpha COFF format core dump (Digital UNIX)
182 >24 string >\0 \b, from '%s'
183 0 string Core\002 Alpha COFF format core dump (Digital UNIX)
184 >24 string >\0 \b, from '%s'
185
186 #------------------------------------------------------------------------------
187 # amanda: file(1) magic for amanda file format
188 #
189 0 string AMANDA:\ AMANDA
190 >8 string TAPESTART\ DATE tape header file,
191 >>23 string X
192 >>>25 string >\ Unused %s
193 >>23 string >\ DATE %s
194 >8 string FILE\ dump file,
195 >>13 string >\ DATE %s
196 #------------------------------------------------------------------------------
197 # amigaos: file(1) magic for AmigaOS binary formats:
198
199 #
200 # From ignatios@cs.uni-bonn.de (Ignatios Souvatzis)
201 #
202 0 belong 0x000003fa AmigaOS shared library
203 0 belong 0x000003f3 AmigaOS loadseg()ble executable/binary
204 0 belong 0x000003e7 AmigaOS object/library data
205 #
206 0 beshort 0xe310 Amiga Workbench
207 >2 beshort 1
208 >>48 byte 1 disk icon
209 >>48 byte 2 drawer icon
210 >>48 byte 3 tool icon
211 >>48 byte 4 project icon
212 >>48 byte 5 garbage icon
213 >>48 byte 6 device icon
214 >>48 byte 7 kickstart icon
215 >>48 byte 8 workbench application icon
216 >2 beshort >1 icon, vers. %d
217 #
218 # various sound formats from the Amiga
219 # G=F6tz Waschk <waschk@informatik.uni-rostock.de>
220 #
221 0 string FC14 Future Composer 1.4 Module sound file
222 0 string SMOD Future Composer 1.3 Module sound file
223 0 string AON4artofnoise Art Of Noise Module sound file
224 1 string MUGICIAN/SOFTEYES Mugician Module sound file
225 58 string SIDMON\ II\ -\ THE Sidmon 2.0 Module sound file
226 0 string Synth4.0 Synthesis Module sound file
227 0 string ARP. The Holy Noise Module sound file
228 0 string BeEp\0 JamCracker Module sound file
229 0 string COSO\0 Hippel-COSO Module sound file
230 # Too simple (short, pure ASCII, deep), MPi
231 #26 string V.3 Brian Postma's Soundmon Module sound file v3
232 #26 string BPSM Brian Postma's Soundmon Module sound file v3
233 #26 string V.2 Brian Postma's Soundmon Module sound file v2
234
235 # The following are from: "Stefan A. Haubenthal" <polluks@web.de>
236 0 beshort 0x0f00 AmigaOS bitmap font
237 0 beshort 0x0f03 AmigaOS outline font
238 0 belong 0x80001001 AmigaOS outline tag
239 0 string ##\ version catalog translation
240 0 string EMOD\0 Amiga E module
241 8 string ECXM\0 ECX module
242 0 string/c @database AmigaGuide file
243
244 # Amiga disk types
245 #
246 0 string RDSK Rigid Disk Block
247 >160 string x on %.24s
248 0 string DOS\0 Amiga DOS disk
249 0 string DOS\1 Amiga FFS disk
250 0 string DOS\2 Amiga Inter DOS disk
251 0 string DOS\3 Amiga Inter FFS disk
252 0 string DOS\4 Amiga Fastdir DOS disk
253 0 string DOS\5 Amiga Fastdir FFS disk
254 0 string KICK Kickstart disk
255
256 # From: Alex Beregszaszi <alex@fsn.hu>
257 0 string LZX LZX compressed archive (Amiga)
258
259
260 #------------------------------------------------------------------------------
261 # animation: file(1) magic for animation/movie formats
262 #
263 # animation formats
264 # MPEG, FLI, DL originally from vax@ccwf.cc.utexas.edu (VaX#n8)
265 # FLC, SGI, Apple originally from Daniel Quinlan (quinlan@yggdrasil.com)
266
267 # SGI and Apple formats
268 0 string MOVI Silicon Graphics movie file
269 4 string moov Apple QuickTime
270 >12 string mvhd \b movie (fast start)
271 >12 string mdra \b URL
272 >12 string cmov \b movie (fast start, compressed header)
273 >12 string rmra \b multiple URLs
274 4 string mdat Apple QuickTime movie (unoptimized)
275 #4 string wide Apple QuickTime movie (unoptimized)
276 #4 string skip Apple QuickTime movie (modified)
277 #4 string free Apple QuickTime movie (modified)
278 4 string idsc Apple QuickTime image (fast start)
279 #4 string idat Apple QuickTime image (unoptimized)
280 4 string pckg Apple QuickTime compressed archive
281 4 string/B jP JPEG 2000 image
282 4 string ftyp ISO Media
283 >8 string isom \b, MPEG v4 system, version 1
284 >8 string iso2 \b, MPEG v4 system, part 12 revision
285 >8 string mp41 \b, MPEG v4 system, version 1
286 >8 string mp42 \b, MPEG v4 system, version 2
287 >8 string mp7t \b, MPEG v4 system, MPEG v7 XML
288 >8 string mp7b \b, MPEG v4 system, MPEG v7 binary XML
289 >8 string/B jp2 \b, JPEG 2000
290 >8 string 3gp \b, MPEG v4 system, 3GPP
291 >>11 byte 4 \b v4 (H.263/AMR GSM 6.10)
292 >>11 byte 5 \b v5 (H.263/AMR GSM 6.10)
293 >>11 byte 6 \b v6 (ITU H.264/AMR GSM 6.10)
294 >8 string mmp4 \b, MPEG v4 system, 3GPP Mobile
295 >8 string avc1 \b, MPEG v4 system, 3GPP JVT AVC
296 >8 string/B M4A \b, MPEG v4 system, iTunes AAC-LC
297 >8 string/B M4V \b, MPEG v4 system, iTunes AVC-LC
298 >8 string/B M4P \b, MPEG v4 system, iTunes AES encrypted
299 >8 string/B M4B \b, MPEG v4 system, iTunes bookmarked
300 >8 string/B qt \b, Apple QuickTime movie
301
302 # MPEG sequences
303 # Scans for all common MPEG header start codes
304 0 belong 0x00000001 JVT NAL sequence
305 >4 byte&0x1F 0x07 \b, H.264 video
306 >>5 byte 66 \b, baseline
307 >>5 byte 77 \b, main
308 >>5 byte 88 \b, extended
309 >>7 byte x \b @ L %u
310 0 belong&0xFFFFFF00 0x00000100 MPEG sequence
311 >3 byte 0xBA
312 >>4 byte &0x40 \b, v2, program multiplex
313 >>4 byte ^0x40 \b, v1, system multiplex
314 >3 byte 0xBB \b, v1/2, multiplex (missing pack header)
315 >3 byte&0x1F 0x07 \b, H.264 video
316 >>4 byte 66 \b, baseline
317 >>4 byte 77 \b, main
318 >>4 byte 88 \b, extended
319 >>6 byte x \b @ L %u
320 >3 byte 0xB0 \b, v4
321 >>5 belong 0x000001B5
322 >>>9 byte &0x80
323 >>>>10 byte&0xF0 16 \b, video
324 >>>>10 byte&0xF0 32 \b, still texture
325 >>>>10 byte&0xF0 48 \b, mesh
326 >>>>10 byte&0xF0 64 \b, face
327 >>>9 byte&0xF8 8 \b, video
328 >>>9 byte&0xF8 16 \b, still texture
329 >>>9 byte&0xF8 24 \b, mesh
330 >>>9 byte&0xF8 32 \b, face
331 >>4 byte 1 \b, simple @ L1
332 >>4 byte 2 \b, simple @ L2
333 >>4 byte 3 \b, simple @ L3
334 >>4 byte 4 \b, simple @ L0
335 >>4 byte 17 \b, simple scalable @ L1
336 >>4 byte 18 \b, simple scalable @ L2
337 >>4 byte 33 \b, core @ L1
338 >>4 byte 34 \b, core @ L2
339 >>4 byte 50 \b, main @ L2
340 >>4 byte 51 \b, main @ L3
341 >>4 byte 53 \b, main @ L4
342 >>4 byte 66 \b, n-bit @ L2
343 >>4 byte 81 \b, scalable texture @ L1
344 >>4 byte 97 \b, simple face animation @ L1
345 >>4 byte 98 \b, simple face animation @ L2
346 >>4 byte 99 \b, simple face basic animation @ L1
347 >>4 byte 100 \b, simple face basic animation @ L2
348 >>4 byte 113 \b, basic animation text @ L1
349 >>4 byte 114 \b, basic animation text @ L2
350 >>4 byte 129 \b, hybrid @ L1
351 >>4 byte 130 \b, hybrid @ L2
352 >>4 byte 145 \b, advanced RT simple @ L!
353 >>4 byte 146 \b, advanced RT simple @ L2
354 >>4 byte 147 \b, advanced RT simple @ L3
355 >>4 byte 148 \b, advanced RT simple @ L4
356 >>4 byte 161 \b, core scalable @ L1
357 >>4 byte 162 \b, core scalable @ L2
358 >>4 byte 163 \b, core scalable @ L3
359 >>4 byte 177 \b, advanced coding efficiency @ L1
360 >>4 byte 178 \b, advanced coding efficiency @ L2
361 >>4 byte 179 \b, advanced coding efficiency @ L3
362 >>4 byte 180 \b, advanced coding efficiency @ L4
363 >>4 byte 193 \b, advanced core @ L1
364 >>4 byte 194 \b, advanced core @ L2
365 >>4 byte 209 \b, advanced scalable texture @ L1
366 >>4 byte 210 \b, advanced scalable texture @ L2
367 >>4 byte 211 \b, advanced scalable texture @ L3
368 >>4 byte 225 \b, simple studio @ L1
369 >>4 byte 226 \b, simple studio @ L2
370 >>4 byte 227 \b, simple studio @ L3
371 >>4 byte 228 \b, simple studio @ L4
372 >>4 byte 229 \b, core studio @ L1
373 >>4 byte 230 \b, core studio @ L2
374 >>4 byte 231 \b, core studio @ L3
375 >>4 byte 232 \b, core studio @ L4
376 >>4 byte 240 \b, advanced simple @ L0
377 >>4 byte 241 \b, advanced simple @ L1
378 >>4 byte 242 \b, advanced simple @ L2
379 >>4 byte 243 \b, advanced simple @ L3
380 >>4 byte 244 \b, advanced simple @ L4
381 >>4 byte 245 \b, advanced simple @ L5
382 >>4 byte 247 \b, advanced simple @ L3b
383 >>4 byte 248 \b, FGS @ L0
384 >>4 byte 249 \b, FGS @ L1
385 >>4 byte 250 \b, FGS @ L2
386 >>4 byte 251 \b, FGS @ L3
387 >>4 byte 252 \b, FGS @ L4
388 >>4 byte 253 \b, FGS @ L5
389 >3 byte 0xB5 \b, v4
390 >>4 byte &0x80
391 >>>5 byte&0xF0 16 \b, video (missing profile header)
392 >>>5 byte&0xF0 32 \b, still texture (missing profile header)
393 >>>5 byte&0xF0 48 \b, mesh (missing profile header)
394 >>>5 byte&0xF0 64 \b, face (missing profile header)
395 >>4 byte&0xF8 8 \b, video (missing profile header)
396 >>4 byte&0xF8 16 \b, still texture (missing profile header)
397 >>4 byte&0xF8 24 \b, mesh (missing profile header)
398 >>4 byte&0xF8 32 \b, face (missing profile header)
399 >3 byte 0xB3
400 >>12 belong 0x000001B8 \b, v1, progressive Y'CbCr 4:2:0 video
401 >>12 belong 0x000001B2 \b, v1, progressive Y'CbCr 4:2:0 video
402 >>12 belong 0x000001B5 \b, v2,
403 >>>16 byte&0x0F 1 \b HP
404 >>>16 byte&0x0F 2 \b Spt
405 >>>16 byte&0x0F 3 \b SNR
406 >>>16 byte&0x0F 4 \b MP
407 >>>16 byte&0x0F 5 \b SP
408 >>>17 byte&0xF0 64 \b@HL
409 >>>17 byte&0xF0 96 \b@H-14
410 >>>17 byte&0xF0 128 \b@ML
411 >>>17 byte&0xF0 160 \b@LL
412 >>>17 byte &0x08 \b progressive
413 >>>17 byte ^0x08 \b interlaced
414 >>>17 byte&0x06 2 \b Y'CbCr 4:2:0 video
415 >>>17 byte&0x06 4 \b Y'CbCr 4:2:2 video
416 >>>17 byte&0x06 6 \b Y'CbCr 4:4:4 video
417 >>11 byte &0x02
418 >>>75 byte &0x01
419 >>>>140 belong 0x000001B8 \b, v1, progressive Y'CbCr 4:2:0 video
420 >>>>140 belong 0x000001B2 \b, v1, progressive Y'CbCr 4:2:0 video
421 >>>>140 belong 0x000001B5 \b, v2,
422 >>>>>144 byte&0x0F 1 \b HP
423 >>>>>144 byte&0x0F 2 \b Spt
424 >>>>>144 byte&0x0F 3 \b SNR
425 >>>>>144 byte&0x0F 4 \b MP
426 >>>>>144 byte&0x0F 5 \b SP
427 >>>>>145 byte&0xF0 64 \b@HL
428 >>>>>145 byte&0xF0 96 \b@H-14
429 >>>>>145 byte&0xF0 128 \b@ML
430 >>>>>145 byte&0xF0 160 \b@LL
431 >>>>>145 byte &0x08 \b progressive
432 >>>>>145 byte ^0x08 \b interlaced
433 >>>>>145 byte&0x06 2 \b Y'CbCr 4:2:0 video
434 >>>>>145 byte&0x06 4 \b Y'CbCr 4:2:2 video
435 >>>>>145 byte&0x06 6 \b Y'CbCr 4:4:4 video
436 >>76 belong 0x000001B8 \b, v1, progressive Y'CbCr 4:2:0 video
437 >>76 belong 0x000001B2 \b, v1, progressive Y'CbCr 4:2:0 video
438 >>76 belong 0x000001B5 \b, v2,
439 >>>80 byte&0x0F 1 \b HP
440 >>>80 byte&0x0F 2 \b Spt
441 >>>80 byte&0x0F 3 \b SNR
442 >>>80 byte&0x0F 4 \b MP
443 >>>80 byte&0x0F 5 \b SP
444 >>>81 byte&0xF0 64 \b@HL
445 >>>81 byte&0xF0 96 \b@H-14
446 >>>81 byte&0xF0 128 \b@ML
447 >>>81 byte&0xF0 160 \b@LL
448 >>>81 byte &0x08 \b progressive
449 >>>81 byte ^0x08 \b interlaced
450 >>>81 byte&0x06 2 \b Y'CbCr 4:2:0 video
451 >>>81 byte&0x06 4 \b Y'CbCr 4:2:2 video
452 >>>81 byte&0x06 6 \b Y'CbCr 4:4:4 video
453 >>4 belong&0xFFFFFF00 0x78043800 \b, HD-TV 1920P
454 >>>7 byte&0xF0 0x10 \b, 16:9
455 >>4 belong&0xFFFFFF00 0x50002D00 \b, SD-TV 1280I
456 >>>7 byte&0xF0 0x10 \b, 16:9
457 >>4 belong&0xFFFFFF00 0x30024000 \b, PAL Capture
458 >>>7 byte&0xF0 0x10 \b, 4:3
459 >>4 beshort&0xFFF0 0x2C00 \b, 4CIF
460 >>>5 beshort&0x0FFF 0x01E0 \b NTSC
461 >>>5 beshort&0x0FFF 0x0240 \b PAL
462 >>>7 byte&0xF0 0x20 \b, 4:3
463 >>>7 byte&0xF0 0x30 \b, 16:9
464 >>>7 byte&0xF0 0x40 \b, 11:5
465 >>>7 byte&0xF0 0x80 \b, PAL 4:3
466 >>>7 byte&0xF0 0xC0 \b, NTSC 4:3
467 >>4 belong&0xFFFFFF00 0x2801E000 \b, LD-TV 640P
468 >>>7 byte&0xF0 0x10 \b, 4:3
469 >>4 belong&0xFFFFFF00 0x1400F000 \b, 320x240
470 >>>7 byte&0xF0 0x10 \b, 4:3
471 >>4 belong&0xFFFFFF00 0x0F00A000 \b, 240x160
472 >>>7 byte&0xF0 0x10 \b, 4:3
473 >>4 belong&0xFFFFFF00 0x0A007800 \b, 160x120
474 >>>7 byte&0xF0 0x10 \b, 4:3
475 >>4 beshort&0xFFF0 0x1600 \b, CIF
476 >>>5 beshort&0x0FFF 0x00F0 \b NTSC
477 >>>5 beshort&0x0FFF 0x0120 \b PAL
478 >>>7 byte&0xF0 0x20 \b, 4:3
479 >>>7 byte&0xF0 0x30 \b, 16:9
480 >>>7 byte&0xF0 0x40 \b, 11:5
481 >>>7 byte&0xF0 0x80 \b, PAL 4:3
482 >>>7 byte&0xF0 0xC0 \b, NTSC 4:3
483 >>>5 beshort&0x0FFF 0x0240 \b PAL 625
484 >>>>7 byte&0xF0 0x20 \b, 4:3
485 >>>>7 byte&0xF0 0x30 \b, 16:9
486 >>>>7 byte&0xF0 0x40 \b, 11:5
487 >>4 beshort&0xFFF0 0x2D00 \b, CCIR/ITU
488 >>>5 beshort&0x0FFF 0x01E0 \b NTSC 525
489 >>>5 beshort&0x0FFF 0x0240 \b PAL 625
490 >>>7 byte&0xF0 0x20 \b, 4:3
491 >>>7 byte&0xF0 0x30 \b, 16:9
492 >>>7 byte&0xF0 0x40 \b, 11:5
493 >>4 beshort&0xFFF0 0x1E00 \b, SVCD
494 >>>5 beshort&0x0FFF 0x01E0 \b NTSC 525
495 >>>5 beshort&0x0FFF 0x0240 \b PAL 625
496 >>>7 byte&0xF0 0x20 \b, 4:3
497 >>>7 byte&0xF0 0x30 \b, 16:9
498 >>>7 byte&0xF0 0x40 \b, 11:5
499 >>7 byte&0x0F 1 \b, 23.976 fps
500 >>7 byte&0x0F 2 \b, 24 fps
501 >>7 byte&0x0F 3 \b, 25 fps
502 >>7 byte&0x0F 4 \b, 29.97 fps
503 >>7 byte&0x0F 5 \b, 30 fps
504 >>7 byte&0x0F 6 \b, 50 fps
505 >>7 byte&0x0F 7 \b, 59.94 fps
506 >>7 byte&0x0F 8 \b, 60 fps
507 >>11 byte &0x04 \b, Constrained
508
509 # MPEG ADTS Audio (*.mpx/mxa/aac)
510 # from dreesen@math.fu-berlin.de
511 # modified to fully support MPEG ADTS
512
513 # MP3, M1A
514 0 beshort&0xFFFE 0xFFFA MPEG ADTS, layer III, v1
515 # rates
516 >2 byte&0xF0 0x10 \b, 32 kBits
517 >2 byte&0xF0 0x20 \b, 40 kBits
518 >2 byte&0xF0 0x30 \b, 48 kBits
519 >2 byte&0xF0 0x40 \b, 56 kBits
520 >2 byte&0xF0 0x50 \b, 64 kBits
521 >2 byte&0xF0 0x60 \b, 80 kBits
522 >2 byte&0xF0 0x70 \b, 96 kBits
523 >2 byte&0xF0 0x80 \b, 112 kBits
524 >2 byte&0xF0 0x90 \b, 128 kBits
525 >2 byte&0xF0 0xA0 \b, 160 kBits
526 >2 byte&0xF0 0xB0 \b, 192 kBits
527 >2 byte&0xF0 0xC0 \b, 224 kBits
528 >2 byte&0xF0 0xD0 \b, 256 kBits
529 >2 byte&0xF0 0xE0 \b, 320 kBits
530 # timing
531 >2 byte&0x0C 0x00 \b, 44.1 kHz
532 >2 byte&0x0C 0x04 \b, 48 kHz
533 >2 byte&0x0C 0x08 \b, 32 kHz
534 # channels/options
535 >3 byte&0xC0 0x00 \b, Stereo
536 >3 byte&0xC0 0x40 \b, JntStereo
537 >3 byte&0xC0 0x80 \b, 2x Monaural
538 >3 byte&0xC0 0xC0 \b, Monaural
539 #>1 byte ^0x01 \b, Data Verify
540 #>2 byte &0x02 \b, Packet Pad
541 #>2 byte &0x01 \b, Custom Flag
542 #>3 byte &0x08 \b, Copyrighted
543 #>3 byte &0x04 \b, Original Source
544 #>3 byte&0x03 1 \b, NR: 50/15 ms
545 #>3 byte&0x03 3 \b, NR: CCIT J.17
546
547 # MP2, M1A
548 0 beshort&0xFFFE 0xFFFC MPEG ADTS, layer II, v1
549 # rates
550 >2 byte&0xF0 0x10 \b, 32 kBits
551 >2 byte&0xF0 0x20 \b, 48 kBits
552 >2 byte&0xF0 0x30 \b, 56 kBits
553 >2 byte&0xF0 0x40 \b, 64 kBits
554 >2 byte&0xF0 0x50 \b, 80 kBits
555 >2 byte&0xF0 0x60 \b, 96 kBits
556 >2 byte&0xF0 0x70 \b, 112 kBits
557 >2 byte&0xF0 0x80 \b, 128 kBits
558 >2 byte&0xF0 0x90 \b, 160 kBits
559 >2 byte&0xF0 0xA0 \b, 192 kBits
560 >2 byte&0xF0 0xB0 \b, 224 kBits
561 >2 byte&0xF0 0xC0 \b, 256 kBits
562 >2 byte&0xF0 0xD0 \b, 320 kBits
563 >2 byte&0xF0 0xE0 \b, 384 kBits
564 # timing
565 >2 byte&0x0C 0x00 \b, 44.1 kHz
566 >2 byte&0x0C 0x04 \b, 48 kHz
567 >2 byte&0x0C 0x08 \b, 32 kHz
568 # channels/options
569 >3 byte&0xC0 0x00 \b, Stereo
570 >3 byte&0xC0 0x40 \b, JntStereo
571 >3 byte&0xC0 0x80 \b, 2x Monaural
572 >3 byte&0xC0 0xC0 \b, Monaural
573 #>1 byte ^0x01 \b, Data Verify
574 #>2 byte &0x02 \b, Packet Pad
575 #>2 byte &0x01 \b, Custom Flag
576 #>3 byte &0x08 \b, Copyrighted
577 #>3 byte &0x04 \b, Original Source
578 #>3 byte&0x03 1 \b, NR: 50/15 ms
579 #>3 byte&0x03 3 \b, NR: CCIT J.17
580
581 # MPA, M1A
582 # updated by Joerg Jenderek
583 # GRR the original test are too common for many DOS files, so test 32 <= kbits <= 448
584 0 beshort&0xFFFE 0xFFFE
585 >2 ubyte&0xF0 >0x0F
586 >>2 ubyte&0xF0 <0xE1 MPEG ADTS, layer I, v1
587 # rate
588 >>>2 byte&0xF0 0x10 \b, 32 kBits
589 >>>2 byte&0xF0 0x20 \b, 64 kBits
590 >>>2 byte&0xF0 0x30 \b, 96 kBits
591 >>>2 byte&0xF0 0x40 \b, 128 kBits
592 >>>2 byte&0xF0 0x50 \b, 160 kBits
593 >>>2 byte&0xF0 0x60 \b, 192 kBits
594 >>>2 byte&0xF0 0x70 \b, 224 kBits
595 >>>2 byte&0xF0 0x80 \b, 256 kBits
596 >>>2 byte&0xF0 0x90 \b, 288 kBits
597 >>>2 byte&0xF0 0xA0 \b, 320 kBits
598 >>>2 byte&0xF0 0xB0 \b, 352 kBits
599 >>>2 byte&0xF0 0xC0 \b, 384 kBits
600 >>>2 byte&0xF0 0xD0 \b, 416 kBits
601 >>>2 byte&0xF0 0xE0 \b, 448 kBits
602 # timing
603 >>>2 byte&0x0C 0x00 \b, 44.1 kHz
604 >>>2 byte&0x0C 0x04 \b, 48 kHz
605 >>>2 byte&0x0C 0x08 \b, 32 kHz
606 # channels/options
607 >>>3 byte&0xC0 0x00 \b, Stereo
608 >>>3 byte&0xC0 0x40 \b, JntStereo
609 >>>3 byte&0xC0 0x80 \b, 2x Monaural
610 >>>3 byte&0xC0 0xC0 \b, Monaural
611 #>1 byte ^0x01 \b, Data Verify
612 #>2 byte &0x02 \b, Packet Pad
613 #>2 byte &0x01 \b, Custom Flag
614 #>3 byte &0x08 \b, Copyrighted
615 #>3 byte &0x04 \b, Original Source
616 #>3 byte&0x03 1 \b, NR: 50/15 ms
617 #>3 byte&0x03 3 \b, NR: CCIT J.17
618
619 # MP3, M2A
620 0 beshort&0xFFFE 0xFFF2 MPEG ADTS, layer III, v2
621 # rate
622 >2 byte&0xF0 0x10 \b, 8 kBits
623 >2 byte&0xF0 0x20 \b, 16 kBits
624 >2 byte&0xF0 0x30 \b, 24 kBits
625 >2 byte&0xF0 0x40 \b, 32 kBits
626 >2 byte&0xF0 0x50 \b, 40 kBits
627 >2 byte&0xF0 0x60 \b, 48 kBits
628 >2 byte&0xF0 0x70 \b, 56 kBits
629 >2 byte&0xF0 0x80 \b, 64 kBits
630 >2 byte&0xF0 0x90 \b, 80 kBits
631 >2 byte&0xF0 0xA0 \b, 96 kBits
632 >2 byte&0xF0 0xB0 \b, 112 kBits
633 >2 byte&0xF0 0xC0 \b, 128 kBits
634 >2 byte&0xF0 0xD0 \b, 144 kBits
635 >2 byte&0xF0 0xE0 \b, 160 kBits
636 # timing
637 >2 byte&0x0C 0x00 \b, 22.05 kHz
638 >2 byte&0x0C 0x04 \b, 24 kHz
639 >2 byte&0x0C 0x08 \b, 16 kHz
640 # channels/options
641 >3 byte&0xC0 0x00 \b, Stereo
642 >3 byte&0xC0 0x40 \b, JntStereo
643 >3 byte&0xC0 0x80 \b, 2x Monaural
644 >3 byte&0xC0 0xC0 \b, Monaural
645 #>1 byte ^0x01 \b, Data Verify
646 #>2 byte &0x02 \b, Packet Pad
647 #>2 byte &0x01 \b, Custom Flag
648 #>3 byte &0x08 \b, Copyrighted
649 #>3 byte &0x04 \b, Original Source
650 #>3 byte&0x03 1 \b, NR: 50/15 ms
651 #>3 byte&0x03 3 \b, NR: CCIT J.17
652
653 # MP2, M2A
654 0 beshort&0xFFFE 0xFFF4 MPEG ADTS, layer II, v2
655 # rate
656 >2 byte&0xF0 0x10 \b, 8 kBits
657 >2 byte&0xF0 0x20 \b, 16 kBits
658 >2 byte&0xF0 0x30 \b, 24 kBits
659 >2 byte&0xF0 0x40 \b, 32 kBits
660 >2 byte&0xF0 0x50 \b, 40 kBits
661 >2 byte&0xF0 0x60 \b, 48 kBits
662 >2 byte&0xF0 0x70 \b, 56 kBits
663 >2 byte&0xF0 0x80 \b, 64 kBits
664 >2 byte&0xF0 0x90 \b, 80 kBits
665 >2 byte&0xF0 0xA0 \b, 96 kBits
666 >2 byte&0xF0 0xB0 \b, 112 kBits
667 >2 byte&0xF0 0xC0 \b, 128 kBits
668 >2 byte&0xF0 0xD0 \b, 144 kBits
669 >2 byte&0xF0 0xE0 \b, 160 kBits
670 # timing
671 >2 byte&0x0C 0x00 \b, 22.05 kHz
672 >2 byte&0x0C 0x04 \b, 24 kHz
673 >2 byte&0x0C 0x08 \b, 16 kHz
674 # channels/options
675 >3 byte&0xC0 0x00 \b, Stereo
676 >3 byte&0xC0 0x40 \b, JntStereo
677 >3 byte&0xC0 0x80 \b, 2x Monaural
678 >3 byte&0xC0 0xC0 \b, Monaural
679 #>1 byte ^0x01 \b, Data Verify
680 #>2 byte &0x02 \b, Packet Pad
681 #>2 byte &0x01 \b, Custom Flag
682 #>3 byte &0x08 \b, Copyrighted
683 #>3 byte &0x04 \b, Original Source
684 #>3 byte&0x03 1 \b, NR: 50/15 ms
685 #>3 byte&0x03 3 \b, NR: CCIT J.17
686
687 # MPA, M2A
688 0 beshort&0xFFFE 0xFFF6 MPEG ADTS, layer I, v2
689 # rate
690 >2 byte&0xF0 0x10 \b, 32 kBits
691 >2 byte&0xF0 0x20 \b, 48 kBits
692 >2 byte&0xF0 0x30 \b, 56 kBits
693 >2 byte&0xF0 0x40 \b, 64 kBits
694 >2 byte&0xF0 0x50 \b, 80 kBits
695 >2 byte&0xF0 0x60 \b, 96 kBits
696 >2 byte&0xF0 0x70 \b, 112 kBits
697 >2 byte&0xF0 0x80 \b, 128 kBits
698 >2 byte&0xF0 0x90 \b, 144 kBits
699 >2 byte&0xF0 0xA0 \b, 160 kBits
700 >2 byte&0xF0 0xB0 \b, 176 kBits
701 >2 byte&0xF0 0xC0 \b, 192 kBits
702 >2 byte&0xF0 0xD0 \b, 224 kBits
703 >2 byte&0xF0 0xE0 \b, 256 kBits
704 # timing
705 >2 byte&0x0C 0x00 \b, 22.05 kHz
706 >2 byte&0x0C 0x04 \b, 24 kHz
707 >2 byte&0x0C 0x08 \b, 16 kHz
708 # channels/options
709 >3 byte&0xC0 0x00 \b, Stereo
710 >3 byte&0xC0 0x40 \b, JntStereo
711 >3 byte&0xC0 0x80 \b, 2x Monaural
712 >3 byte&0xC0 0xC0 \b, Monaural
713 #>1 byte ^0x01 \b, Data Verify
714 #>2 byte &0x02 \b, Packet Pad
715 #>2 byte &0x01 \b, Custom Flag
716 #>3 byte &0x08 \b, Copyrighted
717 #>3 byte &0x04 \b, Original Source
718 #>3 byte&0x03 1 \b, NR: 50/15 ms
719 #>3 byte&0x03 3 \b, NR: CCIT J.17
720
721 # MP3, M25A
722 0 beshort&0xFFFE 0xFFE2 MPEG ADTS, layer III, v2.5
723 # rate
724 >2 byte&0xF0 0x10 \b, 8 kBits
725 >2 byte&0xF0 0x20 \b, 16 kBits
726 >2 byte&0xF0 0x30 \b, 24 kBits
727 >2 byte&0xF0 0x40 \b, 32 kBits
728 >2 byte&0xF0 0x50 \b, 40 kBits
729 >2 byte&0xF0 0x60 \b, 48 kBits
730 >2 byte&0xF0 0x70 \b, 56 kBits
731 >2 byte&0xF0 0x80 \b, 64 kBits
732 >2 byte&0xF0 0x90 \b, 80 kBits
733 >2 byte&0xF0 0xA0 \b, 96 kBits
734 >2 byte&0xF0 0xB0 \b, 112 kBits
735 >2 byte&0xF0 0xC0 \b, 128 kBits
736 >2 byte&0xF0 0xD0 \b, 144 kBits
737 >2 byte&0xF0 0xE0 \b, 160 kBits
738 # timing
739 >2 byte&0x0C 0x00 \b, 11.025 kHz
740 >2 byte&0x0C 0x04 \b, 12 kHz
741 >2 byte&0x0C 0x08 \b, 8 kHz
742 # channels/options
743 >3 byte&0xC0 0x00 \b, Stereo
744 >3 byte&0xC0 0x40 \b, JntStereo
745 >3 byte&0xC0 0x80 \b, 2x Monaural
746 >3 byte&0xC0 0xC0 \b, Monaural
747 #>1 byte ^0x01 \b, Data Verify
748 #>2 byte &0x02 \b, Packet Pad
749 #>2 byte &0x01 \b, Custom Flag
750 #>3 byte &0x08 \b, Copyrighted
751 #>3 byte &0x04 \b, Original Source
752 #>3 byte&0x03 1 \b, NR: 50/15 ms
753 #>3 byte&0x03 3 \b, NR: CCIT J.17
754
755 # AAC (aka MPEG-2 NBC audio) and MPEG-4 audio
756
757 # Stored AAC streams (instead of the MP4 format)
758 0 string ADIF MPEG ADIF, AAC
759 >4 byte &0x80
760 >>13 byte &0x10 \b, VBR
761 >>13 byte ^0x10 \b, CBR
762 >>16 byte&0x1E 0x02 \b, single stream
763 >>16 byte&0x1E 0x04 \b, 2 streams
764 >>16 byte&0x1E 0x06 \b, 3 streams
765 >>16 byte &0x08 \b, 4 or more streams
766 >>16 byte &0x10 \b, 8 or more streams
767 >>4 byte &0x80 \b, Copyrighted
768 >>13 byte &0x40 \b, Original Source
769 >>13 byte &0x20 \b, Home Flag
770 >4 byte ^0x80
771 >>4 byte &0x10 \b, VBR
772 >>4 byte ^0x10 \b, CBR
773 >>7 byte&0x1E 0x02 \b, single stream
774 >>7 byte&0x1E 0x04 \b, 2 streams
775 >>7 byte&0x1E 0x06 \b, 3 streams
776 >>7 byte &0x08 \b, 4 or more streams
777 >>7 byte &0x10 \b, 8 or more streams
778 >>4 byte &0x40 \b, Original Stream(s)
779 >>4 byte &0x20 \b, Home Source
780
781 # Live or stored single AAC stream (used with MPEG-2 systems)
782 0 beshort&0xFFF6 0xFFF0 MPEG ADTS, AAC
783 >1 byte &0x08 \b, v2
784 >1 byte ^0x08 \b, v4
785 # profile
786 >>2 byte &0xC0 \b LTP
787 >2 byte&0xc0 0x00 \b Main
788 >2 byte&0xc0 0x40 \b LC
789 >2 byte&0xc0 0x80 \b SSR
790 # timing
791 >2 byte&0x3c 0x00 \b, 96 kHz
792 >2 byte&0x3c 0x04 \b, 88.2 kHz
793 >2 byte&0x3c 0x08 \b, 64 kHz
794 >2 byte&0x3c 0x0c \b, 48 kHz
795 >2 byte&0x3c 0x10 \b, 44.1 kHz
796 >2 byte&0x3c 0x14 \b, 32 kHz
797 >2 byte&0x3c 0x18 \b, 24 kHz
798 >2 byte&0x3c 0x1c \b, 22.05 kHz
799 >2 byte&0x3c 0x20 \b, 16 kHz
800 >2 byte&0x3c 0x24 \b, 12 kHz
801 >2 byte&0x3c 0x28 \b, 11.025 kHz
802 >2 byte&0x3c 0x2c \b, 8 kHz
803 # channels
804 >2 beshort&0x01c0 0x0040 \b, monaural
805 >2 beshort&0x01c0 0x0080 \b, stereo
806 >2 beshort&0x01c0 0x00c0 \b, stereo + center
807 >2 beshort&0x01c0 0x0100 \b, stereo+center+LFE
808 >2 beshort&0x01c0 0x0140 \b, surround
809 >2 beshort&0x01c0 0x0180 \b, surround + LFE
810 >2 beshort &0x01C0 \b, surround + side
811 #>1 byte ^0x01 \b, Data Verify
812 #>2 byte &0x02 \b, Custom Flag
813 #>3 byte &0x20 \b, Original Stream
814 #>3 byte &0x10 \b, Home Source
815 #>3 byte &0x08 \b, Copyrighted
816
817 # Live MPEG-4 audio streams (instead of RTP FlexMux)
818 0 beshort&0xFFE0 0x56E0 MPEG-4 LOAS
819 #>1 beshort&0x1FFF x \b, %u byte packet
820 >3 byte&0xE0 0x40
821 >>4 byte&0x3C 0x04 \b, single stream
822 >>4 byte&0x3C 0x08 \b, 2 streams
823 >>4 byte&0x3C 0x0C \b, 3 streams
824 >>4 byte &0x08 \b, 4 or more streams
825 >>4 byte &0x20 \b, 8 or more streams
826 >3 byte&0xC0 0
827 >>4 byte&0x78 0x08 \b, single stream
828 >>4 byte&0x78 0x10 \b, 2 streams
829 >>4 byte&0x78 0x18 \b, 3 streams
830 >>4 byte &0x20 \b, 4 or more streams
831 >>4 byte &0x40 \b, 8 or more streams
832 0 beshort 0x4DE1 MPEG-4 LO-EP audio stream
833
834 # FLI animation format
835 4 leshort 0xAF11 FLI file
836 >6 leshort x - %d frames,
837 >8 leshort x width=%d pixels,
838 >10 leshort x height=%d pixels,
839 >12 leshort x depth=%d,
840 >16 leshort x ticks/frame=%d
841 # FLC animation format
842 4 leshort 0xAF12 FLC file
843 >6 leshort x - %d frames
844 >8 leshort x width=%d pixels,
845 >10 leshort x height=%d pixels,
846 >12 leshort x depth=%d,
847 >16 leshort x ticks/frame=%d
848
849 # DL animation format
850 # XXX - collision with most `mips' magic
851 #
852 # I couldn't find a real magic number for these, however, this
853 # -appears- to work. Note that it might catch other files, too, so be
854 # careful!
855 #
856 # Note that title and author appear in the two 20-byte chunks
857 # at decimal offsets 2 and 22, respectively, but they are XOR'ed with
858 # 255 (hex FF)! The DL format is really bad.
859 #
860 #0 byte 1 DL version 1, medium format (160x100, 4 images/screen)
861 #>42 byte x - %d screens,
862 #>43 byte x %d commands
863 #0 byte 2 DL version 2
864 #>1 byte 1 - large format (320x200,1 image/screen),
865 #>1 byte 2 - medium format (160x100,4 images/screen),
866 #>1 byte >2 - unknown format,
867 #>42 byte x %d screens,
868 #>43 byte x %d commands
869 # Based on empirical evidence, DL version 3 have several nulls following the
870 # \003. Most of them start with non-null values at hex offset 0x34 or so.
871 #0 string \3\0\0\0\0\0\0\0\0\0\0\0 DL version 3
872
873 # iso 13818 transport stream
874 #
875 # from Oskar Schirmer <schirmer@scara.com> Feb 3, 2001 (ISO 13818.1)
876 # (the following is a little bit restrictive and works fine for a stream
877 # that starts with PAT properly. it won't work for stream data, that is
878 # cut from an input device data right in the middle, but this shouldn't
879 # disturb)
880 # syncbyte 8 bit 0x47
881 # error_ind 1 bit -
882 # payload_start 1 bit 1
883 # priority 1 bit -
884 # PID 13 bit 0x0000
885 # scrambling 2 bit -
886 # adaptfld_ctrl 2 bit 1 or 3
887 # conti_count 4 bit 0
888 0 belong&0xFF5FFF1F 0x47400010 MPEG transport stream data
889 >188 byte !0x47 CORRUPTED
890
891 # DIF digital video file format <mpruett@sgi.com>
892 0 belong&0xffffff00 0x1f070000 DIF
893 >4 byte &0x01 (DVCPRO) movie file
894 >4 byte ^0x01 (DV) movie file
895 >3 byte &0x80 (PAL)
896 >3 byte ^0x80 (NTSC)
897
898 # Microsoft Advanced Streaming Format (ASF) <mpruett@sgi.com>
899 0 belong 0x3026b275 Microsoft ASF
900
901 # MNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
902 0 string \x8aMNG MNG video data,
903 >4 belong !0x0d0a1a0a CORRUPTED,
904 >4 belong 0x0d0a1a0a
905 >>16 belong x %ld x
906 >>20 belong x %ld
907
908 # JNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
909 0 string \x8bJNG JNG video data,
910 >4 belong !0x0d0a1a0a CORRUPTED,
911 >4 belong 0x0d0a1a0a
912 >>16 belong x %ld x
913 >>20 belong x %ld
914
915 # Vivo video (Wolfram Kleff)
916 3 string \x0D\x0AVersion:Vivo Vivo video data
917
918 # VRML (Virtual Reality Modelling Language)
919 0 string/b #VRML\ V1.0\ ascii VRML 1 file
920 0 string/b #VRML\ V2.0\ utf8 ISO/IEC 14772 VRML 97 file
921
922 #---------------------------------------------------------------------------
923 # HVQM4: compressed movie format designed by Hudson for Nintendo GameCube
924 # From Mark Sheppard <msheppard@climax.co.uk>, 2002-10-03
925 #
926 0 string HVQM4 %s
927 >6 string >\0 v%s
928 >0 byte x GameCube movie,
929 >0x34 ubeshort x %d x
930 >0x36 ubeshort x %d,
931 >0x26 ubeshort x %dµs,
932 >0x42 ubeshort 0 no audio
933 >0x42 ubeshort >0 %dHz audio
934
935 # From: "Stefan A. Haubenthal" <polluks@web.de>
936 0 string DVDVIDEO-VTS Video title set,
937 >0x21 byte x v%x
938 0 string DVDVIDEO-VMG Video manager,
939 >0x21 byte x v%x
940
941 #------------------------------------------------------------------------------
942 # apl: file(1) magic for APL (see also "pdp" and "vax" for other APL
943 # workspaces)
944 #
945 0 long 0100554 APL workspace (Ken's original?)
946
947 #------------------------------------------------------------------------------
948 # apple: file(1) magic for Apple file formats
949 #
950 0 string FiLeStArTfIlEsTaRt binscii (apple ][) text
951 0 string \x0aGL Binary II (apple ][) data
952 0 string \x76\xff Squeezed (apple ][) data
953 0 string NuFile NuFile archive (apple ][) data
954 0 string N\xf5F\xe9l\xe5 NuFile archive (apple ][) data
955 0 belong 0x00051600 AppleSingle encoded Macintosh file
956 0 belong 0x00051607 AppleDouble encoded Macintosh file
957
958 # Type: Apple Emulator 2IMG format
959 # From: Radek Vokal <rvokal@redhat.com>
960 0 string 2IMG Apple ][ 2IMG Disk Image
961 >4 string XGS! \b, XGS
962 >4 string CTKG \b, Catakig
963 >4 string ShIm \b, Sheppy's ImageMaker
964 >4 string WOOF \b, Sweet 16
965 >4 string B2TR \b, Bernie ][ the Rescue
966 >4 string !nfc \b, ASIMOV2
967 >4 string x \b, Unknown Format
968 >0xc byte 00 \b, DOS 3.3 sector order
969 >>0x10 byte 00 \b, Volume 254
970 >>0x10 byte&0x7f x \b, Volume %u
971 >0xc byte 01 \b, ProDOS sector order
972 >>0x14 short x \b, %u Blocks
973 >0xc byte 02 \b, NIB data
974
975 # magic for Newton PDA package formats
976 # from Ruda Moura <ruda@helllabs.org>
977 0 string package0 Newton package, NOS 1.x,
978 >12 belong &0x80000000 AutoRemove,
979 >12 belong &0x40000000 CopyProtect,
980 >12 belong &0x10000000 NoCompression,
981 >12 belong &0x04000000 Relocation,
982 >12 belong &0x02000000 UseFasterCompression,
983 >16 belong x version %d
984
985 0 string package1 Newton package, NOS 2.x,
986 >12 belong &0x80000000 AutoRemove,
987 >12 belong &0x40000000 CopyProtect,
988 >12 belong &0x10000000 NoCompression,
989 >12 belong &0x04000000 Relocation,
990 >12 belong &0x02000000 UseFasterCompression,
991 >16 belong x version %d
992
993 0 string package4 Newton package,
994 >8 byte 8 NOS 1.x,
995 >8 byte 9 NOS 2.x,
996 >12 belong &0x80000000 AutoRemove,
997 >12 belong &0x40000000 CopyProtect,
998 >12 belong &0x10000000 NoCompression,
999
1000 # The following entries for the Apple II are for files that have
1001 # been transferred as raw binary data from an Apple, without having
1002 # been encapsulated by any of the above archivers.
1003 #
1004 # In general, Apple II formats are hard to identify because Apple DOS
1005 # and especially Apple ProDOS have strong typing in the file system and
1006 # therefore programmers never felt much need to include type information
1007 # in the files themselves.
1008 #
1009 # Eric Fischer <enf@pobox.com>
1010
1011 # AppleWorks word processor:
1012 #
1013 # This matches the standard tab stops for an AppleWorks file, but if
1014 # a file has a tab stop set in the first four columns this will fail.
1015 #
1016 # The "O" is really the magic number, but that's so common that it's
1017 # necessary to check the tab stops that follow it to avoid false positives.
1018
1019 4 string O==== AppleWorks word processor data
1020 >85 byte&0x01 >0 \b, zoomed
1021 >90 byte&0x01 >0 \b, paginated
1022 >92 byte&0x01 >0 \b, with mail merge
1023 #>91 byte x \b, left margin %d
1024
1025 # AppleWorks database:
1026 #
1027 # This isn't really a magic number, but it's the closest thing to one
1028 # that I could find. The 1 and 2 really mean "order in which you defined
1029 # categories" and "left to right, top to bottom," respectively; the D and R
1030 # mean that the cursor should move either down or right when you press Return.
1031
1032 #30 string \x01D AppleWorks database data
1033 #30 string \x02D AppleWorks database data
1034 #30 string \x01R AppleWorks database data
1035 #30 string \x02R AppleWorks database data
1036
1037 # AppleWorks spreadsheet:
1038 #
1039 # Likewise, this isn't really meant as a magic number. The R or C means
1040 # row- or column-order recalculation; the A or M means automatic or manual
1041 # recalculation.
1042
1043 #131 string RA AppleWorks spreadsheet data
1044 #131 string RM AppleWorks spreadsheet data
1045 #131 string CA AppleWorks spreadsheet data
1046 #131 string CM AppleWorks spreadsheet data
1047
1048 # Applesoft BASIC:
1049 #
1050 # This is incredibly sloppy, but will be true if the program was
1051 # written at its usual memory location of 2048 and its first line
1052 # number is less than 256. Yuck.
1053
1054 0 belong&0xff00ff 0x80000 Applesoft BASIC program data
1055 #>2 leshort x \b, first line number %d
1056
1057 # ORCA/EZ assembler:
1058 #
1059 # This will not identify ORCA/M source files, since those have
1060 # some sort of date code instead of the two zero bytes at 6 and 7
1061 # XXX Conflicts with ELF
1062 #4 belong&0xff00ffff 0x01000000 ORCA/EZ assembler source data
1063 #>5 byte x \b, build number %d
1064
1065 # Broderbund Fantavision
1066 #
1067 # I don't know what these values really mean, but they seem to recur.
1068 # Will they cause too many conflicts?
1069
1070 # Probably :-)
1071 #2 belong&0xFF00FF 0x040008 Fantavision movie data
1072
1073 # Some attempts at images.
1074 #
1075 # These are actually just bit-for-bit dumps of the frame buffer, so
1076 # there's really no reasonably way to distinguish them except for their
1077 # address (if preserved) -- 8192 or 16384 -- and their length -- 8192
1078 # or, occasionally, 8184.
1079 #
1080 # Nevertheless this will manage to catch a lot of images that happen
1081 # to have a solid-colored line at the bottom of the screen.
1082
1083 8144 string \x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F Apple II image with white background
1084 8144 string \x55\x2A\x55\x2A\x55\x2A\x55\x2A Apple II image with purple background
1085 8144 string \x2A\x55\x2A\x55\x2A\x55\x2A\x55 Apple II image with green background
1086 8144 string \xD5\xAA\xD5\xAA\xD5\xAA\xD5\xAA Apple II image with blue background
1087 8144 string \xAA\xD5\xAA\xD5\xAA\xD5\xAA\xD5 Apple II image with orange background
1088
1089 # Beagle Bros. Apple Mechanic fonts
1090
1091 0 belong&0xFF00FFFF 0x6400D000 Apple Mechanic font
1092
1093 # Apple Universal Disk Image Format (UDIF) - dmg files.
1094 # From Johan Gade.
1095 # These entries are disabled for now until we fix the following issues.
1096 #
1097 # Note there might be some problems with the "VAX COFF executable"
1098 # entry. Note this entry should be placed before the mac filesystem section,
1099 # particularly the "Apple Partition data" entry.
1100 #
1101 # The intended meaning of these tests is, that the file is only of the
1102 # specified type if both of the lines are correct - i.e. if the first
1103 # line matches and the second doesn't then it is not of that type.
1104 #
1105 #0 long 0x7801730d
1106 #>4 long 0x62626060 UDIF read-only zlib-compressed image (UDZO)
1107 #
1108 # Note that this entry is recognized correctly by the "Apple Partition
1109 # data" entry - however since this entry is more specific - this
1110 # information seems to be more useful.
1111 #0 long 0x45520200
1112 #>0x410 string disk\ image UDIF read/write image (UDRW)
1113
1114 # From: Toby Peterson <toby@apple.com>
1115 0 string bplist00 Apple binary property list
1116
1117 # Apple binary property list (bplist)
1118 # Assumes version bytes are hex.
1119 # Provides content hints for version 0 files. Assumes that the root
1120 # object is the first object (true for CoreFoundation implementation).
1121 # From: David Remahl <dremahl@apple.com>
1122 0 string bplist
1123 >6 byte x \bCoreFoundation binary property list data, version 0x%c
1124 >>7 byte x \b%c
1125 >6 string 00 \b
1126 >>8 byte&0xF0 0x00 \b
1127 >>>8 byte&0x0F 0x00 \b, root type: null
1128 >>>8 byte&0x0F 0x08 \b, root type: false boolean
1129 >>>8 byte&0x0F 0x09 \b, root type: true boolean
1130 >>8 byte&0xF0 0x10 \b, root type: integer
1131 >>8 byte&0xF0 0x20 \b, root type: real
1132 >>8 byte&0xF0 0x30 \b, root type: date
1133 >>8 byte&0xF0 0x40 \b, root type: data
1134 >>8 byte&0xF0 0x50 \b, root type: ascii string
1135 >>8 byte&0xF0 0x60 \b, root type: unicode string
1136 >>8 byte&0xF0 0x80 \b, root type: uid (CORRUPT)
1137 >>8 byte&0xF0 0xa0 \b, root type: array
1138 >>8 byte&0xF0 0xd0 \b, root type: dictionary
1139
1140 # Apple/NeXT typedstream data
1141 # Serialization format used by NeXT and Apple for various
1142 # purposes in YellowStep/Cocoa, including some nib files.
1143 # From: David Remahl <dremahl@apple.com>
1144 2 string typedstream NeXT/Apple typedstream data, big endian
1145 >0 byte x \b, version %hhd
1146 >0 byte <5 \b
1147 >>13 byte 0x81 \b
1148 >>>14 ubeshort x \b, system %hd
1149 2 string streamtyped NeXT/Apple typedstream data, little endian
1150 >0 byte x \b, version %hhd
1151 >0 byte <5 \b
1152 >>13 byte 0x81 \b
1153 >>>14 uleshort x \b, system %hd
1154
1155 #------------------------------------------------------------------------------
1156 # applix: file(1) magic for Applixware
1157 # From: Peter Soos <sp@osb.hu>
1158 #
1159 0 string *BEGIN Applixware
1160 >7 string WORDS Words Document
1161 >7 string GRAPHICS Graphic
1162 >7 string RASTER Bitmap
1163 >7 string SPREADSHEETS Spreadsheet
1164 >7 string MACRO Macro
1165 >7 string BUILDER Builder Object
1166
1167 #------------------------------------------------------------------------------
1168 # archive: file(1) magic for archive formats (see also "msdos" for self-
1169 # extracting compressed archives)
1170 #
1171 # cpio, ar, arc, arj, hpack, lha/lharc, rar, squish, uc2, zip, zoo, etc.
1172 # pre-POSIX "tar" archives are handled in the C code.
1173
1174 # POSIX tar archives
1175 257 string ustar\0 POSIX tar archive
1176 257 string ustar\040\040\0 GNU tar archive
1177
1178 # cpio archives
1179 #
1180 # Yes, the top two "cpio archive" formats *are* supposed to just be "short".
1181 # The idea is to indicate archives produced on machines with the same
1182 # byte order as the machine running "file" with "cpio archive", and
1183 # to indicate archives produced on machines with the opposite byte order
1184 # from the machine running "file" with "byte-swapped cpio archive".
1185 #
1186 # The SVR4 "cpio(4)" hints that there are additional formats, but they
1187 # are defined as "short"s; I think all the new formats are
1188 # character-header formats and thus are strings, not numbers.
1189 0 short 070707 cpio archive
1190 0 short 0143561 byte-swapped cpio archive
1191 0 string 070707 ASCII cpio archive (pre-SVR4 or odc)
1192 0 string 070701 ASCII cpio archive (SVR4 with no CRC)
1193 0 string 070702 ASCII cpio archive (SVR4 with CRC)
1194
1195 # Debian package (needs to go before regular portable archives)
1196 #
1197 0 string =!<arch>\ndebian
1198 >8 string debian-split part of multipart Debian package
1199 >8 string debian-binary Debian binary package
1200 >68 string >\0 (format %s)
1201 # These next two lines do not work, because a bzip2 Debian archive
1202 # still uses gzip for the control.tar (first in the archive). Only
1203 # data.tar varies, and the location of its filename varies too.
1204 # file/libmagic does not current have support for ascii-string based
1205 # (offsets) as of 2005-09-15.
1206 #>81 string bz2 \b, uses bzip2 compression
1207 #>84 string gz \b, uses gzip compression
1208 #>136 ledate x created: %s
1209
1210 # other archives
1211 0 long 0177555 very old archive
1212 0 short 0177555 very old PDP-11 archive
1213 0 long 0177545 old archive
1214 0 short 0177545 old PDP-11 archive
1215 0 long 0100554 apl workspace
1216 0 string =<ar> archive
1217
1218 # MIPS archive (needs to go before regular portable archives)
1219 #
1220 0 string =!<arch>\n__________E MIPS archive
1221 >20 string U with MIPS Ucode members
1222 >21 string L with MIPSEL members
1223 >21 string B with MIPSEB members
1224 >19 string L and an EL hash table
1225 >19 string B and an EB hash table
1226 >22 string X -- out of date
1227
1228 0 string -h- Software Tools format archive text
1229
1230 #
1231 # XXX - why are there multiple <ar> thingies? Note that 0x213c6172 is
1232 # "!<ar", so, for new-style (4.xBSD/SVR2andup) archives, we have:
1233 #
1234 # 0 string =!<arch> current ar archive
1235 # 0 long 0x213c6172 archive file
1236 #
1237 # and for SVR1 archives, we have:
1238 #
1239 # 0 string \<ar> System V Release 1 ar archive
1240 # 0 string =<ar> archive
1241 #
1242 # XXX - did Aegis really store shared libraries, breakpointed modules,
1243 # and absolute code program modules in the same format as new-style
1244 # "ar" archives?
1245 #
1246 0 string =!<arch> current ar archive
1247 >8 string __.SYMDEF random library
1248 >0 belong =65538 - pre SR9.5
1249 >0 belong =65539 - post SR9.5
1250 >0 beshort 2 - object archive
1251 >0 beshort 3 - shared library module
1252 >0 beshort 4 - debug break-pointed module
1253 >0 beshort 5 - absolute code program module
1254 0 string \<ar> System V Release 1 ar archive
1255 0 string =<ar> archive
1256 #
1257 # XXX - from "vax", which appears to collect a bunch of byte-swapped
1258 # thingies, to help you recognize VAX files on big-endian machines;
1259 # with "leshort", "lelong", and "string", that's no longer necessary....
1260 #
1261 0 belong 0x65ff0000 VAX 3.0 archive
1262 0 belong 0x3c61723e VAX 5.0 archive
1263 #
1264 0 long 0x213c6172 archive file
1265 0 lelong 0177555 very old VAX archive
1266 0 leshort 0177555 very old PDP-11 archive
1267 #
1268 # XXX - "pdp" claims that 0177545 can have an __.SYMDEF member and thus
1269 # be a random library (it said 0xff65 rather than 0177545).
1270 #
1271 0 lelong 0177545 old VAX archive
1272 >8 string __.SYMDEF random library
1273 0 leshort 0177545 old PDP-11 archive
1274 >8 string __.SYMDEF random library
1275 #
1276 # From "pdp" (but why a 4-byte quantity?)
1277 #
1278 0 lelong 0x39bed PDP-11 old archive
1279 0 lelong 0x39bee PDP-11 4.0 archive
1280
1281 # ARC archiver, from Daniel Quinlan (quinlan@yggdrasil.com)
1282 #
1283 # The first byte is the magic (0x1a), byte 2 is the compression type for
1284 # the first file (0x01 through 0x09), and bytes 3 to 15 are the MS-DOS
1285 # filename of the first file (null terminated). Since some types collide
1286 # we only test some types on basis of frequency: 0x08 (83%), 0x09 (5%),
1287 # 0x02 (5%), 0x03 (3%), 0x04 (2%), 0x06 (2%). 0x01 collides with terminfo.
1288 0 lelong&0x8080ffff 0x0000081a ARC archive data, dynamic LZW
1289 0 lelong&0x8080ffff 0x0000091a ARC archive data, squashed
1290 0 lelong&0x8080ffff 0x0000021a ARC archive data, uncompressed
1291 0 lelong&0x8080ffff 0x0000031a ARC archive data, packed
1292 0 lelong&0x8080ffff 0x0000041a ARC archive data, squeezed
1293 0 lelong&0x8080ffff 0x0000061a ARC archive data, crunched
1294 # [JW] stuff taken from idarc, obviously ARC successors:
1295 0 lelong&0x8080ffff 0x00000a1a PAK archive data
1296 0 lelong&0x8080ffff 0x0000141a ARC+ archive data
1297 0 lelong&0x8080ffff 0x0000481a HYP archive data
1298
1299 # Acorn archive formats (Disaster prone simpleton, m91dps@ecs.ox.ac.uk)
1300 # I can't create either SPARK or ArcFS archives so I have not tested this stuff
1301 # [GRR: the original entries collide with ARC, above; replaced with combined
1302 # version (not tested)]
1303 #0 byte 0x1a RISC OS archive (spark format)
1304 0 string \032archive RISC OS archive (ArcFS format)
1305 0 string Archive\000 RISC OS archive (ArcFS format)
1306
1307 # All these were taken from idarc, many could not be verified. Unfortunately,
1308 # there were many low-quality sigs, i.e. easy to trigger false positives.
1309 # Please notify me of any real-world fishy/ambiguous signatures and I'll try
1310 # to get my hands on the actual archiver and see if I find something better. [JW]
1311 # probably many can be enhanced by finding some 0-byte or control char near the start
1312
1313 # idarc calls this Crush/Uncompressed... *shrug*
1314 0 string CRUSH Crush archive data
1315 # Squeeze It (.sqz)
1316 0 string HLSQZ Squeeze It archive data
1317 # SQWEZ
1318 0 string SQWEZ SQWEZ archive data
1319 # HPack (.hpk)
1320 0 string HPAK HPack archive data
1321 # HAP
1322 0 string \x91\x33HF HAP archive data
1323 # MD/MDCD
1324 0 string MDmd MDCD archive data
1325 # LIM
1326 0 string LIM\x1a LIM archive data
1327 # SAR
1328 3 string LH5 SAR archive data
1329 # BSArc/BS2
1330 0 string \212\3SB \0 BSArc/BS2 archive data
1331 # MAR
1332 2 string =-ah MAR archive data
1333 # ACB
1334 0 belong&0x00f800ff 0x00800000 ACB archive data
1335 # CPZ
1336 # TODO, this is what idarc says: 0 string \0\0\0 CPZ archive data
1337 # JRC
1338 0 string JRchive JRC archive data
1339 # Quantum
1340 0 string DS\0 Quantum archive data
1341 # ReSOF
1342 0 string PK\3\6 ReSOF archive data
1343 # QuArk
1344 0 string 7\4 QuArk archive data
1345 # YAC
1346 14 string YC YAC archive data
1347 # X1
1348 0 string X1 X1 archive data
1349 0 string XhDr X1 archive data
1350 # CDC Codec (.dqt)
1351 0 belong&0xffffe000 0x76ff2000 CDC Codec archive data
1352 # AMGC
1353 0 string \xad6" AMGC archive data
1354 # NuLIB
1355 0 string NõFélå NuLIB archive data
1356 # PakLeo
1357 0 string LEOLZW PAKLeo archive data
1358 # ChArc
1359 0 string SChF ChArc archive data
1360 # PSA
1361 0 string PSA PSA archive data
1362 # CrossePAC
1363 0 string DSIGDCC CrossePAC archive data
1364 # Freeze
1365 0 string \x1f\x9f\x4a\x10\x0a Freeze archive data
1366 # KBoom
1367 0 string ¨MP¨ KBoom archive data
1368 # NSQ, must go after CDC Codec
1369 0 string \x76\xff NSQ archive data
1370 # DPA
1371 0 string Dirk\ Paehl DPA archive data
1372 # BA
1373 # TODO: idarc says "bytes 0-2 == bytes 3-5"
1374 # TTComp
1375 0 string \0\6 TTComp archive data
1376 # ESP, could this conflict with Easy Software Products' (e.g.ESP ghostscript) documentation?
1377 0 string ESP ESP archive data
1378 # ZPack
1379 0 string \1ZPK\1 ZPack archive data
1380 # Sky
1381 0 string \xbc\x40 Sky archive data
1382 # UFA
1383 0 string UFA UFA archive data
1384 # Dry
1385 0 string =-H2O DRY archive data
1386 # FoxSQZ
1387 0 string FOXSQZ FoxSQZ archive data
1388 # AR7
1389 0 string ,AR7 AR7 archive data
1390 # PPMZ
1391 0 string PPMZ PPMZ archive data
1392 # MS Compress
1393 4 string \x88\xf0\x27 MS Compress archive data
1394 # updated by Joerg Jenderek
1395 >9 string \0
1396 >>0 string KWAJ
1397 >>>7 string \321\003 MS Compress archive data
1398 >>>>14 ulong >0 \b, original size: %ld bytes
1399 >>>>18 ubyte >0x65
1400 >>>>>18 string x \b, was %.8s
1401 >>>>>(10.b-4) string x \b.%.3s
1402 # MP3 (archiver, not lossy audio compression)
1403 0 string MP3\x1a MP3-Archiver archive data
1404 # ZET
1405 0 string OZÝ ZET archive data
1406 # TSComp
1407 0 string \x65\x5d\x13\x8c\x08\x01\x03\x00 TSComp archive data
1408 # ARQ
1409 0 string gW\4\1 ARQ archive data
1410 # Squash
1411 3 string OctSqu Squash archive data
1412 # Terse
1413 0 string \5\1\1\0 Terse archive data
1414 # PUCrunch
1415 0 string \x01\x08\x0b\x08\xef\x00\x9e\x32\x30\x36\x31 PUCrunch archive data
1416 # UHarc
1417 0 string UHA UHarc archive data
1418 # ABComp
1419 0 string \2AB ABComp archive data
1420 0 string \3AB2 ABComp archive data
1421 # CMP
1422 0 string CO\0 CMP archive data
1423 # Splint
1424 0 string \x93\xb9\x06 Splint archive data
1425 # InstallShield
1426 0 string \x13\x5d\x65\x8c InstallShield Z archive Data
1427 # Gather
1428 1 string GTH Gather archive data
1429 # BOA
1430 0 string BOA BOA archive data
1431 # RAX
1432 0 string ULEB\xa RAX archive data
1433 # Xtreme
1434 0 string ULEB\0 Xtreme archive data
1435 # Pack Magic
1436 0 string @â\1\0 Pack Magic archive data
1437 # BTS
1438 0 belong&0xfeffffff 0x1a034465 BTS archive data
1439 # ELI 5750
1440 0 string Ora\ ELI 5750 archive data
1441 # QFC
1442 0 string \x1aFC\x1a QFC archive data
1443 0 string \x1aQF\x1a QFC archive data
1444 # PRO-PACK
1445 0 string RNC PRO-PACK archive data
1446 # 777
1447 0 string 777 777 archive data
1448 # LZS221
1449 0 string sTaC LZS221 archive data
1450 # HPA
1451 0 string HPA HPA archive data
1452 # Arhangel
1453 0 string LG Arhangel archive data
1454 # EXP1, uses bzip2
1455 0 string 0123456789012345BZh EXP1 archive data
1456 # IMP
1457 0 string IMP\xa IMP archive data
1458 # NRV
1459 0 string \x00\x9E\x6E\x72\x76\xFF NRV archive data
1460 # Squish
1461 0 string \x73\xb2\x90\xf4 Squish archive data
1462 # Par
1463 0 string PHILIPP Par archive data
1464 0 string PAR Par archive data
1465 # HIT
1466 0 string UB HIT archive data
1467 # SBX
1468 0 belong&0xfffff000 0x53423000 SBX archive data
1469 # NaShrink
1470 0 string NSK NaShrink archive data
1471 # SAPCAR
1472 0 string #\ CAR\ archive\ header SAPCAR archive data
1473 0 string CAR\ 2.00RG SAPCAR archive data
1474 # Disintegrator
1475 0 string DST Disintegrator archive data
1476 # ASD
1477 0 string ASD ASD archive data
1478 # InstallShield CAB
1479 0 string ISc( InstallShield CAB
1480 # TOP4
1481 0 string T4\x1a TOP4 archive data
1482 # BatComp left out: sig looks like COM executable
1483 # so TODO: get real 4dos batcomp file and find sig
1484 # BlakHole
1485 0 string BH\5\7 BlakHole archive data
1486 # BIX
1487 0 string BIX0 BIX archive data
1488 # ChiefLZA
1489 0 string ChfLZ ChiefLZA archive data
1490 # Blink
1491 0 string Blink Blink archive data
1492 # Logitech Compress
1493 0 string \xda\xfa Logitech Compress archive data
1494 # ARS-Sfx (FIXME: really a SFX? then goto COM/EXE)
1495 1 string (C)\ STEPANYUK ARS-Sfx archive data
1496 # AKT/AKT32
1497 0 string AKT32 AKT32 archive data
1498 0 string AKT AKT archive data
1499 # NPack
1500 0 string MSTSM NPack archive data
1501 # PFT
1502 0 string \0\x50\0\x14 PFT archive data
1503 # SemOne
1504 0 string SEM SemOne archive data
1505 # PPMD
1506 0 string \x8f\xaf\xac\x84 PPMD archive data
1507 # FIZ
1508 0 string FIZ FIZ archive data
1509 # MSXiE
1510 0 belong&0xfffff0f0 0x4d530000 MSXiE archive data
1511 # DeepFreezer
1512 0 belong&0xfffffff0 0x797a3030 DeepFreezer archive data
1513 # DC
1514 0 string =<DC- DC archive data
1515 # TPac
1516 0 string \4TPAC\3 TPac archive data
1517 # Ai
1518 0 string Ai\1\1\0 Ai archive data
1519 0 string Ai\1\0\0 Ai archive data
1520 # Ai32
1521 0 string Ai\2\0 Ai32 archive data
1522 0 string Ai\2\1 Ai32 archive data
1523 # SBC
1524 0 string SBC SBC archive data
1525 # Ybs
1526 0 string YBS Ybs archive data
1527 # DitPack
1528 0 string \x9e\0\0 DitPack archive data
1529 # DMS
1530 0 string DMS! DMS archive data
1531 # EPC
1532 0 string \x8f\xaf\xac\x8c EPC archive data
1533 # VSARC
1534 0 string VS\x1a VSARC archive data
1535 # PDZ
1536 0 string PDZ PDZ archive data
1537 # ReDuq
1538 0 string rdqx ReDuq archive data
1539 # GCA
1540 0 string GCAX GCA archive data
1541 # PPMN
1542 0 string pN PPMN archive data
1543 # WinImage
1544 3 string WINIMAGE WinImage archive data
1545 # Compressia
1546 0 string CMP0CMP Compressia archive data
1547 # UHBC
1548 0 string UHB UHBC archive data
1549 # WinHKI
1550 0 string \x61\x5C\x04\x05 WinHKI archive data
1551 # WWPack data file
1552 0 string WWP WWPack archive data
1553 # BSN (BSA, PTS-DOS)
1554 0 string \xffBSG BSN archive data
1555 1 string \xffBSG BSN archive data
1556 3 string \xffBSG BSN archive data
1557 1 string \0\xae\2 BSN archive data
1558 1 string \0\xae\3 BSN archive data
1559 1 string \0\xae\7 BSN archive data
1560 # AIN
1561 0 string \x33\x18 AIN archive data
1562 0 string \x33\x17 AIN archive data
1563 # XPA32
1564 0 string xpa\0\1 XPA32 archive data
1565 # SZip (TODO: doesn't catch all versions)
1566 0 string SZ\x0a\4 SZip archive data
1567 # XPack DiskImage
1568 0 string jm XPack DiskImage archive data
1569 # XPack Data
1570 0 string xpa XPack archive data
1571 # XPack Single Data
1572 0 string Í\ jm XPack single archive data
1573
1574 # TODO: missing due to unknown magic/magic at end of file:
1575 #DWC
1576 #ARG
1577 #ZAR
1578 #PC/3270
1579 #InstallIt
1580 #RKive
1581 #RK
1582 #XPack Diskimage
1583
1584 # These were inspired by idarc, but actually verified
1585 # Dzip archiver (.dz)
1586 0 string DZ Dzip archive data
1587 >2 byte x \b, version %i
1588 >3 byte x \b.%i
1589 # ZZip archiver (.zz)
1590 0 string ZZ\ \0\0 ZZip archive data
1591 0 string ZZ0 ZZip archive data
1592 # PAQ archiver (.paq)
1593 0 string \xaa\x40\x5f\x77\x1f\xe5\x82\x0d PAQ archive data
1594 0 string PAQ PAQ archive data
1595 >3 byte&0xf0 0x30
1596 >>3 byte x (v%c)
1597 # JAR archiver (.j), this is the successor to ARJ, not Java's JAR (which is essentially ZIP)
1598 0xe string \x1aJar\x1b JAR (ARJ Software, Inc.) archive data
1599 0 string JARCS JAR (ARJ Software, Inc.) archive data
1600
1601 # ARJ archiver (jason@jarthur.Claremont.EDU)
1602 0 leshort 0xea60 ARJ archive data
1603 >5 byte x \b, v%d,
1604 >8 byte &0x04 multi-volume,
1605 >8 byte &0x10 slash-switched,
1606 >8 byte &0x20 backup,
1607 >34 string x original name: %s,
1608 >7 byte 0 os: MS-DOS
1609 >7 byte 1 os: PRIMOS
1610 >7 byte 2 os: Unix
1611 >7 byte 3 os: Amiga
1612 >7 byte 4 os: Macintosh
1613 >7 byte 5 os: OS/2
1614 >7 byte 6 os: Apple ][ GS
1615 >7 byte 7 os: Atari ST
1616 >7 byte 8 os: NeXT
1617 >7 byte 9 os: VAX/VMS
1618 >3 byte >0 %d]
1619 # [JW] idarc says this is also possible
1620 2 leshort 0xea60 ARJ archive data
1621
1622 # HA archiver (Greg Roelofs, newt@uchicago.edu)
1623 # This is a really bad format. A file containing HAWAII will match this...
1624 #0 string HA HA archive data,
1625 #>2 leshort =1 1 file,
1626 #>2 leshort >1 %u files,
1627 #>4 byte&0x0f =0 first is type CPY
1628 #>4 byte&0x0f =1 first is type ASC
1629 #>4 byte&0x0f =2 first is type HSC
1630 #>4 byte&0x0f =0x0e first is type DIR
1631 #>4 byte&0x0f =0x0f first is type SPECIAL
1632 # suggestion: at least identify small archives (<1024 files)
1633 0 belong&0xffff00fc 0x48410000 HA archive data
1634 >2 leshort =1 1 file,
1635 >2 leshort >1 %u files,
1636 >4 byte&0x0f =0 first is type CPY
1637 >4 byte&0x0f =1 first is type ASC
1638 >4 byte&0x0f =2 first is type HSC
1639 >4 byte&0x0f =0x0e first is type DIR
1640 >4 byte&0x0f =0x0f first is type SPECIAL
1641
1642 # HPACK archiver (Peter Gutmann, pgut1@cs.aukuni.ac.nz)
1643 0 string HPAK HPACK archive data
1644
1645 # JAM Archive volume format, by Dmitry.Kohmanyuk@UA.net
1646 0 string \351,\001JAM\ JAM archive,
1647 >7 string >\0 version %.4s
1648 >0x26 byte =0x27 -
1649 >>0x2b string >\0 label %.11s,
1650 >>0x27 lelong x serial %08x,
1651 >>0x36 string >\0 fstype %.8s
1652
1653 # LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
1654 2 string -lh0- LHarc 1.x/ARX archive data [lh0]
1655 2 string -lh1- LHarc 1.x/ARX archive data [lh1]
1656 2 string -lz4- LHarc 1.x archive data [lz4]
1657 2 string -lz5- LHarc 1.x archive data [lz5]
1658 # [never seen any but the last; -lh4- reported in comp.compression:]
1659 2 string -lzs- LHa/LZS archive data [lzs]
1660 2 string -lh\40- LHa 2.x? archive data [lh ]
1661 2 string -lhd- LHa 2.x? archive data [lhd]
1662 2 string -lh2- LHa 2.x? archive data [lh2]
1663 2 string -lh3- LHa 2.x? archive data [lh3]
1664 2 string -lh4- LHa (2.x) archive data [lh4]
1665 2 string -lh5- LHa (2.x) archive data [lh5]
1666 2 string -lh6- LHa (2.x) archive data [lh6]
1667 2 string -lh7- LHa (2.x)/LHark archive data [lh7]
1668 >20 byte x - header level %d
1669 # taken from idarc [JW]
1670 2 string -lZ PUT archive data
1671 2 string -lz LZS archive data
1672 2 string -sw1- Swag archive data
1673
1674 # RAR archiver (Greg Roelofs, newt@uchicago.edu)
1675 0 string Rar! RAR archive data,
1676 >44 byte x v%0x,
1677 >10 byte >0 flags:
1678 >>10 byte &0x01 Archive volume,
1679 >>10 byte &0x02 Commented,
1680 >>10 byte &0x04 Locked,
1681 >>10 byte &0x08 Solid,
1682 >>10 byte &0x20 Authenticated,
1683 >35 byte 0 os: MS-DOS
1684 >35 byte 1 os: OS/2
1685 >35 byte 2 os: Win32
1686 >35 byte 3 os: Unix
1687 # some old version? idarc says:
1688 0 string RE\x7e\x5e RAR archive data
1689
1690 # SQUISH archiver (Greg Roelofs, newt@uchicago.edu)
1691 0 string SQSH squished archive data (Acorn RISCOS)
1692
1693 # UC2 archiver (Greg Roelofs, newt@uchicago.edu)
1694 # [JW] see exe section for self-extracting version
1695 0 string UC2\x1a UC2 archive data
1696
1697 # ZIP archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
1698 0 string PK\003\004
1699 >4 byte 0x09 Zip archive data, at least v0.9 to extract
1700 >4 byte 0x0a Zip archive data, at least v1.0 to extract
1701 >4 byte 0x0b Zip archive data, at least v1.1 to extract
1702 >4 byte 0x14
1703 >>30 ubelong !0x6d696d65 Zip archive data, at least v2.0 to extract
1704 >0x161 string WINZIP Zip archive data, WinZIP self-extracting
1705
1706
1707 # OpenOffice.org / KOffice / StarOffice documents
1708 # From: Abel Cheung <abel@oaka.org>
1709 # Listed here because they are basically zip files
1710 >>30 string mimetype
1711
1712 # KOffice (1.2 or above) formats
1713 >>>50 string vnd.kde. KOffice (>=1.2)
1714 >>>>58 string karbon Karbon document
1715 >>>>58 string kchart KChart document
1716 >>>>58 string kformula KFormula document
1717 >>>>58 string kivio Kivio document
1718 >>>>58 string kontour Kontour document
1719 >>>>58 string kpresenter KPresenter document
1720 >>>>58 string kspread KSpread document
1721 >>>>58 string kword KWord document
1722
1723 # OpenOffice formats (for OpenOffice 1.x / StarOffice 6/7)
1724 >>>50 string vnd.sun.xml. OpenOffice.org 1.x
1725 >>>>62 string writer Writer
1726 >>>>>68 byte !0x2e document
1727 >>>>>68 string .template template
1728 >>>>>68 string .global global document
1729 >>>>62 string calc Calc
1730 >>>>>66 byte !0x2e spreadsheet
1731 >>>>>66 string .template template
1732 >>>>62 string draw Draw
1733 >>>>>66 byte !0x2e document
1734 >>>>>66 string .template template
1735 >>>>62 string impress Impress
1736 >>>>>69 byte !0x2e presentation
1737 >>>>>69 string .template template
1738 >>>>62 string math Math document
1739
1740 # OpenDocument formats (for OpenOffice 2.x / StarOffice >= 8)
1741 # http://lists.oasis-open.org/archives/office/200505/msg00006.html
1742 >>>50 string vnd.oasis.opendocument. OpenDocument
1743 >>>>73 string text
1744 >>>>>77 byte !0x2d Text
1745 >>>>>77 string -template Text Template
1746 >>>>>77 string -web HTML Document Template
1747 >>>>>77 string -master Master Document
1748 >>>>73 string graphics Drawing
1749 >>>>>81 string -template Template
1750 >>>>73 string presentation Presentation
1751 >>>>>85 string -template Template
1752 >>>>73 string spreadsheet Spreadsheet
1753 >>>>>84 string -template Template
1754 >>>>73 string chart Chart
1755 >>>>>78 string -template Template
1756 >>>>73 string formula Formula
1757 >>>>>80 string -template Template
1758 >>>>73 string database Database
1759 >>>>73 string image Image
1760
1761 # Zoo archiver
1762 20 lelong 0xfdc4a7dc Zoo archive data
1763 >4 byte >48 \b, v%c.
1764 >>6 byte >47 \b%c
1765 >>>7 byte >47 \b%c
1766 >32 byte >0 \b, modify: v%d
1767 >>33 byte x \b.%d+
1768 >42 lelong 0xfdc4a7dc \b,
1769 >>70 byte >0 extract: v%d
1770 >>>71 byte x \b.%d+
1771
1772 # Shell archives
1773 10 string #\ This\ is\ a\ shell\ archive shell archive text
1774
1775 #
1776 # LBR. NB: May conflict with the questionable
1777 # "binary Computer Graphics Metafile" format.
1778 #
1779 0 string \0\ \ \ \ \ \ \ \ \ \ \ \0\0 LBR archive data
1780 #
1781 # PMA (CP/M derivative of LHA)
1782 #
1783 2 string -pm0- PMarc archive data [pm0]
1784 2 string -pm1- PMarc archive data [pm1]
1785 2 string -pm2- PMarc archive data [pm2]
1786 2 string -pms- PMarc SFX archive (CP/M, DOS)
1787 5 string -pc1- PopCom compressed executable (CP/M)
1788
1789 # From Rafael Laboissiere <rafael@laboissiere.net>
1790 # The Project Revision Control System (see
1791 # http://prcs.sourceforge.net) generates a packaged project
1792 # file which is recognized by the following entry:
1793 0 leshort 0xeb81 PRCS packaged project
1794
1795 # Microsoft cabinets
1796 # by David Necas (Yeti) <yeti@physics.muni.cz>
1797 #0 string MSCF\0\0\0\0 Microsoft cabinet file data,
1798 #>25 byte x v%d
1799 #>24 byte x \b.%d
1800 # MPi: All CABs have version 1.3, so this is pointless.
1801 # Better magic in debian-additions.
1802
1803 # GTKtalog catalogs
1804 # by David Necas (Yeti) <yeti@physics.muni.cz>
1805 4 string gtktalog\ GTKtalog catalog data,
1806 >13 string 3 version 3
1807 >>14 beshort 0x677a (gzipped)
1808 >>14 beshort !0x677a (not gzipped)
1809 >13 string >3 version %s
1810
1811 ############################################################################
1812 # Parity archive reconstruction file, the 'par' file format now used on Usenet.
1813 0 string PAR\0 PARity archive data
1814 >48 leshort =0 - Index file
1815 >48 leshort >0 - file number %d
1816
1817 # Felix von Leitner <felix-file@fefe.de>
1818 0 string d8:announce BitTorrent file
1819
1820 # Atari MSA archive - Teemu Hukkanen <tjhukkan@iki.fi>
1821 0 beshort 0x0e0f Atari MSA archive data
1822 >2 beshort x \b, %d sectors per track
1823 >4 beshort 0 \b, 1 sided
1824 >4 beshort 1 \b, 2 sided
1825 >6 beshort x \b, starting track: %d
1826 >8 beshort x \b, ending track: %d
1827
1828 # Alternate ZIP string (amc@arwen.cs.berkeley.edu)
1829 0 string PK00PK\003\004 Zip archive data
1830
1831 # ACE archive (from http://www.wotsit.org/download.asp?f=ace)
1832 # by Stefan `Sec` Zehl <sec@42.org>
1833 7 string **ACE** ACE archive data
1834 >15 byte >0 version %d
1835 >16 byte =0x00 \b, from MS-DOS
1836 >16 byte =0x01 \b, from OS/2
1837 >16 byte =0x02 \b, from Win/32
1838 >16 byte =0x03 \b, from Unix
1839 >16 byte =0x04 \b, from MacOS
1840 >16 byte =0x05 \b, from WinNT
1841 >16 byte =0x06 \b, from Primos
1842 >16 byte =0x07 \b, from AppleGS
1843 >16 byte =0x08 \b, from Atari
1844 >16 byte =0x09 \b, from Vax/VMS
1845 >16 byte =0x0A \b, from Amiga
1846 >16 byte =0x0B \b, from Next
1847 >14 byte x \b, version %d to extract
1848 >5 leshort &0x0080 \b, multiple volumes,
1849 >>17 byte x \b (part %d),
1850 >5 leshort &0x0002 \b, contains comment
1851 >5 leshort &0x0200 \b, sfx
1852 >5 leshort &0x0400 \b, small dictionary
1853 >5 leshort &0x0800 \b, multi-volume
1854 >5 leshort &0x1000 \b, contains AV-String
1855 >>30 string \x16*UNREGISTERED\x20VERSION* (unregistered)
1856 >5 leshort &0x2000 \b, with recovery record
1857 >5 leshort &0x4000 \b, locked
1858 >5 leshort &0x8000 \b, solid
1859 # Date in MS-DOS format (whatever that is)
1860 #>18 lelong x Created on
1861
1862 # sfArk : compression program for Soundfonts (sf2) by Dirk Jagdmann
1863 # <doj@cubic.org>
1864 0x1A string sfArk sfArk compressed Soundfont
1865 >0x15 string 2
1866 >>0x1 string >\0 Version %s
1867 >>0x2A string >\0 : %s
1868
1869 # DR-DOS 7.03 Packed File *.??_
1870 0 string Packed\ File\ Personal NetWare Packed File
1871 >12 string x \b, was "%.12s"
1872
1873 # EET archive
1874 # From: Tilman Sauerbeck <tilman@code-monkey.de>
1875 0 belong 0x1ee7ff00 EET archive
1876
1877 # rzip archives
1878 0 string RZIP rzip compressed data
1879 >4 byte x - version %d
1880 >5 byte x \b.%d
1881 >6 belong x (%d bytes)
1882
1883 # From: "Robert Dale" <robdale@gmail.com>
1884 0 belong 123 dar archive,
1885 >4 belong x label "%.8x
1886 >>8 belong x %.8x
1887 >>>12 beshort x %.4x"
1888 >14 byte 0x54 end slice
1889 >14 beshort 0x4e4e multi-part
1890 >14 beshort 0x4e53 multi-part, with -S
1891
1892 # Symbian installation files
1893 # http://www.thouky.co.uk/software/psifs/sis.html
1894 # http://developer.symbian.com/main/downloads/papers/SymbianOSv91/softwareinstallsis.pdf
1895 8 lelong 0x10000419 Symbian installation file
1896 >4 lelong 0x1000006D (EPOC release 3/4/5)
1897 >4 lelong 0x10003A12 (EPOC release 6)
1898 0 lelong 0x10201A7A Symbian installation file (Symbian OS 9.x)
1899
1900 # Type: Parity Archive
1901 # From: Daniel van Eeden <daniel_e@dds.nl>
1902 0 string PAR2 Parity Archive Volume Set
1903
1904 #------------------------------------------------------------------------------
1905 # asterix: file(1) magic for Aster*x; SunOS 5.5.1 gave the 4-character
1906 # strings as "long" - we assume they're just strings:
1907 # From: guy@netapp.com (Guy Harris)
1908 #
1909 0 string *STA Aster*x
1910 >7 string WORD Words Document
1911 >7 string GRAP Graphic
1912 >7 string SPRE Spreadsheet
1913 >7 string MACR Macro
1914 0 string 2278 Aster*x Version 2
1915 >29 byte 0x36 Words Document
1916 >29 byte 0x35 Graphic
1917 >29 byte 0x32 Spreadsheet
1918 >29 byte 0x38 Macro
1919
1920
1921 #------------------------------------------------------------------------------
1922 # att3b: file(1) magic for AT&T 3B machines
1923 #
1924 # The `versions' should be un-commented if they work for you.
1925 # (Was the problem just one of endianness?)
1926 #
1927 # 3B20
1928 #
1929 # The 3B20 conflicts with SCCS.
1930 #0 beshort 0550 3b20 COFF executable
1931 #>12 belong >0 not stripped
1932 #>22 beshort >0 - version %ld
1933 #0 beshort 0551 3b20 COFF executable (TV)
1934 #>12 belong >0 not stripped
1935 #>22 beshort >0 - version %ld
1936 #
1937 # WE32K
1938 #
1939 0 beshort 0560 WE32000 COFF
1940 >18 beshort ^00000020 object
1941 >18 beshort &00000020 executable
1942 >12 belong >0 not stripped
1943 >18 beshort ^00010000 N/A on 3b2/300 w/paging
1944 >18 beshort &00020000 32100 required
1945 >18 beshort &00040000 and MAU hardware required
1946 >20 beshort 0407 (impure)
1947 >20 beshort 0410 (pure)
1948 >20 beshort 0413 (demand paged)
1949 >20 beshort 0443 (target shared library)
1950 >22 beshort >0 - version %ld
1951 0 beshort 0561 WE32000 COFF executable (TV)
1952 >12 belong >0 not stripped
1953 #>18 beshort &00020000 - 32100 required
1954 #>18 beshort &00040000 and MAU hardware required
1955 #>22 beshort >0 - version %ld
1956 #
1957 # core file for 3b2
1958 0 string \000\004\036\212\200 3b2 core file
1959 >364 string >\0 of '%s'
1960
1961 #------------------------------------------------------------------------------
1962 # audio: file(1) magic for sound formats (see also "iff")
1963 #
1964 # Jan Nicolai Langfeldt (janl@ifi.uio.no), Dan Quinlan (quinlan@yggdrasil.com),
1965 # and others
1966 #
1967
1968 # Sun/NeXT audio data
1969 0 string .snd Sun/NeXT audio data:
1970 >12 belong 1 8-bit ISDN mu-law,
1971 >12 belong 2 8-bit linear PCM [REF-PCM],
1972 >12 belong 3 16-bit linear PCM,
1973 >12 belong 4 24-bit linear PCM,
1974 >12 belong 5 32-bit linear PCM,
1975 >12 belong 6 32-bit IEEE floating point,
1976 >12 belong 7 64-bit IEEE floating point,
1977 >12 belong 8 Fragmented sample data,
1978 >12 belong 10 DSP program,
1979 >12 belong 11 8-bit fixed point,
1980 >12 belong 12 16-bit fixed point,
1981 >12 belong 13 24-bit fixed point,
1982 >12 belong 14 32-bit fixed point,
1983 >12 belong 18 16-bit linear with emphasis,
1984 >12 belong 19 16-bit linear compressed,
1985 >12 belong 20 16-bit linear with emphasis and compression,
1986 >12 belong 21 Music kit DSP commands,
1987 >12 belong 23 8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
1988 >12 belong 24 compressed (8-bit CCITT G.722 ADPCM)
1989 >12 belong 25 compressed (3-bit CCITT G.723.3 ADPCM),
1990 >12 belong 26 compressed (5-bit CCITT G.723.5 ADPCM),
1991 >12 belong 27 8-bit A-law (CCITT G.711),
1992 >20 belong 1 mono,
1993 >20 belong 2 stereo,
1994 >20 belong 4 quad,
1995 >16 belong >0 %d Hz
1996
1997 # DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
1998 # that uses little-endian encoding and has a different magic number
1999 0 lelong 0x0064732E DEC audio data:
2000 >12 lelong 1 8-bit ISDN mu-law,
2001 >12 lelong 2 8-bit linear PCM [REF-PCM],
2002 >12 lelong 3 16-bit linear PCM,
2003 >12 lelong 4 24-bit linear PCM,
2004 >12 lelong 5 32-bit linear PCM,
2005 >12 lelong 6 32-bit IEEE floating point,
2006 >12 lelong 7 64-bit IEEE floating point,
2007 >12 belong 8 Fragmented sample data,
2008 >12 belong 10 DSP program,
2009 >12 belong 11 8-bit fixed point,
2010 >12 belong 12 16-bit fixed point,
2011 >12 belong 13 24-bit fixed point,
2012 >12 belong 14 32-bit fixed point,
2013 >12 belong 18 16-bit linear with emphasis,
2014 >12 belong 19 16-bit linear compressed,
2015 >12 belong 20 16-bit linear with emphasis and compression,
2016 >12 belong 21 Music kit DSP commands,
2017 >12 lelong 23 8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice enc.),
2018 >12 belong 24 compressed (8-bit CCITT G.722 ADPCM)
2019 >12 belong 25 compressed (3-bit CCITT G.723.3 ADPCM),
2020 >12 belong 26 compressed (5-bit CCITT G.723.5 ADPCM),
2021 >12 belong 27 8-bit A-law (CCITT G.711),
2022 >20 lelong 1 mono,
2023 >20 lelong 2 stereo,
2024 >20 lelong 4 quad,
2025 >16 lelong >0 %d Hz
2026
2027 # Creative Labs AUDIO stuff
2028 0 string MThd Standard MIDI data
2029 >8 beshort x (format %d)
2030 >10 beshort x using %d track
2031 >10 beshort >1 \bs
2032 >12 beshort&0x7fff x at 1/%d
2033 >12 beshort&0x8000 >0 SMPTE
2034
2035 0 string CTMF Creative Music (CMF) data
2036 0 string SBI SoundBlaster instrument data
2037 0 string Creative\ Voice\ File Creative Labs voice data
2038 # is this next line right? it came this way...
2039 >19 byte 0x1A
2040 >23 byte >0 - version %d
2041 >22 byte >0 \b.%d
2042
2043 # first entry is also the string "NTRK"
2044 0 belong 0x4e54524b MultiTrack sound data
2045 >4 belong x - version %ld
2046
2047 # Extended MOD format (*.emd) (Greg Roelofs, newt@uchicago.edu); NOT TESTED
2048 # [based on posting 940824 by "Dirk/Elastik", husberg@lehtori.cc.tut.fi]
2049 0 string EMOD Extended MOD sound data,
2050 >4 byte&0xf0 x version %d
2051 >4 byte&0x0f x \b.%d,
2052 >45 byte x %d instruments
2053 >83 byte 0 (module)
2054 >83 byte 1 (song)
2055
2056 # Real Audio (Magic .ra\0375)
2057 0 belong 0x2e7261fd RealAudio sound file
2058 0 string .RMF RealMedia file
2059
2060 # MTM/669/FAR/S3M/ULT/XM format checking [Aaron Eppert, aeppert@dialin.ind.net]
2061 # Oct 31, 1995
2062 # fixed by <doj@cubic.org> 2003-06-24
2063 # Too short...
2064 #0 string MTM MultiTracker Module sound file
2065 #0 string if Composer 669 Module sound data
2066 #0 string JN Composer 669 Module sound data (extended format)
2067 0 string MAS_U ULT(imate) Module sound data
2068
2069 #0 string FAR Module sound data
2070 #>4 string >\15 Title: "%s"
2071
2072 0x2c string SCRM ScreamTracker III Module sound data
2073 >0 string >\0 Title: "%s"
2074
2075 # Gravis UltraSound patches
2076 # From <ache@nagual.ru>
2077
2078 0 string GF1PATCH110\0ID#000002\0 GUS patch
2079 0 string GF1PATCH100\0ID#000002\0 Old GUS patch
2080
2081 #
2082 # Taken from loader code from mikmod version 2.14
2083 # by Steve McIntyre (stevem@chiark.greenend.org.uk)
2084 # <doj@cubic.org> added title printing on 2003-06-24
2085 0 string MAS_UTrack_V00
2086 >14 string >/0 ultratracker V1.%.1s module sound data
2087
2088 0 string UN05 MikMod UNI format module sound data
2089
2090 0 string Extended\ Module: Fasttracker II module sound data
2091 >17 string >\0 Title: "%s"
2092
2093 21 string/c =!SCREAM! Screamtracker 2 module sound data
2094 21 string BMOD2STM Screamtracker 2 module sound data
2095 1080 string M.K. 4-channel Protracker module sound data
2096 >0 string >\0 Title: "%s"
2097 1080 string M!K! 4-channel Protracker module sound data
2098 >0 string >\0 Title: "%s"
2099 1080 string FLT4 4-channel Startracker module sound data
2100 >0 string >\0 Title: "%s"
2101 1080 string FLT8 8-channel Startracker module sound data
2102 >0 string >\0 Title: "%s"
2103 1080 string 4CHN 4-channel Fasttracker module sound data
2104 >0 string >\0 Title: "%s"
2105 1080 string 6CHN 6-channel Fasttracker module sound data
2106 >0 string >\0 Title: "%s"
2107 1080 string 8CHN 8-channel Fasttracker module sound data
2108 >0 string >\0 Title: "%s"
2109 1080 string CD81 8-channel Octalyser module sound data
2110 >0 string >\0 Title: "%s"
2111 1080 string OKTA 8-channel Oktalyzer module sound data
2112 >0 string >\0 Title: "%s"
2113 # Not good enough.
2114 #1082 string CH
2115 #>1080 string >/0 %.2s-channel Fasttracker "oktalyzer" module sound data
2116 1080 string 16CN 16-channel Taketracker module sound data
2117 >0 string >\0 Title: "%s"
2118 1080 string 32CN 32-channel Taketracker module sound data
2119 >0 string >\0 Title: "%s"
2120
2121 # TOC sound files -Trevor Johnson <trevor@jpj.net>
2122 #
2123 0 string TOC TOC sound file
2124
2125 # sidfiles <pooka@iki.fi>
2126 # added name,author,(c) and new RSID type by <doj@cubic.org> 2003-06-24
2127 0 string SIDPLAY\ INFOFILE Sidplay info file
2128
2129 0 string PSID PlaySID v2.2+ (AMIGA) sidtune
2130 >4 beshort >0 w/ header v%d,
2131 >14 beshort =1 single song,
2132 >14 beshort >1 %d songs,
2133 >16 beshort >0 default song: %d
2134 >0x16 string >\0 name: "%s"
2135 >0x36 string >\0 author: "%s"
2136 >0x56 string >\0 copyright: "%s"
2137
2138 0 string RSID RSID sidtune PlaySID compatible
2139 >4 beshort >0 w/ header v%d,
2140 >14 beshort =1 single song,
2141 >14 beshort >1 %d songs,
2142 >16 beshort >0 default song: %d
2143 >0x16 string >\0 name: "%s"
2144 >0x36 string >\0 author: "%s"
2145 >0x56 string >\0 copyright: "%s"
2146
2147 # IRCAM <mpruett@sgi.com>
2148 # VAX and MIPS files are little-endian; Sun and NeXT are big-endian
2149 0 belong 0x64a30100 IRCAM file (VAX)
2150 0 belong 0x64a30200 IRCAM file (Sun)
2151 0 belong 0x64a30300 IRCAM file (MIPS little-endian)
2152 0 belong 0x64a30400 IRCAM file (NeXT)
2153
2154 # NIST SPHERE <mpruett@sgi.com>
2155 0 string NIST_1A\n\ \ \ 1024\n NIST SPHERE file
2156
2157 # Sample Vision <mpruett@sgi.com>
2158 0 string SOUND\ SAMPLE\ DATA\ Sample Vision file
2159
2160 # Audio Visual Research <tonigonenstein@users.sourceforge.net>
2161 0 string 2BIT Audio Visual Research file,
2162 >12 beshort =0 mono,
2163 >12 beshort =-1 stereo,
2164 >14 beshort x %d bits
2165 >16 beshort =0 unsigned,
2166 >16 beshort =-1 signed,
2167 >22 belong&0x00ffffff x %d Hz,
2168 >18 beshort =0 no loop,
2169 >18 beshort =-1 loop,
2170 >21 ubyte <=127 note %d,
2171 >22 byte =0 replay 5.485 KHz
2172 >22 byte =1 replay 8.084 KHz
2173 >22 byte =2 replay 10.971 Khz
2174 >22 byte =3 replay 16.168 Khz
2175 >22 byte =4 replay 21.942 KHz
2176 >22 byte =5 replay 32.336 KHz
2177 >22 byte =6 replay 43.885 KHz
2178 >22 byte =7 replay 47.261 KHz
2179
2180 # SGI SoundTrack <mpruett@sgi.com>
2181 0 string _SGI_SoundTrack SGI SoundTrack project file
2182 # ID3 version 2 tags <waschk@informatik.uni-rostock.de>
2183 0 string ID3 Audio file with ID3 version 2
2184 >3 ubyte <0xff \b%d.
2185 >4 ubyte <0xff \b%d tag
2186 >2584 string fLaC \b, FLAC encoding
2187 >>2588 byte&0x7f >0 \b, unknown version
2188 >>2588 byte&0x7f 0 \b
2189 # some common bits/sample values
2190 >>>2600 beshort&0x1f0 0x030 \b, 4 bit
2191 >>>2600 beshort&0x1f0 0x050 \b, 6 bit
2192 >>>2600 beshort&0x1f0 0x070 \b, 8 bit
2193 >>>2600 beshort&0x1f0 0x0b0 \b, 12 bit
2194 >>>2600 beshort&0x1f0 0x0f0 \b, 16 bit
2195 >>>2600 beshort&0x1f0 0x170 \b, 24 bit
2196 >>>2600 byte&0xe 0x0 \b, mono
2197 >>>2600 byte&0xe 0x2 \b, stereo
2198 >>>2600 byte&0xe 0x4 \b, 3 channels
2199 >>>2600 byte&0xe 0x6 \b, 4 channels
2200 >>>2600 byte&0xe 0x8 \b, 5 channels
2201 >>>2600 byte&0xe 0xa \b, 6 channels
2202 >>>2600 byte&0xe 0xc \b, 7 channels
2203 >>>2600 byte&0xe 0xe \b, 8 channels
2204 # some common sample rates
2205 >>>2597 belong&0xfffff0 0x0ac440 \b, 44.1 kHz
2206 >>>2597 belong&0xfffff0 0x0bb800 \b, 48 kHz
2207 >>>2597 belong&0xfffff0 0x07d000 \b, 32 kHz
2208 >>>2597 belong&0xfffff0 0x056220 \b, 22.05 kHz
2209 >>>2597 belong&0xfffff0 0x05dc00 \b, 24 kHz
2210 >>>2597 belong&0xfffff0 0x03e800 \b, 16 kHz
2211 >>>2597 belong&0xfffff0 0x02b110 \b, 11.025 kHz
2212 >>>2597 belong&0xfffff0 0x02ee00 \b, 12 kHz
2213 >>>2597 belong&0xfffff0 0x01f400 \b, 8 kHz
2214 >>>2597 belong&0xfffff0 0x177000 \b, 96 kHz
2215 >>>2597 belong&0xfffff0 0x0fa000 \b, 64 kHz
2216 >>>2601 byte&0xf >0 \b, >4G samples
2217 >2584 string !fLaC \b, MP3 encoding
2218
2219 # NSF (NES sound file) magic
2220 0 string NESM\x1a NES Sound File
2221 >14 string >\0 ("%s" by
2222 >46 string >\0 %s, copyright
2223 >78 string >\0 %s),
2224 >5 byte x version %d,
2225 >6 byte x %d tracks,
2226 >122 byte&0x2 =1 dual PAL/NTSC
2227 >122 byte&0x1 =1 PAL
2228 >122 byte&0x1 =0 NTSC
2229
2230 # Type: SNES SPC700 sound files
2231 # From: Josh Triplett <josh@freedesktop.org>
2232 >&0 string 0.30 \b, version %s
2233 >>0x23 byte 0x1B \b, without ID666 tag
2234 >>0x23 byte 0x1A \b, with ID666 tag
2235 >>>0x2E string >\0 \b, song "%.32s"
2236 >>>0x4E string >\0 \b, game "%.32s"
2237
2238 # Impulse tracker module (audio/x-it)