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