structure.txt 129 KB

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