~ubuntu-branches/debian/sid/ampache/sid

« back to all changes in this revision

Viewing changes to modules/getid3/docs/structure.txt

  • Committer: Package Import Robot
  • Author(s): Charlie Smotherman
  • Date: 2013-08-27 13:19:48 UTC
  • mfrom: (1.2.9)
  • Revision ID: package-import@ubuntu.com-20130827131948-1czew0zxn6u70dtv
Tags: 3.6-rzb2752+dfsg-1
* New upsteam snapshot.  Contains important bug fixes to the installer.
* Correct typo in ampache-common.postrm.
* Remove courtousy copy of php-getid3, during repack.  Closes: #701526
* Update package to use dh_linktree to make the needed sym links to the
  needed system libs that were removed during repack.
* Update debian/rules to reflect upstreams removing/moving of modules.
* Update debian/ampache-common.install to reflect upstreams removal of files.
* Updated to use new apache2.4 API. Closes: #669756
* Updated /debian/po/de.po thx David Prévot for the patch.  Closes:  #691963
* M3U import is now ordered, fixed upstream.  Closes: #684984
* Text input area has been resized so IPv6 addresses will now fit, fixed
  upstream.  Closes:  #716230
* Added ampache-common.preinst to make sure that the courtousy copies of code
  dirs are empty so dh_linktree can do it's magic on upgrades.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/////////////////////////////////////////////////////////////////
2
 
/// getID3() by James Heinrich <info@getid3.org>               //
3
 
//  available at http://getid3.sourceforge.net                 //
4
 
//            or http://www.getid3.org                         //
5
 
/////////////////////////////////////////////////////////////////
6
 
//                                                             //
7
 
// changelog.txt - part of getID3()                            //
8
 
// See readme.txt for more details                             //
9
 
//                                                            ///
10
 
/////////////////////////////////////////////////////////////////
11
 
 
12
 
What does the returned data structure look like?
13
 
================================================
14
 
 
15
 
Hint: If you take a look at the nicely-formatted output of
16
 
/demos/demo.browse.php you can generally see where the data you want
17
 
is returned.
18
 
 
19
 
Note that what is described below is only a rough guide to what data
20
 
is actually returned by getID3(), since the actual data returned
21
 
depends entirely on what data is in your file, what type of file it
22
 
is, what kind of data is in the tags, etc. In addition, some formats
23
 
(Quicktime for example) use a freeform recursive structure that is
24
 
impossible to document completely.
25
 
 
26
 
In the vast majority of cases, all the data you'll need is located
27
 
in the root of the array or the special arrays described below in
28
 
Section 1 (['audio'], ['video'], ['tags_html'], ['replay_gain']).
29
 
 
30
 
It is suggested that for most applications you should use tag data
31
 
from the root ['tags_html'] array, as this is the only location
32
 
where data is stored in a consistant format: HTML-compatible
33
 
