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