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