summaryrefslogtreecommitdiffstats
path: root/apps/media/getID3/structure.txt
diff options
context:
space:
mode:
Diffstat (limited to 'apps/media/getID3/structure.txt')
-rw-r--r--apps/media/getID3/structure.txt2251
1 files changed, 2251 insertions, 0 deletions
diff --git a/apps/media/getID3/structure.txt b/apps/media/getID3/structure.txt
new file mode 100644
index 00000000000..a0651c60936
--- /dev/null
+++ b/apps/media/getID3/structure.txt
@@ -0,0 +1,2251 @@
+/////////////////////////////////////////////////////////////////
+/// getID3() by James Heinrich <info@getid3.org> //
+// available at http://getid3.sourceforge.net //
+// or http://www.getid3.org //
+/////////////////////////////////////////////////////////////////
+// //
+// changelog.txt - part of getID3() //
+// See readme.txt for more details //
+// ///
+/////////////////////////////////////////////////////////////////
+
+What does the returned data structure look like?
+================================================
+
+Hint: If you take a look at the nicely-formatted output of
+/demos/demo.browse.php you can generally see where the data you want
+is returned.
+
+Note that what is described below is only a rough guide to what data
+is actually returned by getID3(), since the actual data returned
+depends entirely on what data is in your file, what type of file it
+is, what kind of data is in the tags, etc. In addition, some formats
+(Quicktime for example) use a freeform recursive structure that is
+impossible to document completely.
+
+In the vast majority of cases, all the data you'll need is located
+in the root of the array or the special arrays described below in
+Section 1 (['audio'], ['video'], ['tags_html'], ['replay_gain']).
+
+It is suggested that for most applications you should use tag data
+from the root ['tags_html'] array, as this is the only location
+where data is stored in a consistant format: HTML-compatible
+character entities (ie &#1234;) for characters outside the 0x20-0x7F
+range (printable ISO-8859-1 characters). This data can be used as-is
+for output in HTML, and can be converted to whatever character set
+you wish to use if the output is not HTML.
+
+If you want to merge all available tags (for example, ID3v2 + ID3v1)
+into one array, you can call
+getid3_lib::CopyTagsToComments($ThisFileInfo)
+and you'll then have ['comments'] and ['comments_html'] which are
+identical to ['tags'] and ['tags_html'] except the array is one
+dimension shorter (no tag type array keys). For example, artist is:
+['tags_html']['id3v1']['artist'][0] or ['comments_html']['artist'][0]
+
+
+Some commonly-used information is found in these locations:
+
+File type: ['fileformat'] // ex 'mp3'
+Song length: ['playtime_string'] // ex '3:45' (minutes:seconds)
+ ['playtime_seconds'] // ex 225.13 (seconds)
+Overall bitrate: ['bitrate'] // ex 113485.71 (bits-per-second - divide by 1000 for kbps)
+Audio frequency: ['audio']['sample_rate'] // ex 44100 (Hertz)
+Artist name: ['comments_html']['artist'][0] // ex 'Elvis' (if CopyTagsToComments() is used - see above)
+ // more than one artist may be present, you may want to use implode:
+ // implode(' & ', ['comments_html']['artist'])
+
+
+/////////////////////////////////////////////////////////////////
+
+array() {
+ // SECTION 1: Values that are present for most or all file types
+
+ ['getID3version']=>string() // version of getID3() that scanned this file (ex: '1.6.2')
+ ['error']=>array() // if present, contains one or more fatal error messages
+ ['warning']=>array() // if present, contains one or more non-fatal warning messages
+ ['exist']=>boolean() // does this file actually exist?
+ ['fileformat']=>string() // one of the standard filetype abbreviations ('mp3', 'riff', 'quicktime', etc)
+ ['filename']=>string() // filename only, no path
+ ['filenamepath']=>string() // full filename with path
+ ['filepath']=>string() // path to file, not including filename
+ ['filesize']=>integer() // filesize in bytes
+ ['md5_file']=>string() // md5 hash of entire file
+ ['md5_data']=>string() // md5 hash of portion of file excluding prepended and appeneded metainformation tags (ID3, APE, etc) - may be identical to ['md5_file']
+ ['md5_data_source']=>string() // md5 hash of original source file before compression (currently used by FLAC, OptimFROG, WavPack v4+)
+ ['sha1_file']=>string() // sha1 hash of entire file
+ ['sha1_data']=>string() // sha1 hash of portion of file excluding prepended and appeneded metainformation tags (ID3, APE, etc) - may be identical to ['md5_file']
+ ['avdataoffset']=>integer() // offset in bytes where audio/video data starts and prepended tags end
+ ['avdataend']=>integer() // offset in bytes where audio/video data ends and appended tags start
+ ['bitrate']=>double() // average bitrate for entire file (all audio/video streams), in bits per second
+ ['mime_type']=>string() // if present, MIME type of scanned file
+ ['playtime_seconds']=>double() // playing time of file, in seconds
+ ['playtime_string']=>string() // playing time of file, formatted as <minutes>:<seconds>
+ ['tags']=>array() // array of all metainformation tags present in file ('id3v1', 'id3v2', 'ape', 'riff', 'asf', etc)
+ ['audio']=>array() {
+ ['bitrate']=>double() // average bitrate for audio portion of file (all audio streams), in bits per second
+ ['bitrate_mode']=>string() // 'cbr' (Constant Bit Rate) or 'vbr' (Variable Bit Rate)
+ ['bits_per_sample']=>integer() //
+ ['channelmode']=>string() // 'mono' or 'stereo'
+ ['channels']=>integer() // number of audio channels
+ ['codec']=>string() // name of audio compression codec
+ ['compression_ratio']=>double() // ratio of compressed byte size of audio to uncompressed size
+ ['dataformat']=>string() // one of the standard filetype abbreviations ('mp3', 'wma', etc)
+ ['encoder']=>string() // name and version of encoder used to create file, if known
+ ['lossless']=>boolean() // true = lossless compression; false = lossy compression
+ ['sample_rate']=>integer()
+ }
+ ['video']=>array() {
+ ['bitrate']=>integer() // average bitrate for video portion of file (all video streams), in bits per second
+ ['bitrate_mode']=>string() // 'cbr' (Constant Bit Rate) or 'vbr' (Variable Bit Rate)
+ ['bits_per_sample']=>integer() //
+ ['codec']=>string() // name of video compression codec
+ ['compression_ratio']=>double() // ratio of compressed byte size of video to uncompressed size
+ ['dataformat']=>string() // one of the standard filetype abbreviations ('avi', 'mpeg', etc)
+ ['encoder']=>string() // name and version of encoder used to create file, if known
+ ['frame_rate']=>double() // frames per second
+ ['lossless']=>boolean() // true = lossless compression; false = lossy compression
+ ['resolution_x']=>integer() // horizontal dimension of video/image in pixels
+ ['resolution_y']=>integer() // vertical dimension of video/image in pixels
+ ['pixel_aspect_ratio']=>double() // pixel display aspect ratio
+ }
+ ['tags']=>array() { // array of array of strings containing best data from any available metainformation tag (APE, ID3v2, ID3v1, Lyrics3, Vorbis, ASF, RIFF, Real, etc.)
+ [<key name>]=>array() // <key name> can be anything, usually 'artist', 'title', etc. Contains array of one or more values (eg: multiple artists are possible)
+ }
+ ['tags_html']=>array() { // identical to ['tags'], but with all entries converted to HTML entities as appropriate from various source encodings
+ [<key name>]=>array() //
+ }
+ ['replay_gain']=>array() { // replay gain information combined from any source that contains this information (LAME, ID3v2, Vorbis, APE, etc)
+ ['audiophile']=>array() {
+ ['adjustment']=>double()
+ ['originator']=>string()
+ ['peak']=>double()
+ }
+ ['radio']=>array() {
+ ['adjustment']=>double()
+ ['originator']=>string()
+ ['peak']=>double()
+ }
+ }
+
+
+ // SECTION 2: Values that are present for specific file types only
+
+ ['aac']=>array() { // AAC - Advanced Audio Coding / MPEG-4
+ ['bitrate_distribution']=>array() //
+ ['header']=>array() { //
+ ['channel_configuration']=>integer() //
+ ['crc_present']=>boolean() //
+ ['home']=>boolean() //
+ ['layer']=>integer() //
+ ['mpeg_version']=>integer() //
+ ['original']=>boolean() //
+ ['private']=>boolean() //
+ ['profile_id']=>integer() //
+ ['profile_text']=>string() //
+ ['sample_frequency']=>integer() //
+ ['sample_frequency_index']=>integer() //
+ ['synch']=>integer() //
+ } //
+ ['header_type']=>string() //
+ } //
+ //
+ ['ape']=>array() //
+ { //
+ ['comments']=>array() { // array of array of strings containing best data from any available metainformation tag (APE, ID3v2, ID3v1, Lyrics3, Vorbis, ASF, RIFF, Real, etc.)
+ [<key name>]=>array() // <key name> can be anything, usually 'artist', 'title', etc. Contains array of one or more values (eg: multiple artists are possible)
+ } //
+ ['footer']=>array() //
+ { //
+ ['flags']=>array() //
+ ['raw']=>array() //
+ ['tag_version']=>integer() //
+ } //
+ ['header']=>array() //
+ { //
+ ['flags']=>array() //
+ ['raw']=>array() //
+ ['tag_version']=>integer() //
+ } //
+ ['items']=>array() { // array of array of strings containing metainformation
+ [<key name>]=>array() { // <key name> can be anything, usually 'artist', 'title', etc. Contains array of one or more values (eg: multiple artists are possible)
+ ['data']=>array() { // array of one or more Unicode values
+ ['data_ascii']=>array() { // array of values converted approximately from Unicode to ASCII
+ ['flags']=>array() //
+ } //
+ } //
+ ['tag_offset_end']=>integer() //
+ ['tag_offset_start']=>integer() //
+ } //
+
+
+ ['asf']=>array() { // ASF - Advanced Streaming Format (ASF, Windows Media Audio (WMA), Windows Media Video (WMV))
+ ['audio_media']=>array() { //
+ [<x>]=>array() { //
+ ['bitrate']=>integer() //
+ ['bits_per_sample']=>integer() //
+ ['channels']=>integer() //
+ ['codec']=>string() //
+ ['codec_data']=>string() //
+ ['codec_data_size']=>integer() //
+ ['raw']=>array() { //
+ ['nAvgBytesPerSec']=>integer() //
+ ['wBitsPerSample']=>integer() //
+ ['nBlockAlign']=>integer() //
+ ['nChannels']=>integer() //
+ ['nSamplesPerSec']=>integer() //
+ ['wFormatTag']=>integer() //
+ } //
+ ['sample_rate']=>integer() //
+ } //
+ } //
+ ['codec_list']=>array() { //
+ ['codec_entries']=>array() { //
+ [<x>]=>array() { //
+ ['description']=>string() //
+ ['description_ascii']=>string() //
+ ['information']=>string() //
+ ['name']=>string() //
+ ['name_ascii']=>string() //
+ ['type']=>string() //
+ ['type_raw']=>integer() //
+ } //
+ } //
+ ['codec_entries_count']=>integer() //
+ ['objectid']=>string() //
+ ['objectid_guid']=>string() //
+ ['objectsize']=>integer() //
+ ['reserved']=>string() //
+ ['reserved_guid']=>string() //
+ } //
+ ['comments']=>array() { // array of comment values, derived from ['content_description']
+ ['album']=>string() //
+ ['artist']=>string() //
+ ['comment']=>string() //
+ ['copyright']=>string() //
+ ['genre']=>string() //
+ ['title']=>string() //
+ ['track']=>string() //
+ ['year']=>string() //
+ } //
+ ['content_description']=>array() { // raw values - should use values from ['comments'] instead
+ ['author']=>string() //
+ ['author_ascii']=>string() //
+ ['author_length']=>integer() //
+ ['copyright']=>string() //
+ ['copyright_ascii']=>string() //
+ ['copyright_length']=>integer() //
+ ['description']=>string() //
+ ['description_ascii']=>string() //
+ ['description_length']=>integer() //
+ ['objectid']=>string() //
+ ['objectid_guid']=>string() //
+ ['objectsize']=>integer() //
+ ['rating']=>string() //
+ ['rating_ascii']=>string() //
+ ['rating_length']=>integer() //
+ ['title']=>string() //
+ ['title_ascii']=>string() //
+ ['title_length']=>integer() //
+ } //
+ ['data_object']=>array() { //
+ ['fileid']=>string() //
+ ['fileid_guid']=>string() //
+ ['objectid']=>string() //
+ ['objectid_guid']=>string() //
+ ['objectsize']=>integer() //
+ ['reserved']=>integer() //
+ ['total_data_packets']=>integer() //
+ } //
+ ['extended_content_description']=>array() { //
+ ['content_descriptors']=>array() { //
+ [<x>]=>array() { //
+ ['name']=>string() //
+ ['name_ascii']=>string() //
+ ['name_length']=>integer() //
+ ['value']=>string() //
+ ['value_ascii']=>string() //
+ ['value_length']=>integer() //
+ ['value_type']=>integer() //
+ } //
+ } //
+ ['content_descriptors_count']=>integer() //
+ ['objectid']=>string() //
+ ['objectid_guid']=>string() //
+ ['objectsize']=>integer() //
+ } //
+ ['file_properties_object']=>array() { //
+ ['creation_date']=>double() //
+ ['creation_date_unix']=>double() //
+ ['data_packets']=>integer() //
+ ['fileid']=>string() //
+ ['fileid_guid']=>string() //
+ ['filesize']=>integer() //
+ ['flags']=>array() { //
+ ['broadcast']=>boolean() //
+ ['seekable']=>boolean() //
+ } //
+ ['flags_raw']=>integer() //
+ ['max_bitrate']=>integer() //
+ ['max_packet_size']=>integer() //
+ ['min_packet_size']=>integer() //
+ ['objectid']=>string() //
+ ['objectid_guid']=>string() //
+ ['objectsize']=>integer() //
+ ['play_duration']=>double() //
+ ['preroll']=>integer() //
+ ['send_duration']=>double() //
+ } //
+ ['header_extension_object']=>array() { //
+ ['extension_data']=>integer() //
+ ['extension_data_size']=>integer() //
+ ['objectid']=>string() //
+ ['objectid_guid']=>string() //
+ ['objectsize']=>integer() //
+ ['reserved_1']=>string() //
+ ['reserved_1_guid']=>string() //
+ ['reserved_2']=>integer() //
+ } //
+ ['header_object']=>array() { //
+ ['headerobjects']=>integer() //
+ ['objectid']=>string() //
+ ['objectid_guid']=>string() //
+ ['objectsize']=>integer() //
+ ['reserved1']=>integer() //
+ ['reserved2']=>integer() //
+ } //
+ ['marker_object']=>array() { //
+ ['markers_count']=>integer() //
+ ['objectid']=>string() //
+ ['objectid_guid']=>string() //
+ ['objectsize']=>integer() //
+ ['reserved']=>string() //
+ ['reserved_2']=>integer() //
+ ['reserved_guid']=>string() //
+ } //
+ ['stream_bitrate_properties']=>array() { //
+ ['bitrate_records']=>array() { //
+ [<x>]=>array() { //
+ ['bitrate']=>integer() //
+ ['flags_raw']=>integer() //
+ ['flags']=>array() { //
+ ['stream_number']=>integer() //
+ } //
+ } //
+ } //
+ ['bitrate_records_count']=>integer() //
+ ['objectid']=>string() //
+ ['objectid_guid']=>string() //
+ ['objectsize']=>integer() //
+ } //
+ ['stream_properties_object']=>array() { //
+ [<x>]=>array() { //
+ ['error_correct_data']=>string() //
+ ['error_correct_guid']=>string() //
+ ['error_correct_type']=>string() //
+ ['error_data_length']=>integer() //
+ ['flags_raw']=>integer() //
+ ['flags']=>array() { //
+ ['encrypted']=>boolean() //
+ } //
+ ['objectid']=>string() //
+ ['objectid_guid']=>string() //
+ ['objectsize']=>integer() //
+ ['stream_type']=>string() //
+ ['stream_type_guid']=>string() //
+ ['time_offset']=>integer() //
+ ['type_data_length']=>integer() //
+ ['type_specific_data']=>string() //
+ } //
+ } //
+ ['video_media']=>array() { //
+ [<x>]=>array() { //
+ ['flags']=>integer() //
+ ['format_data']=>array() { //
+ ['bits_per_pixel']=>integer() //
+ ['codec']=>string() //
+ ['codec_data']=>boolean() //
+ ['codec_fourcc']=>string() //
+ ['colors_important']=>integer() //
+ ['colors_used']=>integer() //
+ ['format_data_size']=>integer() //
+ ['horizontal_pels']=>integer() //
+ ['image_height']=>integer() //
+ ['image_size']=>integer() //
+ ['image_width']=>integer() //
+ ['reserved']=>integer() //
+ ['vertical_pels']=>integer() //
+ } //
+ ['format_data_size']=>integer() //
+ ['image_height']=>integer() //
+ ['image_width']=>integer() //
+ } //
+ } //
+ } //
+
+
+ ['au']=>array() { // AU - Next/Sun AUdio format
+ ['bits_per_sample']=>integer() //
+ ['channels']=>integer() //
+ ['comment']=>string() //
+ ['data_format']=>string() //
+ ['data_format_id']=>integer() //
+ ['data_size']=>integer() //
+ ['header_length']=>integer() //
+ ['sample_rate']=>integer() //
+ ['used_bits_per_sample']=>integer() //
+ } //
+
+
+ ['bmp']=>array() { // BMP - OS/2 or Windows BitMaP
+ ['header']=>array() { //
+ ['compression']=>string() //
+ ['raw']=>array() { //
+ ['bits_per_pixel']=>integer() //
+ ['bmp_data_size']=>integer() //
+ ['colors_important']=>integer() //
+ ['colors_used']=>integer() //
+ ['compression']=>integer() //
+ ['data_offset']=>integer() //
+ ['filesize']=>integer() //
+ ['header_size']=>integer() //
+ ['height']=>integer() //
+ ['identifier']=>string() //
+ ['planes']=>integer() //
+ ['resolution_h']=>integer() //
+ ['resolution_v']=>integer() //
+ ['width']=>integer() //
+ } //
+ } //
+ ['type_os']=>string() //
+ ['type_version']=>integer() //
+ } //
+
+
+ ['bonk']=>array() { // BONK - lossy/lossless audio compression (www.bonkenc.org)
+ ['BONK']=>array() { //
+ ['channels']=>integer() //
+ ['downsampling_ratio']=>integer() //
+ ['joint_stereo']=>boolean() //
+ ['lossless']=>boolean() //
+ ['number_samples']=>integer() //
+ ['number_taps']=>integer() //
+ ['offset']=>integer() //
+ ['sample_rate']=>integer() //
+ ['samples_per_packet']=>integer() //
+ ['size']=>integer() //
+ ['version']=>integer() //
+ } //
+ ['INFO']=>array() { //
+ ['size']=>integer() //
+ ['offset']=>integer() //
+ ['version']=>integer() //
+ [<x>]=>array() { //
+ ['nextbit']=>integer() //
+ ['offset']=>integer() //
+ } //
+ } //
+ ['dataend']=>integer() //
+ ['dataoffset']=>integer() //
+ } //
+
+
+ ['flac']=>array() { // FLAC - Free Lossless Audio Compressor
+ ['SEEKTABLE']=>array() { //
+ [<x>]=>array() { //
+ ['offset']=>integer() //
+ ['samples']=>integer() //
+ } //
+ ['placeholders']=>integer() //
+ ['raw']=>array() { //
+ ['block_data']=>string() //
+ ['block_length']=>integer() //
+ ['block_type']=>integer() //
+ ['block_type_text']=>string() //
+ ['last_meta_block']=>boolean() //
+ ['offset']=>integer() //
+ } //
+ } //
+ ['STREAMINFO']=>array() { //
+ ['audio_signature']=>string() //
+ ['bits_per_sample']=>integer() //
+ ['channels']=>integer() //
+ ['max_block_size']=>integer() //
+ ['max_frame_size']=>integer() //
+ ['min_block_size']=>integer() //
+ ['min_frame_size']=>integer() //
+ ['raw']=>array() { //
+ ['block_data']=>string() //
+ ['block_length']=>integer() //
+ ['block_type']=>integer() //
+ ['block_type_text']=>string() //
+ ['last_meta_block']=>boolean() //
+ ['offset']=>integer() //
+ } //
+ ['sample_rate']=>integer() //
+ ['samples_stream']=>integer() //
+ } //
+ ['VORBIS_COMMENT']=>array() { //
+ ['raw']=>array() { //
+ ['block_data']=>string() //
+ ['block_length']=>integer() //
+ ['block_type']=>integer() //
+ ['block_type_text']=>string() //
+ ['last_meta_block']=>boolean() //
+ ['offset']=>integer() //
+ } //
+ } //
+ ['compressed_audio_bytes']=>integer() //
+ ['compression_ratio']=>double() //
+ ['uncompressed_audio_bytes']=>integer() //
+ } //
+
+
+ ['gif']=>array() { // GIF - Graphics Interchange Format
+ ['global_color_table']=>array() { //
+ [<x>]=>integer() //
+ } //
+ ['header']=>array() { //
+ ['bits_per_pixel']=>integer() //
+ ['flags']=>array() { //
+ ['global_color_sorted']=>boolean() //
+ ['global_color_table']=>boolean() //
+ } //
+ ['global_color_size']=>integer() //
+ ['raw']=>array() { //
+ ['aspect_ratio']=>integer() //
+ ['bg_color_index']=>integer() //
+ ['flags']=>integer() //
+ ['height']=>integer() //
+ ['identifier']=>string() //
+ ['version']=>string() //
+ ['width']=>integer() //
+ } //
+ } //
+ ['version']=>string() //
+ } //
+
+
+ ['id3v1']=>array() { // ID3v1
+ ['album']=>string() //
+ ['artist']=>string() //
+ ['comment']=>string() //
+ ['genre']=>string() //
+ ['genreid']=>integer() //
+ ['title']=>string() //
+ ['track']=>integer() //
+ ['year']=>string() //
+ ['padding_valid']=>boolean() //
+ ['comments']=>array() //
+ ['tag_offset_start']=>integer() //
+ ['tag_offset_end']=>integer() //
+ } //
+
+
+ ['id3v2']=>array() { // ID3v2 - www.id3.org
+ [<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.
+ [<x>]=>array() { // some frames types allow multiple values ('COMM' for example), others do not and do not have this array level
+ ['asciidata']=>boolean() //
+ ['asciidescription']=>string() //
+ ['data']=>boolean() //
+ ['datalength']=>integer() //
+ ['dataoffset']=>integer() //
+ ['description']=>string() //
+ ['encoding']=>string() //
+ ['encodingid']=>integer() //
+ ['flags']=>array() { //
+ ['Encryption']=>boolean() //
+ ['FileAlterPreservation']=>boolean() //
+ ['GroupingIdentity']=>boolean() //
+ ['ReadOnly']=>boolean() //
+ ['TagAlterPreservation']=>boolean() //
+ ['compression']=>boolean() //
+ } //
+ ['framenamelong']=>string() //
+ ['language']=>string() //
+ ['languagename']=>string() //
+ } //
+ } //
+ ['comments']=>array() { // array of array of strings containing best data from any available metainformation tag (APE, ID3v2, ID3v1, Lyrics3, Vorbis, ASF, RIFF, Real, etc.)
+ [<key name>]=>array() // <key name> can be anything, usually 'artist', 'title', etc. Contains array of one or more values (eg: multiple artists are possible)
+ } //
+ ['flags']=>array() { //
+ ['experim']=>string() //
+ ['exthead']=>string() //
+ ['unsynch']=>string() //
+ } //
+ ['header']=>boolean() //
+ ['headerlength']=>integer() //
+ ['majorversion']=>integer() //
+ ['minorversion']=>integer() //
+ ['padding']=>array() { //
+ ['length']=>integer() //
+ ['start']=>integer() //
+ ['valid']=>boolean() //
+ } //
+ ['tag_offset_end']=>integer() //
+ ['tag_offset_start']=>integer() //
+ } //
+
+
+ ['iso']=>array() { // ISO-9660 - CD-ROM Image
+ ['directories']=>array() { //
+ [<x>]=>array() { //
+ [<x>]=>array() { //
+ ['file_flags']=>array() { //
+ ['associated']=>boolean() //
+ ['directory']=>boolean() //
+ ['extended']=>boolean() //
+ ['hidden']=>boolean() //
+ ['multiple']=>boolean() //
+ ['permissions']=>boolean() //
+ } //
+ ['file_identifier_ascii']=>string() //
+ ['filename']=>string() //
+ ['filesize']=>integer() //
+ ['offset_bytes']=>integer() //
+ ['raw']=>array() { //
+ ['extended_attribute_length']=>integer() //
+ ['file_flags']=>integer() //
+ ['file_identifier']=>string() //
+ ['file_identifier_length']=>integer() //
+ ['file_unit_size']=>integer() //
+ ['filesize']=>integer() //
+ ['interleave_gap_size']=>integer() //
+ ['length']=>integer() //
+ ['offset_logical']=>integer() //
+ ['recording_date_time']=>string() //
+ ['volume_sequence_number']=>integer() //
+ } //
+ ['recording_timestamp']=>integer() //
+ } //
+ } //
+ } //
+ ['files']=>array() { // multidimensional tree-structure array listing of all files and directories in image
+ [<directory name>]=>array() // entries of type array are directories (key is directory name), may contain files and/or other subdirectories
+ [<file name>]=>integer() // entries of type integer are files (key is file name, value is file size in bytes)
+ } //
+ ['path_table']=>array() { //
+ ['directories']=>array() { //
+ [<x>]=>array() { //
+ ['extended_length']=>integer() //
+ ['full_path']=>string() //
+ ['length']=>integer() //
+ ['location_bytes']=>integer() //
+ ['location_logical']=>integer() //
+ ['name']=>string() //
+ ['name_ascii']=>string() //
+ ['parent_directory']=>integer() //
+ } //
+ } //
+ ['offset']=>integer() //
+ ['raw']=>string() //
+ } //
+ ['primary_volume_descriptor']=>array() { //
+ ['abstract_file_identifier']=>string() //
+ ['application_identifier']=>string() //
+ ['bibliographic_file_identifier']=>string() //
+ ['copyright_file_identifier']=>string() //
+ ['data_preparer_identifier']=>string() //
+ ['offset']=>integer() //
+ ['publisher_identifier']=>string() //
+ ['raw']=>array() { //
+ ['abstract_file_identifier']=>string() //
+ ['application_data']=>string() //
+ ['application_identifier']=>string() //
+ ['bibliographic_file_identifier']=>string() //
+ ['copyright_file_identifier']=>string() //
+ ['data_preparer_identifier']=>string() //
+ ['file_structure_version']=>integer() //
+ ['logical_block_size']=>integer() //
+ ['path_table_l_location']=>integer() //
+ ['path_table_l_opt_location']=>integer() //
+ ['path_table_m_location']=>integer() //
+ ['path_table_m_opt_location']=>integer() //
+ ['path_table_size']=>integer() //
+ ['publisher_identifier']=>string() //
+ ['root_directory_record']=>string() //
+ ['standard_identifier']=>string() //
+ ['system_identifier']=>string() //
+ ['unused_1']=>string() //
+ ['unused_2']=>string() //
+ ['unused_3']=>string() //
+ ['unused_4']=>integer() //
+ ['volume_creation_date_time']=>string() //
+ ['volume_descriptor_type']=>integer() //
+ ['volume_descriptor_version']=>integer() //
+ ['volume_effective_date_time']=>string() //
+ ['volume_expiration_date_time']=>string() //
+ ['volume_identifier']=>string() //
+ ['volume_modification_date_time']=>string() //
+ ['volume_sequence_number']=>integer() //
+ ['volume_set_identifier']=>string() //
+ ['volume_set_size']=>integer() //
+ ['volume_space_size']=>integer() //
+ } //
+ ['system_identifier']=>string() //
+ ['volume_creation_date_time']=>integer() //
+ ['volume_effective_date_time']=>boolean() //
+ ['volume_expiration_date_time']=>boolean() //
+ ['volume_identifier']=>string() //
+ ['volume_modification_date_time']=>integer() //
+ ['volume_set_identifier']=>string() //
+ } //
+ ['supplementary_volume_descriptor']=>array() { //
+ ['abstract_file_identifier']=>string() //
+ ['application_identifier']=>string() //
+ ['bibliographic_file_identifier']=>string() //
+ ['copyright_file_identifier']=>string() //
+ ['data_preparer_identifier']=>string() //
+ ['offset']=>integer() //
+ ['publisher_identifier']=>string() //
+ ['raw']=>array() { //
+ ['abstract_file_identifier']=>string() //
+ ['application_data']=>string() //
+ ['application_identifier']=>string() //
+ ['bibliographic_file_identifier']=>string() //
+ ['copyright_file_identifier']=>string() //
+ ['data_preparer_identifier']=>string() //
+ ['file_structure_version']=>integer() //
+ ['logical_block_size']=>integer() //
+ ['path_table_l_location']=>integer() //
+ ['path_table_l_opt_location']=>integer() //
+ ['path_table_m_location']=>integer() //
+ ['path_table_m_opt_location']=>integer() //
+ ['path_table_size']=>integer() //
+ ['publisher_identifier']=>string() //
+ ['root_directory_record']=>string() //
+ ['standard_identifier']=>string() //
+ ['system_identifier']=>string() //
+ ['unused_1']=>string() //
+ ['unused_2']=>string() //
+ ['unused_3']=>string() //
+ ['unused_4']=>integer() //
+ ['volume_creation_date_time']=>string() //
+ ['volume_descriptor_type']=>integer() //
+ ['volume_descriptor_version']=>integer() //
+ ['volume_effective_date_time']=>string() //
+ ['volume_expiration_date_time']=>string() //
+ ['volume_identifier']=>string() //
+ ['volume_modification_date_time']=>string() //
+ ['volume_sequence_number']=>integer() //
+ ['volume_set_identifier']=>string() //
+ ['volume_set_size']=>integer() //
+ ['volume_space_size']=>integer() //
+ } //
+ ['system_identifier']=>string() //
+ ['volume_creation_date_time']=>integer() //
+ ['volume_effective_date_time']=>boolean() //
+ ['volume_expiration_date_time']=>boolean() //
+ ['volume_identifier']=>string() //
+ ['volume_modification_date_time']=>integer() //
+ ['volume_set_identifier']=>string() //
+ } //
+ } //
+
+
+ ['jpg']=>array() { // JPEG - still image
+ ['exif']=>array() // data returned from PHP's exif_read_data() function
+ } //
+
+
+ ['la']=>array() { // LA - Lossless Audio (www.lossless-audio.com)
+ ['raw']=>array() {
+ ['format']=>integer() //
+ ['flags']=>integer() //
+ } //
+ ['flags']=>array() { //
+ ['seekable']=>boolean() //
+ ['high_compression']=>boolean() //
+ } //
+ ['bits_per_sample']=>integer() //
+ ['bytes_per_sample']=>integer() //
+ ['bytes_per_second']=>integer() //
+ ['channels']=>integer() //
+ ['compression_ratio']=>double() //
+ ['format_size']=>integer() //
+ ['header_size']=>integer() //
+ ['original_crc']=>double() //
+ ['sample_rate']=>integer() //
+ ['samples']=>integer() //
+ ['uncompressed_size']=>integer() //
+ ['version']=>double() //
+ ['version_major']=>integer() //
+ ['version_minor']=>integer() //
+ ['footerstart']=>double() //
+ }
+
+
+ ['lpac']=>array() { // LPAC - Lossless Predictive Audio Compressor
+ ['block_length']=>integer() //
+ ['file_version']=>integer() //
+ ['flags']=>array() { //
+ ['16_bit']=>boolean() //
+ ['24_bit']=>boolean() //
+ ['adaptive_prediction_order']=>boolean() //
+ ['adaptive_quantization']=>boolean() //
+ ['fast_compress']=>boolean() //
+ ['is_wave']=>boolean() //
+ ['joint_stereo']=>boolean() //
+ ['max_prediction_order']=>integer() //
+ ['quantization']=>integer() //
+ ['random_access']=>boolean() //
+ ['stereo']=>boolean() //
+ } //
+ ['raw']=>array() { //
+ ['audio_type']=>integer() //
+ ['parameters']=>double() //
+ } //
+ ['total_samples']=>integer() //
+ } //
+
+
+ ['lyrics3']=>array() { // Lyrics3 - metainformation tags
+ ['comments']=>array() { //
+ ['album']=>string() //
+ ['artist']=>string() //
+ ['author']=>string() //
+ ['comment']=>string() //
+ ['title']=>string() //
+ } //
+ ['flags']=>array() { //
+ ['lyrics']=>boolean() //
+ ['timestamps']=>boolean() //
+ } //
+ ['images']=>array() { //
+ [<x>]=>array() { //
+ ['description']=>string() //
+ ['filename']=>string() //
+ ['timestamp']=>integer() //
+ } //
+ } //
+ ['raw']=>array() { //
+ ['offset_start']=>integer() //
+ ['offset_end']=>integer() //
+ ['AUT']=>string() //
+ ['EAL']=>string() //
+ ['EAR']=>string() //
+ ['ETT']=>string() //
+ ['IMG']=>string() //
+ ['IND']=>string() //
+ ['INF']=>string() //
+ ['LYR']=>string() //
+ ['lyrics3tagsize']=>integer() //
+ ['lyrics3version']=>integer() //
+ ['unparsed']=>string() //
+ } //
+ ['synchedlyrics']=>array() { //
+ [<x>]=>string() //
+ } //
+ ['unsynchedlyrics']=>string() //
+ } //
+
+
+ ['midi']=>array() { // MIDI (Musical Instrument Digital Interface) - sequenced music
+ ['comments']=>array() { //
+ ['comment']=>string() //
+ ['copyright']=>string() //
+ } //
+ ['keysignature']=>array() { //
+ [<x>]=>string() //
+ } //
+ ['raw']=>array() { //
+ ['events']=>array() { //
+ [<x>]=>array() { //
+ [<x>]=>array() { //
+ ['us_qnote']=>integer() //
+ } //
+ } //
+ } //
+ ['fileformat']=>integer() //
+ ['headersize']=>integer() //
+ ['ticksperqnote']=>integer() //
+ ['track']=>array() { //
+ [<x>]=>array() { //
+ ['instrument']=>string() //
+ ['instrumentid']=>integer() //
+ ['name']=>string() //
+ } //
+ } //
+ ['tracks']=>integer() //
+ } //
+ ['timesignature']=>array() { //
+ [<x>]=>string() //
+ } //
+ ['totalticks']=>integer() //
+ } //
+
+
+ ['monkeys_audio']=>array() { // Monkey's Audio - lossless audio compression
+ ['bitrate']=>double() //
+ ['bits_per_sample']=>integer() //
+ ['channels']=>integer() //
+ ['compressed_size']=>integer() //
+ ['compression']=>string() //
+ ['compression_ratio']=>double() //
+ ['flags']=>array() { //
+ ['24-bit']=>boolean() //
+ ['8-bit']=>boolean() //
+ ['crc-32']=>boolean() //
+ ['no_wav_header']=>boolean() //
+ ['peak_level']=>boolean() //
+ ['seek_elements']=>boolean() //
+ } //
+ ['frames']=>integer() //
+ ['peak_level']=>integer() //
+ ['peak_ratio']=>double() //
+ ['playtime']=>double() //
+ ['raw']=>array() { //
+ ['header_tag']=>string() //
+ ['nChannels']=>integer() //
+ ['nCompressionLevel']=>integer() //
+ ['nFinalFrameSamples']=>integer() //
+ ['nFormatFlags']=>integer() //
+ ['nPeakLevel']=>integer() //
+ ['nSampleRate']=>integer() //
+ ['nSeekElements']=>integer() //
+ ['nTotalFrames']=>integer() //
+ ['nVersion']=>integer() //
+ ['nWAVHeaderBytes']=>integer() //
+ ['nWAVTerminatingBytes']=>integer() //
+ } //
+ ['sample_rate']=>integer() //
+ ['samples']=>integer() //
+ ['samples_per_frame']=>integer() //
+ ['uncompressed_size']=>integer() //
+ ['version']=>double() //
+ } //
+
+
+ ['mpc']=>array() { // MPC (Musepack) - lossy audio compression
+ ['header']=>array() { //
+ ['album_gain_db']=>integer() //
+ ['album_peak']=>integer() //
+ ['album_peak_db']=>boolean() //
+ ['title_gain_db']=>integer() //
+ ['title_peak']=>integer() //
+ ['title_peak_db']=>boolean() //
+ ['begin_loud']=>boolean() //
+ ['end_loud']=>boolean() //
+ ['encoder_version']=>string() //
+ ['frame_count']=>integer() //
+ ['intensity_stereo']=>boolean() //
+ ['last_frame_length']=>integer() //
+ ['max_level']=>integer() //
+ ['max_subband']=>integer() //
+ ['mid_side_stereo']=>boolean() //
+ ['profile']=>string() //
+ ['sample_rate']=>integer() //
+ ['samples']=>integer() //
+ ['size']=>integer() //
+ ['stream_major_version']=>integer() //
+ ['stream_minor_version']=>integer() //
+ ['true_gapless']=>boolean() //
+ ['raw']=>array() { //
+ ['album_gain']=>integer() //
+ ['album_peak']=>integer() //
+ ['encoder_version']=>integer() //
+ ['preamble']=>string() //
+ ['profile']=>integer() //
+ ['sample_rate']=>integer() //
+ ['title_gain']=>integer() //
+ ['title_peak']=>integer() //
+ } //
+ } //
+ } //
+
+
+ ['mpeg']=>array() { // MPEG (Motion Picture Experts Group) - MPEG video and/or MPEG audio (MP3/MP2/MP1)
+ ['audio']=>array() { //
+ ['LAME']=>array() { //
+ ['RGAD']=>array() { //
+ ['peak_amplitude']=>double() //
+ } //
+ ['ath_type']=>integer() //
+ ['audio_bytes']=>integer() //
+ ['bitrate_min']=>integer() //
+ ['encoder_delay']=>integer() //
+ ['encoding_flags']=>array() { //
+ ['nogap_next']=>boolean() //
+ ['nogap_prev']=>boolean() //
+ ['nspsytune']=>boolean() //
+ ['nssafejoint']=>boolean() //
+ } //
+ ['end_padding']=>integer() //
+ ['lame_tag_crc']=>integer() //
+ ['lowpass_frequency']=>integer() //
+ ['mp3_gain_db']=>double() //
+ ['mp3_gain_factor']=>double() //
+ ['mp3_gain_raw']=>integer() //
+ ['music_crc']=>integer() //
+ ['noise_shaping']=>integer() //
+ ['noise_shaping_raw']=>integer() //
+ ['not_optimal_quality']=>boolean() //
+ ['not_optimal_quality_raw']=>integer() //
+ ['preset_used_id']=>integer() //
+ ['short_version']=>string() // ex: "LAME 3.93"
+ ['long_version']=>string() // (pre-v3.90 only) ex: "LAME 3.88 (alpha)"
+ ['source_sample_freq']=>string() //
+ ['source_sample_freq_raw']=>integer() //
+ ['stereo_mode']=>string() //
+ ['stereo_mode_raw']=>integer() //
+ ['surround_info']=>string() //
+ ['surround_info_id']=>integer() //
+ ['tag_revision']=>integer() //
+ ['vbr_method']=>string() //
+ ['vbr_method_raw']=>integer() //
+ } //
+ ['VBR_bitrate']=>double() //
+ ['VBR_bytes']=>integer() //
+ ['VBR_frames']=>integer() //
+ ['VBR_method']=>string() //
+ ['VBR_scale']=>integer() //
+ ['bitrate']=>integer() //
+ ['bitrate_distribution']=>array() { //
+ ['free']=>integer() //
+ ['8']=>integer() //
+ ['16']=>integer() //
+ ['24']=>integer() //
+ ['32']=>integer() //
+ ['40']=>integer() //
+ ['48']=>integer() //
+ ['56']=>integer() //
+ ['64']=>integer() //
+ ['80']=>integer() //
+ ['96']=>integer() //
+ ['112']=>integer() //
+ ['128']=>integer() //
+ ['144']=>integer() //
+ ['160']=>integer() //
+ } //
+ ['bitrate_mode']=>string() //
+ ['channelmode']=>string() //
+ ['channels']=>integer() //
+ ['copyright']=>boolean() //
+ ['crc']=>integer() //
+ ['emphasis']=>string() //
+ ['frame_count']=>integer() //
+ ['framelength']=>integer() //
+ ['layer']=>integer() //
+ ['modeextension']=>string() //
+ ['original']=>boolean() //
+ ['padding']=>boolean() //
+ ['private']=>boolean() //
+ ['protection']=>boolean() //
+ ['raw']=>array() { //
+ ['bitrate']=>integer() //
+ ['channelmode']=>integer() //
+ ['copyright']=>integer() //
+ ['emphasis']=>integer() //
+ ['layer']=>integer() //
+ ['modeextension']=>integer() //
+ ['original']=>integer() //
+ ['padding']=>integer() //
+ ['private']=>integer() //
+ ['protection']=>integer() //
+ ['sample_rate']=>integer() //
+ ['synch']=>integer() //
+ ['version']=>integer() //
+ } //
+ ['sample_rate']=>integer() //
+ ['stereo_distribution']=>array() { //
+ ['dual channel']=>integer() //
+ ['joint stereo']=>integer() //
+ ['mono']=>integer() //
+ ['stereo']=>integer() //
+ } //
+ ['toc']=>array() { //
+ [<x>]=>integer() //
+ } //
+ ['version']=>string() //
+ ['version_distribution']=>array() { //
+ [<x>]=>integer() //
+ [<x>]=>integer() //
+ ['2.5']=>integer() //
+ } //
+ ['xing_flags']=>array() { //
+ ['bytes']=>boolean() //
+ ['frames']=>boolean() //
+ ['toc']=>boolean() //
+ ['vbr_scale']=>boolean() //
+ } //
+ ['xing_flags_raw']=>string() //
+ } //
+ ['video']=>array() { //
+ ['bitrate']=>integer() //
+ ['bitrate_mode']=>string() //
+ ['frame_rate']=>double() //
+ ['framesize_horizontal']=>integer() //
+ ['framesize_vertical']=>integer() //
+ ['pixel_aspect_ratio']=>double() //
+ ['pixel_aspect_ratio_text']=>string() //
+ ['raw']=>array() { //
+ ['bitrate']=>integer() //
+ ['constrained_param_flag']=>integer() //
+ ['frame_rate']=>integer() //
+ ['framesize_horizontal']=>integer() //
+ ['framesize_vertical']=>integer() //
+ ['intra_quant_flag']=>integer() //
+ ['marker_bit']=>integer() //
+ ['pixel_aspect_ratio']=>integer() //
+ ['vbv_buffer_size']=>integer() //
+ } //
+ } //
+ } //
+
+
+ ['nsv']=>array() { // NSV - Nullsoft Streaming Video
+ ['NSVf']=>array() { //
+ ['TOC_entries_1']=>integer() //
+ ['TOC_entries_2']=>integer() //
+ ['file_size']=>integer() //
+ ['header_length']=>integer() //
+ ['identifier']=>string() //
+ ['meta_size']=>integer() //
+ ['metadata']=>string() //
+ ['playtime_ms']=>integer() //
+ } //
+ ['NSVs']=>array() { //
+ ['audio_codec']=>string() //
+ ['frame_rate']=>double() //
+ ['framerate_index']=>integer() //
+ ['identifier']=>string() //
+ ['offset']=>integer() //
+ ['resolution_x']=>integer() //
+ ['resolution_y']=>integer() //
+ ['unknown1b']=>integer() //
+ ['unknown1c']=>integer() //
+ ['unknown1d']=>integer() //
+ ['unknown2a']=>integer() //
+ ['unknown2b']=>integer() //
+ ['unknown2c']=>integer() //
+ ['unknown2d']=>integer() //
+ ['unknown3a']=>integer() //
+ ['unknown3b']=>integer() //
+ ['unknown3c']=>integer() //
+ ['unknown3d']=>integer() //
+ ['video_codec']=>string() //
+ } //
+ ['comments']=>array() { //
+ ['aspect']=>string() //
+ ['title']=>string() //
+ } //
+ } //
+
+
+ ['ofr']=>array() { // OFR (OptimFROG) - lossless audio compression
+ ['COMP']=>array() { //
+ [<x>]=>array() { //
+ ['channel_configuration']=>string() //
+ ['crc_32']=>boolean() //
+ ['encoder']=>string() //
+ ['offset']=>integer() //
+ ['raw']=>array() { //
+ ['algorithm_id']=>integer() //
+ ['channel_configuration']=>integer() //
+ ['encoder_id']=>integer() //
+ ['sample_type']=>integer() //
+ } //
+ ['sample_count']=>integer() //
+ ['sample_type']=>string() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['HEAD']=>array() { //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ ['OFR ']=>array() { //
+ ['channel_config']=>integer() //
+ ['channels']=>integer() //
+ ['compression']=>string() //
+ ['encoder']=>string() //
+ ['offset']=>integer() //
+ ['raw']=>array() { //
+ ['compression']=>integer() //
+ ['encoder_id']=>integer() //
+ ['sample_type']=>integer() //
+ } //
+ ['sample_rate']=>integer() //
+ ['sample_type']=>string() //
+ ['size']=>integer() //
+ ['total_samples']=>integer() //
+ } //
+ ['TAIL']=>array() { //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+
+
+ ['ogg']=>array() { // OGG - container format for Ogg Vorbis, OggFLAC, Speex, etc
+ ['bitrate_average']=>double() //
+ ['bitrate_max']=>integer() //
+ ['bitrate_min']=>integer() //
+ ['bitrate_nominal']=>integer() //
+ ['bitstreamversion']=>integer() //
+ ['blocksize_large']=>integer() //
+ ['blocksize_small']=>integer() //
+ ['comments']=>array() { // array of array of strings containing best data from any available metainformation tag (APE, ID3v2, ID3v1, Lyrics3, Vorbis, ASF, RIFF, Real, etc.)
+ [<key name>]=>array() // <key name> can be anything, usually 'artist', 'title', etc. Contains array of one or more values (eg: multiple artists are possible)
+ } //
+ ['comments_raw']=>array() { //
+ [<x>]=>array() { //
+ ['dataoffset']=>integer() //
+ ['key']=>string() //
+ ['size']=>integer() //
+ ['value']=>string() //
+ } //
+ } //
+ ['numberofchannels']=>integer() //
+ ['pageheader']=>array() { //
+ [<x>]=>array() { //
+ ['flags']=>array() { //
+ ['bos']=>boolean() //
+ ['eos']=>boolean() //
+ ['fresh']=>boolean() //
+ } //
+ ['flags_raw']=>integer() //
+ ['header_end_offset']=>integer() //
+ ['packet_type']=>integer() //
+ ['page_checksum']=>double() //
+ ['page_end_offset']=>integer() //
+ ['page_length']=>integer() //
+ ['page_segments']=>integer() //
+ ['page_seqno']=>integer() //
+ ['page_start_offset']=>integer() //
+ ['pcm_abs_position']=>integer() //
+ ['segment_table']=>array() { //
+ [<x>]=>integer() //
+ } //
+ ['stream_serialno']=>integer() //
+ ['stream_structver']=>integer() //
+ ['stream_type']=>string() //
+ } //
+ ['eos']=>array() { //
+ ['flags']=>array() { //
+ ['bos']=>boolean() //
+ ['eos']=>boolean() //
+ ['fresh']=>boolean() //
+ } //
+ ['flags_raw']=>integer() //
+ ['header_end_offset']=>integer() //
+ ['page_checksum']=>double() //
+ ['page_end_offset']=>integer() //
+ ['page_length']=>integer() //
+ ['page_segments']=>integer() //
+ ['page_seqno']=>integer() //
+ ['page_start_offset']=>integer() //
+ ['pcm_abs_position']=>integer() //
+ ['segment_table']=>array() { //
+ [<x>]=>integer() //
+ } //
+ ['stream_serialno']=>integer() //
+ ['stream_structver']=>integer() //
+ } //
+ } //
+ ['samplerate']=>integer() //
+ ['samples']=>integer() //
+ ['stop_bit']=>integer() //
+ ['vendor']=>string() //
+ } //
+
+
+ ['png']=>array() { // PNG (Portable Network Graphics) - still image
+ ['IDAT']=>array() { //
+ [<x>]=>array() { //
+ ['header']=>array() { //
+ ['crc']=>integer() //
+ ['data_length']=>integer() //
+ ['flags']=>array() { //
+ ['ancilliary']=>boolean() //
+ ['private']=>boolean() //
+ ['reserved']=>boolean() //
+ ['safe_to_copy']=>boolean() //
+ } //
+ ['type_raw']=>double() //
+ ['type_text']=>string() //
+ } //
+ } //
+ } //
+ ['IEND']=>array() { //
+ ['header']=>array() { //
+ ['crc']=>double() //
+ ['data']=>string() //
+ ['data_length']=>integer() //
+ ['flags']=>array() { //
+ ['ancilliary']=>boolean() //
+ ['private']=>boolean() //
+ ['reserved']=>boolean() //
+ ['safe_to_copy']=>boolean() //
+ } //
+ ['type_raw']=>double() //
+ ['type_text']=>string() //
+ } //
+ } //
+ ['IHDR']=>array() { //
+ ['color_type']=>array() { //
+ ['alpha']=>boolean() //
+ ['palette']=>boolean() //
+ ['true_color']=>boolean() //
+ } //
+ ['compression_method_text']=>string() //
+ ['header']=>array() { //
+ ['crc']=>double() //
+ ['data']=>string() //
+ ['data_length']=>integer() //
+ ['flags']=>array() { //
+ ['ancilliary']=>boolean() //
+ ['private']=>boolean() //
+ ['reserved']=>boolean() //
+ ['safe_to_copy']=>boolean() //
+ } //
+ ['type_raw']=>double() //
+ ['type_text']=>string() //
+ } //
+ ['height']=>integer() //
+ ['raw']=>array() { //
+ ['bit_depth']=>integer() //
+ ['color_type']=>integer() //
+ ['compression_method']=>integer() //
+ ['filter_method']=>integer() //
+ ['interlace_method']=>integer() //
+ } //
+ ['width']=>integer() //
+ } //
+ ['PLTE']=>array() { //
+ ['header']=>array() { //
+ ['crc']=>double() //
+ ['data']=>string() //
+ ['data_length']=>integer() //
+ ['flags']=>array() { //
+ ['ancilliary']=>boolean() //
+ ['private']=>boolean() //
+ ['reserved']=>boolean() //
+ ['safe_to_copy']=>boolean() //
+ } //
+ ['type_raw']=>double() //
+ ['type_text']=>string() //
+ } //
+ [<x>]=>integer() //
+ } //
+ ['comments']=>array() { // array of array of strings containing best data from any available metainformation tag (APE, ID3v2, ID3v1, Lyrics3, Vorbis, ASF, RIFF, Real, etc.)
+ [<key name>]=>array() // <key name> can be anything, usually 'artist', 'title', etc. Contains array of one or more values (eg: multiple artists are possible)
+ } //
+ ['gAMA']=>array() { //
+ ['gamma']=>double() //
+ ['header']=>array() { //
+ ['crc']=>integer() //
+ ['data']=>string() //
+ ['data_length']=>integer() //
+ ['flags']=>array() { //
+ ['ancilliary']=>boolean() //
+ ['private']=>boolean() //
+ ['reserved']=>boolean() //
+ ['safe_to_copy']=>boolean() //
+ } //
+ ['type_raw']=>double() //
+ ['type_text']=>string() //
+ } //
+ } //
+ ['oFFs']=>array() { //
+ ['header']=>array() { //
+ ['crc']=>double() //
+ ['data']=>string() //
+ ['data_length']=>integer() //
+ ['flags']=>array() { //
+ ['ancilliary']=>boolean() //
+ ['private']=>boolean() //
+ ['reserved']=>boolean() //
+ ['safe_to_copy']=>boolean() //
+ } //
+ ['type_raw']=>double() //
+ ['type_text']=>string() //
+ } //
+ ['position_x']=>integer() //
+ ['position_y']=>integer() //
+ ['unit']=>string() //
+ ['unit_specifier']=>integer() //
+ } //
+ ['pHYs']=>array() { //
+ ['header']=>array() { //
+ ['crc']=>integer() //
+ ['data']=>string() //
+ ['data_length']=>integer() //
+ ['flags']=>array() { //
+ ['ancilliary']=>boolean() //
+ ['private']=>boolean() //
+ ['reserved']=>boolean() //
+ ['safe_to_copy']=>boolean() //
+ } //
+ ['type_raw']=>double() //
+ ['type_text']=>string() //
+ } //
+ ['pixels_per_unit_x']=>integer() //
+ ['pixels_per_unit_y']=>integer() //
+ ['unit']=>string() //
+ ['unit_specifier']=>integer() //
+ } //
+ ['pcLb']=>array() { //
+ ['header']=>array() { //
+ ['crc']=>double() //
+ ['data']=>string() //
+ ['data_length']=>integer() //
+ ['flags']=>array() { //
+ ['ancilliary']=>boolean() //
+ ['private']=>boolean() //
+ ['reserved']=>boolean() //
+ ['safe_to_copy']=>boolean() //
+ } //
+ ['type_raw']=>double() //
+ ['type_text']=>string() //
+ } //
+ } //
+ ['tEXt']=>array() { //
+ ['header']=>array() { //
+ ['crc']=>integer() //
+ ['data']=>string() //
+ ['data_length']=>integer() //
+ ['flags']=>array() { //
+ ['ancilliary']=>boolean() //
+ ['private']=>boolean() //
+ ['reserved']=>boolean() //
+ ['safe_to_copy']=>boolean() //
+ } //
+ ['type_raw']=>double() //
+ ['type_text']=>string() //
+ } //
+ ['keyword']=>string() //
+ ['text']=>string() //
+ } //
+ ['tIME']=>array() { //
+ ['day']=>integer() //
+ ['header']=>array() { //
+ ['crc']=>integer() //
+ ['data']=>string() //
+ ['data_length']=>integer() //
+ ['flags']=>array() { //
+ ['ancilliary']=>boolean() //
+ ['private']=>boolean() //
+ ['reserved']=>boolean() //
+ ['safe_to_copy']=>boolean() //
+ } //
+ ['type_raw']=>double() //
+ ['type_text']=>string() //
+ } //
+ ['hour']=>integer() //
+ ['minute']=>integer() //
+ ['month']=>integer() //
+ ['second']=>integer() //
+ ['unix']=>integer() //
+ ['year']=>integer() //
+ } //
+ ['tRNS']=>array() { //
+ ['header']=>array() { //
+ ['crc']=>double() //
+ ['data']=>string() //
+ ['data_length']=>integer() //
+ ['flags']=>array() { //
+ ['ancilliary']=>boolean() //
+ ['private']=>boolean() //
+ ['reserved']=>boolean() //
+ ['safe_to_copy']=>boolean() //
+ } //
+ ['type_raw']=>double() //
+ ['type_text']=>string() //
+ } //
+ ['transparent_color_blue']=>integer() //
+ ['transparent_color_green']=>integer() //
+ ['transparent_color_red']=>integer() //
+ } //
+ ['zTXt']=>array() { //
+ ['compressed_text']=>string() //
+ ['compression_method']=>integer() //
+ ['compression_method_text']=>string() //
+ ['header']=>array() { //
+ ['crc']=>double() //
+ ['data']=>string() //
+ ['data_length']=>integer() //
+ ['flags']=>array() { //
+ ['ancilliary']=>boolean() //
+ ['private']=>boolean() //
+ ['reserved']=>boolean() //
+ ['safe_to_copy']=>boolean() //
+ } //
+ ['type_raw']=>double() //
+ ['type_text']=>string() //
+ } //
+ ['keyword']=>string() //
+ ['text']=>string() //
+ } //
+ } //
+
+
+ ['quicktime']=>array() { // Quicktime - video/audio
+ ['']=>array() { //
+ ['name']=>boolean() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ ['audio']=>array() { //
+ ['bit_depth']=>integer() //
+ ['channels']=>integer() //
+ ['codec']=>string() //
+ ['sample_rate']=>double() //
+ } //
+ ['free']=>array() { //
+ ['name']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ ['mdat']=>array() { //
+ ['name']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ ['moov']=>array() { //
+ ['hierarchy']=>string() //
+ ['name']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ ['subatoms']=>array() // This is an undocumentably-complex recursive array, typically containing a huge amount of seemingly disorganized data. Avoid this like the plague.
+ } //
+ ['time_scale']=>integer() //
+ ['display_scale']=>integer() // 1 = normal; 0.5 = half; 2 = double
+ ['video']=>array() { //
+ ['codec']=>string() //
+ ['color_depth']=>integer() //
+ ['color_depth_name']=>string() //
+ ['resolution_x']=>double() //
+ ['resolution_y']=>double() //
+ } //
+ ['wide']=>array() { //
+ ['name']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+
+
+ ['real']=>array() { // Real (RealAudio / RealVideo) - audio/video
+ ['chunks']=>array() { //
+ [<x>]=>array() { //
+ ['file_version']=>integer() //
+ ['headers_count']=>integer() //
+ ['length']=>integer() //
+ ['name']=>string() //
+ ['object_version']=>integer() //
+ ['offset']=>integer() //
+ } //
+ [<x>]=>array() { //
+ ['avg_bit_rate']=>integer() //
+ ['avg_packet_size']=>integer() //
+ ['data_offset']=>integer() //
+ ['duration']=>integer() //
+ ['flags']=>array() { //
+ ['live_broadcast']=>boolean() //
+ ['perfect_play']=>boolean() //
+ ['save_enabled']=>boolean() //
+ } //
+ ['flags_raw']=>integer() //
+ ['index_offset']=>integer() //
+ ['length']=>integer() //
+ ['max_bit_rate']=>integer() //
+ ['max_packet_size']=>integer() //
+ ['name']=>string() //
+ ['num_packets']=>integer() //
+ ['num_streams']=>integer() //
+ ['object_version']=>integer() //
+ ['offset']=>integer() //
+ ['preroll']=>integer() //
+ } //
+ } //
+ ['comments']=>array() { //
+ ['artist']=>string() //
+ ['comment']=>string() //
+ ['title']=>string() //
+ } //
+ } //
+
+
+ ['riff']=>array() { // RIFF (Resource Interchange File Format) - audio/video container format (AVI, WAV, CDDA, etc)
+ ['AIFC']=>array() { //
+ ['COMM']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['FVER']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['INST']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['MARK']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['SSND']=>array() { //
+ [<x>]=>array() { //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ } //
+ ['AIFF']=>array() { //
+ ['(c) ']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['COMM']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['SSND']=>array() { //
+ [<x>]=>array() { //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ } //
+ ['AVI ']=>array() { //
+ ['JUNK']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['hdrl']=>array() { //
+ ['avih']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['odml']=>array() { //
+ ['dmlh']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ } //
+ ['strl']=>array() { //
+ ['JUNK']=>array() { //
+ [<x>]=>array() { //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['strf']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['strh']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['strn']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ } //
+ } //
+ ['idx1']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['movi']=>array() { //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['CDDA']=>array() { //
+ ['fmt ']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['disc_id']=>integer() //
+ ['offset']=>integer() //
+ ['playtime_frames']=>integer() //
+ ['playtime_seconds']=>double() //
+ ['size']=>integer() //
+ ['start_offset_frame']=>integer() //
+ ['start_offset_seconds']=>double() //
+ ['track_num']=>integer() //
+ ['unknown1']=>integer() //
+ ['unknown6']=>integer() //
+ ['unknown7']=>integer() //
+ } //
+ } //
+ } //
+ ['WAVE']=>array() { //
+ ['DISP']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['INFO']=>array() { //
+ ['IART']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['ICMT']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['ICOP']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['IENG']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['IGNR']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['IKEY']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['IMED']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['INAM']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['ISBJ']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['ISFT']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['ISRC']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['ISRF']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['ITCH']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ } //
+ ['MEXT']=>array() { //
+ [<x>]=>array() { //
+ ['anciliary_data_length']=>integer() //
+ ['data']=>string() //
+ ['flags']=>array() { //
+ ['anciliary_data_free']=>boolean() //
+ ['anciliary_data_left']=>boolean() //
+ ['anciliary_data_right']=>boolean() //
+ ['homogenous']=>boolean() //
+ } //
+ ['offset']=>integer() //
+ ['raw']=>array() { //
+ ['anciliary_data_def']=>integer() //
+ ['sound_information']=>integer() //
+ } //
+ ['size']=>integer() //
+ } //
+ } //
+ ['bext']=>array() { //
+ [<x>]=>array() { //
+ ['author']=>string() //
+ ['bwf_version']=>integer() //
+ ['coding_history']=>array() { //
+ [<x>]=>string() //
+ } //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['origin_date']=>string() //
+ ['origin_date_unix']=>integer() //
+ ['origin_time']=>string() //
+ ['reference']=>string() //
+ ['reserved']=>integer() //
+ ['size']=>integer() //
+ ['time_reference']=>integer() //
+ ['title']=>string() //
+ } //
+ } //
+ ['cart']=>array() { //
+ [<x>]=>array() { //
+ ['artist']=>string() //
+ ['category']=>string() //
+ ['classification']=>string() //
+ ['client_id']=>string() //
+ ['cut_id']=>string() //
+ ['data']=>string() //
+ ['end_date']=>string() //
+ ['end_time']=>string() //
+ ['offset']=>integer() //
+ ['out_cue']=>string() //
+ ['post_time']=>array() { //
+ [<x>]=>array() { //
+ ['timer_value']=>integer() //
+ ['usage_fourcc']=>string() //
+ } //
+ } //
+ ['producer_app_id']=>string() //
+ ['producer_app_version']=>string() //
+ ['size']=>integer() //
+ ['start_date']=>string() //
+ ['start_time']=>string() //
+ ['tag_text']=>array() { //
+ [<x>]=>string() //
+ } //
+ ['title']=>string() //
+ ['url']=>string() //
+ ['user_defined_text']=>string() //
+ ['version']=>string() //
+ ['zero_db_reference']=>integer() //
+ } //
+ } //
+ ['data']=>array() { //
+ [<x>]=>array() { //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['fact']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['fmt ']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ ['rgad']=>array() { //
+ [<x>]=>array() { //
+ ['data']=>string() //
+ ['offset']=>integer() //
+ ['size']=>integer() //
+ } //
+ } //
+ } //
+ ['audio']=>array() { //
+ [<x>]=>array() { //
+ ['bitrate']=>integer() //
+ ['bits_per_sample']=>integer() //
+ ['channels']=>integer() //
+ ['codec']=>string() //
+ ['sample_rate']=>integer() //
+ } //
+ ['bits_per_sample']=>integer() //
+ ['channels']=>integer() //
+ ['codec_fourcc']=>string() //
+ ['codec_name']=>string() //
+ ['sample_rate']=>integer() //
+ ['total_samples']=>integer() //
+ } //
+ ['comments']=>array() { // array of array of strings containing best data from any available metainformation tag (APE, ID3v2, ID3v1, Lyrics3, Vorbis, ASF, RIFF, Real, etc.)
+ [<key name>]=>array() // <key name> can be anything, usually 'artist', 'title', etc. Contains array of one or more values (eg: multiple artists are possible)
+ } //
+ ['header_size']=>integer() //
+ ['raw']=>array() { //
+ ['avih']=>array() { //
+ ['dwFlags']=>integer() //
+ ['dwHeight']=>integer() //
+ ['dwInitialFrames']=>integer() //
+ ['dwLength']=>integer() //
+ ['dwMaxBytesPerSec']=>integer() //
+ ['dwMicroSecPerFrame']=>integer() //
+ ['dwPaddingGranularity']=>integer() //
+ ['dwRate']=>integer() //
+ ['dwScale']=>integer() //
+ ['dwStart']=>integer() //
+ ['dwStreams']=>integer() //
+ ['dwSuggestedBufferSize']=>integer() //
+ ['dwTotalFrames']=>integer() //
+ ['dwWidth']=>integer() //
+ ['flags']=>array() { //
+ ['capturedfile']=>boolean() //
+ ['copyrighted']=>boolean() //
+ ['hasindex']=>boolean() //
+ ['interleaved']=>boolean() //
+ ['mustuseindex']=>boolean() //
+ ['trustcktype']=>boolean() //
+ } //
+ } //
+ ['fact']=>array() { //
+ ['NumberOfSamples']=>integer() //
+ } //
+ ['fmt ']=>array() { //
+ ['nAvgBytesPerSec']=>integer() //
+ ['wBitsPerSample']=>integer() //
+ ['nBlockAlign']=>integer() //
+ ['nChannels']=>integer() //
+ ['nSamplesPerSec']=>integer() //
+ ['wFormatTag']=>integer() //
+ } //
+ ['rgad']=>array() { //
+ ['audiophile']=>array() { //
+ ['adjustment']=>integer() //
+ ['name']=>integer() //
+ ['originator']=>integer() //
+ ['signbit']=>integer() //
+ } //
+ ['fPeakAmplitude']=>double() //
+ ['nAudiophileRgAdjust']=>integer() //
+ ['nRadioRgAdjust']=>integer() //
+ ['radio']=>array() { //
+ ['adjustment']=>integer() //
+ ['name']=>integer() //
+ ['originator']=>integer() //
+ ['signbit']=>integer() //
+ } //
+ } //
+ ['strf']=>array() { //
+ ['auds']=>array() { //
+ [<x>]=>array() { //
+ ['nAvgBytesPerSec']=>integer() //
+ ['wBitsPerSample']=>integer() //
+ ['nBlockAlign']=>integer() //
+ ['nChannels']=>integer() //
+ ['nSamplesPerSec']=>integer() //
+ ['wFormatTag']=>integer() //
+ } //
+ } //
+ ['vids']=>array() { //
+ [<x>]=>array() { //
+ ['biBitCount']=>integer() //
+ ['biClrImportant']=>integer() //
+ ['biClrUsed']=>integer() //
+ ['biHeight']=>integer() //
+ ['biPlanes']=>integer() //
+ ['biSize']=>integer() //
+ ['biSizeImage']=>integer() //
+ ['biWidth']=>integer() //
+ ['biXPelsPerMeter']=>integer() //
+ ['biYPelsPerMeter']=>integer() //
+ ['fourcc']=>string() //
+ } //
+ } //
+ } //
+ ['strh']=>array() { //
+ [<x>]=>array() { //
+ ['dwFlags']=>integer() //
+ ['dwInitialFrames']=>integer() //
+ ['dwLength']=>integer() //
+ ['dwQuality']=>integer() //
+ ['dwRate']=>integer() //
+ ['dwSampleSize']=>integer() //
+ ['dwScale']=>integer() //
+ ['dwStart']=>integer() //
+ ['dwSuggestedBufferSize']=>integer() //
+ ['fccHandler']=>string() //
+ ['fccType']=>string() //
+ ['rcFrame']=>integer() //
+ ['wLanguage']=>integer() //
+ ['wPriority']=>integer() //
+ } //
+ } //
+ } //
+ ['rgad']=>array() { //
+ ['audiophile']=>array() { //
+ ['adjustment']=>double() //
+ ['name']=>string() //
+ ['originator']=>string() //
+ } //
+ ['peakamplitude']=>double() //
+ ['radio']=>array() { //
+ ['adjustment']=>double() //
+ ['name']=>string() //
+ ['originator']=>string() //
+ } //
+ } //
+ ['video']=>array() { //
+ [<x>]=>array() { //
+ ['codec']=>string() //
+ ['frame_height']=>integer() //
+ ['frame_rate']=>double() //
+ ['frame_width']=>integer() //
+ } //
+ } //
+ ['litewave']=>array() { // http://www.clearjump.com
+ ['raw']=>array() { //
+ ['compression_method']=>integer() // 1=lossy; 2=lossless
+ ['compression_flags']=>integer() //
+ ['m_dwScale']=>integer() // scalefactor for lossy compression - related to m_wQuality as: $m_wQuality = round((2000 - $m_dwScale) / 20)
+ ['m_dwBlockSize']=>integer() // number of samples in encoded blocks
+ ['m_wQuality']=>integer() // quality factor (0=most compressed lossy; 99=best quality lossy; 100=lossless)
+ ['m_wMarkDistance']=>integer() // distance between marks in bytes
+ ['m_wReserved']=>integer() //
+ ['m_dwOrgSize']=>integer() // original file size in bytes
+ ['m_bFactExists']=>integer() // indicates if 'fact' chunk exists in the original file
+ ['m_dwRiffChunkSize']=>integer() // riff chunk size in the original file
+ } //
+ ['quality_factor']=>integer() // alias of ['raw']['m_wQuality']
+ } //
+ } //
+
+
+ ['shn']=>array() { // Shorten - lossless audio compression
+ ['seektable']=>array() { //
+ ['length']=>integer() //
+ ['offset']=>integer() //
+ ['present']=>boolean() //
+ } //
+ ['version']=>integer() //
+ } //
+
+
+ ['swf']=>array() { // SWF - ShockWave Flash (www.openswf.org)
+ ['header']=>array() { //
+ ['frame_count']=>integer() //
+ ['frame_height']=>integer() //
+ ['frame_width']=>integer() //
+ ['length']=>integer() //
+ ['signature']=>string() //
+ ['version']=>integer() //
+ } //
+ ['bgcolor']=>string() //
+ ['tags']=>array() //
+ } //
+
+
+ ['voc']=>array() { // VOC - SoundBlaster VOC audio format
+ ['blocks']=>array() { //
+ [<x>]=>array() { //
+ ['bits_per_sample']=>integer() //
+ ['block_offset']=>integer() //
+ ['block_size']=>integer() //
+ ['block_type_id']=>integer() //
+ ['channels']=>integer() //
+ ['compression_name']=>string() //
+ ['compression_type']=>integer() //
+ ['pack_method']=>integer() //
+ ['sample_rate']=>integer() //
+ ['sample_rate_id']=>integer() //
+ ['stereo']=>boolean() //
+ ['time_constant']=>integer() //
+ ['wFormat']=>integer() //
+ } //
+ } //
+ ['compressed_bits_per_sample']=>integer() //
+ ['header']=>array() { //
+ ['datablock_offset']=>integer() //
+ ['major_version']=>integer() //
+ ['minor_version']=>integer() //
+ } //
+ } //
+
+
+ ['vqf']=>array() { // VQF - transform-domain weighted interleave Vector Quantization Format (lossy audio)
+ ['COMM']=>array() { //
+ ['bitrate']=>integer() //
+ ['channel_mode']=>integer() //
+ ['sample_rate']=>integer() //
+ ['security_level']=>integer() //
+ } //
+ ['DSIZ']=>integer() //
+ ['comments']=>array() { // array of array of strings containing best data from any available metainformation tag (APE, ID3v2, ID3v1, Lyrics3, Vorbis, ASF, RIFF, Real, etc.)
+ [<key name>]=>array() // <key name> can be anything, usually 'artist', 'title', etc. Contains array of one or more values (eg: multiple artists are possible)
+ } //
+ ['raw']=>array() { //
+ ['header_tag']=>string() //
+ ['size']=>integer() //
+ ['version']=>string() //
+ } //
+ } //
+
+
+ ['wavpack']=>array() { // WavPack - lossless audio compression
+ ['bits']=>integer() //
+ ['crc1']=>double() //
+ ['crc2']=>integer() //
+ ['extension']=>string() //
+ ['extra_bc']=>string() //
+ ['extras']=>string() //
+ ['flags_raw']=>integer() //
+ ['offset']=>integer() //
+ ['shift']=>integer() //
+ ['size']=>integer() //
+ ['total_samples']=>integer() //
+ ['version']=>integer() //
+ } //
+
+
+ ['zip']=>array() { // ZIP - lossless data compression
+ ['central_directory']=>array() { //
+ [<x>]=>array() { //
+ ['compressed_size']=>integer() //
+ ['compression_method']=>string() //
+ ['create_version']=>string() //
+ ['entry_offset']=>integer() //
+ ['extract_version']=>string() //
+ ['filename']=>string() //
+ ['flags']=>array() { //
+ ['compression_speed']=>string() //
+ ['data_descriptor_used']=>boolean() //
+ ['encrypted']=>boolean() //
+ } //
+ ['host_os']=>string() //
+ ['last_modified_timestamp']=>integer() //
+ ['offset']=>integer() //
+ ['raw']=>array() { //
+ ['compressed_size']=>integer() //
+ ['compression_method']=>integer() //
+ ['crc_32']=>double() //
+ ['create_version']=>integer() //
+ ['disk_number_start']=>integer() //
+ ['external_file_attrib']=>double() //
+ ['extra_field_length']=>integer() //
+ ['extract_version']=>integer() //
+ ['file_comment_length']=>integer() //
+ ['filename_length']=>integer() //
+ ['general_flags']=>integer() //
+ ['internal_file_attrib']=>integer() //
+ ['last_mod_file_date']=>integer() //
+ ['last_mod_file_time']=>integer() //
+ ['local_header_offset']=>integer() //
+ ['signature']=>integer() //
+ ['uncompressed_size']=>integer() //
+ } //
+ ['uncompressed_size']=>integer() //
+ } //
+ } //
+ ['comments']=>array() { //
+ ['comment']=>string() //
+ } //
+ ['compressed_size']=>integer() //
+ ['compression_method']=>string() //
+ ['compression_speed']=>string() //
+ ['end_central_directory']=>array() { //
+ ['comment']=>string() //
+ ['comment_length']=>integer() //
+ ['directory_entries_this_disk']=>integer() //
+ ['directory_entries_total']=>integer() //
+ ['directory_offset']=>integer() //
+ ['directory_size']=>integer() //
+ ['disk_number_current']=>integer() //
+ ['disk_number_start_directory']=>integer() //
+ ['offset']=>integer() //
+ ['signature']=>integer() //
+ } //
+ ['entries']=>array() { //
+ [<x>]=>array() { //
+ ['compressed_size']=>integer() //
+ ['compression_method']=>string() //
+ ['extract_version']=>string() //
+ ['filename']=>string() //
+ ['flags']=>array() { //
+ ['compression_speed']=>string() //
+ ['data_descriptor_used']=>boolean() //
+ ['encrypted']=>boolean() //
+ } //
+ ['host_os']=>string() //
+ ['last_modified_timestamp']=>integer() //
+ ['offset']=>integer() //
+ ['raw']=>array() { //
+ ['compressed_size']=>integer() //
+ ['compression_method']=>integer() //
+ ['crc_32']=>integer() //
+ ['extra_field_length']=>integer() //
+ ['extract_version']=>integer() //
+ ['filename_length']=>integer() //
+ ['general_flags']=>integer() //
+ ['last_mod_file_date']=>integer() //
+ ['last_mod_file_time']=>integer() //
+ ['signature']=>integer() //
+ ['uncompressed_size']=>integer() //
+ } //
+ ['uncompressed_size']=>integer() //
+ } //
+ } //
+ ['entries_count']=>integer() //
+ ['files']=>array() { // multidimensional tree-structure array listing of all files and directories in image
+ [<directory name>]=>array() // entries of type array are directories (key is directory name), may contain files and/or other subdirectories
+ [<file name>]=>integer() // entries of type integer are files (key is file name, value is file size in bytes)
+ } //
+ ['uncompressed_size']=>integer() //
+ } //
+} //