character entities (ie &#1234;) for characters outside the 0x20-0x7F
34
 
range (printable ISO-8859-1 characters). This data can be used as-is
35
 
for output in HTML, and can be converted to whatever character set
36
 
you wish to use if the output is not HTML.
37
 
 
38
 
If you want to merge all available tags (for example, ID3v2 + ID3v1)
39
 
into one array, you can call
40
 
getid3_lib::CopyTagsToComments($ThisFileInfo)
41
 
and you'll then have ['comments'] and ['comments_html'] which are
42
 
identical to ['tags'] and ['tags_html'] except the array is one
43
 
dimension shorter (no tag type array keys). For example, artist is:
44
 
['tags_html']['id3v1']['artist'][0] or ['comments_html']['artist'][0]
45
 
 
46
 
 
47
 
Some commonly-used information is found in these locations:
48
 
 
49
 
File type:        ['fileformat']                  // ex 'mp3'
50
 
Song length:      ['playtime_string']             // ex '3:45'    (minutes:seconds)
51
 
                  ['playtime_seconds']            // ex 225.13    (seconds)
52
 
Overall bitrate:  ['bitrate']                     // ex 113485.71 (bits-per-second - divide by 1000 for kbps)
53
 
Audio frequency:  ['audio']['sample_rate']        // ex 44100     (Hertz)
54
 
Artist name:      ['comments_html']['artist'][0]  // ex 'Elvis'   (if CopyTagsToComments() is used - see above)
55
 
                                                  //   more than one artist may be present, you may want to use implode:
56
 
                                                  //   implode(' & ', ['comments_html']['artist'])
57
 
 
58
 
 
59
 
/////////////////////////////////////////////////////////////////
60
 
 
61
 
array() {
62
 
                                         // SECTION 1: Values that are present for most or all file types
63
 
 
64
 
    ['getID3version']=>string()          // version of getID3() that scanned this file (ex: '1.6.2')
65
 
    ['error']=>array()                   // if present, contains one or more fatal error messages
66
 
    ['warning']=>array()                 // if present, contains one or more non-fatal warning messages
67
 
    ['exist']=>boolean()                 // does this file actually exist?
68
 
    ['fileformat']=>string()             // one of the standard filetype abbreviations ('mp3', 'riff', 'quicktime', etc)
69
 
    ['filename']=>string()               // filename only, no path
70
 
    ['filenamepath']=>string()           // full filename with path
71
 
    ['filepath']=>string()               // path to file, not including filename
72
 
    ['filesize']=>integer()              // filesize in bytes
73
 
    ['md5_file']=>string()               // md5 hash of entire file
74
 
    ['md5_data']=>string()               // md5 hash of portion of file excluding prepended and appeneded metainformation tags (ID3, APE, etc) - may be identical to ['md5_file']
75
 
    ['md5_data_source']=>string()        // md5 hash of original source file before compression (currently used by FLAC, OptimFROG, WavPack v4+)
76
 
    ['sha1_file']=>string()              // sha1 hash of entire file
77
 
    ['sha1_data']=>string()              // sha1 hash of portion of file excluding prepended and appeneded metainformation tags (ID3, APE, etc) - may be identical to ['md5_file']
78
 
    ['avdataoffset']=>integer()          // offset in bytes where audio/video data starts and prepended tags end
79
 
    ['avdataend']=>integer()             // offset in bytes where audio/video data ends and appended tags start
80
 
    ['bitrate']=>double()                // average bitrate for entire file (all audio/video streams), in bits per second
81
 
    ['mime_type']=>string()              // if present, MIME type of scanned file
82
 
    ['playtime_seconds']=>double()       // playing time of file, in seconds
83
 
    ['playtime_string']=>string()        // playing time of file, formatted as <minutes>:<seconds>
84
 
    ['tags']=>array()                    // array of all metainformation tags present in file ('id3v1', 'id3v2', 'ape', 'riff', 'asf', etc)
85
 
    ['audio']=>array() {
86
 
        ['bitrate']=>double()            // average bitrate for audio portion of file (all audio streams), in bits per second
87
 
        ['bitrate_mode']=>string()       // 'cbr' (Constant Bit Rate) or 'vbr' (Variable Bit Rate)
88
 
        ['bits_per_sample']=>integer()   //
89
 
        ['channelmode']=>string()        // 'mono' or 'stereo'
90
 
        ['channels']=>integer()          // number of audio channels
91
 
        ['codec']=>string()              // name of audio compression codec
92
 
        ['compression_ratio']=>double()  // ratio of compressed byte size of audio to uncompressed size
93
 
        ['dataformat']=>string()         // one of the standard filetype abbreviations ('mp3', 'wma', etc)
94
 
        ['encoder']=>string()            // name and version of encoder used to create file, if known
95
 
        ['lossless']=>boolean()          // true = lossless compression; false = lossy compression
96
 
        ['sample_rate']=>integer()
97
 
    }
98
 
    ['video']=>array() {
99
 
        ['bitrate']=>integer()           // average bitrate for video portion of file (all video streams), in bits per second
100
 
        ['bitrate_mode']=>string()       // 'cbr' (Constant Bit Rate) or 'vbr' (Variable Bit Rate)
101
 
        ['bits_per_sample']=>integer()   //
102
 
        ['codec']=>string()              // name of video compression codec
103
 
        ['compression_ratio']=>double()  // ratio of compressed byte size of video to uncompressed size
104
 
        ['dataformat']=>string()         // one of the standard filetype abbreviations ('avi', 'mpeg', etc)
105
 
        ['encoder']=>string()            // name and version of encoder used to create file, if known
106
 
        ['frame_rate']=>double()         // frames per second
107
 
        ['lossless']=>boolean()          // true = lossless compression; false = lossy compression
108
 
        ['resolution_x']=>integer()      // horizontal dimension of video/image in pixels
109
 
        ['resolution_y']=>integer()      // vertical dimension of video/image in pixels
110
 
        ['pixel_aspect_ratio']=>double() // pixel display aspect ratio
111
 
    }
112
 
    ['tags']=>array() {                  // array of array of strings containing best data from any available metainformation tag (APE, ID3v2, ID3v1, Lyrics3, Vorbis, ASF, RIFF, Real, etc.)
113
 
        [<key name>]=>array()            // <key name> can be anything, usually 'artist', 'title', etc. Contains array of one or more values (eg: multiple artists are possible)
114
 
    }
115
 
    ['tags_html']=>array() {             // identical to ['tags'], but with all entries converted to HTML entities as appropriate from various source encodings
116
 
        [<key name>]=>array()            //
117
 
    }
118
 
    ['replay_gain']=>array() {           // replay gain information combined from any source that contains this information (LAME, ID3v2, Vorbis, APE, etc)
119
 
        ['audiophile']=>array() {
120
 
            ['adjustment']=>double()
121
 
            ['originator']=>string()
122
 
            ['peak']=>double()
123
 
        }
124
 
        ['radio']=>array() {
125
 
            ['adjustment']=>double()
126
 
            ['originator']=>string()
127
 
            ['peak']=>double()
128
 
        }
129
 
    }
130
 
 
131
 
 
132
 
                                         // SECTION 2: Values that are present for specific file types only
133
 
 
134
 
    ['aac']=>array() {                            // AAC - Advanced Audio Coding / MPEG-4
135
 
        ['bitrate_distribution']=>array()         //
136
 
        ['header']=>array() {                     //
137
 
            ['channel_configuration']=>integer()  //
138
 
            ['crc_present']=>boolean()            //
139
 
            ['home']=>boolean()                   //
140
 
            ['layer']=>integer()                  //
141
 
            ['mpeg_version']=>integer()           //
142
 
            ['original']=>boolean()               //
143
 
            ['private']=>boolean()                //
144
 
            ['profile_id']=>integer()             //
145
 
            ['profile_text']=>string()            //
146
 
            ['sample_frequency']=>integer()       //
147
 
            ['sample_frequency_index']=>integer() //
148
 
            ['synch']=>integer()                  //
149
 
        }                                         //
150
 
        ['header_type']=>string()                 //
151
 
    }                                             //
152
 
                                                  //
153
 
    ['ape']=>array()                      //
154
 
    {                                     //
155
 
        ['comments']=>array() {           // array of array of strings containing best data from any available metainformation tag (APE, ID3v2, ID3v1, Lyrics3, Vorbis, ASF, RIFF, Real, etc.)
156
 
            [<key name>]=>array()         // <key name> can be anything, usually 'artist', 'title', etc. Contains array of one or more values (eg: multiple artists are possible)
157
 
        }                                 //
158
 
        ['footer']=>array()               //
159
 
        {                                 //
160
 
            ['flags']=>array()            //
161
 
            ['raw']=>array()              //
162
 
            ['tag_version']=>integer()    //
163
 
        }                                 //
164
 
        ['header']=>array()               //
165
 
        {                                 //
166
 
            ['flags']=>array()            //
167
 
            ['raw']=>array()              //
168
 
            ['tag_version']=>integer()    //
169
 
        }                                 //
170
 
        ['items']=>array() {              // array of array of strings containing metainformation
171
 
            [<key name>]=>array() {       // <key name> can be anything, usually 'artist', 'title', etc. Contains array of one or more values (eg: multiple artists are possible)
172
 
                ['data']=>array() {       // array of one or more Unicode values
173
 
                ['data_ascii']=>array() { // array of values converted approximately from Unicode to ASCII
174
 
                ['flags']=>array()        //
175
 
            }                             //
176
 
        }                                 //
177
 
        ['tag_offset_end']=>integer()     //
178
 
        ['tag_offset_start']=>integer()   //
179
 
    }                                     //
180
 
 
181
 
 
182
 
    ['asf']=>array() {                               // ASF - Advanced Streaming Format (ASF, Windows Media Audio (WMA), Windows Media Video (WMV))
183
 
        ['audio_media']=>array() {                   //
184
 
            [<x>]=>array() {                         //
185
 
                ['bitrate']=>integer()               //
186
 
                ['bits_per_sample']=>integer()       //
187
 
                ['channels']=>integer()              //
188
 
                ['codec']=>string()                  //
189
 
                ['codec_data']=>string()             //
190
 
                ['codec_data_size']=>integer()       //
191
 
                ['raw']=>array() {                   //
192
 
                    ['nAvgBytesPerSec']=>integer()   //
193
 
                    ['wBitsPerSample']=>integer()    //
194
 
                    ['nBlockAlign']=>integer()       //
195
 
                    ['nChannels']=>integer()         //
196
 
                    ['nSamplesPerSec']=>integer()    //
197
 
                    ['wFormatTag']=>integer()        //
198
 
                }                                    //
199
 
                ['sample_rate']=>integer()           //
200
 
            }                                        //
201
 
        }                                            //
202
 
        ['codec_list']=>array() {                    //
203
 
            ['codec_entries']=>array() {             //
204
 
                [<x>]=>array() {                     //
205
 
                    ['description']=>string()        //
206
 
                    ['description_ascii']=>string()  //
207
 
                    ['information']=>string()        //
208
 
                    ['name']=>string()               //
209
 
                    ['name_ascii']=>string()         //
210
 
                    ['type']=>string()               //
211
 
                    ['type_raw']=>integer()          //
212
 
                }                                    //
213
 
            }                                        //
214
 
            ['codec_entries_count']=>integer()       //
215
 
            ['objectid']=>string()                   //
216
 
            ['objectid_guid']=>string()              //
217
 
            ['objectsize']=>integer()                //
218
 
            ['reserved']=>string()                   //
219
 
            ['reserved_guid']=>string()              //
220
 
        }                                            //
221
 
        ['comments']=>array() {                      // array of comment values, derived from ['content_description']
222
 
            ['album']=>string()                      //
223
 
            ['artist']=>string()                     //
224
 
            ['comment']=>string()                    //
225
 
            ['copyright']=>string()                  //
226
 
            ['genre']=>string()                      //
227
 
            ['title']=>string()                      //
228
 
            ['track']=>string()                      //
229
 
            ['year']=>string()                       //
230
 
        }                                            //
231
 
        ['content_description']=>array() {           // raw values - should use values from ['comments'] instead
232
 
            ['author']=>string()                     //
233
 
            ['author_ascii']=>string()               //
234
 
            ['author_length']=>integer()             //
235
 
            ['copyright']=>string()                  //
236
 
            ['copyright_ascii']=>string()            //
237
 
            ['copyright_length']=>integer()          //
238
 
            ['description']=>string()                //
239
 
            ['description_ascii']=>string()          //
240
 
            ['description_length']=>integer()        //
241
 
            ['objectid']=>string()                   //
242
 
            ['objectid_guid']=>string()              //
243
 
            ['objectsize']=>integer()                //
244
 
            ['rating']=>string()                     //
245
 
            ['rating_ascii']=>string()               //
246
 
            ['rating_length']=>integer()             //
247
 
            ['title']=>string()                      //
248
 
            ['title_ascii']=>string()                //
249
 
            ['title_length']=>integer()              //
250
 
        }                                            //
251
 
        ['data_object']=>array() {                   //
252
 
            ['fileid']=>string()                     //
253
 
            ['fileid_guid']=>string()                //
254
 
            ['objectid']=>string()                   //
255
 
            ['objectid_guid']=>string()              //
256
 
            ['objectsize']=>integer()                //
257
 
            ['reserved']=>integer()                  //
258
 
            ['total_data_packets']=>integer()        //
259
 
        }                                            //
260
 
        ['extended_content_description']=>array() {  //
261
 
            ['content_descriptors']=>array() {       //
262
 
                [<x>]=>array() {                     //
263
 
                    ['name']=>string()               //
264
 
                    ['name_ascii']=>string()         //
265
 
                    ['name_length']=>integer()       //
266
 
                    ['value']=>string()              //
267
 
                    ['value_ascii']=>string()        //
268
 
                    ['value_length']=>integer()      //
269
 
                    ['value_type']=>integer()        //
270
 
                }                                    //
271
 
            }                                        //
272
 
            ['content_descriptors_count']=>integer() //
273
 
            ['objectid']=>string()                   //
274
 
            ['objectid_guid']=>string()              //
275
 
            ['objectsize']=>integer()                //
276
 
        }                                            //
277
 
        ['file_properties_object']=>array() {        //
278
 
            ['creation_date']=>double()              //
279
 
            ['creation_date_unix']=>double()         //
280
 
            ['data_packets']=>integer()              //
281
 
            ['fileid']=>string()                     //
282
 
            ['fileid_guid']=>string()                //
283
 
            ['filesize']=>integer()                  //
284
 
            ['flags']=>array() {                     //
285
 
                ['broadcast']=>boolean()             //
286
 
                ['seekable']=>boolean()              //
287
 
            }                                        //
288
 
            ['flags_raw']=>integer()                 //
289
 
            ['max_bitrate']=>integer()               //
290
 
            ['max_packet_size']=>integer()           //
291
 
            ['min_packet_size']=>integer()           //
292
 
            ['objectid']=>string()                   //
293
 
            ['objectid_guid']=>string()              //
294
 
            ['objectsize']=>integer()                //
295
 
            ['play_duration']=>double()              //
296
 
            ['preroll']=>integer()                   //
297
 
            ['send_duration']=>double()              //
298
 
        }                                            //
299
 
        ['header_extension_object']=>array() {       //
300
 
            ['extension_data']=>integer()            //
301
 
            ['extension_data_size']=>integer()       //
302
 
            ['objectid']=>string()                   //
303
 
            ['objectid_guid']=>string()              //
304
 
            ['objectsize']=>integer()                //
305
 
            ['reserved_1']=>string()                 //
306
 
            ['reserved_1_guid']=>string()            //
307
 
            ['reserved_2']=>integer()                //
308
 
        }                                            //
309
 
        ['header_object']=>array() {                 //
310
 
            ['headerobjects']=>integer()             //
311
 
            ['objectid']=>string()                   //
312
 
            ['objectid_guid']=>string()              //
313
 
            ['objectsize']=>integer()                //
314
 
            ['reserved1']=>integer()                 //
315
 
            ['reserved2']=>integer()                 //
316
 
        }                                            //
317
 
        ['marker_object']=>array() {                 //
318
 
            ['markers_count']=>integer()             //
319
 
            ['objectid']=>string()                   //
320
 
            ['objectid_guid']=>string()              //
321
 
            ['objectsize']=>integer()                //
322
 
            ['reserved']=>string()                   //
323
 
            ['reserved_2']=>integer()                //
324
 
            ['reserved_guid']=>string()              //
325
 
        }                                            //
326
 
        ['stream_bitrate_properties']=>array() {     //
327
 
            ['bitrate_records']=>array() {           //
328
 
                [<x>]=>array() {                     //
329
 
                    ['bitrate']=>integer()           //
330
 
                    ['flags_raw']=>integer()         //
331
 
                    ['flags']=>array() {             //
332
 
                        ['stream_number']=>integer() //
333
 
                    }                                //
334
 
                }                                    //
335
 
            }                                        //
336
 
            ['bitrate_records_count']=>integer()     //
337
 
            ['objectid']=>string()                   //
338
 
            ['objectid_guid']=>string()              //
339
 
            ['objectsize']=>integer()                //
340
 
        }                                            //
341
 
        ['stream_properties_object']=>array() {      //
342
 
            [<x>]=>array() {                         //
343
 
                ['error_correct_data']=>string()     //
344
 
                ['error_correct_guid']=>string()     //
345
 
                ['error_correct_type']=>string()     //
346
 
                ['error_data_length']=>integer()     //
347
 
                ['flags_raw']=>integer()             //
348
 
                ['flags']=>array() {                 //
349
 
                    ['encrypted']=>boolean()         //
350
 
                }                                    //
351
 
                ['objectid']=>string()               //
352
 
                ['objectid_guid']=>string()          //
353
 
                ['objectsize']=>integer()            //
354
 
                ['stream_type']=>string()            //
355
 
                ['stream_type_guid']=>string()       //
356
 
                ['time_offset']=>integer()           //
357
 
                ['type_data_length']=>integer()      //
358
 
                ['type_specific_data']=>string()     //
359
 
            }                                        //
360
 
        }                                            //
361
 
        ['video_media']=>array() {                   //
362
 
            [<x>]=>array() {                         //
363
 
                ['flags']=>integer()                 //
364
 
                ['format_data']=>array() {           //
365
 
                    ['bits_per_pixel']=>integer()    //
366
 
                    ['codec']=>string()              //
367
 
                    ['codec_data']=>boolean()        //
368
 
                    ['codec_fourcc']=>string()       //
369
 
                    ['colors_important']=>integer()  //
370
 
                    ['colors_used']=>integer()       //
371
 
                    ['format_data_size']=>integer()  //
372
 
                    ['horizontal_pels']=>integer()   //
373
 
                    ['image_height']=>integer()      //
374
 
                    ['image_size']=>integer()        //
375
 
                    ['image_width']=>integer()       //
376
 
                    ['reserved']=>integer()          //
377
 
                    ['vertical_pels']=>integer()     //
378
 
                }                                    //
379
 
                ['format_data_size']=>integer()      //
380
 
                ['image_height']=>integer()          //
381
 
                ['image_width']=>integer()           //
382
 
            }                                        //
383
 
        }                                            //
384
 
    }                                                //
385
 
 
386
 
 
387
 
    ['au']=>array() {                       // AU - Next/Sun AUdio format
388
 
        ['bits_per_sample']=>integer()      //
389
 
        ['channels']=>integer()             //
390
 
        ['comment']=>string()               //
391
 
        ['data_format']=>string()           //
392
 
        ['data_format_id']=>integer()       //
393
 
        ['data_size']=>integer()            //
394
 
        ['header_length']=>integer()        //
395
 
        ['sample_rate']=>integer()          //
396
 
        ['used_bits_per_sample']=>integer() //
397
 
    }                                       //
398
 
 
399
 
 
400
 
    ['bmp']=>array() {                          // BMP - OS/2 or Windows BitMaP
401
 
        ['header']=>array() {                   //
402
 
            ['compression']=>string()           //
403
 
            ['raw']=>array() {                  //
404
 
                ['bits_per_pixel']=>integer()   //
405
 
                ['bmp_data_size']=>integer()    //
406
 
                ['colors_important']=>integer() //
407
 
                ['colors_used']=>integer()      //
408
 
                ['compression']=>integer()      //
409
 
                ['data_offset']=>integer()      //
410
 
                ['filesize']=>integer()         //
411
 
                ['header_size']=>integer()      //
412
 
                ['height']=>integer()           //
413
 
                ['identifier']=>string()        //
414
 
                ['planes']=>integer()           //
415
 
                ['resolution_h']=>integer()     //
416
 
                ['resolution_v']=>integer()     //
417
 
                ['width']=>integer()            //
418
 
            }                                   //
419
 
        }                                       //
420
 
        ['type_os']=>string()                   //
421
 
        ['type_version']=>integer()             //
422
 
    }                                           //
423
 
 
424
 
 
425
 
    ['bonk']=>array() {                       // BONK - lossy/lossless audio compression (www.bonkenc.org)
426
 
        ['BONK']=>array() {                   //
427
 
            ['channels']=>integer()           //
428
 
            ['downsampling_ratio']=>integer() //
429
 
            ['joint_stereo']=>boolean()       //
430
 
            ['lossless']=>boolean()           //
431
 
            ['number_samples']=>integer()     //
432
 
            ['number_taps']=>integer()        //
433
 
            ['offset']=>integer()             //
434
 
            ['sample_rate']=>integer()        //
435
 
            ['samples_per_packet']=>integer() //
436
 
            ['size']=>integer()               //
437
 
            ['version']=>integer()            //
438
 
        }                                     //
439
 
        ['INFO']=>array() {                   //
440
 
            ['size']=>integer()               //
441
 
            ['offset']=>integer()             //
442
 
            ['version']=>integer()            //
443
 
            [<x>]=>array() {                  //
444
 
                ['nextbit']=>integer()        //
445
 
                ['offset']=>integer()         //
446
 
            }                                 //
447
 
        }                                     //
448
 
        ['dataend']=>integer()                //
449
 
        ['dataoffset']=>integer()             //
450
 
    }                                         //
451
 
 
452
 
 
453
 
    ['flac']=>array() {                         // FLAC - Free Lossless Audio Compressor
454
 
        ['SEEKTABLE']=>array() {                //
455
 
            [<x>]=>array() {                    //
456
 
                ['offset']=>integer()           //
457
 
                ['samples']=>integer()          //
458
 
            }                                   //
459
 
            ['placeholders']=>integer()         //
460
 
            ['raw']=>array() {                  //
461
 
                ['block_data']=>string()        //
462
 
                ['block_length']=>integer()     //
463
 
                ['block_type']=>integer()       //
464
 
                ['block_type_text']=>string()   //
465
 
                ['last_meta_block']=>boolean()  //
466
 
                ['offset']=>integer()           //
467
 
            }                                   //
468
 
        }                                       //
469
 
        ['STREAMINFO']=>array() {               //
470
 
            ['audio_signature']=>string()       //
471
 
            ['bits_per_sample']=>integer()      //
472
 
            ['channels']=>integer()             //
473
 
            ['max_block_size']=>integer()       //
474
 
            ['max_frame_size']=>integer()       //
475
 
            ['min_block_size']=>integer()       //
476
 
            ['min_frame_size']=>integer()       //
477
 
            ['raw']=>array() {                  //
478
 
                ['block_data']=>string()        //
479
 
                ['block_length']=>integer()     //
480
 
                ['block_type']=>integer()       //
481
 
                ['block_type_text']=>string()   //
482
 
                ['last_meta_block']=>boolean()  //
483
 
                ['offset']=>integer()           //
484
 
            }                                   //
485
 
            ['sample_rate']=>integer()          //
486
 
            ['samples_stream']=>integer()       //
487
 
        }                                       //
488
 
        ['VORBIS_COMMENT']=>array() {           //
489
 
            ['raw']=>array() {                  //
490
 
                ['block_data']=>string()        //
491
 
                ['block_length']=>integer()     //
492
 
                ['block_type']=>integer()       //
493
 
                ['block_type_text']=>string()   //
494
 
                ['last_meta_block']=>boolean()  //
495
 
                ['offset']=>integer()           //
496
 
            }                                   //
497
 
        }                                       //
498
 
        ['compressed_audio_bytes']=>integer()   //
499
 
        ['compression_ratio']=>double()         //
500
 
        ['uncompressed_audio_bytes']=>integer() //
501
 
    }                                           //
502
 
 
503
 
 
504
 
    ['gif']=>array() {                             // GIF - Graphics Interchange Format
505
 
        ['global_color_table']=>array() {          //
506
 
            [<x>]=>integer()                       //
507
 
        }                                          //
508
 
        ['header']=>array() {                      //
509
 
            ['bits_per_pixel']=>integer()          //
510
 
            ['flags']=>array() {                   //
511
 
                ['global_color_sorted']=>boolean() //
512
 
                ['global_color_table']=>boolean()  //
513
 
            }                                      //
514
 
            ['global_color_size']=>integer()       //
515
 
            ['raw']=>array() {                     //
516
 
                ['aspect_ratio']=>integer()        //
517
 
                ['bg_color_index']=>integer()      //
518
 
                ['flags']=>integer()               //
519
 
                ['height']=>integer()              //
520
 
                ['identifier']=>string()           //
521
 
                ['version']=>string()              //
522
 
                ['width']=>integer()               //
523
 
            }                                      //
524
 
        }                                          //
525
 
        ['version']=>string()                      //
526
 
    }                                              //
527
 
 
528
 
 
529
 
    ['id3v1']=>array() {                // ID3v1
530
 
        ['album']=>string()             //
531
 
        ['artist']=>string()            //
532
 
        ['comment']=>string()           //
533
 
        ['genre']=>string()             //
534
 
        ['genreid']=>integer()          //
535
 
        ['title']=>string()             //
536
 
        ['track']=>integer()            //
537
 
        ['year']=>string()              //
538
 
        ['padding_valid']=>boolean()    //
539
 
        ['comments']=>array()           //
540
 
        ['tag_offset_start']=>integer() //
541
 
        ['tag_offset_end']=>integer()   //
542
 
    }                                   //
543
 
 
544
 
 
545
 
    ['id3v2']=>array() {                                 // ID3v2 - www.id3.org
546
 
        [<frame name>]=>array() {                        // <frame name> can be any of the 4-character (3-character in ID3v2.2) frame names allowed in the ID3v2 spec. Exact contents of returned array data varies with frame type.
547
 
            [<x>]=>array() {                             // some frames types allow multiple values ('COMM' for example), others do not and do not have this array level
548
 
                ['asciidata']=>boolean()                 //
549
 
                ['asciidescription']=>string()           //
550
 
                ['data']=>boolean()                      //
551
 
                ['datalength']=>integer()                //
552
 
                ['dataoffset']=>integer()                //
553
 
                ['description']=>string()                //
554
 
                ['encoding']=>string()                   //
555
 
                ['encodingid']=>integer()                //
556
 
                ['flags']=>array() {                     //
557
 
                    ['Encryption']=>boolean()            //
558
 
                    ['FileAlterPreservation']=>boolean() //
559
 
                    ['GroupingIdentity']=>boolean()      //
560
 
                    ['ReadOnly']=>boolean()              //
561
 
                    ['TagAlterPreservation']=>boolean()  //
562
 
                    ['compression']=>boolean()           //
563
 
                }                                        //
564
 
                ['framenamelong']=>string()              //
565
 
                ['language']=>string()                   //
566
 
                ['languagename']=>string()               //
567
 
            }                                            //
568
 
        }                                                //
569
 
        ['comments']=>array() {                          // array of array of strings containing best data from any available metainformation tag (APE, ID3v2, ID3v1, Lyrics3, Vorbis, ASF, RIFF, Real, etc.)
570
 
            [<key name>]=>array()                        // <key name> can be anything, usually 'artist', 'title', etc. Contains array of one or more values (eg: multiple artists are possible)
571
 
        }                                                //
572
 
        ['flags']=>array() {                             //
573
 
            ['experim']=>string()                        //
574
 
            ['exthead']=>string()                        //
575
 
            ['unsynch']=>string()                        //
576
 
        }                                                //
577
 
        ['header']=>boolean()                            //
578
 
        ['headerlength']=>integer()                      //
579
 
        ['majorversion']=>integer()                      //
580
 
        ['minorversion']=>integer()                      //
581
 
        ['padding']=>array() {                           //
582
 
            ['length']=>integer()                        //
583
 
            ['start']=>integer()                         //
584
 
            ['valid']=>boolean()                         //
585
 
        }                                                //
586
 
        ['tag_offset_end']=>integer()                    //
587
 
        ['tag_offset_start']=>integer()                  //
588
 
    }                                                    //
589
 
 
590
 
 
591
 
    ['iso']=>array() {                                           // ISO-9660 - CD-ROM Image
592
 
        ['directories']=>array() {                               //
593
 
            [<x>]=>array() {                                     //
594
 
                [<x>]=>array() {                                 //
595
 
                    ['file_flags']=>array() {                    //
596
 
                        ['associated']=>boolean()                //
597
 
                        ['directory']=>boolean()                 //
598
 
                        ['extended']=>boolean()                  //
599
 
                        ['hidden']=>boolean()                    //
600
 
                        ['multiple']=>boolean()                  //
601
 
                        ['permissions']=>boolean()               //
602
 
                    }                                            //
603
 
                    ['file_identifier_ascii']=>string()          //
604
 
                    ['filename']=>string()                       //
605
 
                    ['filesize']=>integer()                      //
606
 
                    ['offset_bytes']=>integer()                  //
607
 
                    ['raw']=>array() {                           //
608
 
                        ['extended_attribute_length']=>integer() //
609
 
                        ['file_flags']=>integer()                //
610
 
                        ['file_identifier']=>string()            //
611
 
                        ['file_identifier_length']=>integer()    //
612
 
                        ['file_unit_size']=>integer()            //
613
 
                        ['filesize']=>integer()                  //
614
 
                        ['interleave_gap_size']=>integer()       //
615
 
                        ['length']=>integer()                    //
616
 
                        ['offset_logical']=>integer()            //
617
 
                        ['recording_date_time']=>string()        //
618
 
                        ['volume_sequence_number']=>integer()    //
619
 
                    }                                            //
620
 
                    ['recording_timestamp']=>integer()           //
621
 
                }                                                //
622
 
            }                                                    //
623
 
        }                                                        //
624
 
        ['files']=>array() {                                     // multidimensional tree-structure array listing of all files and directories in image
625
 
            [<directory name>]=>array()                          // entries of type array are directories (key is directory name), may contain files and/or other subdirectories
626
 
            [<file name>]=>integer()                             // entries of type integer are files (key is file name, value is file size in bytes)
627
 
        }                                                        //
628
 
        ['path_table']=>array() {                                //
629
 
            ['directories']=>array() {                           //
630
 
                [<x>]=>array() {                                 //
631
 
                    ['extended_length']=>integer()               //
632
 
                    ['full_path']=>string()                      //
633
 
                    ['length']=>integer()                        //
634
 
                    ['location_bytes']=>integer()                //
635
 
                    ['location_logical']=>integer()              //
636
 
                    ['name']=>string()                           //
637
 
                    ['name_ascii']=>string()                     //
638
 
                    ['parent_directory']=>integer()              //
639
 
                }                                                //
640
 
            }                                                    //
641
 
            ['offset']=>integer()                                //
642
 
            ['raw']=>string()                                    //
643
 
        }                                                        //
644
 
        ['primary_volume_descriptor']=>array() {                 //
645
 
            ['abstract_file_identifier']=>string()               //
646
 
            ['application_identifier']=>string()                 //
647
 
            ['bibliographic_file_identifier']=>string()          //
648
 
            ['copyright_file_identifier']=>string()              //
649
 
            ['data_preparer_identifier']=>string()               //
650
 
            ['offset']=>integer()                                //
651
 
            ['publisher_identifier']=>string()                   //
652
 
            ['raw']=>array() {                                   //
653
 
                ['abstract_file_identifier']=>string()           //
654
 
                ['application_data']=>string()                   //
655
 
                ['application_identifier']=>string()             //
656
 
                ['bibliographic_file_identifier']=>string()      //
657
 
                ['copyright_file_identifier']=>string()          //
658
 
                ['data_preparer_identifier']=>string()           //
659
 
                ['file_structure_version']=>integer()            //
660
 
                ['logical_block_size']=>integer()                //
661
 
                ['path_table_l_location']=>integer()             //
662
 
                ['path_table_l_opt_location']=>integer()         //
663
 
                ['path_table_m_location']=>integer()             //
664
 
                ['path_table_m_opt_location']=>integer()         //
665
 
                ['path_table_size']=>integer()                   //
666
 
                ['publisher_identifier']=>string()               //
667
 
                ['root_directory_record']=>string()              //
668
 
                ['standard_identifier']=>string()                //
669
 
                ['system_identifier']=>string()                  //
670
 
                ['unused_1']=>string()                           //
671
 
                ['unused_2']=>string()                           //
672
 
                ['unused_3']=>string()                           //
673
 
                ['unused_4']=>integer()                          //
674
 
                ['volume_creation_date_time']=>string()          //
675
 
                ['volume_descriptor_type']=>integer()            //
676
 
                ['volume_descriptor_version']=>integer()         //
677
 
                ['volume_effective_date_time']=>string()         //
678
 
                ['volume_expiration_date_time']=>string()        //
679
 
                ['volume_identifier']=>string()                  //
680
 
                ['volume_modification_date_time']=>string()      //
681
 
                ['volume_sequence_number']=>integer()            //
682
 
                ['volume_set_identifier']=>string()              //
683
 
                ['volume_set_size']=>integer()                   //
684
 
                ['volume_space_size']=>integer()                 //
685
 
            }                                                    //
686
 
            ['system_identifier']=>string()                      //
687
 
            ['volume_creation_date_time']=>integer()             //
688
 
            ['volume_effective_date_time']=>boolean()            //
689
 
            ['volume_expiration_date_time']=>boolean()           //
690
 
            ['volume_identifier']=>string()                      //
691
 
            ['volume_modification_date_time']=>integer()         //
692
 
            ['volume_set_identifier']=>string()                  //
693
 
        }                                                        //
694
 
        ['supplementary_volume_descriptor']=>array() {           //
695
 
            ['abstract_file_identifier']=>string()               //
696
 
            ['application_identifier']=>string()                 //
697
 
            ['bibliographic_file_identifier']=>string()          //
698
 
            ['copyright_file_identifier']=>string()              //
699
 
            ['data_preparer_identifier']=>string()               //
700
 
            ['offset']=>integer()                                //
701
 
            ['publisher_identifier']=>string()                   //
702
 
            ['raw']=>array() {                                   //
703
 
                ['abstract_file_identifier']=>string()           //
704
 
                ['application_data']=>string()                   //
705
 
                ['application_identifier']=>string()             //
706
 
                ['bibliographic_file_identifier']=>string()      //
707
 
                ['copyright_file_identifier']=>string()          //
708
 
                ['data_preparer_identifier']=>string()           //
709
 
                ['file_structure_version']=>integer()            //
710
 
                ['logical_block_size']=>integer()                //
711
 
                ['path_table_l_location']=>integer()             //
712
 
                ['path_table_l_opt_location']=>integer()         //
713
 
                ['path_table_m_location']=>integer()             //
714
 
                ['path_table_m_opt_location']=>integer()         //
715
 
                ['path_table_size']=>integer()                   //
716
 
                ['publisher_identifier']=>string()               //
717
 
                ['root_directory_record']=>string()              //
718
 
                ['standard_identifier']=>string()                //
719
 
                ['system_identifier']=>string()                  //
720
 
                ['unused_1']=>string()                           //
721
 
                ['unused_2']=>string()                           //
722
 
                ['unused_3']=>string()                           //
723
 
                ['unused_4']=>integer()                          //
724
 
                ['volume_creation_date_time']=>string()          //
725
 
                ['volume_descriptor_type']=>integer()            //
726
 
                ['volume_descriptor_version']=>integer()         //
727
 
                ['volume_effective_date_time']=>string()         //
728
 
                ['volume_expiration_date_time']=>string()        //
729
 
                ['volume_identifier']=>string()                  //
730
 
                ['volume_modification_date_time']=>string()      //
731
 
                ['volume_sequence_number']=>integer()            //
732
 
                ['volume_set_identifier']=>string()              //
733
 
                ['volume_set_size']=>integer()                   //
734
 
                ['volume_space_size']=>integer()                 //
735
 
            }                                                    //
736
 
            ['system_identifier']=>string()                      //
737
 
            ['volume_creation_date_time']=>integer()             //
738
 
            ['volume_effective_date_time']=>boolean()            //
739
 
            ['volume_expiration_date_time']=>boolean()           //
740
 
            ['volume_identifier']=>string()                      //
741
 
            ['volume_modification_date_time']=>integer()         //
742
 
            ['volume_set_identifier']=>string()                  //
743
 
        }                                                        //
744
 
    }                                                            //
745
 
 
746
 
 
747
 
    ['jpg']=>array() {    // JPEG - still image
748
 
        ['exif']=>array() // data returned from PHP's exif_read_data() function
749
 
    }                     //
750
 
 
751
 
 
752
 
    ['la']=>array() {                        // LA - Lossless Audio (www.lossless-audio.com)
753
 
        ['raw']=>array() {
754
 
            ['format']=>integer()            //
755
 
            ['flags']=>integer()             //
756
 
        }                                    //
757
 
        ['flags']=>array() {                 //
758
 
            ['seekable']=>boolean()          //
759
 
            ['high_compression']=>boolean()  //
760
 
        }                                    //
761
 
        ['bits_per_sample']=>integer()       //
762
 
        ['bytes_per_sample']=>integer()      //
763
 
        ['bytes_per_second']=>integer()      //
764
 
        ['channels']=>integer()              //
765
 
        ['compression_ratio']=>double()      //
766
 
        ['format_size']=>integer()           //
767
 
        ['header_size']=>integer()           //
768
 
        ['original_crc']=>double()           //
769
 
        ['sample_rate']=>integer()           //
770
 
        ['samples']=>integer()               //
771
 
        ['uncompressed_size']=>integer()     //
772
 
        ['version']=>double()                //
773
 
        ['version_major']=>integer()         //
774
 
        ['version_minor']=>integer()         //
775
 
        ['footerstart']=>double()            //
776
 
    }
777
 
 
778
 
 
779
 
    ['lpac']=>array() {                               // LPAC - Lossless Predictive Audio Compressor
780
 
        ['block_length']=>integer()                   //
781
 
        ['file_version']=>integer()                   //
782
 
        ['flags']=>array() {                          //
783
 
            ['16_bit']=>boolean()                     //
784
 
            ['24_bit']=>boolean()                     //
785
 
            ['adaptive_prediction_order']=>boolean()  //
786
 
            ['adaptive_quantization']=>boolean()      //
787
 
            ['fast_compress']=>boolean()              //
788
 
            ['is_wave']=>boolean()                    //
789
 
            ['joint_stereo']=>boolean()               //
790
 
            ['max_prediction_order']=>integer()       //
791
 
            ['quantization']=>integer()               //
792
 
            ['random_access']=>boolean()              //
793
 
            ['stereo']=>boolean()                     //
794
 
        }                                             //
795
 
        ['raw']=>array() {                            //
796
 
            ['audio_type']=>integer()                 //
797
 
            ['parameters']=>double()                  //
798
 
        }                                             //
799
 
        ['total_samples']=>integer()                  //
800
 
    }                                                 //
801
 
 
802
 
 
803
 
    ['lyrics3']=>array() {                // Lyrics3 - metainformation tags
804
 
        ['comments']=>array() {           //
805
 
            ['album']=>string()           //
806
 
            ['artist']=>string()          //
807
 
            ['author']=>string()          //
808
 
            ['comment']=>string()         //
809
 
            ['title']=>string()           //
810
 
        }                                 //
811
 
        ['flags']=>array() {              //
812
 
            ['lyrics']=>boolean()         //
813
 
            ['timestamps']=>boolean()     //
814
 
        }                                 //
815
 
        ['images']=>array() {             //
816
 
            [<x>]=>array() {              //
817
 
                ['description']=>string() //
818
 
                ['filename']=>string()    //
819
 
                ['timestamp']=>integer()  //
820
 
            }                             //
821
 
        }                                 //
822
 
        ['raw']=>array() {                //
823
 
            ['offset_start']=>integer()   //
824
 
            ['offset_end']=>integer()     //
825
 
            ['AUT']=>string()             //
826
 
            ['EAL']=>string()             //
827
 
            ['EAR']=>string()             //
828
 
            ['ETT']=>string()             //
829
 
            ['IMG']=>string()             //
830
 
            ['IND']=>string()             //
831
 
            ['INF']=>string()             //
832
 
            ['LYR']=>string()             //
833
 
            ['lyrics3tagsize']=>integer() //
834
 
            ['lyrics3version']=>integer() //
835
 
            ['unparsed']=>string()        //
836
 
        }                                 //
837
 
        ['synchedlyrics']=>array() {      //
838
 
            [<x>]=>string()               //
839
 
        }                                 //
840
 
        ['unsynchedlyrics']=>string()     //
841
 
    }                                     //
842
 
 
843
 
 
844
 
    ['midi']=>array() {                         // MIDI (Musical Instrument Digital Interface) - sequenced music
845
 
        ['comments']=>array() {                 //
846
 
            ['comment']=>string()               //
847
 
            ['copyright']=>string()             //
848
 
        }                                       //
849
 
        ['keysignature']=>array() {             //
850
 
            [<x>]=>string()                     //
851
 
        }                                       //
852
 
        ['raw']=>array() {                      //
853
 
            ['events']=>array() {               //
854
 
                [<x>]=>array() {                //
855
 
                    [<x>]=>array() {            //
856
 
                        ['us_qnote']=>integer() //
857
 
                    }                           //
858
 
                }                               //
859
 
            }                                   //
860
 
            ['fileformat']=>integer()           //
861
 
            ['headersize']=>integer()           //
862
 
            ['ticksperqnote']=>integer()        //
863
 
            ['track']=>array() {                //
864
 
                [<x>]=>array() {                //
865
 
                    ['instrument']=>string()    //
866
 
                    ['instrumentid']=>integer() //
867
 
                    ['name']=>string()          //
868
 
                }                               //
869
 
            }                                   //
870
 
            ['tracks']=>integer()               //
871
 
        }                                       //
872
 
        ['timesignature']=>array() {            //
873
 
            [<x>]=>string()                     //
874
 
        }                                       //
875
 
        ['totalticks']=>integer()               //
876
 
    }                                           //
877
 
 
878
 
 
879
 
    ['monkeys_audio']=>array() {                // Monkey's Audio - lossless audio compression
880
 
        ['bitrate']=>double()                   //
881
 
        ['bits_per_sample']=>integer()          //
882
 
        ['channels']=>integer()                 //
883
 
        ['compressed_size']=>integer()          //
884
 
        ['compression']=>string()               //
885
 
        ['compression_ratio']=>double()         //
886
 
        ['flags']=>array() {                    //
887
 
            ['24-bit']=>boolean()               //
888
 
            ['8-bit']=>boolean()                //
889
 
            ['crc-32']=>boolean()               //
890
 
            ['no_wav_header']=>boolean()        //
891
 
            ['peak_level']=>boolean()           //
892
 
            ['seek_elements']=>boolean()        //
893
 
        }                                       //
894
 
        ['frames']=>integer()                   //
895
 
        ['peak_level']=>integer()               //
896
 
        ['peak_ratio']=>double()                //
897
 
        ['playtime']=>double()                  //
898
 
        ['raw']=>array() {                      //
899
 
            ['header_tag']=>string()            //
900
 
            ['nChannels']=>integer()            //
901
 
            ['nCompressionLevel']=>integer()    //
902
 
            ['nFinalFrameSamples']=>integer()   //
903
 
            ['nFormatFlags']=>integer()         //
904
 
            ['nPeakLevel']=>integer()           //
905
 
            ['nSampleRate']=>integer()          //
906
 
            ['nSeekElements']=>integer()        //
907
 
            ['nTotalFrames']=>integer()         //
908
 
            ['nVersion']=>integer()             //
909
 
            ['nWAVHeaderBytes']=>integer()      //
910
 
            ['nWAVTerminatingBytes']=>integer() //
911
 
        }                                       //
912
 
        ['sample_rate']=>integer()              //
913
 
        ['samples']=>integer()                  //
914
 
        ['samples_per_frame']=>integer()        //
915
 
        ['uncompressed_size']=>integer()        //
916
 
        ['version']=>double()                   //
917
 
    }                                           //
918
 
 
919
 
 
920
 
    ['mpc']=>array() {                          // MPC (Musepack) - lossy audio compression
921
 
        ['header']=>array() {                   //
922
 
            ['album_gain_db']=>integer()        //
923
 
            ['album_peak']=>integer()           //
924
 
            ['album_peak_db']=>boolean()        //
925
 
            ['title_gain_db']=>integer()        //
926
 
            ['title_peak']=>integer()           //
927
 
            ['title_peak_db']=>boolean()        //
928
 
            ['begin_loud']=>boolean()           //
929
 
            ['end_loud']=>boolean()             //
930
 
            ['encoder_version']=>string()       //
931
 
            ['frame_count']=>integer()          //
932
 
            ['intensity_stereo']=>boolean()     //
933
 
            ['last_frame_length']=>integer()    //
934
 
            ['max_level']=>integer()            //
935
 
            ['max_subband']=>integer()          //
936
 
            ['mid_side_stereo']=>boolean()      //
937
 
            ['profile']=>string()               //
938
 
            ['sample_rate']=>integer()          //
939
 
            ['samples']=>integer()              //
940
 
            ['size']=>integer()                 //
941
 
            ['stream_major_version']=>integer() //
942
 
            ['stream_minor_version']=>integer() //
943
 
            ['true_gapless']=>boolean()         //
944
 
            ['raw']=>array() {                  //
945
 
                ['album_gain']=>integer()       //
946
 
                ['album_peak']=>integer()       //
947
 
                ['encoder_version']=>integer()  //
948
 
                ['preamble']=>string()          //
949
 
                ['profile']=>integer()          //
950
 
                ['sample_rate']=>integer()      //
951
 
                ['title_gain']=>integer()       //
952
 
                ['title_peak']=>integer()       //
953
 
            }                                   //
954
 
        }                                       //
955
 
    }                                           //
956
 
 
957
 
 
958
 
    ['mpeg']=>array() {                                // MPEG (Motion Picture Experts Group) - MPEG video and/or MPEG audio (MP3/MP2/MP1)
959
 
        ['audio']=>array() {                           //
960
 
            ['LAME']=>array() {                        //
961
 
                ['RGAD']=>array() {                    //
962
 
                    ['peak_amplitude']=>double()       //
963
 
                }                                      //
964
 
                ['ath_type']=>integer()                //
965
 
                ['audio_bytes']=>integer()             //
966
 
                ['bitrate_min']=>integer()             //
967
 
                ['encoder_delay']=>integer()           //
968
 
                ['encoding_flags']=>array() {          //
969
 
                    ['nogap_next']=>boolean()          //
970
 
                    ['nogap_prev']=>boolean()          //
971
 
                    ['nspsytune']=>boolean()           //
972
 
                    ['nssafejoint']=>boolean()         //
973
 
                }                                      //
974
 
                ['end_padding']=>integer()             //
975
 
                ['lame_tag_crc']=>integer()            //
976
 
                ['lowpass_frequency']=>integer()       //
977
 
                ['mp3_gain_db']=>double()              //
978
 
                ['mp3_gain_factor']=>double()          //
979
 
                ['mp3_gain_raw']=>integer()            //
980
 
                ['music_crc']=>integer()               //
981
 
                ['noise_shaping']=>integer()           //
982
 
                ['noise_shaping_raw']=>integer()       //
983
 
                ['not_optimal_quality']=>boolean()     //
984
 
                ['not_optimal_quality_raw']=>integer() //
985
 
                ['preset_used_id']=>integer()          //
986
 
                ['short_version']=>string()            // ex: "LAME 3.93"
987
 
                ['long_version']=>string()             // (pre-v3.90 only) ex: "LAME 3.88 (alpha)"
988
 
                ['source_sample_freq']=>string()       //
989
 
                ['source_sample_freq_raw']=>integer()  //
990
 
                ['stereo_mode']=>string()              //
991
 
                ['stereo_mode_raw']=>integer()         //
992
 
                ['surround_info']=>string()            //
993
 
                ['surround_info_id']=>integer()        //
994
 
                ['tag_revision']=>integer()            //
995
 
                ['vbr_method']=>string()               //
996
 
                ['vbr_method_raw']=>integer()          //
997
 
            }                                          //
998
 
            ['VBR_bitrate']=>double()                  //
999
 
            ['VBR_bytes']=>integer()                   //
1000
 
            ['VBR_frames']=>integer()                  //
1001
 
            ['VBR_method']=>string()                   //
1002
 
            ['VBR_scale']=>integer()                   //
1003
 
            ['bitrate']=>integer()                     //
1004
 
            ['bitrate_distribution']=>array() {        //
1005
 
                ['free']=>integer()                    //
1006
 
                ['8']=>integer()                       //
1007
 
                ['16']=>integer()                      //
1008
 
                ['24']=>integer()                      //
1009
 
                ['32']=>integer()                      //
1010
 
                ['40']=>integer()                      //
1011
 
                ['48']=>integer()                      //
1012
 
                ['56']=>integer()                      //
1013
 
                ['64']=>integer()                      //
1014
 
                ['80']=>integer()                      //
1015
 
                ['96']=>integer()                      //
1016
 
                ['112']=>integer()                     //
1017
 
                ['128']=>integer()                     //
1018
 
                ['144']=>integer()                     //
1019
 
                ['160']=>integer()                     //
1020
 
            }                                          //
1021
 
            ['bitrate_mode']=>string()                 //
1022
 
            ['channelmode']=>string()                  //
1023
 
            ['channels']=>integer()                    //
1024
 
            ['copyright']=>boolean()                   //
1025
 
            ['crc']=>integer()                         //
1026
 
            ['emphasis']=>string()                     //
1027
 
            ['frame_count']=>integer()                 //
1028
 
            ['framelength']=>integer()                 //
1029
 
            ['layer']=>integer()                       //
1030
 
            ['modeextension']=>string()                //
1031
 
            ['original']=>boolean()                    //
1032
 
            ['padding']=>boolean()                     //
1033
 
            ['private']=>boolean()                     //
1034
 
            ['protection']=>boolean()                  //
1035
 
            ['raw']=>array() {                         //
1036
 
                ['bitrate']=>integer()                 //
1037
 
                ['channelmode']=>integer()             //
1038
 
                ['copyright']=>integer()               //
1039
 
                ['emphasis']=>integer()                //
1040
 
                ['layer']=>integer()                   //
1041
 
                ['modeextension']=>integer()           //
1042
 
                ['original']=>integer()                //
1043
 
                ['padding']=>integer()                 //
1044
 
                ['private']=>integer()                 //
1045
 
                ['protection']=>integer()              //
1046
 
                ['sample_rate']=>integer()             //
1047
 
                ['synch']=>integer()                   //
1048
 
                ['version']=>integer()                 //
1049
 
            }                                          //
1050
 
            ['sample_rate']=>integer()                 //
1051
 
            ['stereo_distribution']=>array() {         //
1052
 
                ['dual channel']=>integer()            //
1053
 
                ['joint stereo']=>integer()            //
1054
 
                ['mono']=>integer()                    //
1055
 
                ['stereo']=>integer()                  //
1056
 
            }                                          //
1057
 
            ['toc']=>array() {                         //
1058
 
                [<x>]=>integer()                       //
1059
 
            }                                          //
1060
 
            ['version']=>string()                      //
1061
 
            ['version_distribution']=>array() {        //
1062
 
                [<x>]=>integer()                       //
1063
 
                [<x>]=>integer()                       //
1064
 
                ['2.5']=>integer()                     //
1065
 
            }                                          //
1066
 
            ['xing_flags']=>array() {                  //
1067
 
                ['bytes']=>boolean()                   //
1068
 
                ['frames']=>boolean()                  //
1069
 
                ['toc']=>boolean()                     //
1070
 
                ['vbr_scale']=>boolean()               //
1071
 
            }                                          //
1072
 
            ['xing_flags_raw']=>string()               //
1073
 
        }                                              //
1074
 
        ['video']=>array() {                           //
1075
 
            ['bitrate']=>integer()                     //
1076
 
            ['bitrate_mode']=>string()                 //
1077
 
            ['frame_rate']=>double()                   //
1078
 
            ['framesize_horizontal']=>integer()        //
1079
 
            ['framesize_vertical']=>integer()          //
1080
 
            ['pixel_aspect_ratio']=>double()           //
1081
 
            ['pixel_aspect_ratio_text']=>string()      //
1082
 
            ['raw']=>array() {                         //
1083
 
                ['bitrate']=>integer()                 //
1084
 
                ['constrained_param_flag']=>integer()  //
1085
 
                ['frame_rate']=>integer()              //
1086
 
                ['framesize_horizontal']=>integer()    //
1087
 
                ['framesize_vertical']=>integer()      //
1088
 
                ['intra_quant_flag']=>integer()        //
1089
 
                ['marker_bit']=>integer()              //
1090
 
                ['pixel_aspect_ratio']=>integer()      //
1091
 
                ['vbv_buffer_size']=>integer()         //
1092
 
            }                                          //
1093
 
        }                                              //
1094
 
    }                                                  //
1095
 
 
1096
 
 
1097
 
    ['nsv']=>array() {                     // NSV - Nullsoft Streaming Video
1098
 
        ['NSVf']=>array() {                //
1099
 
            ['TOC_entries_1']=>integer()   //
1100
 
            ['TOC_entries_2']=>integer()   //
1101
 
            ['file_size']=>integer()       //
1102
 
            ['header_length']=>integer()   //
1103
 
            ['identifier']=>string()       //
1104
 
            ['meta_size']=>integer()       //
1105
 
            ['metadata']=>string()         //
1106
 
            ['playtime_ms']=>integer()     //
1107
 
        }                                  //
1108
 
        ['NSVs']=>array() {                //
1109
 
            ['audio_codec']=>string()      //
1110
 
            ['frame_rate']=>double()       //
1111
 
            ['framerate_index']=>integer() //
1112
 
            ['identifier']=>string()       //
1113
 
            ['offset']=>integer()          //
1114
 
            ['resolution_x']=>integer()    //
1115
 
            ['resolution_y']=>integer()    //
1116
 
            ['unknown1b']=>integer()       //
1117
 
            ['unknown1c']=>integer()       //
1118
 
            ['unknown1d']=>integer()       //
1119
 
            ['unknown2a']=>integer()       //
1120
 
            ['unknown2b']=>integer()       //
1121
 
            ['unknown2c']=>integer()       //
1122
 
            ['unknown2d']=>integer()       //
1123
 
            ['unknown3a']=>integer()       //
1124
 
            ['unknown3b']=>integer()       //
1125
 
            ['unknown3c']=>integer()       //
1126
 
            ['unknown3d']=>integer()       //
1127
 
            ['video_codec']=>string()      //
1128
 
        }                                  //
1129
 
        ['comments']=>array() {            //
1130
 
            ['aspect']=>string()           //
1131
 
            ['title']=>string()            //
1132
 
        }                                  //
1133
 
    }                                      //
1134
 
 
1135
 
 
1136
 
    ['ofr']=>array() {                                   // OFR (OptimFROG) - lossless audio compression
1137
 
        ['COMP']=>array() {                              //
1138
 
            [<x>]=>array() {                             //
1139
 
                ['channel_configuration']=>string()      //
1140
 
                ['crc_32']=>boolean()                    //
1141
 
                ['encoder']=>string()                    //
1142
 
                ['offset']=>integer()                    //
1143
 
                ['raw']=>array() {                       //
1144
 
                    ['algorithm_id']=>integer()          //
1145
 
                    ['channel_configuration']=>integer() //
1146
 
                    ['encoder_id']=>integer()            //
1147
 
                    ['sample_type']=>integer()           //
1148
 
                }                                        //
1149
 
                ['sample_count']=>integer()              //
1150
 
                ['sample_type']=>string()                //
1151
 
                ['size']=>integer()                      //
1152
 
            }                                            //
1153
 
        }                                                //
1154
 
        ['HEAD']=>array() {                              //
1155
 
            ['offset']=>integer()                        //
1156
 
            ['size']=>integer()                          //
1157
 
        }                                                //
1158
 
        ['OFR ']=>array() {                              //
1159
 
            ['channel_config']=>integer()                //
1160
 
            ['channels']=>integer()                      //
1161
 
            ['compression']=>string()                    //
1162
 
            ['encoder']=>string()                        //
1163
 
            ['offset']=>integer()                        //
1164
 
            ['raw']=>array() {                           //
1165
 
                ['compression']=>integer()               //
1166
 
                ['encoder_id']=>integer()                //
1167
 
                ['sample_type']=>integer()               //
1168
 
            }                                            //
1169
 
            ['sample_rate']=>integer()                   //
1170
 
            ['sample_type']=>string()                    //
1171
 
            ['size']=>integer()                          //
1172
 
            ['total_samples']=>integer()                 //
1173
 
        }                                                //
1174
 
        ['TAIL']=>array() {                              //
1175
 
            ['offset']=>integer()                        //
1176
 
            ['size']=>integer()                          //
1177
 
        }                                                //
1178
 
    }                                                    //
1179
 
 
1180
 
 
1181
 
    ['ogg']=>array() {                           // OGG - container format for Ogg Vorbis, OggFLAC, Speex, etc
1182
 
        ['bitrate_average']=>double()            //
1183
 
        ['bitrate_max']=>integer()               //
1184
 
        ['bitrate_min']=>integer()               //
1185
 
        ['bitrate_nominal']=>integer()           //
1186
 
        ['bitstreamversion']=>integer()          //
1187
 
        ['blocksize_large']=>integer()           //
1188
 
        ['blocksize_small']=>integer()           //
1189
 
        ['comments']=>array() {                  // array of array of strings containing best data from any available metainformation tag (APE, ID3v2, ID3v1, Lyrics3, Vorbis, ASF, RIFF, Real, etc.)
1190
 
            [<key name>]=>array()                // <key name> can be anything, usually 'artist', 'title', etc. Contains array of one or more values (eg: multiple artists are possible)
1191
 
        }                                        //
1192
 
        ['comments_raw']=>array() {              //
1193
 
            [<x>]=>array() {                     //
1194
 
                ['dataoffset']=>integer()        //
1195
 
                ['key']=>string()                //
1196
 
                ['size']=>integer()              //
1197
 
                ['value']=>string()              //
1198
 
            }                                    //
1199
 
        }                                        //
1200
 
        ['numberofchannels']=>integer()          //
1201
 
        ['pageheader']=>array() {                //
1202
 
            [<x>]=>array() {                     //
1203
 
                ['flags']=>array() {             //
1204
 
                    ['bos']=>boolean()           //
1205
 
                    ['eos']=>boolean()           //
1206
 
                    ['fresh']=>boolean()         //
1207
 
                }                                //
1208
 
                ['flags_raw']=>integer()         //
1209
 
                ['header_end_offset']=>integer() //
1210
 
                ['packet_type']=>integer()       //
1211
 
                ['page_checksum']=>double()      //
1212
 
                ['page_end_offset']=>integer()   //
1213
 
                ['page_length']=>integer()       //
1214
 
                ['page_segments']=>integer()     //
1215
 
                ['page_seqno']=>integer()        //
1216
 
                ['page_start_offset']=>integer() //
1217
 
                ['pcm_abs_position']=>integer()  //
1218
 
                ['segment_table']=>array() {     //
1219
 
                    [<x>]=>integer()             //
1220
 
                }                                //
1221
 
                ['stream_serialno']=>integer()   //
1222
 
                ['stream_structver']=>integer()  //
1223
 
                ['stream_type']=>string()        //
1224
 
            }                                    //
1225
 
            ['eos']=>array() {                   //
1226
 
                ['flags']=>array() {             //
1227
 
                    ['bos']=>boolean()           //
1228
 
                    ['eos']=>boolean()           //
1229
 
                    ['fresh']=>boolean()         //
1230
 
                }                                //
1231
 
                ['flags_raw']=>integer()         //
1232
 
                ['header_end_offset']=>integer() //
1233
 
                ['page_checksum']=>double()      //
1234
 
                ['page_end_offset']=>integer()   //
1235
 
                ['page_length']=>integer()       //
1236
 
                ['page_segments']=>integer()     //
1237
 
                ['page_seqno']=>integer()        //
1238
 
                ['page_start_offset']=>integer() //
1239
 
                ['pcm_abs_position']=>integer()  //
1240
 
                ['segment_table']=>array() {     //
1241
 
                    [<x>]=>integer()             //
1242
 
                }                                //
1243
 
                ['stream_serialno']=>integer()   //
1244
 
                ['stream_structver']=>integer()  //
1245
 
            }                                    //
1246
 
        }                                        //
1247
 
        ['samplerate']=>integer()                //
1248
 
        ['samples']=>integer()                   //
1249
 
        ['stop_bit']=>integer()                  //
1250
 
        ['vendor']=>string()                     //
1251
 
    }                                            //
1252
 
 
1253
 
 
1254
 
    ['png']=>array() {                                // PNG (Portable Network Graphics) - still image
1255
 
        ['IDAT']=>array() {                           //
1256
 
            [<x>]=>array() {                          //
1257
 
                ['header']=>array() {                 //
1258
 
                    ['crc']=>integer()                //
1259
 
                    ['data_length']=>integer()        //
1260
 
                    ['flags']=>array() {              //
1261
 
                        ['ancilliary']=>boolean()     //
1262
 
                        ['private']=>boolean()        //
1263
 
                        ['reserved']=>boolean()       //
1264
 
                        ['safe_to_copy']=>boolean()   //
1265
 
                    }                                 //
1266
 
                    ['type_raw']=>double()            //
1267
 
                    ['type_text']=>string()           //
1268
 
                }                                     //
1269
 
            }                                         //
1270
 
        }                                             //
1271
 
        ['IEND']=>array() {                           //
1272
 
            ['header']=>array() {                     //
1273
 
                ['crc']=>double()                     //
1274
 
                ['data']=>string()                    //
1275
 
                ['data_length']=>integer()            //
1276
 
                ['flags']=>array() {                  //
1277
 
                    ['ancilliary']=>boolean()         //
1278
 
                    ['private']=>boolean()            //
1279
 
                    ['reserved']=>boolean()           //
1280
 
                    ['safe_to_copy']=>boolean()       //
1281
 
                }                                     //
1282
 
                ['type_raw']=>double()                //
1283
 
                ['type_text']=>string()               //
1284
 
            }                                         //
1285
 
        }                                             //
1286
 
        ['IHDR']=>array() {                           //
1287
 
            ['color_type']=>array() {                 //
1288
 
                ['alpha']=>boolean()                  //
1289
 
                ['palette']=>boolean()                //
1290
 
                ['true_color']=>boolean()             //
1291
 
            }                                         //
1292
 
            ['compression_method_text']=>string()     //
1293
 
            ['header']=>array() {                     //
1294
 
                ['crc']=>double()                     //
1295
 
                ['data']=>string()                    //
1296
 
                ['data_length']=>integer()            //
1297
 
                ['flags']=>array() {                  //
1298
 
                    ['ancilliary']=>boolean()         //
1299
 
                    ['private']=>boolean()            //
1300
 
                    ['reserved']=>boolean()           //
1301
 
                    ['safe_to_copy']=>boolean()       //
1302
 
                }                                     //
1303
 
                ['type_raw']=>double()                //
1304
 
                ['type_text']=>string()               //
1305
 
            }                                         //
1306
 
            ['height']=>integer()                     //
1307
 
            ['raw']=>array() {                        //
1308
 
                ['bit_depth']=>integer()              //
1309
 
                ['color_type']=>integer()             //
1310
 
                ['compression_method']=>integer()     //
1311
 
                ['filter_method']=>integer()          //
1312
 
                ['interlace_method']=>integer()       //
1313
 
            }                                         //
1314
 
            ['width']=>integer()                      //
1315
 
        }                                             //
1316
 
        ['PLTE']=>array() {                           //
1317
 
            ['header']=>array() {                     //
1318
 
                ['crc']=>double()                     //
1319
 
                ['data']=>string()                    //
1320
 
                ['data_length']=>integer()            //
1321
 
                ['flags']=>array() {                  //
1322
 
                    ['ancilliary']=>boolean()         //
1323
 
                    ['private']=>boolean()            //
1324
 
                    ['reserved']=>boolean()           //
1325
 
                    ['safe_to_copy']=>boolean()       //
1326
 
                }                                     //
1327
 
                ['type_raw']=>double()                //
1328
 
                ['type_text']=>string()               //
1329
 
            }                                         //
1330
 
            [<x>]=>integer()                          //
1331
 
        }                                             //
1332
 
        ['comments']=>array() {                       // array of array of strings containing best data from any available metainformation tag (APE, ID3v2, ID3v1, Lyrics3, Vorbis, ASF, RIFF, Real, etc.)
1333
 
            [<key name>]=>array()                     // <key name> can be anything, usually 'artist', 'title', etc. Contains array of one or more values (eg: multiple artists are possible)
1334
 
        }                                             //
1335
 
        ['gAMA']=>array() {                           //
1336
 
            ['gamma']=>double()                       //
1337
 
            ['header']=>array() {                     //
1338
 
                ['crc']=>integer()                    //
1339
 
                ['data']=>string()                    //
1340
 
                ['data_length']=>integer()            //
1341
 
                ['flags']=>array() {                  //
1342
 
                    ['ancilliary']=>boolean()         //
1343
 
                    ['private']=>boolean()            //
1344
 
                    ['reserved']=>boolean()           //
1345
 
                    ['safe_to_copy']=>boolean()       //
1346
 
                }                                     //
1347
 
                ['type_raw']=>double()                //
1348
 
                ['type_text']=>string()               //
1349
 
            }                                         //
1350
 
        }                                             //
1351
 
        ['oFFs']=>array() {                           //
1352
 
            ['header']=>array() {                     //
1353
 
                ['crc']=>double()                     //
1354
 
                ['data']=>string()                    //
1355
 
                ['data_length']=>integer()            //
1356
 
                ['flags']=>array() {                  //
1357
 
                    ['ancilliary']=>boolean()         //
1358
 
                    ['private']=>boolean()            //
1359
 
                    ['reserved']=>boolean()           //
1360
 
                    ['safe_to_copy']=>boolean()       //
1361
 
                }                                     //
1362
 
                ['type_raw']=>double()                //
1363
 
                ['type_text']=>string()               //
1364
 
            }                                         //
1365
 
            ['position_x']=>integer()                 //
1366
 
            ['position_y']=>integer()                 //
1367
 
            ['unit']=>string()                        //
1368
 
            ['unit_specifier']=>integer()             //
1369
 
        }                                             //
1370
 
        ['pHYs']=>array() {                           //
1371
 
            ['header']=>array() {                     //
1372
 
                ['crc']=>integer()                    //
1373
 
                ['data']=>string()                    //
1374
 
                ['data_length']=>integer()            //
1375
 
                ['flags']=>array() {                  //
1376
 
                    ['ancilliary']=>boolean()         //
1377
 
                    ['private']=>boolean()            //
1378
 
                    ['reserved']=>boolean()           //
1379
 
                    ['safe_to_copy']=>boolean()       //
1380
 
                }                                     //
1381
 
                ['type_raw']=>double()                //
1382
 
                ['type_text']=>string()               //
1383
 
            }                                         //
1384
 
            ['pixels_per_unit_x']=>integer()          //
1385
 
            ['pixels_per_unit_y']=>integer()          //
1386
 
            ['unit']=>string()                        //
1387
 
            ['unit_specifier']=>integer()             //
1388
 
        }                                             //
1389
 
        ['pcLb']=>array() {                           //
1390
 
            ['header']=>array() {                     //
1391
 
                ['crc']=>double()                     //
1392
 
                ['data']=>string()                    //
1393
 
                ['data_length']=>integer()            //
1394
 
                ['flags']=>array() {                  //
1395
 
                    ['ancilliary']=>boolean()         //
1396
 
                    ['private']=>boolean()            //
1397
 
                    ['reserved']=>boolean()           //
1398
 
                    ['safe_to_copy']=>boolean()       //
1399
 
                }                                     //
1400
 
                ['type_raw']=>double()                //
1401
 
                ['type_text']=>string()               //
1402
 
            }                                         //
1403
 
        }                                             //
1404
 
        ['tEXt']=>array() {                           //
1405
 
            ['header']=>array() {                     //
1406
 
                ['crc']=>integer()                    //
1407
 
                ['data']=>string()                    //
1408
 
                ['data_length']=>integer()            //
1409
 
                ['flags']=>array() {                  //
1410
 
                    ['ancilliary']=>boolean()         //
1411
 
                    ['private']=>boolean()            //
1412
 
                    ['reserved']=>boolean()           //
1413
 
                    ['safe_to_copy']=>boolean()       //
1414
 
                }                                     //
1415
 
                ['type_raw']=>double()                //
1416
 
                ['type_text']=>string()               //
1417
 
            }                                         //
1418
 
            ['keyword']=>string()                     //
1419
 
            ['text']=>string()                        //
1420
 
        }                                             //
1421
 
        ['tIME']=>array() {                           //
1422
 
            ['day']=>integer()                        //
1423
 
            ['header']=>array() {                     //
1424
 
                ['crc']=>integer()                    //
1425
 
                ['data']=>string()                    //
1426
 
                ['data_length']=>integer()            //
1427
 
                ['flags']=>array() {                  //
1428
 
                    ['ancilliary']=>boolean()         //
1429
 
                    ['private']=>boolean()            //
1430
 
                    ['reserved']=>boolean()           //
1431
 
                    ['safe_to_copy']=>boolean()       //
1432
 
                }                                     //
1433
 
                ['type_raw']=>double()                //
1434
 
                ['type_text']=>string()               //
1435
 
            }                                         //
1436
 
            ['hour']=>integer()                       //
1437
 
            ['minute']=>integer()                     //
1438
 
            ['month']=>integer()                      //
1439
 
            ['second']=>integer()                     //
1440
 
            ['unix']=>integer()                       //
1441
 
            ['year']=>integer()                       //
1442
 
        }                                             //
1443
 
        ['tRNS']=>array() {                           //
1444
 
            ['header']=>array() {                     //
1445
 
                ['crc']=>double()                     //
1446
 
                ['data']=>string()                    //
1447
 
                ['data_length']=>integer()            //
1448
 
                ['flags']=>array() {                  //
1449
 
                    ['ancilliary']=>boolean()         //
1450
 
                    ['private']=>boolean()            //
1451
 
                    ['reserved']=>boolean()           //
1452
 
                    ['safe_to_copy']=>boolean()       //
1453
 
                }                                     //
1454
 
                ['type_raw']=>double()                //
1455
 
                ['type_text']=>string()               //
1456
 
            }                                         //
1457
 
            ['transparent_color_blue']=>integer()     //
1458
 
            ['transparent_color_green']=>integer()    //
1459
 
            ['transparent_color_red']=>integer()      //
1460
 
        }                                             //
1461
 
        ['zTXt']=>array() {                           //
1462
 
            ['compressed_text']=>string()             //
1463
 
            ['compression_method']=>integer()         //
1464
 
            ['compression_method_text']=>string()     //
1465
 
            ['header']=>array() {                     //
1466
 
                ['crc']=>double()                     //
1467
 
                ['data']=>string()                    //
1468
 
                ['data_length']=>integer()            //
1469
 
                ['flags']=>array() {                  //
1470
 
                    ['ancilliary']=>boolean()         //
1471
 
                    ['private']=>boolean()            //
1472
 
                    ['reserved']=>boolean()           //
1473
 
                    ['safe_to_copy']=>boolean()       //
1474
 
                }                                     //
1475
 
                ['type_raw']=>double()                //
1476
 
                ['type_text']=>string()               //
1477
 
            }                                         //
1478
 
            ['keyword']=>string()                     //
1479
 
            ['text']=>string()                        //
1480
 
        }                                             //
1481
 
    }                                                 //
1482
 
 
1483
 
 
1484
 
    ['quicktime']=>array() {               // Quicktime - video/audio
1485
 
        ['']=>array() {                    //
1486
 
            ['name']=>boolean()            //
1487
 
            ['offset']=>integer()          //
1488
 
            ['size']=>integer()            //
1489
 
        }                                  //
1490
 
        ['audio']=>array() {               //
1491
 
            ['bit_depth']=>integer()       //
1492
 
            ['channels']=>integer()        //
1493
 
            ['codec']=>string()            //
1494
 
            ['sample_rate']=>double()      //
1495
 
        }                                  //
1496
 
        ['free']=>array() {                //
1497
 
            ['name']=>string()             //
1498
 
            ['offset']=>integer()          //
1499
 
            ['size']=>integer()            //
1500
 
        }                                  //
1501
 
        ['mdat']=>array() {                //
1502
 
            ['name']=>string()             //
1503
 
            ['offset']=>integer()          //
1504
 
            ['size']=>integer()            //
1505
 
        }                                  //
1506
 
        ['moov']=>array() {                //
1507
 
            ['hierarchy']=>string()        //
1508
 
            ['name']=>string()             //
1509
 
            ['offset']=>integer()          //
1510
 
            ['size']=>integer()            //
1511
 
            ['subatoms']=>array()          // This is an undocumentably-complex recursive array, typically containing a huge amount of seemingly disorganized data. Avoid this like the plague.
1512
 
        }                                  //
1513
 
        ['time_scale']=>integer()          //
1514
 
        ['display_scale']=>integer()       // 1 = normal; 0.5 = half; 2 = double
1515
 
        ['video']=>array() {               //
1516
 
            ['codec']=>string()            //
1517
 
            ['color_depth']=>integer()     //
1518
 
            ['color_depth_name']=>string() //
1519
 
            ['resolution_x']=>double()     //
1520
 
            ['resolution_y']=>double()     //
1521
 
        }                                  //
1522
 
        ['wide']=>array() {                //
1523
 
            ['name']=>string()             //
1524
 
            ['offset']=>integer()          //
1525
 
            ['size']=>integer()            //
1526
 
        }                                  //
1527
 
    }                                      //
1528
 
 
1529
 
 
1530
 
    ['real']=>array() {                           // Real (RealAudio / RealVideo) - audio/video
1531
 
        ['chunks']=>array() {                     //
1532
 
            [<x>]=>array() {                      //
1533
 
                ['file_version']=>integer()       //
1534
 
                ['headers_count']=>integer()      //
1535
 
                ['length']=>integer()             //
1536
 
                ['name']=>string()                //
1537
 
                ['object_version']=>integer()     //
1538
 
                ['offset']=>integer()             //
1539
 
            }                                     //
1540
 
            [<x>]=>array() {                      //
1541
 
                ['avg_bit_rate']=>integer()       //
1542
 
                ['avg_packet_size']=>integer()    //
1543
 
                ['data_offset']=>integer()        //
1544
 
                ['duration']=>integer()           //
1545
 
                ['flags']=>array() {              //
1546
 
                    ['live_broadcast']=>boolean() //
1547
 
                    ['perfect_play']=>boolean()   //
1548
 
                    ['save_enabled']=>boolean()   //
1549
 
                }                                 //
1550
 
                ['flags_raw']=>integer()          //
1551
 
                ['index_offset']=>integer()       //
1552
 
                ['length']=>integer()             //
1553
 
                ['max_bit_rate']=>integer()       //
1554
 
                ['max_packet_size']=>integer()    //
1555
 
                ['name']=>string()                //
1556
 
                ['num_packets']=>integer()        //
1557
 
                ['num_streams']=>integer()        //
1558
 
                ['object_version']=>integer()     //
1559
 
                ['offset']=>integer()             //
1560
 
                ['preroll']=>integer()            //
1561
 
            }                                     //
1562
 
        }                                         //
1563
 
        ['comments']=>array() {                   //
1564
 
            ['artist']=>string()                  //
1565
 
            ['comment']=>string()                 //
1566
 
            ['title']=>string()                   //
1567
 
        }                                         //
1568
 
    }                                             //
1569
 
 
1570
 
 
1571
 
    ['riff']=>array() {                                     // RIFF (Resource Interchange File Format) - audio/video container format (AVI, WAV, CDDA, etc)
1572
 
        ['AIFC']=>array() {                                 //
1573
 
            ['COMM']=>array() {                             //
1574
 
                [<x>]=>array() {                            //
1575
 
                    ['data']=>string()                      //
1576
 
                    ['offset']=>integer()                   //
1577
 
                    ['size']=>integer()                     //
1578
 
                }                                           //
1579
 
            }                                               //
1580
 
            ['FVER']=>array() {                             //
1581
 
                [<x>]=>array() {                            //
1582
 
                    ['data']=>string()                      //
1583
 
                    ['offset']=>integer()                   //
1584
 
                    ['size']=>integer()                     //
1585
 
                }                                           //
1586
 
            }                                               //
1587
 
            ['INST']=>array() {                             //
1588
 
                [<x>]=>array() {                            //
1589
 
                    ['data']=>string()                      //
1590
 
                    ['offset']=>integer()                   //
1591
 
                    ['size']=>integer()                     //
1592
 
                }                                           //
1593
 
            }                                               //
1594
 
            ['MARK']=>array() {                             //
1595
 
                [<x>]=>array() {                            //
1596
 
                    ['data']=>string()                      //
1597
 
                    ['offset']=>integer()                   //
1598
 
                    ['size']=>integer()                     //
1599
 
                }                                           //
1600
 
            }                                               //
1601
 
            ['SSND']=>array() {                             //
1602
 
                [<x>]=>array() {                            //
1603
 
                    ['offset']=>integer()                   //
1604
 
                    ['size']=>integer()                     //
1605
 
                }                                           //
1606
 
            }                                               //
1607
 
        }                                                   //
1608
 
        ['AIFF']=>array() {                                 //
1609
 
            ['(c) ']=>array() {                             //
1610
 
                [<x>]=>array() {                            //
1611
 
                    ['data']=>string()                      //
1612
 
                    ['offset']=>integer()                   //
1613
 
                    ['size']=>integer()                     //
1614
 
                }                                           //
1615
 
            }                                               //
1616
 
            ['COMM']=>array() {                             //
1617
 
                [<x>]=>array() {                            //
1618
 
                    ['data']=>string()                      //
1619
 
                    ['offset']=>integer()                   //
1620
 
                    ['size']=>integer()                     //
1621
 
                }                                           //
1622
 
            }                                               //
1623
 
            ['SSND']=>array() {                             //
1624
 
                [<x>]=>array() {                            //
1625
 
                    ['offset']=>integer()                   //
1626
 
                    ['size']=>integer()                     //
1627
 
                }                                           //
1628
 
            }                                               //
1629
 
        }                                                   //
1630
 
        ['AVI ']=>array() {                                 //
1631
 
            ['JUNK']=>array() {                             //
1632
 
                [<x>]=>array() {                            //
1633
 
                    ['data']=>string()                      //
1634
 
                    ['offset']=>integer()                   //
1635
 
                    ['size']=>integer()                     //
1636
 
                }                                           //
1637
 
            }                                               //
1638
 
            ['hdrl']=>array() {                             //
1639
 
                ['avih']=>array() {                         //
1640
 
                    [<x>]=>array() {                        //
1641
 
                        ['data']=>string()                  //
1642
 
                        ['offset']=>integer()               //
1643
 
                        ['size']=>integer()                 //
1644
 
                    }                                       //
1645
 
                }                                           //
1646
 
                ['odml']=>array() {                         //
1647
 
                    ['dmlh']=>array() {                     //
1648
 
                        [<x>]=>array() {                    //
1649
 
                            ['data']=>string()              //
1650
 
                            ['offset']=>integer()           //
1651
 
                            ['size']=>integer()             //
1652
 
                        }                                   //
1653
 
                    }                                       //
1654
 
                }                                           //
1655
 
                ['strl']=>array() {                         //
1656
 
                    ['JUNK']=>array() {                     //
1657
 
                        [<x>]=>array() {                    //
1658
 
                            ['offset']=>integer()           //
1659
 
                            ['size']=>integer()             //
1660
 
                        }                                   //
1661
 
                    }                                       //
1662
 
                    ['strf']=>array() {                     //
1663
 
                        [<x>]=>array() {                    //
1664
 
                            ['data']=>string()              //
1665
 
                            ['offset']=>integer()           //
1666
 
                            ['size']=>integer()             //
1667
 
                        }                                   //
1668
 
                    }                                       //
1669
 
                    ['strh']=>array() {                     //
1670
 
                        [<x>]=>array() {                    //
1671
 
                            ['data']=>string()              //
1672
 
                            ['offset']=>integer()           //
1673
 
                            ['size']=>integer()             //
1674
 
                        }                                   //
1675
 
                    }                                       //
1676
 
                    ['strn']=>array() {                     //
1677
 
                        [<x>]=>array() {                    //
1678
 
                            ['data']=>string()              //
1679
 
                            ['offset']=>integer()           //
1680
 
                            ['size']=>integer()             //
1681
 
                        }                                   //
1682
 
                    }                                       //
1683
 
                }                                           //
1684
 
            }                                               //
1685
 
            ['idx1']=>array() {                             //
1686
 
                [<x>]=>array() {                            //
1687
 
                    ['data']=>string()                      //
1688
 
                    ['offset']=>integer()                   //
1689
 
                    ['size']=>integer()                     //
1690
 
                }                                           //
1691
 
            }                                               //
1692
 
            ['movi']=>array() {                             //
1693
 
                ['offset']=>integer()                       //
1694
 
                ['size']=>integer()                         //
1695
 
            }                                               //
1696
 
        }                                                   //
1697
 
        ['CDDA']=>array() {                                 //
1698
 
            ['fmt ']=>array() {                             //
1699
 
                [<x>]=>array() {                            //
1700
 
                    ['data']=>string()                      //
1701
 
                    ['disc_id']=>integer()                  //
1702
 
                    ['offset']=>integer()                   //
1703
 
                    ['playtime_frames']=>integer()          //
1704
 
                    ['playtime_seconds']=>double()          //
1705
 
                    ['size']=>integer()                     //
1706
 
                    ['start_offset_frame']=>integer()       //
1707
 
                    ['start_offset_seconds']=>double()      //
1708
 
                    ['track_num']=>integer()                //
1709
 
                    ['unknown1']=>integer()                 //
1710
 
                    ['unknown6']=>integer()                 //
1711
 
                    ['unknown7']=>integer()                 //
1712
 
                }                                           //
1713
 
            }                                               //
1714
 
        }                                                   //
1715
 
        ['WAVE']=>array() {                                 //
1716
 
            ['DISP']=>array() {                             //
1717
 
                [<x>]=>array() {                            //
1718
 
                    ['data']=>string()                      //
1719
 
                    ['offset']=>integer()                   //
1720
 
                    ['size']=>integer()                     //
1721
 
                }                                           //
1722
 
            }                                               //
1723
 
            ['INFO']=>array() {                             //
1724
 
                ['IART']=>array() {                         //
1725
 
                    [<x>]=>array() {                        //
1726
 
                        ['data']=>string()                  //
1727
 
                        ['offset']=>integer()               //
1728
 
                        ['size']=>integer()                 //
1729
 
                    }                                       //
1730
 
                }                                           //
1731
 
                ['ICMT']=>array() {                         //
1732
 
                    [<x>]=>array() {                        //
1733
 
                        ['data']=>string()                  //
1734
 
                        ['offset']=>integer()               //
1735
 
                        ['size']=>integer()                 //
1736
 
                    }                                       //
1737
 
                }                                           //
1738
 
                ['ICOP']=>array() {                         //
1739
 
                    [<x>]=>array() {                        //
1740
 
                        ['data']=>string()                  //
1741
 
                        ['offset']=>integer()               //
1742
 
                        ['size']=>integer()                 //
1743
 
                    }                                       //
1744
 
                }                                           //
1745
 
                ['IENG']=>array() {                         //
1746
 
                    [<x>]=>array() {                        //
1747
 
                        ['data']=>string()                  //
1748
 
                        ['offset']=>integer()               //
1749
 
                        ['size']=>integer()                 //
1750
 
                    }                                       //
1751
 
                }                                           //
1752
 
                ['IGNR']=>array() {                         //
1753
 
                    [<x>]=>array() {                        //
1754
 
                        ['data']=>string()                  //
1755
 
                        ['offset']=>integer()               //
1756
 
                        ['size']=>integer()                 //
1757
 
                    }                                       //
1758
 
                }                                           //
1759
 
                ['IKEY']=>array() {                         //
1760
 
                    [<x>]=>array() {                        //
1761
 
                        ['data']=>string()                  //
1762
 
                        ['offset']=>integer()               //
1763
 
                        ['size']=>integer()                 //
1764
 
                    }                                       //
1765
 
                }                                           //
1766
 
                ['IMED']=>array() {                         //
1767
 
                    [<x>]=>array() {                        //
1768
 
                        ['data']=>string()                  //
1769
 
                        ['offset']=>integer()               //
1770
 
                        ['size']=>integer()                 //
1771
 
                    }                                       //
1772
 
                }                                           //
1773
 
                ['INAM']=>array() {                         //
1774
 
                    [<x>]=>array() {                        //
1775
 
                        ['data']=>string()                  //
1776
 
                        ['offset']=>integer()               //
1777
 
                        ['size']=>integer()                 //
1778
 
                    }                                       //
1779
 
                }                                           //
1780
 
                ['ISBJ']=>array() {                         //
1781
 
                    [<x>]=>array() {                        //
1782
 
                        ['data']=>string()                  //
1783
 
                        ['offset']=>integer()               //
1784
 
                        ['size']=>integer()                 //
1785
 
                    }                                       //
1786
 
                }                                           //
1787
 
                ['ISFT']=>array() {                         //
1788
 
                    [<x>]=>array() {                        //
1789
 
                        ['data']=>string()                  //
1790
 
                        ['offset']=>integer()               //
1791
 
                        ['size']=>integer()                 //
1792
 
                    }                                       //
1793
 
                }                                           //
1794
 
                ['ISRC']=>array() {                         //
1795
 
                    [<x>]=>array() {                        //
1796
 
                        ['data']=>string()                  //
1797
 
                        ['offset']=>integer()               //
1798
 
                        ['size']=>integer()                 //
1799
 
                    }                                       //
1800
 
                }                                           //
1801
 
                ['ISRF']=>array() {                         //
1802
 
                    [<x>]=>array() {                        //
1803
 
                        ['data']=>string()                  //
1804
 
                        ['offset']=>integer()               //
1805
 
                        ['size']=>integer()                 //
1806
 
                    }                                       //
1807
 
                }                                           //
1808
 
                ['ITCH']=>array() {                         //
1809
 
                    [<x>]=>array() {                        //
1810
 
                        ['data']=>string()                  //
1811
 
                        ['offset']=>integer()               //
1812
 
                        ['size']=>integer()                 //
1813
 
                    }                                       //
1814
 
                }                                           //
1815
 
            }                                               //
1816
 
            ['MEXT']=>array() {                             //
1817
 
                [<x>]=>array() {                            //
1818
 
                    ['anciliary_data_length']=>integer()    //
1819
 
                    ['data']=>string()                      //
1820
 
                    ['flags']=>array() {                    //
1821
 
                        ['anciliary_data_free']=>boolean()  //
1822
 
                        ['anciliary_data_left']=>boolean()  //
1823
 
                        ['anciliary_data_right']=>boolean() //
1824
 
                        ['homogenous']=>boolean()           //
1825
 
                    }                                       //
1826
 
                    ['offset']=>integer()                   //
1827
 
                    ['raw']=>array() {                      //
1828
 
                        ['anciliary_data_def']=>integer()   //
1829
 
                        ['sound_information']=>integer()    //
1830
 
                    }                                       //
1831
 
                    ['size']=>integer()                     //
1832
 
                }                                           //
1833
 
            }                                               //
1834
 
            ['bext']=>array() {                             //
1835
 
                [<x>]=>array() {                            //
1836
 
                    ['author']=>string()                    //
1837
 
                    ['bwf_version']=>integer()              //
1838
 
                    ['coding_history']=>array() {           //
1839
 
                        [<x>]=>string()                     //
1840
 
                    }                                       //
1841
 
                    ['data']=>string()                      //
1842
 
                    ['offset']=>integer()                   //
1843
 
                    ['origin_date']=>string()               //
1844
 
                    ['origin_date_unix']=>integer()         //
1845
 
                    ['origin_time']=>string()               //
1846
 
                    ['reference']=>string()                 //
1847
 
                    ['reserved']=>integer()                 //
1848
 
                    ['size']=>integer()                     //
1849
 
                    ['time_reference']=>integer()           //
1850
 
                    ['title']=>string()                     //
1851
 
                }                                           //
1852
 
            }                                               //
1853
 
            ['cart']=>array() {                             //
1854
 
                [<x>]=>array() {                            //
1855
 
                    ['artist']=>string()                    //
1856
 
                    ['category']=>string()                  //
1857
 
                    ['classification']=>string()            //
1858
 
                    ['client_id']=>string()                 //
1859
 
                    ['cut_id']=>string()                    //
1860
 
                    ['data']=>string()                      //
1861
 
                    ['end_date']=>string()                  //
1862
 
                    ['end_time']=>string()                  //
1863
 
                    ['offset']=>integer()                   //
1864
 
                    ['out_cue']=>string()                   //
1865
 
                    ['post_time']=>array() {                //
1866
 
                        [<x>]=>array() {                    //
1867
 
                            ['timer_value']=>integer()      //
1868
 
                            ['usage_fourcc']=>string()      //
1869
 
                        }                                   //
1870
 
                    }                                       //
1871
 
                    ['producer_app_id']=>string()           //
1872
 
                    ['producer_app_version']=>string()      //
1873
 
                    ['size']=>integer()                     //
1874
 
                    ['start_date']=>string()                //
1875
 
                    ['start_time']=>string()                //
1876
 
                    ['tag_text']=>array() {                 //
1877
 
                        [<x>]=>string()                     //
1878
 
                    }                                       //
1879
 
                    ['title']=>string()                     //
1880
 
                    ['url']=>string()                       //
1881
 
                    ['user_defined_text']=>string()         //
1882
 
                    ['version']=>string()                   //
1883
 
                    ['zero_db_reference']=>integer()        //
1884
 
                }                                           //
1885
 
            }                                               //
1886
 
            ['data']=>array() {                             //
1887
 
                [<x>]=>array() {                            //
1888
 
                    ['offset']=>integer()                   //
1889
 
                    ['size']=>integer()                     //
1890
 
                }                                           //
1891
 
            }                                               //
1892
 
            ['fact']=>array() {                             //
1893
 
                [<x>]=>array() {                            //
1894
 
                    ['data']=>string()                      //
1895
 
                    ['offset']=>integer()                   //
1896
 
                    ['size']=>integer()                     //
1897
 
                }                                           //
1898
 
            }                                               //
1899
 
            ['fmt ']=>array() {                             //
1900
 
                [<x>]=>array() {                            //
1901
 
                    ['data']=>string()                      //
1902
 
                    ['offset']=>integer()                   //
1903
 
                    ['size']=>integer()                     //
1904
 
                }                                           //
1905
 
            }                                               //
1906
 
            ['rgad']=>array() {                             //
1907
 
                [<x>]=>array() {                            //
1908
 
                    ['data']=>string()                      //
1909
 
                    ['offset']=>integer()                   //
1910
 
                    ['size']=>integer()                     //
1911
 
                }                                           //
1912
 
            }                                               //
1913
 
        }                                                   //
1914
 
        ['audio']=>array() {                                //
1915
 
            [<x>]=>array() {                                //
1916
 
                ['bitrate']=>integer()                      //
1917
 
                ['bits_per_sample']=>integer()              //
1918
 
                ['channels']=>integer()                     //
1919
 
                ['codec']=>string()                         //
1920
 
                ['sample_rate']=>integer()                  //
1921
 
            }                                               //
1922
 
            ['bits_per_sample']=>integer()                  //
1923
 
            ['channels']=>integer()                         //
1924
 
            ['codec_fourcc']=>string()                      //
1925
 
            ['codec_name']=>string()                        //
1926
 
            ['sample_rate']=>integer()                      //
1927
 
            ['total_samples']=>integer()                    //
1928
 
        }                                                   //
1929
 
        ['comments']=>array() {                             // array of array of strings containing best data from any available metainformation tag (APE, ID3v2, ID3v1, Lyrics3, Vorbis, ASF, RIFF, Real, etc.)
1930
 
            [<key name>]=>array()                           // <key name> can be anything, usually 'artist', 'title', etc. Contains array of one or more values (eg: multiple artists are possible)
1931
 
        }                                                   //
1932
 
        ['header_size']=>integer()                          //
1933
 
        ['raw']=>array() {                                  //
1934
 
            ['avih']=>array() {                             //
1935
 
                ['dwFlags']=>integer()                      //
1936
 
                ['dwHeight']=>integer()                     //
1937
 
                ['dwInitialFrames']=>integer()              //
1938
 
                ['dwLength']=>integer()                     //
1939
 
                ['dwMaxBytesPerSec']=>integer()             //
1940
 
                ['dwMicroSecPerFrame']=>integer()           //
1941
 
                ['dwPaddingGranularity']=>integer()         //
1942
 
                ['dwRate']=>integer()                       //
1943
 
                ['dwScale']=>integer()                      //
1944
 
                ['dwStart']=>integer()                      //
1945
 
                ['dwStreams']=>integer()                    //
1946
 
                ['dwSuggestedBufferSize']=>integer()        //
1947
 
                ['dwTotalFrames']=>integer()                //
1948
 
                ['dwWidth']=>integer()                      //
1949
 
                ['flags']=>array() {                        //
1950
 
                    ['capturedfile']=>boolean()             //
1951
 
                    ['copyrighted']=>boolean()              //
1952
 
                    ['hasindex']=>boolean()                 //
1953
 
                    ['interleaved']=>boolean()              //
1954
 
                    ['mustuseindex']=>boolean()             //
1955
 
                    ['trustcktype']=>boolean()              //
1956
 
                }                                           //
1957
 
            }                                               //
1958
 
            ['fact']=>array() {                             //
1959
 
                ['NumberOfSamples']=>integer()              //
1960
 
            }                                               //
1961
 
            ['fmt ']=>array() {                             //
1962
 
                ['nAvgBytesPerSec']=>integer()              //
1963
 
                ['wBitsPerSample']=>integer()               //
1964
 
                ['nBlockAlign']=>integer()                  //
1965
 
                ['nChannels']=>integer()                    //
1966
 
                ['nSamplesPerSec']=>integer()               //
1967
 
                ['wFormatTag']=>integer()                   //
1968
 
            }                                               //
1969
 
            ['rgad']=>array() {                             //
1970
 
                ['audiophile']=>array() {                   //
1971
 
                    ['adjustment']=>integer()               //
1972
 
                    ['name']=>integer()                     //
1973
 
                    ['originator']=>integer()               //
1974
 
                    ['signbit']=>integer()                  //
1975
 
                }                                           //
1976
 
                ['fPeakAmplitude']=>double()                //
1977
 
                ['nAudiophileRgAdjust']=>integer()          //
1978
 
                ['nRadioRgAdjust']=>integer()               //
1979
 
                ['radio']=>array() {                        //
1980
 
                    ['adjustment']=>integer()               //
1981
 
                    ['name']=>integer()                     //
1982
 
                    ['originator']=>integer()               //
1983
 
                    ['signbit']=>integer()                  //
1984
 
                }                                           //
1985
 
            }                                               //
1986
 
            ['strf']=>array() {                             //
1987
 
                ['auds']=>array() {                         //
1988
 
                    [<x>]=>array() {                        //
1989
 
                        ['nAvgBytesPerSec']=>integer()      //
1990
 
                        ['wBitsPerSample']=>integer()       //
1991
 
                        ['nBlockAlign']=>integer()          //
1992
 
                        ['nChannels']=>integer()            //
1993
 
                        ['nSamplesPerSec']=>integer()       //
1994
 
                        ['wFormatTag']=>integer()           //
1995
 
                    }                                       //
1996
 
                }                                           //
1997
 
                ['vids']=>array() {                         //
1998
 
                    [<x>]=>array() {                        //
1999
 
                        ['biBitCount']=>integer()           //
2000
 
                        ['biClrImportant']=>integer()       //
2001
 
                        ['biClrUsed']=>integer()            //
2002
 
                        ['biHeight']=>integer()             //
2003
 
                        ['biPlanes']=>integer()             //
2004
 
                        ['biSize']=>integer()               //
2005
 
                        ['biSizeImage']=>integer()          //
2006
 
                        ['biWidth']=>integer()              //
2007
 
                        ['biXPelsPerMeter']=>integer()      //
2008
 
                        ['biYPelsPerMeter']=>integer()      //
2009
 
                        ['fourcc']=>string()                //
2010
 
                    }                                       //
2011
 
                }                                           //
2012
 
            }                                               //
2013
 
            ['strh']=>array() {                             //
2014
 
                [<x>]=>array() {                            //
2015
 
                    ['dwFlags']=>integer()                  //
2016
 
                    ['dwInitialFrames']=>integer()          //
2017
 
                    ['dwLength']=>integer()                 //
2018
 
                    ['dwQuality']=>integer()                //
2019
 
                    ['dwRate']=>integer()                   //
2020
 
                    ['dwSampleSize']=>integer()             //
2021
 
                    ['dwScale']=>integer()                  //
2022
 
                    ['dwStart']=>integer()                  //
2023
 
                    ['dwSuggestedBufferSize']=>integer()    //
2024
 
                    ['fccHandler']=>string()                //
2025
 
                    ['fccType']=>string()                   //
2026
 
                    ['rcFrame']=>integer()                  //
2027
 
                    ['wLanguage']=>integer()                //
2028
 
                    ['wPriority']=>integer()                //
2029
 
                }                                           //
2030
 
            }                                               //
2031
 
        }                                                   //
2032
 
        ['rgad']=>array() {                                 //
2033
 
            ['audiophile']=>array() {                       //
2034
 
                ['adjustment']=>double()                    //
2035
 
                ['name']=>string()                          //
2036
 
                ['originator']=>string()                    //
2037
 
            }                                               //
2038
 
            ['peakamplitude']=>double()                     //
2039
 
            ['radio']=>array() {                            //
2040
 
                ['adjustment']=>double()                    //
2041
 
                ['name']=>string()                          //
2042
 
                ['originator']=>string()                    //
2043
 
            }                                               //
2044
 
        }                                                   //
2045
 
        ['video']=>array() {                                //
2046
 
            [<x>]=>array() {                                //
2047
 
                ['codec']=>string()                         //
2048
 
                ['frame_height']=>integer()                 //
2049
 
                ['frame_rate']=>double()                    //
2050
 
                ['frame_width']=>integer()                  //
2051
 
            }                                               //
2052
 
        }                                                   //
2053
 
        ['litewave']=>array() {                             // http://www.clearjump.com
2054
 
            ['raw']=>array() {                              //
2055
 
                ['compression_method']=>integer()           // 1=lossy; 2=lossless
2056
 
                ['compression_flags']=>integer()            //
2057
 
                ['m_dwScale']=>integer()                    // scalefactor for lossy compression - related to m_wQuality as: $m_wQuality = round((2000 - $m_dwScale) / 20)
2058
 
                ['m_dwBlockSize']=>integer()                // number of samples in encoded blocks
2059
 
                ['m_wQuality']=>integer()                   // quality factor (0=most compressed lossy; 99=best quality lossy; 100=lossless)
2060
 
                ['m_wMarkDistance']=>integer()              // distance between marks in bytes
2061
 
                ['m_wReserved']=>integer()                  //
2062
 
                ['m_dwOrgSize']=>integer()                  // original file size in bytes
2063
 
                ['m_bFactExists']=>integer()                // indicates if 'fact' chunk exists in the original file
2064
 
                ['m_dwRiffChunkSize']=>integer()            // riff chunk size in the original file
2065
 
            }                                               //
2066
 
            ['quality_factor']=>integer()                   // alias of ['raw']['m_wQuality']
2067
 
        }                                                   //
2068
 
    }                                                       //
2069
 
 
2070
 
 
2071
 
    ['shn']=>array() {             // Shorten - lossless audio compression
2072
 
        ['seektable']=>array() {   //
2073
 
            ['length']=>integer()  //
2074
 
            ['offset']=>integer()  //
2075
 
            ['present']=>boolean() //
2076
 
        }                          //
2077
 
        ['version']=>integer()     //
2078
 
    }                              //
2079
 
 
2080
 
 
2081
 
    ['swf']=>array() {                  // SWF - ShockWave Flash (www.openswf.org)
2082
 
        ['header']=>array() {           //
2083
 
            ['frame_count']=>integer()  //
2084
 
            ['frame_height']=>integer() //
2085
 
            ['frame_width']=>integer()  //
2086
 
            ['length']=>integer()       //
2087
 
            ['signature']=>string()     //
2088
 
            ['version']=>integer()      //
2089
 
        }                               //
2090
 
        ['bgcolor']=>string()           //
2091
 
        ['tags']=>array()               //
2092
 
    }                                   //
2093
 
 
2094
 
 
2095
 
    ['voc']=>array() {                            // VOC - SoundBlaster VOC audio format
2096
 
        ['blocks']=>array() {                     //
2097
 
            [<x>]=>array() {                      //
2098
 
                ['bits_per_sample']=>integer()    //
2099
 
                ['block_offset']=>integer()       //
2100
 
                ['block_size']=>integer()         //
2101
 
                ['block_type_id']=>integer()      //
2102
 
                ['channels']=>integer()           //
2103
 
                ['compression_name']=>string()    //
2104
 
                ['compression_type']=>integer()   //
2105
 
                ['pack_method']=>integer()        //
2106
 
                ['sample_rate']=>integer()        //
2107
 
                ['sample_rate_id']=>integer()     //
2108
 
                ['stereo']=>boolean()             //
2109
 
                ['time_constant']=>integer()      //
2110
 
                ['wFormat']=>integer()            //
2111
 
            }                                     //
2112
 
        }                                         //
2113
 
        ['compressed_bits_per_sample']=>integer() //
2114
 
        ['header']=>array() {                     //
2115
 
            ['datablock_offset']=>integer()       //
2116
 
            ['major_version']=>integer()          //
2117
 
            ['minor_version']=>integer()          //
2118
 
        }                                         //
2119
 
    }                                             //
2120
 
 
2121
 
 
2122
 
    ['vqf']=>array() {                    // VQF - transform-domain weighted interleave Vector Quantization Format (lossy audio)
2123
 
        ['COMM']=>array() {               //
2124
 
            ['bitrate']=>integer()        //
2125
 
            ['channel_mode']=>integer()   //
2126
 
            ['sample_rate']=>integer()    //
2127
 
            ['security_level']=>integer() //
2128
 
        }                                 //
2129
 
        ['DSIZ']=>integer()               //
2130
 
        ['comments']=>array() {           // array of array of strings containing best data from any available metainformation tag (APE, ID3v2, ID3v1, Lyrics3, Vorbis, ASF, RIFF, Real, etc.)
2131
 
            [<key name>]=>array()         // <key name> can be anything, usually 'artist', 'title', etc. Contains array of one or more values (eg: multiple artists are possible)
2132
 
        }                                 //
2133
 
        ['raw']=>array() {                //
2134
 
            ['header_tag']=>string()      //
2135
 
            ['size']=>integer()           //
2136
 
            ['version']=>string()         //
2137
 
        }                                 //
2138
 
    }                                     //
2139
 
 
2140
 
 
2141
 
    ['wavpack']=>array() {           // WavPack - lossless audio compression
2142
 
        ['bits']=>integer()          //
2143
 
        ['crc1']=>double()           //
2144
 
        ['crc2']=>integer()          //
2145
 
        ['extension']=>string()      //
2146
 
        ['extra_bc']=>string()       //
2147
 
        ['extras']=>string()         //
2148
 
        ['flags_raw']=>integer()     //
2149
 
        ['offset']=>integer()        //
2150
 
        ['shift']=>integer()         //
2151
 
        ['size']=>integer()          //
2152
 
        ['total_samples']=>integer() //
2153
 
        ['version']=>integer()       //
2154
 
    }                                //
2155
 
 
2156
 
 
2157
 
    ['zip']=>array() {                                           // ZIP - lossless data compression
2158
 
        ['central_directory']=>array() {                         //
2159
 
            [<x>]=>array() {                                     //
2160
 
                ['compressed_size']=>integer()                   //
2161
 
                ['compression_method']=>string()                 //
2162
 
                ['create_version']=>string()                     //
2163
 
                ['entry_offset']=>integer()                      //
2164
 
                ['extract_version']=>string()                    //
2165
 
                ['filename']=>string()                           //
2166
 
                ['flags']=>array() {                             //
2167
 
                    ['compression_speed']=>string()              //
2168
 
                    ['data_descriptor_used']=>boolean()          //
2169
 
                    ['encrypted']=>boolean()                     //
2170
 
                }                                                //
2171
 
                ['host_os']=>string()                            //
2172
 
                ['last_modified_timestamp']=>integer()           //
2173
 
                ['offset']=>integer()                            //
2174
 
                ['raw']=>array() {                               //
2175
 
                    ['compressed_size']=>integer()               //
2176
 
                    ['compression_method']=>integer()            //
2177
 
                    ['crc_32']=>double()                         //
2178
 
                    ['create_version']=>integer()                //
2179
 
                    ['disk_number_start']=>integer()             //
2180
 
                    ['external_file_attrib']=>double()           //
2181
 
                    ['extra_field_length']=>integer()            //
2182
 
                    ['extract_version']=>integer()               //
2183
 
                    ['file_comment_length']=>integer()           //
2184
 
                    ['filename_length']=>integer()               //
2185
 
                    ['general_flags']=>integer()                 //
2186
 
                    ['internal_file_attrib']=>integer()          //
2187
 
                    ['last_mod_file_date']=>integer()            //
2188
 
                    ['last_mod_file_time']=>integer()            //
2189
 
                    ['local_header_offset']=>integer()           //
2190
 
                    ['signature']=>integer()                     //
2191
 
                    ['uncompressed_size']=>integer()             //
2192
 
                }                                                //
2193
 
                ['uncompressed_size']=>integer()                 //
2194
 
            }                                                    //
2195
 
        }                                                        //
2196
 
        ['comments']=>array() {                                  //
2197
 
            ['comment']=>string()                                //
2198
 
        }                                                        //
2199
 
        ['compressed_size']=>integer()                           //
2200
 
        ['compression_method']=>string()                         //
2201
 
        ['compression_speed']=>string()                          //
2202
 
        ['end_central_directory']=>array() {                     //
2203
 
            ['comment']=>string()                                //
2204
 
            ['comment_length']=>integer()                        //
2205
 
            ['directory_entries_this_disk']=>integer()           //
2206
 
            ['directory_entries_total']=>integer()               //
2207
 
            ['directory_offset']=>integer()                      //
2208
 
            ['directory_size']=>integer()                        //
2209
 
            ['disk_number_current']=>integer()                   //
2210
 
            ['disk_number_start_directory']=>integer()           //
2211
 
            ['offset']=>integer()                                //
2212
 
            ['signature']=>integer()                             //
2213
 
        }                                                        //
2214
 
        ['entries']=>array() {                                   //
2215
 
            [<x>]=>array() {                                     //
2216
 
                ['compressed_size']=>integer()                   //
2217
 
                ['compression_method']=>string()                 //
2218
 
                ['extract_version']=>string()                    //
2219
 
                ['filename']=>string()                           //
2220
 
                ['flags']=>array() {                             //
2221
 
                    ['compression_speed']=>string()              //
2222
 
                    ['data_descriptor_used']=>boolean()          //
2223
 
                    ['encrypted']=>boolean()                     //
2224
 
                }                                                //
2225
 
                ['host_os']=>string()                            //
2226
 
                ['last_modified_timestamp']=>integer()           //
2227
 
                ['offset']=>integer()                            //
2228
 
                ['raw']=>array() {                               //
2229
 
                    ['compressed_size']=>integer()               //
2230
 
                    ['compression_method']=>integer()            //
2231
 
                    ['crc_32']=>integer()                        //
2232
 
                    ['extra_field_length']=>integer()            //
2233
 
                    ['extract_version']=>integer()               //
2234
 
                    ['filename_length']=>integer()               //
2235
 
                    ['general_flags']=>integer()                 //
2236
 
                    ['last_mod_file_date']=>integer()            //
2237
 
                    ['last_mod_file_time']=>integer()            //
2238
 
                    ['signature']=>integer()                     //
2239
 
                    ['uncompressed_size']=>integer()             //
2240
 
                }                                                //
2241
 
                ['uncompressed_size']=>integer()                 //
2242
 
            }                                                    //
2243
 
        }                                                        //
2244
 
        ['entries_count']=>integer()                             //
2245
 
        ['files']=>array() {                                     // multidimensional tree-structure array listing of all files and directories in image
2246
 
            [<directory name>]=>array()                          // entries of type array are directories (key is directory name), may contain files and/or other subdirectories
2247
 
            [<file name>]=>integer()                             // entries of type integer are files (key is file name, value is file size in bytes)
2248
 
        }                                                        //
2249
 
        ['uncompressed_size']=>integer()                         //
2250
 
    }                                                            //
2251
 
}                                                                //