structure.txt 130 KB

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