stump-cli 0.1.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1243) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/README.md +9 -5
  4. data/bin/stump-cli +77 -27
  5. data/lib/{wp/.gitignore → .gitignore.erb} +2 -2
  6. data/lib/stump-cli/version.rb +1 -1
  7. data/lib/style.erb +11 -0
  8. data/stump-cli.gemspec +2 -0
  9. metadata +56 -1268
  10. data/lib/wp/Movefile-example +0 -62
  11. data/lib/wp/README.md +0 -25
  12. data/lib/wp/index.php +0 -17
  13. data/lib/wp/license.txt +0 -385
  14. data/lib/wp/readme.html +0 -96
  15. data/lib/wp/wp-activate.php +0 -131
  16. data/lib/wp/wp-admin/about.php +0 -193
  17. data/lib/wp/wp-admin/admin-ajax.php +0 -98
  18. data/lib/wp/wp-admin/admin-footer.php +0 -99
  19. data/lib/wp/wp-admin/admin-functions.php +0 -15
  20. data/lib/wp/wp-admin/admin-header.php +0 -243
  21. data/lib/wp/wp-admin/admin-post.php +0 -71
  22. data/lib/wp/wp-admin/admin.php +0 -347
  23. data/lib/wp/wp-admin/async-upload.php +0 -114
  24. data/lib/wp/wp-admin/comment.php +0 -299
  25. data/lib/wp/wp-admin/credits.php +0 -192
  26. data/lib/wp/wp-admin/css/about-rtl.css +0 -446
  27. data/lib/wp/wp-admin/css/about.css +0 -446
  28. data/lib/wp/wp-admin/css/admin-menu-rtl.css +0 -917
  29. data/lib/wp/wp-admin/css/admin-menu.css +0 -917
  30. data/lib/wp/wp-admin/css/color-picker-rtl.css +0 -127
  31. data/lib/wp/wp-admin/css/color-picker-rtl.min.css +0 -1
  32. data/lib/wp/wp-admin/css/color-picker.css +0 -127
  33. data/lib/wp/wp-admin/css/color-picker.min.css +0 -1
  34. data/lib/wp/wp-admin/css/colors/_admin.scss +0 -525
  35. data/lib/wp/wp-admin/css/colors/_mixins.scss +0 -43
  36. data/lib/wp/wp-admin/css/colors/_variables.scss +0 -58
  37. data/lib/wp/wp-admin/css/colors/blue/colors-rtl.css +0 -341
  38. data/lib/wp/wp-admin/css/colors/blue/colors-rtl.min.css +0 -1
  39. data/lib/wp/wp-admin/css/colors/blue/colors.css +0 -341
  40. data/lib/wp/wp-admin/css/colors/blue/colors.min.css +0 -1
  41. data/lib/wp/wp-admin/css/colors/blue/colors.scss +0 -11
  42. data/lib/wp/wp-admin/css/colors/coffee/colors-rtl.css +0 -341
  43. data/lib/wp/wp-admin/css/colors/coffee/colors-rtl.min.css +0 -1
  44. data/lib/wp/wp-admin/css/colors/coffee/colors.css +0 -341
  45. data/lib/wp/wp-admin/css/colors/coffee/colors.min.css +0 -1
  46. data/lib/wp/wp-admin/css/colors/coffee/colors.scss +0 -7
  47. data/lib/wp/wp-admin/css/colors/ectoplasm/colors-rtl.css +0 -341
  48. data/lib/wp/wp-admin/css/colors/ectoplasm/colors-rtl.min.css +0 -1
  49. data/lib/wp/wp-admin/css/colors/ectoplasm/colors.css +0 -341
  50. data/lib/wp/wp-admin/css/colors/ectoplasm/colors.min.css +0 -1
  51. data/lib/wp/wp-admin/css/colors/ectoplasm/colors.scss +0 -8
  52. data/lib/wp/wp-admin/css/colors/light/colors-rtl.css +0 -349
  53. data/lib/wp/wp-admin/css/colors/light/colors-rtl.min.css +0 -1
  54. data/lib/wp/wp-admin/css/colors/light/colors.css +0 -349
  55. data/lib/wp/wp-admin/css/colors/light/colors.min.css +0 -1
  56. data/lib/wp/wp-admin/css/colors/light/colors.scss +0 -38
  57. data/lib/wp/wp-admin/css/colors/midnight/colors-rtl.css +0 -341
  58. data/lib/wp/wp-admin/css/colors/midnight/colors-rtl.min.css +0 -1
  59. data/lib/wp/wp-admin/css/colors/midnight/colors.css +0 -341
  60. data/lib/wp/wp-admin/css/colors/midnight/colors.min.css +0 -1
  61. data/lib/wp/wp-admin/css/colors/midnight/colors.scss +0 -5
  62. data/lib/wp/wp-admin/css/colors/ocean/colors-rtl.css +0 -341
  63. data/lib/wp/wp-admin/css/colors/ocean/colors-rtl.min.css +0 -1
  64. data/lib/wp/wp-admin/css/colors/ocean/colors.css +0 -341
  65. data/lib/wp/wp-admin/css/colors/ocean/colors.min.css +0 -1
  66. data/lib/wp/wp-admin/css/colors/ocean/colors.scss +0 -8
  67. data/lib/wp/wp-admin/css/colors/sunrise/colors-rtl.css +0 -341
  68. data/lib/wp/wp-admin/css/colors/sunrise/colors-rtl.min.css +0 -1
  69. data/lib/wp/wp-admin/css/colors/sunrise/colors.css +0 -341
  70. data/lib/wp/wp-admin/css/colors/sunrise/colors.min.css +0 -1
  71. data/lib/wp/wp-admin/css/colors/sunrise/colors.scss +0 -6
  72. data/lib/wp/wp-admin/css/common-rtl.css +0 -3212
  73. data/lib/wp/wp-admin/css/common.css +0 -3212
  74. data/lib/wp/wp-admin/css/customize-controls-rtl.css +0 -889
  75. data/lib/wp/wp-admin/css/customize-controls-rtl.min.css +0 -1
  76. data/lib/wp/wp-admin/css/customize-controls.css +0 -889
  77. data/lib/wp/wp-admin/css/customize-controls.min.css +0 -1
  78. data/lib/wp/wp-admin/css/customize-widgets-rtl.css +0 -603
  79. data/lib/wp/wp-admin/css/customize-widgets-rtl.min.css +0 -1
  80. data/lib/wp/wp-admin/css/customize-widgets.css +0 -603
  81. data/lib/wp/wp-admin/css/customize-widgets.min.css +0 -1
  82. data/lib/wp/wp-admin/css/dashboard-rtl.css +0 -1116
  83. data/lib/wp/wp-admin/css/dashboard.css +0 -1116
  84. data/lib/wp/wp-admin/css/deprecated-media-rtl.css +0 -371
  85. data/lib/wp/wp-admin/css/deprecated-media-rtl.min.css +0 -1
  86. data/lib/wp/wp-admin/css/deprecated-media.css +0 -371
  87. data/lib/wp/wp-admin/css/deprecated-media.min.css +0 -1
  88. data/lib/wp/wp-admin/css/edit-rtl.css +0 -1501
  89. data/lib/wp/wp-admin/css/edit.css +0 -1501
  90. data/lib/wp/wp-admin/css/farbtastic-rtl.css +0 -41
  91. data/lib/wp/wp-admin/css/farbtastic.css +0 -41
  92. data/lib/wp/wp-admin/css/forms-rtl.css +0 -992
  93. data/lib/wp/wp-admin/css/forms.css +0 -992
  94. data/lib/wp/wp-admin/css/ie-rtl.css +0 -785
  95. data/lib/wp/wp-admin/css/ie-rtl.min.css +0 -1
  96. data/lib/wp/wp-admin/css/ie.css +0 -785
  97. data/lib/wp/wp-admin/css/ie.min.css +0 -1
  98. data/lib/wp/wp-admin/css/install-rtl.css +0 -389
  99. data/lib/wp/wp-admin/css/install-rtl.min.css +0 -1
  100. data/lib/wp/wp-admin/css/install.css +0 -389
  101. data/lib/wp/wp-admin/css/install.min.css +0 -1
  102. data/lib/wp/wp-admin/css/l10n-rtl.css +0 -101
  103. data/lib/wp/wp-admin/css/l10n.css +0 -101
  104. data/lib/wp/wp-admin/css/list-tables-rtl.css +0 -1875
  105. data/lib/wp/wp-admin/css/list-tables.css +0 -1875
  106. data/lib/wp/wp-admin/css/login-rtl.css +0 -269
  107. data/lib/wp/wp-admin/css/login-rtl.min.css +0 -1
  108. data/lib/wp/wp-admin/css/login.css +0 -269
  109. data/lib/wp/wp-admin/css/login.min.css +0 -1
  110. data/lib/wp/wp-admin/css/media-rtl.css +0 -1196
  111. data/lib/wp/wp-admin/css/media.css +0 -1196
  112. data/lib/wp/wp-admin/css/nav-menus-rtl.css +0 -857
  113. data/lib/wp/wp-admin/css/nav-menus.css +0 -857
  114. data/lib/wp/wp-admin/css/press-this-rtl.css +0 -458
  115. data/lib/wp/wp-admin/css/press-this.css +0 -458
  116. data/lib/wp/wp-admin/css/revisions-rtl.css +0 -574
  117. data/lib/wp/wp-admin/css/revisions.css +0 -574
  118. data/lib/wp/wp-admin/css/themes-rtl.css +0 -1732
  119. data/lib/wp/wp-admin/css/themes.css +0 -1732
  120. data/lib/wp/wp-admin/css/widgets-rtl.css +0 -577
  121. data/lib/wp/wp-admin/css/widgets.css +0 -577
  122. data/lib/wp/wp-admin/css/wp-admin-rtl.css +0 -14
  123. data/lib/wp/wp-admin/css/wp-admin-rtl.min.css +0 -1
  124. data/lib/wp/wp-admin/css/wp-admin.css +0 -14
  125. data/lib/wp/wp-admin/css/wp-admin.min.css +0 -1
  126. data/lib/wp/wp-admin/custom-background.php +0 -482
  127. data/lib/wp/wp-admin/custom-header.php +0 -1366
  128. data/lib/wp/wp-admin/customize.php +0 -278
  129. data/lib/wp/wp-admin/edit-comments.php +0 -254
  130. data/lib/wp/wp-admin/edit-form-advanced.php +0 -636
  131. data/lib/wp/wp-admin/edit-form-comment.php +0 -160
  132. data/lib/wp/wp-admin/edit-link-form.php +0 -150
  133. data/lib/wp/wp-admin/edit-tag-form.php +0 -204
  134. data/lib/wp/wp-admin/edit-tags.php +0 -591
  135. data/lib/wp/wp-admin/edit.php +0 -330
  136. data/lib/wp/wp-admin/export.php +0 -243
  137. data/lib/wp/wp-admin/freedoms.php +0 -57
  138. data/lib/wp/wp-admin/images/align-center-2x.png +0 -0
  139. data/lib/wp/wp-admin/images/align-center.png +0 -0
  140. data/lib/wp/wp-admin/images/align-left-2x.png +0 -0
  141. data/lib/wp/wp-admin/images/align-left.png +0 -0
  142. data/lib/wp/wp-admin/images/align-none-2x.png +0 -0
  143. data/lib/wp/wp-admin/images/align-none.png +0 -0
  144. data/lib/wp/wp-admin/images/align-right-2x.png +0 -0
  145. data/lib/wp/wp-admin/images/align-right.png +0 -0
  146. data/lib/wp/wp-admin/images/arrows-2x.png +0 -0
  147. data/lib/wp/wp-admin/images/arrows.png +0 -0
  148. data/lib/wp/wp-admin/images/bubble_bg-2x.gif +0 -0
  149. data/lib/wp/wp-admin/images/bubble_bg.gif +0 -0
  150. data/lib/wp/wp-admin/images/comment-grey-bubble-2x.png +0 -0
  151. data/lib/wp/wp-admin/images/comment-grey-bubble.png +0 -0
  152. data/lib/wp/wp-admin/images/date-button-2x.gif +0 -0
  153. data/lib/wp/wp-admin/images/date-button.gif +0 -0
  154. data/lib/wp/wp-admin/images/generic.png +0 -0
  155. data/lib/wp/wp-admin/images/icons32-2x.png +0 -0
  156. data/lib/wp/wp-admin/images/icons32-vs-2x.png +0 -0
  157. data/lib/wp/wp-admin/images/icons32-vs.png +0 -0
  158. data/lib/wp/wp-admin/images/icons32.png +0 -0
  159. data/lib/wp/wp-admin/images/imgedit-icons-2x.png +0 -0
  160. data/lib/wp/wp-admin/images/imgedit-icons.png +0 -0
  161. data/lib/wp/wp-admin/images/list-2x.png +0 -0
  162. data/lib/wp/wp-admin/images/list.png +0 -0
  163. data/lib/wp/wp-admin/images/loading.gif +0 -0
  164. data/lib/wp/wp-admin/images/marker.png +0 -0
  165. data/lib/wp/wp-admin/images/mask.png +0 -0
  166. data/lib/wp/wp-admin/images/media-button-2x.png +0 -0
  167. data/lib/wp/wp-admin/images/media-button-image.gif +0 -0
  168. data/lib/wp/wp-admin/images/media-button-music.gif +0 -0
  169. data/lib/wp/wp-admin/images/media-button-other.gif +0 -0
  170. data/lib/wp/wp-admin/images/media-button-video.gif +0 -0
  171. data/lib/wp/wp-admin/images/media-button.png +0 -0
  172. data/lib/wp/wp-admin/images/menu-2x.png +0 -0
  173. data/lib/wp/wp-admin/images/menu-vs-2x.png +0 -0
  174. data/lib/wp/wp-admin/images/menu-vs.png +0 -0
  175. data/lib/wp/wp-admin/images/menu.png +0 -0
  176. data/lib/wp/wp-admin/images/no.png +0 -0
  177. data/lib/wp/wp-admin/images/post-formats-vs.png +0 -0
  178. data/lib/wp/wp-admin/images/post-formats.png +0 -0
  179. data/lib/wp/wp-admin/images/post-formats32-vs.png +0 -0
  180. data/lib/wp/wp-admin/images/post-formats32.png +0 -0
  181. data/lib/wp/wp-admin/images/resize-2x.gif +0 -0
  182. data/lib/wp/wp-admin/images/resize-rtl-2x.gif +0 -0
  183. data/lib/wp/wp-admin/images/resize-rtl.gif +0 -0
  184. data/lib/wp/wp-admin/images/resize.gif +0 -0
  185. data/lib/wp/wp-admin/images/se.png +0 -0
  186. data/lib/wp/wp-admin/images/sort-2x.gif +0 -0
  187. data/lib/wp/wp-admin/images/sort.gif +0 -0
  188. data/lib/wp/wp-admin/images/spinner-2x.gif +0 -0
  189. data/lib/wp/wp-admin/images/spinner.gif +0 -0
  190. data/lib/wp/wp-admin/images/stars-2x.png +0 -0
  191. data/lib/wp/wp-admin/images/stars.png +0 -0
  192. data/lib/wp/wp-admin/images/w-logo-blue.png +0 -0
  193. data/lib/wp/wp-admin/images/w-logo-white.png +0 -0
  194. data/lib/wp/wp-admin/images/wheel.png +0 -0
  195. data/lib/wp/wp-admin/images/wordpress-logo-white.svg +0 -1
  196. data/lib/wp/wp-admin/images/wordpress-logo.png +0 -0
  197. data/lib/wp/wp-admin/images/wordpress-logo.svg +0 -1
  198. data/lib/wp/wp-admin/images/wpspin_light-2x.gif +0 -0
  199. data/lib/wp/wp-admin/images/wpspin_light.gif +0 -0
  200. data/lib/wp/wp-admin/images/xit-2x.gif +0 -0
  201. data/lib/wp/wp-admin/images/xit.gif +0 -0
  202. data/lib/wp/wp-admin/images/yes.png +0 -0
  203. data/lib/wp/wp-admin/import.php +0 -132
  204. data/lib/wp/wp-admin/includes/admin.php +0 -74
  205. data/lib/wp/wp-admin/includes/ajax-actions.php +0 -2762
  206. data/lib/wp/wp-admin/includes/bookmark.php +0 -305
  207. data/lib/wp/wp-admin/includes/class-ftp-pure.php +0 -190
  208. data/lib/wp/wp-admin/includes/class-ftp-sockets.php +0 -250
  209. data/lib/wp/wp-admin/includes/class-ftp.php +0 -907
  210. data/lib/wp/wp-admin/includes/class-pclzip.php +0 -5687
  211. data/lib/wp/wp-admin/includes/class-wp-comments-list-table.php +0 -637
  212. data/lib/wp/wp-admin/includes/class-wp-filesystem-base.php +0 -815
  213. data/lib/wp/wp-admin/includes/class-wp-filesystem-direct.php +0 -384
  214. data/lib/wp/wp-admin/includes/class-wp-filesystem-ftpext.php +0 -415
  215. data/lib/wp/wp-admin/includes/class-wp-filesystem-ftpsockets.php +0 -352
  216. data/lib/wp/wp-admin/includes/class-wp-filesystem-ssh2.php +0 -392
  217. data/lib/wp/wp-admin/includes/class-wp-importer.php +0 -302
  218. data/lib/wp/wp-admin/includes/class-wp-links-list-table.php +0 -207
  219. data/lib/wp/wp-admin/includes/class-wp-list-table.php +0 -1080
  220. data/lib/wp/wp-admin/includes/class-wp-media-list-table.php +0 -574
  221. data/lib/wp/wp-admin/includes/class-wp-ms-sites-list-table.php +0 -402
  222. data/lib/wp/wp-admin/includes/class-wp-ms-themes-list-table.php +0 -459
  223. data/lib/wp/wp-admin/includes/class-wp-ms-users-list-table.php +0 -303
  224. data/lib/wp/wp-admin/includes/class-wp-plugin-install-list-table.php +0 -490
  225. data/lib/wp/wp-admin/includes/class-wp-plugins-list-table.php +0 -605
  226. data/lib/wp/wp-admin/includes/class-wp-posts-list-table.php +0 -1306
  227. data/lib/wp/wp-admin/includes/class-wp-terms-list-table.php +0 -466
  228. data/lib/wp/wp-admin/includes/class-wp-theme-install-list-table.php +0 -431
  229. data/lib/wp/wp-admin/includes/class-wp-themes-list-table.php +0 -279
  230. data/lib/wp/wp-admin/includes/class-wp-upgrader-skins.php +0 -767
  231. data/lib/wp/wp-admin/includes/class-wp-upgrader.php +0 -2676
  232. data/lib/wp/wp-admin/includes/class-wp-users-list-table.php +0 -459
  233. data/lib/wp/wp-admin/includes/comment.php +0 -171
  234. data/lib/wp/wp-admin/includes/continents-cities.php +0 -493
  235. data/lib/wp/wp-admin/includes/dashboard.php +0 -1333
  236. data/lib/wp/wp-admin/includes/deprecated.php +0 -1190
  237. data/lib/wp/wp-admin/includes/export.php +0 -508
  238. data/lib/wp/wp-admin/includes/file.php +0 -1152
  239. data/lib/wp/wp-admin/includes/image-edit.php +0 -828
  240. data/lib/wp/wp-admin/includes/image.php +0 -598
  241. data/lib/wp/wp-admin/includes/import.php +0 -206
  242. data/lib/wp/wp-admin/includes/list-table.php +0 -113
  243. data/lib/wp/wp-admin/includes/media.php +0 -3012
  244. data/lib/wp/wp-admin/includes/menu.php +0 -322
  245. data/lib/wp/wp-admin/includes/meta-boxes.php +0 -1119
  246. data/lib/wp/wp-admin/includes/misc.php +0 -845
  247. data/lib/wp/wp-admin/includes/ms-deprecated.php +0 -78
  248. data/lib/wp/wp-admin/includes/ms.php +0 -814
  249. data/lib/wp/wp-admin/includes/nav-menu.php +0 -1328
  250. data/lib/wp/wp-admin/includes/plugin-install.php +0 -550
  251. data/lib/wp/wp-admin/includes/plugin.php +0 -1899
  252. data/lib/wp/wp-admin/includes/post.php +0 -1661
  253. data/lib/wp/wp-admin/includes/revision.php +0 -228
  254. data/lib/wp/wp-admin/includes/schema.php +0 -1038
  255. data/lib/wp/wp-admin/includes/screen.php +0 -1179
  256. data/lib/wp/wp-admin/includes/taxonomy.php +0 -284
  257. data/lib/wp/wp-admin/includes/template.php +0 -2157
  258. data/lib/wp/wp-admin/includes/theme-install.php +0 -205
  259. data/lib/wp/wp-admin/includes/theme.php +0 -474
  260. data/lib/wp/wp-admin/includes/translation-install.php +0 -240
  261. data/lib/wp/wp-admin/includes/update-core.php +0 -1186
  262. data/lib/wp/wp-admin/includes/update.php +0 -432
  263. data/lib/wp/wp-admin/includes/upgrade.php +0 -2218
  264. data/lib/wp/wp-admin/includes/user.php +0 -442
  265. data/lib/wp/wp-admin/includes/widgets.php +0 -245
  266. data/lib/wp/wp-admin/index.php +0 -131
  267. data/lib/wp/wp-admin/install-helper.php +0 -199
  268. data/lib/wp/wp-admin/install.php +0 -305
  269. data/lib/wp/wp-admin/js/accordion.js +0 -143
  270. data/lib/wp/wp-admin/js/accordion.min.js +0 -1
  271. data/lib/wp/wp-admin/js/color-picker.js +0 -155
  272. data/lib/wp/wp-admin/js/color-picker.min.js +0 -1
  273. data/lib/wp/wp-admin/js/comment.js +0 -50
  274. data/lib/wp/wp-admin/js/comment.min.js +0 -1
  275. data/lib/wp/wp-admin/js/common.js +0 -804
  276. data/lib/wp/wp-admin/js/common.min.js +0 -1
  277. data/lib/wp/wp-admin/js/custom-background.js +0 -75
  278. data/lib/wp/wp-admin/js/custom-background.min.js +0 -1
  279. data/lib/wp/wp-admin/js/custom-header.js +0 -61
  280. data/lib/wp/wp-admin/js/customize-controls.js +0 -1305
  281. data/lib/wp/wp-admin/js/customize-controls.min.js +0 -1
  282. data/lib/wp/wp-admin/js/customize-widgets.js +0 -1882
  283. data/lib/wp/wp-admin/js/customize-widgets.min.js +0 -1
  284. data/lib/wp/wp-admin/js/dashboard.js +0 -190
  285. data/lib/wp/wp-admin/js/dashboard.min.js +0 -1
  286. data/lib/wp/wp-admin/js/edit-comments.js +0 -625
  287. data/lib/wp/wp-admin/js/edit-comments.min.js +0 -1
  288. data/lib/wp/wp-admin/js/editor-expand.js +0 -705
  289. data/lib/wp/wp-admin/js/editor-expand.min.js +0 -1
  290. data/lib/wp/wp-admin/js/editor.js +0 -324
  291. data/lib/wp/wp-admin/js/editor.min.js +0 -1
  292. data/lib/wp/wp-admin/js/farbtastic.js +0 -276
  293. data/lib/wp/wp-admin/js/gallery.js +0 -237
  294. data/lib/wp/wp-admin/js/gallery.min.js +0 -1
  295. data/lib/wp/wp-admin/js/image-edit.js +0 -633
  296. data/lib/wp/wp-admin/js/image-edit.min.js +0 -1
  297. data/lib/wp/wp-admin/js/inline-edit-post.js +0 -359
  298. data/lib/wp/wp-admin/js/inline-edit-post.min.js +0 -1
  299. data/lib/wp/wp-admin/js/inline-edit-tax.js +0 -142
  300. data/lib/wp/wp-admin/js/inline-edit-tax.min.js +0 -1
  301. data/lib/wp/wp-admin/js/iris.min.js +0 -4
  302. data/lib/wp/wp-admin/js/language-chooser.js +0 -26
  303. data/lib/wp/wp-admin/js/language-chooser.min.js +0 -1
  304. data/lib/wp/wp-admin/js/link.js +0 -69
  305. data/lib/wp/wp-admin/js/link.min.js +0 -1
  306. data/lib/wp/wp-admin/js/media-gallery.js +0 -26
  307. data/lib/wp/wp-admin/js/media-gallery.min.js +0 -1
  308. data/lib/wp/wp-admin/js/media-upload.js +0 -69
  309. data/lib/wp/wp-admin/js/media-upload.min.js +0 -1
  310. data/lib/wp/wp-admin/js/media.js +0 -111
  311. data/lib/wp/wp-admin/js/media.min.js +0 -1
  312. data/lib/wp/wp-admin/js/nav-menu.js +0 -1205
  313. data/lib/wp/wp-admin/js/nav-menu.min.js +0 -1
  314. data/lib/wp/wp-admin/js/password-strength-meter.js +0 -75
  315. data/lib/wp/wp-admin/js/password-strength-meter.min.js +0 -1
  316. data/lib/wp/wp-admin/js/plugin-install.js +0 -76
  317. data/lib/wp/wp-admin/js/plugin-install.min.js +0 -1
  318. data/lib/wp/wp-admin/js/post.js +0 -1094
  319. data/lib/wp/wp-admin/js/post.min.js +0 -1
  320. data/lib/wp/wp-admin/js/postbox.js +0 -199
  321. data/lib/wp/wp-admin/js/postbox.min.js +0 -1
  322. data/lib/wp/wp-admin/js/revisions.js +0 -1110
  323. data/lib/wp/wp-admin/js/revisions.min.js +0 -1
  324. data/lib/wp/wp-admin/js/set-post-thumbnail.js +0 -24
  325. data/lib/wp/wp-admin/js/set-post-thumbnail.min.js +0 -1
  326. data/lib/wp/wp-admin/js/svg-painter.js +0 -240
  327. data/lib/wp/wp-admin/js/svg-painter.min.js +0 -1
  328. data/lib/wp/wp-admin/js/tags.js +0 -72
  329. data/lib/wp/wp-admin/js/tags.min.js +0 -1
  330. data/lib/wp/wp-admin/js/theme.js +0 -1691
  331. data/lib/wp/wp-admin/js/theme.min.js +0 -1
  332. data/lib/wp/wp-admin/js/updates.js +0 -65
  333. data/lib/wp/wp-admin/js/updates.min.js +0 -1
  334. data/lib/wp/wp-admin/js/user-profile.js +0 -127
  335. data/lib/wp/wp-admin/js/user-profile.min.js +0 -1
  336. data/lib/wp/wp-admin/js/user-suggest.js +0 -30
  337. data/lib/wp/wp-admin/js/user-suggest.min.js +0 -1
  338. data/lib/wp/wp-admin/js/widgets.js +0 -494
  339. data/lib/wp/wp-admin/js/widgets.min.js +0 -1
  340. data/lib/wp/wp-admin/js/word-count.js +0 -44
  341. data/lib/wp/wp-admin/js/word-count.min.js +0 -1
  342. data/lib/wp/wp-admin/js/wp-fullscreen.js +0 -704
  343. data/lib/wp/wp-admin/js/wp-fullscreen.min.js +0 -1
  344. data/lib/wp/wp-admin/js/xfn.js +0 -17
  345. data/lib/wp/wp-admin/js/xfn.min.js +0 -1
  346. data/lib/wp/wp-admin/link-add.php +0 -29
  347. data/lib/wp/wp-admin/link-manager.php +0 -99
  348. data/lib/wp/wp-admin/link-parse-opml.php +0 -84
  349. data/lib/wp/wp-admin/link.php +0 -117
  350. data/lib/wp/wp-admin/load-scripts.php +0 -162
  351. data/lib/wp/wp-admin/load-styles.php +0 -153
  352. data/lib/wp/wp-admin/maint/repair.php +0 -124
  353. data/lib/wp/wp-admin/media-new.php +0 -84
  354. data/lib/wp/wp-admin/media-upload.php +0 -100
  355. data/lib/wp/wp-admin/media.php +0 -146
  356. data/lib/wp/wp-admin/menu-header.php +0 -227
  357. data/lib/wp/wp-admin/menu.php +0 -255
  358. data/lib/wp/wp-admin/moderation.php +0 -12
  359. data/lib/wp/wp-admin/ms-admin.php +0 -13
  360. data/lib/wp/wp-admin/ms-delete-site.php +0 -91
  361. data/lib/wp/wp-admin/ms-edit.php +0 -13
  362. data/lib/wp/wp-admin/ms-options.php +0 -12
  363. data/lib/wp/wp-admin/ms-sites.php +0 -13
  364. data/lib/wp/wp-admin/ms-themes.php +0 -13
  365. data/lib/wp/wp-admin/ms-upgrade-network.php +0 -13
  366. data/lib/wp/wp-admin/ms-users.php +0 -13
  367. data/lib/wp/wp-admin/my-sites.php +0 -145
  368. data/lib/wp/wp-admin/nav-menus.php +0 -798
  369. data/lib/wp/wp-admin/network.php +0 -561
  370. data/lib/wp/wp-admin/network/about.php +0 -16
  371. data/lib/wp/wp-admin/network/admin.php +0 -32
  372. data/lib/wp/wp-admin/network/credits.php +0 -16
  373. data/lib/wp/wp-admin/network/edit.php +0 -42
  374. data/lib/wp/wp-admin/network/freedoms.php +0 -16
  375. data/lib/wp/wp-admin/network/index.php +0 -79
  376. data/lib/wp/wp-admin/network/menu.php +0 -63
  377. data/lib/wp/wp-admin/network/plugin-editor.php +0 -16
  378. data/lib/wp/wp-admin/network/plugin-install.php +0 -19
  379. data/lib/wp/wp-admin/network/plugins.php +0 -16
  380. data/lib/wp/wp-admin/network/profile.php +0 -16
  381. data/lib/wp/wp-admin/network/settings.php +0 -347
  382. data/lib/wp/wp-admin/network/setup.php +0 -16
  383. data/lib/wp/wp-admin/network/site-info.php +0 -178
  384. data/lib/wp/wp-admin/network/site-new.php +0 -153
  385. data/lib/wp/wp-admin/network/site-settings.php +0 -173
  386. data/lib/wp/wp-admin/network/site-themes.php +0 -185
  387. data/lib/wp/wp-admin/network/site-users.php +0 -319
  388. data/lib/wp/wp-admin/network/sites.php +0 -275
  389. data/lib/wp/wp-admin/network/theme-editor.php +0 -16
  390. data/lib/wp/wp-admin/network/theme-install.php +0 -19
  391. data/lib/wp/wp-admin/network/themes.php +0 -291
  392. data/lib/wp/wp-admin/network/update-core.php +0 -16
  393. data/lib/wp/wp-admin/network/update.php +0 -19
  394. data/lib/wp/wp-admin/network/upgrade.php +0 -120
  395. data/lib/wp/wp-admin/network/user-edit.php +0 -16
  396. data/lib/wp/wp-admin/network/user-new.php +0 -106
  397. data/lib/wp/wp-admin/network/users.php +0 -296
  398. data/lib/wp/wp-admin/options-discussion.php +0 -273
  399. data/lib/wp/wp-admin/options-general.php +0 -355
  400. data/lib/wp/wp-admin/options-head.php +0 -18
  401. data/lib/wp/wp-admin/options-media.php +0 -136
  402. data/lib/wp/wp-admin/options-permalink.php +0 -289
  403. data/lib/wp/wp-admin/options-reading.php +0 -184
  404. data/lib/wp/wp-admin/options-writing.php +0 -194
  405. data/lib/wp/wp-admin/options.php +0 -265
  406. data/lib/wp/wp-admin/plugin-editor.php +0 -279
  407. data/lib/wp/wp-admin/plugin-install.php +0 -134
  408. data/lib/wp/wp-admin/plugins.php +0 -474
  409. data/lib/wp/wp-admin/post-new.php +0 -74
  410. data/lib/wp/wp-admin/post.php +0 -318
  411. data/lib/wp/wp-admin/press-this.php +0 -691
  412. data/lib/wp/wp-admin/profile.php +0 -18
  413. data/lib/wp/wp-admin/revision.php +0 -221
  414. data/lib/wp/wp-admin/setup-config.php +0 -345
  415. data/lib/wp/wp-admin/theme-editor.php +0 -243
  416. data/lib/wp/wp-admin/theme-install.php +0 -278
  417. data/lib/wp/wp-admin/themes.php +0 -374
  418. data/lib/wp/wp-admin/tools.php +0 -75
  419. data/lib/wp/wp-admin/update-core.php +0 -653
  420. data/lib/wp/wp-admin/update.php +0 -272
  421. data/lib/wp/wp-admin/upgrade-functions.php +0 -12
  422. data/lib/wp/wp-admin/upgrade.php +0 -116
  423. data/lib/wp/wp-admin/upload.php +0 -292
  424. data/lib/wp/wp-admin/user-edit.php +0 -557
  425. data/lib/wp/wp-admin/user-new.php +0 -439
  426. data/lib/wp/wp-admin/user/about.php +0 -13
  427. data/lib/wp/wp-admin/user/admin.php +0 -32
  428. data/lib/wp/wp-admin/user/credits.php +0 -13
  429. data/lib/wp/wp-admin/user/freedoms.php +0 -13
  430. data/lib/wp/wp-admin/user/index.php +0 -12
  431. data/lib/wp/wp-admin/user/menu.php +0 -22
  432. data/lib/wp/wp-admin/user/profile.php +0 -12
  433. data/lib/wp/wp-admin/user/user-edit.php +0 -12
  434. data/lib/wp/wp-admin/users.php +0 -460
  435. data/lib/wp/wp-admin/widgets.php +0 -442
  436. data/lib/wp/wp-blog-header.php +0 -18
  437. data/lib/wp/wp-comments-post.php +0 -164
  438. data/lib/wp/wp-config-sample.php +0 -80
  439. data/lib/wp/wp-content/index.php +0 -2
  440. data/lib/wp/wp-content/plugins/hello.php +0 -82
  441. data/lib/wp/wp-content/plugins/index.php +0 -2
  442. data/lib/wp/wp-content/themes/index.php +0 -2
  443. data/lib/wp/wp-content/themes/stump/.editorconfig +0 -11
  444. data/lib/wp/wp-content/themes/stump/.jshintrc +0 -16
  445. data/lib/wp/wp-content/themes/stump/404.php +0 -13
  446. data/lib/wp/wp-content/themes/stump/CHANGELOG.md +0 -333
  447. data/lib/wp/wp-content/themes/stump/CONTRIBUTING.md +0 -121
  448. data/lib/wp/wp-content/themes/stump/Gruntfile.js +0 -151
  449. data/lib/wp/wp-content/themes/stump/LICENSE.md +0 -19
  450. data/lib/wp/wp-content/themes/stump/assets/coffee/build/.gitkeep +0 -0
  451. data/lib/wp/wp-content/themes/stump/assets/css/editor-style.css +0 -548
  452. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  453. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.svg +0 -229
  454. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  455. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  456. data/lib/wp/wp-content/themes/stump/assets/img/.gitignore +0 -0
  457. data/lib/wp/wp-content/themes/stump/assets/js/_main.js +0 -63
  458. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/affix.js +0 -137
  459. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/alert.js +0 -88
  460. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/button.js +0 -107
  461. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/carousel.js +0 -205
  462. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/collapse.js +0 -170
  463. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/dropdown.js +0 -147
  464. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/modal.js +0 -243
  465. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/popover.js +0 -110
  466. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/scrollspy.js +0 -153
  467. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/tab.js +0 -125
  468. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/tooltip.js +0 -399
  469. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/transition.js +0 -48
  470. data/lib/wp/wp-content/themes/stump/assets/js/scripts.min.js +0 -1
  471. data/lib/wp/wp-content/themes/stump/assets/js/vendor/jquery-1.11.0.min.js +0 -4
  472. data/lib/wp/wp-content/themes/stump/assets/js/vendor/modernizr-2.7.0.min.js +0 -4
  473. data/lib/wp/wp-content/themes/stump/assets/sass/app.scss +0 -9
  474. data/lib/wp/wp-content/themes/stump/assets/sass/core/_variables.scss +0 -1
  475. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_alerts.scss +0 -67
  476. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_badges.scss +0 -55
  477. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_bootstrap.scss +0 -49
  478. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_breadcrumbs.scss +0 -26
  479. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_button-groups.scss +0 -226
  480. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_buttons.scss +0 -159
  481. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_carousel.scss +0 -232
  482. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_close.scss +0 -35
  483. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_code.scss +0 -63
  484. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_component-animations.scss +0 -29
  485. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_dropdowns.scss +0 -213
  486. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_forms.scss +0 -436
  487. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_glyphicons.scss +0 -233
  488. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_grid.scss +0 -84
  489. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_input-groups.scss +0 -162
  490. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_jumbotron.scss +0 -44
  491. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_labels.scss +0 -64
  492. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_list-group.scss +0 -110
  493. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_media.scss +0 -56
  494. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_mixins.scss +0 -947
  495. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_modals.scss +0 -139
  496. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_navbar.scss +0 -620
  497. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_navs.scss +0 -242
  498. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_normalize.scss +0 -423
  499. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_pager.scss +0 -55
  500. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_pagination.scss +0 -88
  501. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_panels.scss +0 -241
  502. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_popovers.scss +0 -133
  503. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_print.scss +0 -101
  504. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_progress-bars.scss +0 -80
  505. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_responsive-utilities.scss +0 -74
  506. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_scaffolding.scss +0 -134
  507. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_tables.scss +0 -233
  508. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_theme.scss +0 -247
  509. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_thumbnails.scss +0 -38
  510. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_tooltip.scss +0 -95
  511. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_type.scss +0 -284
  512. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_utilities.scss +0 -56
  513. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_variables.scss +0 -833
  514. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_wells.scss +0 -29
  515. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/_bourbon-deprecated-upcoming.scss +0 -13
  516. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/_bourbon.scss +0 -59
  517. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_button.scss +0 -273
  518. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_clearfix.scss +0 -29
  519. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_font-family.scss +0 -5
  520. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_hide-text.scss +0 -5
  521. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_html5-input-types.scss +0 -56
  522. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_position.scss +0 -42
  523. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_prefixer.scss +0 -49
  524. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_retina-image.scss +0 -32
  525. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_size.scss +0 -44
  526. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_timing-functions.scss +0 -32
  527. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_triangle.scss +0 -45
  528. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_animation.scss +0 -52
  529. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_appearance.scss +0 -3
  530. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_backface-visibility.scss +0 -6
  531. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_background-image.scss +0 -48
  532. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_background.scss +0 -103
  533. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_border-image.scss +0 -55
  534. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_border-radius.scss +0 -22
  535. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_box-sizing.scss +0 -4
  536. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_columns.scss +0 -47
  537. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_flex-box.scss +0 -52
  538. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_font-face.scss +0 -23
  539. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_hidpi-media-query.scss +0 -10
  540. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_image-rendering.scss +0 -13
  541. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_inline-block.scss +0 -8
  542. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_keyframes.scss +0 -43
  543. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_linear-gradient.scss +0 -41
  544. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_perspective.scss +0 -8
  545. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_placeholder.scss +0 -29
  546. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_radial-gradient.scss +0 -44
  547. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_transform.scss +0 -15
  548. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_transition.scss +0 -34
  549. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_user-select.scss +0 -3
  550. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_compact.scss +0 -11
  551. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_flex-grid.scss +0 -39
  552. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_grid-width.scss +0 -13
  553. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_linear-gradient.scss +0 -13
  554. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_modular-scale.scss +0 -40
  555. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_px-to-em.scss +0 -8
  556. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_radial-gradient.scss +0 -23
  557. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_tint-shade.scss +0 -9
  558. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_transition-property-name.scss +0 -22
  559. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_deprecated-webkit-gradient.scss +0 -39
  560. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_gradient-positions-parser.scss +0 -13
  561. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_linear-positions-parser.scss +0 -61
  562. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_radial-arg-parser.scss +0 -69
  563. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_radial-positions-parser.scss +0 -18
  564. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_render-gradients.scss +0 -26
  565. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_shape-size-stripper.scss +0 -10
  566. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan.sass +0 -11
  567. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_grid.sass +0 -161
  568. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_mixins.sass +0 -63
  569. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_utilities.sass +0 -24
  570. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_variables.sass +0 -42
  571. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/_neat-helpers.scss +0 -8
  572. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/_neat.scss +0 -21
  573. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/functions/_new-breakpoint.scss +0 -16
  574. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/functions/_private.scss +0 -107
  575. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/functions/_px-to-em.scss +0 -3
  576. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_fill-parent.scss +0 -7
  577. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_grid.scss +0 -5
  578. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_media.scss +0 -51
  579. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_omega.scss +0 -79
  580. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_outer-container.scss +0 -8
  581. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_pad.scss +0 -8
  582. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_private.scss +0 -50
  583. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_reset.scss +0 -12
  584. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_row.scss +0 -17
  585. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_shift.scss +0 -9
  586. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_span-columns.scss +0 -38
  587. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_to-deprecate.scss +0 -57
  588. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_visual-grid.scss +0 -41
  589. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/settings/_grid.scss +0 -7
  590. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/settings/_visual-grid.scss +0 -5
  591. data/lib/wp/wp-content/themes/stump/base.php +0 -36
  592. data/lib/wp/wp-content/themes/stump/functions.php +0 -19
  593. data/lib/wp/wp-content/themes/stump/index.php +0 -21
  594. data/lib/wp/wp-content/themes/stump/lang/ar.mo +0 -0
  595. data/lib/wp/wp-content/themes/stump/lang/ar.po +0 -270
  596. data/lib/wp/wp-content/themes/stump/lang/bg_BG.mo +0 -0
  597. data/lib/wp/wp-content/themes/stump/lang/bg_BG.po +0 -338
  598. data/lib/wp/wp-content/themes/stump/lang/ca.mo +0 -0
  599. data/lib/wp/wp-content/themes/stump/lang/ca.po +0 -517
  600. data/lib/wp/wp-content/themes/stump/lang/da_DK.mo +0 -0
  601. data/lib/wp/wp-content/themes/stump/lang/da_DK.po +0 -305
  602. data/lib/wp/wp-content/themes/stump/lang/de_DE.mo +0 -0
  603. data/lib/wp/wp-content/themes/stump/lang/de_DE.po +0 -271
  604. data/lib/wp/wp-content/themes/stump/lang/el.mo +0 -0
  605. data/lib/wp/wp-content/themes/stump/lang/el.po +0 -319
  606. data/lib/wp/wp-content/themes/stump/lang/es_ES.mo +0 -0
  607. data/lib/wp/wp-content/themes/stump/lang/es_ES.po +0 -270
  608. data/lib/wp/wp-content/themes/stump/lang/et.mo +0 -0
  609. data/lib/wp/wp-content/themes/stump/lang/et.po +0 -262
  610. data/lib/wp/wp-content/themes/stump/lang/fa_IR.mo +0 -0
  611. data/lib/wp/wp-content/themes/stump/lang/fa_IR.po +0 -273
  612. data/lib/wp/wp-content/themes/stump/lang/fi_FI.mo +0 -0
  613. data/lib/wp/wp-content/themes/stump/lang/fi_FI.po +0 -367
  614. data/lib/wp/wp-content/themes/stump/lang/fr_FR.mo +0 -0
  615. data/lib/wp/wp-content/themes/stump/lang/fr_FR.po +0 -336
  616. data/lib/wp/wp-content/themes/stump/lang/he_IL.mo +0 -0
  617. data/lib/wp/wp-content/themes/stump/lang/he_IL.po +0 -336
  618. data/lib/wp/wp-content/themes/stump/lang/hu_HU.mo +0 -0
  619. data/lib/wp/wp-content/themes/stump/lang/hu_HU.po +0 -271
  620. data/lib/wp/wp-content/themes/stump/lang/id_ID.mo +0 -0
  621. data/lib/wp/wp-content/themes/stump/lang/id_ID.po +0 -278
  622. data/lib/wp/wp-content/themes/stump/lang/it_IT.mo +0 -0
  623. data/lib/wp/wp-content/themes/stump/lang/it_IT.po +0 -269
  624. data/lib/wp/wp-content/themes/stump/lang/ja.mo +0 -0
  625. data/lib/wp/wp-content/themes/stump/lang/ja.po +0 -267
  626. data/lib/wp/wp-content/themes/stump/lang/ko_KR.mo +0 -0
  627. data/lib/wp/wp-content/themes/stump/lang/ko_KR.po +0 -282
  628. data/lib/wp/wp-content/themes/stump/lang/mk_MK.mo +0 -0
  629. data/lib/wp/wp-content/themes/stump/lang/mk_MK.po +0 -297
  630. data/lib/wp/wp-content/themes/stump/lang/ms_MY.mo +0 -0
  631. data/lib/wp/wp-content/themes/stump/lang/ms_MY.po +0 -342
  632. data/lib/wp/wp-content/themes/stump/lang/nb_NO.mo +0 -0
  633. data/lib/wp/wp-content/themes/stump/lang/nb_NO.po +0 -517
  634. data/lib/wp/wp-content/themes/stump/lang/nl_NL.mo +0 -0
  635. data/lib/wp/wp-content/themes/stump/lang/nl_NL.po +0 -261
  636. data/lib/wp/wp-content/themes/stump/lang/nn_NO.mo +0 -0
  637. data/lib/wp/wp-content/themes/stump/lang/nn_NO.po +0 -517
  638. data/lib/wp/wp-content/themes/stump/lang/pl_PL.mo +0 -0
  639. data/lib/wp/wp-content/themes/stump/lang/pl_PL.po +0 -283
  640. data/lib/wp/wp-content/themes/stump/lang/pt_BR.mo +0 -0
  641. data/lib/wp/wp-content/themes/stump/lang/pt_BR.po +0 -394
  642. data/lib/wp/wp-content/themes/stump/lang/ro_RO.mo +0 -0
  643. data/lib/wp/wp-content/themes/stump/lang/ro_RO.po +0 -271
  644. data/lib/wp/wp-content/themes/stump/lang/roots.pot +0 -244
  645. data/lib/wp/wp-content/themes/stump/lang/ru_RU.mo +0 -0
  646. data/lib/wp/wp-content/themes/stump/lang/ru_RU.po +0 -255
  647. data/lib/wp/wp-content/themes/stump/lang/sk_SK.mo +0 -0
  648. data/lib/wp/wp-content/themes/stump/lang/sk_SK.po +0 -267
  649. data/lib/wp/wp-content/themes/stump/lang/sr_RS.mo +0 -0
  650. data/lib/wp/wp-content/themes/stump/lang/sr_RS.pot +0 -261
  651. data/lib/wp/wp-content/themes/stump/lang/sv_SE.mo +0 -0
  652. data/lib/wp/wp-content/themes/stump/lang/sv_SE.po +0 -323
  653. data/lib/wp/wp-content/themes/stump/lang/tr_TR.mo +0 -0
  654. data/lib/wp/wp-content/themes/stump/lang/tr_TR.po +0 -405
  655. data/lib/wp/wp-content/themes/stump/lang/vi_VN.mo +0 -0
  656. data/lib/wp/wp-content/themes/stump/lang/vi_VN.po +0 -516
  657. data/lib/wp/wp-content/themes/stump/lang/zh_CN.mo +0 -0
  658. data/lib/wp/wp-content/themes/stump/lang/zh_CN.po +0 -329
  659. data/lib/wp/wp-content/themes/stump/lang/zh_TW.mo +0 -0
  660. data/lib/wp/wp-content/themes/stump/lang/zh_TW.po +0 -261
  661. data/lib/wp/wp-content/themes/stump/lib/activation.php +0 -215
  662. data/lib/wp/wp-content/themes/stump/lib/cleanup.php +0 -261
  663. data/lib/wp/wp-content/themes/stump/lib/comments.php +0 -52
  664. data/lib/wp/wp-content/themes/stump/lib/config.php +0 -79
  665. data/lib/wp/wp-content/themes/stump/lib/custom.php +0 -4
  666. data/lib/wp/wp-content/themes/stump/lib/gallery.php +0 -130
  667. data/lib/wp/wp-content/themes/stump/lib/init.php +0 -25
  668. data/lib/wp/wp-content/themes/stump/lib/nav.php +0 -93
  669. data/lib/wp/wp-content/themes/stump/lib/relative-urls.php +0 -50
  670. data/lib/wp/wp-content/themes/stump/lib/scripts.php +0 -67
  671. data/lib/wp/wp-content/themes/stump/lib/sidebar.php +0 -43
  672. data/lib/wp/wp-content/themes/stump/lib/titles.php +0 -37
  673. data/lib/wp/wp-content/themes/stump/lib/utils.php +0 -14
  674. data/lib/wp/wp-content/themes/stump/lib/widgets.php +0 -133
  675. data/lib/wp/wp-content/themes/stump/lib/wrapper.php +0 -49
  676. data/lib/wp/wp-content/themes/stump/package.json +0 -32
  677. data/lib/wp/wp-content/themes/stump/page.php +0 -2
  678. data/lib/wp/wp-content/themes/stump/screenshot.png +0 -0
  679. data/lib/wp/wp-content/themes/stump/single.php +0 -1
  680. data/lib/wp/wp-content/themes/stump/style.css +0 -11
  681. data/lib/wp/wp-content/themes/stump/template-custom.php +0 -8
  682. data/lib/wp/wp-content/themes/stump/templates/comment.php +0 -14
  683. data/lib/wp/wp-content/themes/stump/templates/comments.php +0 -80
  684. data/lib/wp/wp-content/themes/stump/templates/content-page.php +0 -4
  685. data/lib/wp/wp-content/themes/stump/templates/content-single.php +0 -15
  686. data/lib/wp/wp-content/themes/stump/templates/content.php +0 -9
  687. data/lib/wp/wp-content/themes/stump/templates/entry-meta.php +0 -2
  688. data/lib/wp/wp-content/themes/stump/templates/footer.php +0 -8
  689. data/lib/wp/wp-content/themes/stump/templates/head.php +0 -12
  690. data/lib/wp/wp-content/themes/stump/templates/header-top-navbar.php +0 -21
  691. data/lib/wp/wp-content/themes/stump/templates/header.php +0 -14
  692. data/lib/wp/wp-content/themes/stump/templates/page-header.php +0 -5
  693. data/lib/wp/wp-content/themes/stump/templates/searchform.php +0 -9
  694. data/lib/wp/wp-content/themes/stump/templates/sidebar.php +0 -1
  695. data/lib/wp/wp-cron.php +0 -115
  696. data/lib/wp/wp-includes/ID3/getid3.lib.php +0 -1376
  697. data/lib/wp/wp-includes/ID3/getid3.php +0 -1796
  698. data/lib/wp/wp-includes/ID3/license.commercial.txt +0 -27
  699. data/lib/wp/wp-includes/ID3/license.txt +0 -29
  700. data/lib/wp/wp-includes/ID3/module.audio-video.asf.php +0 -2013
  701. data/lib/wp/wp-includes/ID3/module.audio-video.flv.php +0 -745
  702. data/lib/wp/wp-includes/ID3/module.audio-video.matroska.php +0 -1751
  703. data/lib/wp/wp-includes/ID3/module.audio-video.quicktime.php +0 -2246
  704. data/lib/wp/wp-includes/ID3/module.audio-video.riff.php +0 -2586
  705. data/lib/wp/wp-includes/ID3/module.audio.ac3.php +0 -474
  706. data/lib/wp/wp-includes/ID3/module.audio.dts.php +0 -291
  707. data/lib/wp/wp-includes/ID3/module.audio.flac.php +0 -443
  708. data/lib/wp/wp-includes/ID3/module.audio.mp3.php +0 -2012
  709. data/lib/wp/wp-includes/ID3/module.audio.ogg.php +0 -756
  710. data/lib/wp/wp-includes/ID3/module.tag.apetag.php +0 -371
  711. data/lib/wp/wp-includes/ID3/module.tag.id3v1.php +0 -360
  712. data/lib/wp/wp-includes/ID3/module.tag.id3v2.php +0 -3424
  713. data/lib/wp/wp-includes/ID3/module.tag.lyrics3.php +0 -294
  714. data/lib/wp/wp-includes/ID3/readme.txt +0 -604
  715. data/lib/wp/wp-includes/SimplePie/Author.php +0 -157
  716. data/lib/wp/wp-includes/SimplePie/Cache.php +0 -133
  717. data/lib/wp/wp-includes/SimplePie/Cache/Base.php +0 -114
  718. data/lib/wp/wp-includes/SimplePie/Cache/DB.php +0 -137
  719. data/lib/wp/wp-includes/SimplePie/Cache/File.php +0 -173
  720. data/lib/wp/wp-includes/SimplePie/Cache/Memcache.php +0 -183
  721. data/lib/wp/wp-includes/SimplePie/Cache/MySQL.php +0 -438
  722. data/lib/wp/wp-includes/SimplePie/Caption.php +0 -210
  723. data/lib/wp/wp-includes/SimplePie/Category.php +0 -157
  724. data/lib/wp/wp-includes/SimplePie/Content/Type/Sniffer.php +0 -332
  725. data/lib/wp/wp-includes/SimplePie/Copyright.php +0 -130
  726. data/lib/wp/wp-includes/SimplePie/Core.php +0 -57
  727. data/lib/wp/wp-includes/SimplePie/Credit.php +0 -156
  728. data/lib/wp/wp-includes/SimplePie/Decode/HTML/Entities.php +0 -617
  729. data/lib/wp/wp-includes/SimplePie/Enclosure.php +0 -1380
  730. data/lib/wp/wp-includes/SimplePie/Exception.php +0 -52
  731. data/lib/wp/wp-includes/SimplePie/File.php +0 -292
  732. data/lib/wp/wp-includes/SimplePie/HTTP/Parser.php +0 -500
  733. data/lib/wp/wp-includes/SimplePie/IRI.php +0 -1238
  734. data/lib/wp/wp-includes/SimplePie/Item.php +0 -2964
  735. data/lib/wp/wp-includes/SimplePie/Locator.php +0 -372
  736. data/lib/wp/wp-includes/SimplePie/Misc.php +0 -2247
  737. data/lib/wp/wp-includes/SimplePie/Net/IPv6.php +0 -276
  738. data/lib/wp/wp-includes/SimplePie/Parse/Date.php +0 -983
  739. data/lib/wp/wp-includes/SimplePie/Parser.php +0 -407
  740. data/lib/wp/wp-includes/SimplePie/Rating.php +0 -129
  741. data/lib/wp/wp-includes/SimplePie/Registry.php +0 -225
  742. data/lib/wp/wp-includes/SimplePie/Restriction.php +0 -155
  743. data/lib/wp/wp-includes/SimplePie/Sanitize.php +0 -554
  744. data/lib/wp/wp-includes/SimplePie/Source.php +0 -611
  745. data/lib/wp/wp-includes/SimplePie/XML/Declaration/Parser.php +0 -362
  746. data/lib/wp/wp-includes/SimplePie/gzdecode.php +0 -371
  747. data/lib/wp/wp-includes/Text/Diff.php +0 -450
  748. data/lib/wp/wp-includes/Text/Diff/Engine/native.php +0 -436
  749. data/lib/wp/wp-includes/Text/Diff/Engine/shell.php +0 -162
  750. data/lib/wp/wp-includes/Text/Diff/Engine/string.php +0 -248
  751. data/lib/wp/wp-includes/Text/Diff/Engine/xdiff.php +0 -64
  752. data/lib/wp/wp-includes/Text/Diff/Renderer.php +0 -235
  753. data/lib/wp/wp-includes/Text/Diff/Renderer/inline.php +0 -206
  754. data/lib/wp/wp-includes/admin-bar.php +0 -870
  755. data/lib/wp/wp-includes/atomlib.php +0 -352
  756. data/lib/wp/wp-includes/author-template.php +0 -471
  757. data/lib/wp/wp-includes/bookmark-template.php +0 -298
  758. data/lib/wp/wp-includes/bookmark.php +0 -416
  759. data/lib/wp/wp-includes/cache.php +0 -704
  760. data/lib/wp/wp-includes/canonical.php +0 -586
  761. data/lib/wp/wp-includes/capabilities.php +0 -1539
  762. data/lib/wp/wp-includes/category-template.php +0 -1407
  763. data/lib/wp/wp-includes/category.php +0 -343
  764. data/lib/wp/wp-includes/certificates/ca-bundle.crt +0 -3785
  765. data/lib/wp/wp-includes/class-IXR.php +0 -1100
  766. data/lib/wp/wp-includes/class-feed.php +0 -140
  767. data/lib/wp/wp-includes/class-http.php +0 -2245
  768. data/lib/wp/wp-includes/class-json.php +0 -936
  769. data/lib/wp/wp-includes/class-oembed.php +0 -579
  770. data/lib/wp/wp-includes/class-phpass.php +0 -260
  771. data/lib/wp/wp-includes/class-phpmailer.php +0 -3265
  772. data/lib/wp/wp-includes/class-pop3.php +0 -652
  773. data/lib/wp/wp-includes/class-simplepie.php +0 -3119
  774. data/lib/wp/wp-includes/class-smtp.php +0 -943
  775. data/lib/wp/wp-includes/class-snoopy.php +0 -1256
  776. data/lib/wp/wp-includes/class-wp-admin-bar.php +0 -517
  777. data/lib/wp/wp-includes/class-wp-ajax-response.php +0 -199
  778. data/lib/wp/wp-includes/class-wp-customize-control.php +0 -1124
  779. data/lib/wp/wp-includes/class-wp-customize-manager.php +0 -1272
  780. data/lib/wp/wp-includes/class-wp-customize-panel.php +0 -200
  781. data/lib/wp/wp-includes/class-wp-customize-section.php +0 -196
  782. data/lib/wp/wp-includes/class-wp-customize-setting.php +0 -554
  783. data/lib/wp/wp-includes/class-wp-customize-widgets.php +0 -1556
  784. data/lib/wp/wp-includes/class-wp-editor.php +0 -1435
  785. data/lib/wp/wp-includes/class-wp-embed.php +0 -373
  786. data/lib/wp/wp-includes/class-wp-error.php +0 -276
  787. data/lib/wp/wp-includes/class-wp-http-ixr-client.php +0 -97
  788. data/lib/wp/wp-includes/class-wp-image-editor-gd.php +0 -459
  789. data/lib/wp/wp-includes/class-wp-image-editor-imagick.php +0 -512
  790. data/lib/wp/wp-includes/class-wp-image-editor.php +0 -475
  791. data/lib/wp/wp-includes/class-wp-theme.php +0 -1235
  792. data/lib/wp/wp-includes/class-wp-walker.php +0 -471
  793. data/lib/wp/wp-includes/class-wp-xmlrpc-server.php +0 -5984
  794. data/lib/wp/wp-includes/class-wp.php +0 -782
  795. data/lib/wp/wp-includes/class.wp-dependencies.php +0 -509
  796. data/lib/wp/wp-includes/class.wp-scripts.php +0 -247
  797. data/lib/wp/wp-includes/class.wp-styles.php +0 -210
  798. data/lib/wp/wp-includes/comment-template.php +0 -2286
  799. data/lib/wp/wp-includes/comment.php +0 -2606
  800. data/lib/wp/wp-includes/compat.php +0 -125
  801. data/lib/wp/wp-includes/cron.php +0 -469
  802. data/lib/wp/wp-includes/css/admin-bar-rtl.css +0 -1099
  803. data/lib/wp/wp-includes/css/admin-bar-rtl.min.css +0 -1
  804. data/lib/wp/wp-includes/css/admin-bar.css +0 -1099
  805. data/lib/wp/wp-includes/css/admin-bar.min.css +0 -1
  806. data/lib/wp/wp-includes/css/buttons-rtl.css +0 -364
  807. data/lib/wp/wp-includes/css/buttons-rtl.min.css +0 -1
  808. data/lib/wp/wp-includes/css/buttons.css +0 -364
  809. data/lib/wp/wp-includes/css/buttons.min.css +0 -1
  810. data/lib/wp/wp-includes/css/dashicons.css +0 -893
  811. data/lib/wp/wp-includes/css/dashicons.min.css +0 -1
  812. data/lib/wp/wp-includes/css/editor-rtl.css +0 -1993
  813. data/lib/wp/wp-includes/css/editor-rtl.min.css +0 -1
  814. data/lib/wp/wp-includes/css/editor.css +0 -1993
  815. data/lib/wp/wp-includes/css/editor.min.css +0 -1
  816. data/lib/wp/wp-includes/css/jquery-ui-dialog-rtl.css +0 -343
  817. data/lib/wp/wp-includes/css/jquery-ui-dialog-rtl.min.css +0 -19
  818. data/lib/wp/wp-includes/css/jquery-ui-dialog.css +0 -343
  819. data/lib/wp/wp-includes/css/jquery-ui-dialog.min.css +0 -19
  820. data/lib/wp/wp-includes/css/media-views-rtl.css +0 -2568
  821. data/lib/wp/wp-includes/css/media-views-rtl.min.css +0 -1
  822. data/lib/wp/wp-includes/css/media-views.css +0 -2568
  823. data/lib/wp/wp-includes/css/media-views.min.css +0 -1
  824. data/lib/wp/wp-includes/css/wp-auth-check-rtl.css +0 -100
  825. data/lib/wp/wp-includes/css/wp-auth-check-rtl.min.css +0 -1
  826. data/lib/wp/wp-includes/css/wp-auth-check.css +0 -100
  827. data/lib/wp/wp-includes/css/wp-auth-check.min.css +0 -1
  828. data/lib/wp/wp-includes/css/wp-pointer-rtl.css +0 -212
  829. data/lib/wp/wp-includes/css/wp-pointer-rtl.min.css +0 -1
  830. data/lib/wp/wp-includes/css/wp-pointer.css +0 -212
  831. data/lib/wp/wp-includes/css/wp-pointer.min.css +0 -1
  832. data/lib/wp/wp-includes/date.php +0 -475
  833. data/lib/wp/wp-includes/default-constants.php +0 -323
  834. data/lib/wp/wp-includes/default-filters.php +0 -307
  835. data/lib/wp/wp-includes/default-widgets.php +0 -1423
  836. data/lib/wp/wp-includes/deprecated.php +0 -3501
  837. data/lib/wp/wp-includes/feed-atom-comments.php +0 -115
  838. data/lib/wp/wp-includes/feed-atom.php +0 -87
  839. data/lib/wp/wp-includes/feed-rdf.php +0 -81
  840. data/lib/wp/wp-includes/feed-rss.php +0 -46
  841. data/lib/wp/wp-includes/feed-rss2-comments.php +0 -97
  842. data/lib/wp/wp-includes/feed-rss2.php +0 -115
  843. data/lib/wp/wp-includes/feed.php +0 -659
  844. data/lib/wp/wp-includes/fonts/dashicons.eot +0 -0
  845. data/lib/wp/wp-includes/fonts/dashicons.svg +0 -250
  846. data/lib/wp/wp-includes/fonts/dashicons.ttf +0 -0
  847. data/lib/wp/wp-includes/fonts/dashicons.woff +0 -0
  848. data/lib/wp/wp-includes/formatting.php +0 -4006
  849. data/lib/wp/wp-includes/functions.php +0 -4631
  850. data/lib/wp/wp-includes/functions.wp-scripts.php +0 -258
  851. data/lib/wp/wp-includes/functions.wp-styles.php +0 -245
  852. data/lib/wp/wp-includes/general-template.php +0 -2982
  853. data/lib/wp/wp-includes/http.php +0 -551
  854. data/lib/wp/wp-includes/images/admin-bar-sprite-2x.png +0 -0
  855. data/lib/wp/wp-includes/images/admin-bar-sprite.png +0 -0
  856. data/lib/wp/wp-includes/images/arrow-pointer-blue-2x.png +0 -0
  857. data/lib/wp/wp-includes/images/arrow-pointer-blue.png +0 -0
  858. data/lib/wp/wp-includes/images/blank.gif +0 -0
  859. data/lib/wp/wp-includes/images/crystal/archive.png +0 -0
  860. data/lib/wp/wp-includes/images/crystal/audio.png +0 -0
  861. data/lib/wp/wp-includes/images/crystal/code.png +0 -0
  862. data/lib/wp/wp-includes/images/crystal/default.png +0 -0
  863. data/lib/wp/wp-includes/images/crystal/document.png +0 -0
  864. data/lib/wp/wp-includes/images/crystal/interactive.png +0 -0
  865. data/lib/wp/wp-includes/images/crystal/license.txt +0 -9
  866. data/lib/wp/wp-includes/images/crystal/spreadsheet.png +0 -0
  867. data/lib/wp/wp-includes/images/crystal/text.png +0 -0
  868. data/lib/wp/wp-includes/images/crystal/video.png +0 -0
  869. data/lib/wp/wp-includes/images/down_arrow-2x.gif +0 -0
  870. data/lib/wp/wp-includes/images/down_arrow.gif +0 -0
  871. data/lib/wp/wp-includes/images/icon-pointer-flag-2x.png +0 -0
  872. data/lib/wp/wp-includes/images/icon-pointer-flag.png +0 -0
  873. data/lib/wp/wp-includes/images/media/archive.png +0 -0
  874. data/lib/wp/wp-includes/images/media/audio.png +0 -0
  875. data/lib/wp/wp-includes/images/media/code.png +0 -0
  876. data/lib/wp/wp-includes/images/media/default.png +0 -0
  877. data/lib/wp/wp-includes/images/media/document.png +0 -0
  878. data/lib/wp/wp-includes/images/media/interactive.png +0 -0
  879. data/lib/wp/wp-includes/images/media/spreadsheet.png +0 -0
  880. data/lib/wp/wp-includes/images/media/text.png +0 -0
  881. data/lib/wp/wp-includes/images/media/video.png +0 -0
  882. data/lib/wp/wp-includes/images/rss-2x.png +0 -0
  883. data/lib/wp/wp-includes/images/rss.png +0 -0
  884. data/lib/wp/wp-includes/images/smilies/icon_arrow.gif +0 -0
  885. data/lib/wp/wp-includes/images/smilies/icon_biggrin.gif +0 -0
  886. data/lib/wp/wp-includes/images/smilies/icon_confused.gif +0 -0
  887. data/lib/wp/wp-includes/images/smilies/icon_cool.gif +0 -0
  888. data/lib/wp/wp-includes/images/smilies/icon_cry.gif +0 -0
  889. data/lib/wp/wp-includes/images/smilies/icon_eek.gif +0 -0
  890. data/lib/wp/wp-includes/images/smilies/icon_evil.gif +0 -0
  891. data/lib/wp/wp-includes/images/smilies/icon_exclaim.gif +0 -0
  892. data/lib/wp/wp-includes/images/smilies/icon_idea.gif +0 -0
  893. data/lib/wp/wp-includes/images/smilies/icon_lol.gif +0 -0
  894. data/lib/wp/wp-includes/images/smilies/icon_mad.gif +0 -0
  895. data/lib/wp/wp-includes/images/smilies/icon_mrgreen.gif +0 -0
  896. data/lib/wp/wp-includes/images/smilies/icon_neutral.gif +0 -0
  897. data/lib/wp/wp-includes/images/smilies/icon_question.gif +0 -0
  898. data/lib/wp/wp-includes/images/smilies/icon_razz.gif +0 -0
  899. data/lib/wp/wp-includes/images/smilies/icon_redface.gif +0 -0
  900. data/lib/wp/wp-includes/images/smilies/icon_rolleyes.gif +0 -0
  901. data/lib/wp/wp-includes/images/smilies/icon_sad.gif +0 -0
  902. data/lib/wp/wp-includes/images/smilies/icon_smile.gif +0 -0
  903. data/lib/wp/wp-includes/images/smilies/icon_surprised.gif +0 -0
  904. data/lib/wp/wp-includes/images/smilies/icon_twisted.gif +0 -0
  905. data/lib/wp/wp-includes/images/smilies/icon_wink.gif +0 -0
  906. data/lib/wp/wp-includes/images/spinner-2x.gif +0 -0
  907. data/lib/wp/wp-includes/images/spinner.gif +0 -0
  908. data/lib/wp/wp-includes/images/toggle-arrow-2x.png +0 -0
  909. data/lib/wp/wp-includes/images/toggle-arrow.png +0 -0
  910. data/lib/wp/wp-includes/images/uploader-icons-2x.png +0 -0
  911. data/lib/wp/wp-includes/images/uploader-icons.png +0 -0
  912. data/lib/wp/wp-includes/images/wlw/wp-comments.png +0 -0
  913. data/lib/wp/wp-includes/images/wlw/wp-icon.png +0 -0
  914. data/lib/wp/wp-includes/images/wlw/wp-watermark.png +0 -0
  915. data/lib/wp/wp-includes/images/wpicons-2x.png +0 -0
  916. data/lib/wp/wp-includes/images/wpicons.png +0 -0
  917. data/lib/wp/wp-includes/images/wpspin-2x.gif +0 -0
  918. data/lib/wp/wp-includes/images/wpspin.gif +0 -0
  919. data/lib/wp/wp-includes/images/xit-2x.gif +0 -0
  920. data/lib/wp/wp-includes/images/xit.gif +0 -0
  921. data/lib/wp/wp-includes/js/admin-bar.js +0 -365
  922. data/lib/wp/wp-includes/js/admin-bar.min.js +0 -1
  923. data/lib/wp/wp-includes/js/autosave.js +0 -589
  924. data/lib/wp/wp-includes/js/autosave.min.js +0 -1
  925. data/lib/wp/wp-includes/js/backbone.min.js +0 -1
  926. data/lib/wp/wp-includes/js/colorpicker.js +0 -707
  927. data/lib/wp/wp-includes/js/colorpicker.min.js +0 -1
  928. data/lib/wp/wp-includes/js/comment-reply.js +0 -47
  929. data/lib/wp/wp-includes/js/comment-reply.min.js +0 -1
  930. data/lib/wp/wp-includes/js/crop/cropper.css +0 -165
  931. data/lib/wp/wp-includes/js/crop/cropper.js +0 -516
  932. data/lib/wp/wp-includes/js/crop/marqueeHoriz.gif +0 -0
  933. data/lib/wp/wp-includes/js/crop/marqueeVert.gif +0 -0
  934. data/lib/wp/wp-includes/js/customize-base.js +0 -617
  935. data/lib/wp/wp-includes/js/customize-base.min.js +0 -1
  936. data/lib/wp/wp-includes/js/customize-loader.js +0 -246
  937. data/lib/wp/wp-includes/js/customize-loader.min.js +0 -1
  938. data/lib/wp/wp-includes/js/customize-models.js +0 -247
  939. data/lib/wp/wp-includes/js/customize-models.min.js +0 -1
  940. data/lib/wp/wp-includes/js/customize-preview-widgets.js +0 -129
  941. data/lib/wp/wp-includes/js/customize-preview-widgets.min.js +0 -1
  942. data/lib/wp/wp-includes/js/customize-preview.js +0 -154
  943. data/lib/wp/wp-includes/js/customize-preview.min.js +0 -1
  944. data/lib/wp/wp-includes/js/customize-views.js +0 -231
  945. data/lib/wp/wp-includes/js/customize-views.min.js +0 -1
  946. data/lib/wp/wp-includes/js/heartbeat.js +0 -738
  947. data/lib/wp/wp-includes/js/heartbeat.min.js +0 -1
  948. data/lib/wp/wp-includes/js/hoverIntent.js +0 -115
  949. data/lib/wp/wp-includes/js/hoverIntent.min.js +0 -1
  950. data/lib/wp/wp-includes/js/imgareaselect/border-anim-h.gif +0 -0
  951. data/lib/wp/wp-includes/js/imgareaselect/border-anim-v.gif +0 -0
  952. data/lib/wp/wp-includes/js/imgareaselect/imgareaselect.css +0 -41
  953. data/lib/wp/wp-includes/js/imgareaselect/jquery.imgareaselect.js +0 -1205
  954. data/lib/wp/wp-includes/js/imgareaselect/jquery.imgareaselect.min.js +0 -1
  955. data/lib/wp/wp-includes/js/jcrop/Jcrop.gif +0 -0
  956. data/lib/wp/wp-includes/js/jcrop/jquery.Jcrop.min.css +0 -29
  957. data/lib/wp/wp-includes/js/jcrop/jquery.Jcrop.min.js +0 -22
  958. data/lib/wp/wp-includes/js/jquery/jquery-migrate.js +0 -521
  959. data/lib/wp/wp-includes/js/jquery/jquery-migrate.min.js +0 -2
  960. data/lib/wp/wp-includes/js/jquery/jquery.color.min.js +0 -2
  961. data/lib/wp/wp-includes/js/jquery/jquery.form.js +0 -1193
  962. data/lib/wp/wp-includes/js/jquery/jquery.form.min.js +0 -11
  963. data/lib/wp/wp-includes/js/jquery/jquery.hotkeys.js +0 -134
  964. data/lib/wp/wp-includes/js/jquery/jquery.hotkeys.min.js +0 -1
  965. data/lib/wp/wp-includes/js/jquery/jquery.js +0 -5
  966. data/lib/wp/wp-includes/js/jquery/jquery.masonry.min.js +0 -11
  967. data/lib/wp/wp-includes/js/jquery/jquery.query.js +0 -11
  968. data/lib/wp/wp-includes/js/jquery/jquery.schedule.js +0 -36
  969. data/lib/wp/wp-includes/js/jquery/jquery.serialize-object.js +0 -31
  970. data/lib/wp/wp-includes/js/jquery/jquery.table-hotkeys.js +0 -99
  971. data/lib/wp/wp-includes/js/jquery/jquery.table-hotkeys.min.js +0 -1
  972. data/lib/wp/wp-includes/js/jquery/jquery.ui.touch-punch.js +0 -11
  973. data/lib/wp/wp-includes/js/jquery/suggest.js +0 -316
  974. data/lib/wp/wp-includes/js/jquery/suggest.min.js +0 -1
  975. data/lib/wp/wp-includes/js/jquery/ui/accordion.min.js +0 -11
  976. data/lib/wp/wp-includes/js/jquery/ui/autocomplete.min.js +0 -11
  977. data/lib/wp/wp-includes/js/jquery/ui/button.min.js +0 -11
  978. data/lib/wp/wp-includes/js/jquery/ui/core.min.js +0 -11
  979. data/lib/wp/wp-includes/js/jquery/ui/datepicker.min.js +0 -12
  980. data/lib/wp/wp-includes/js/jquery/ui/dialog.min.js +0 -11
  981. data/lib/wp/wp-includes/js/jquery/ui/draggable.min.js +0 -11
  982. data/lib/wp/wp-includes/js/jquery/ui/droppable.min.js +0 -11
  983. data/lib/wp/wp-includes/js/jquery/ui/effect-blind.min.js +0 -11
  984. data/lib/wp/wp-includes/js/jquery/ui/effect-bounce.min.js +0 -11
  985. data/lib/wp/wp-includes/js/jquery/ui/effect-clip.min.js +0 -11
  986. data/lib/wp/wp-includes/js/jquery/ui/effect-drop.min.js +0 -11
  987. data/lib/wp/wp-includes/js/jquery/ui/effect-explode.min.js +0 -11
  988. data/lib/wp/wp-includes/js/jquery/ui/effect-fade.min.js +0 -11
  989. data/lib/wp/wp-includes/js/jquery/ui/effect-fold.min.js +0 -11
  990. data/lib/wp/wp-includes/js/jquery/ui/effect-highlight.min.js +0 -11
  991. data/lib/wp/wp-includes/js/jquery/ui/effect-puff.min.js +0 -11
  992. data/lib/wp/wp-includes/js/jquery/ui/effect-pulsate.min.js +0 -11
  993. data/lib/wp/wp-includes/js/jquery/ui/effect-scale.min.js +0 -11
  994. data/lib/wp/wp-includes/js/jquery/ui/effect-shake.min.js +0 -11
  995. data/lib/wp/wp-includes/js/jquery/ui/effect-size.min.js +0 -11
  996. data/lib/wp/wp-includes/js/jquery/ui/effect-slide.min.js +0 -11
  997. data/lib/wp/wp-includes/js/jquery/ui/effect-transfer.min.js +0 -11
  998. data/lib/wp/wp-includes/js/jquery/ui/effect.min.js +0 -21
  999. data/lib/wp/wp-includes/js/jquery/ui/menu.min.js +0 -11
  1000. data/lib/wp/wp-includes/js/jquery/ui/mouse.min.js +0 -11
  1001. data/lib/wp/wp-includes/js/jquery/ui/position.min.js +0 -11
  1002. data/lib/wp/wp-includes/js/jquery/ui/progressbar.min.js +0 -11
  1003. data/lib/wp/wp-includes/js/jquery/ui/resizable.min.js +0 -11
  1004. data/lib/wp/wp-includes/js/jquery/ui/selectable.min.js +0 -11
  1005. data/lib/wp/wp-includes/js/jquery/ui/selectmenu.min.js +0 -11
  1006. data/lib/wp/wp-includes/js/jquery/ui/slider.min.js +0 -11
  1007. data/lib/wp/wp-includes/js/jquery/ui/sortable.min.js +0 -11
  1008. data/lib/wp/wp-includes/js/jquery/ui/spinner.min.js +0 -11
  1009. data/lib/wp/wp-includes/js/jquery/ui/tabs.min.js +0 -11
  1010. data/lib/wp/wp-includes/js/jquery/ui/tooltip.min.js +0 -11
  1011. data/lib/wp/wp-includes/js/jquery/ui/widget.min.js +0 -11
  1012. data/lib/wp/wp-includes/js/json2.js +0 -480
  1013. data/lib/wp/wp-includes/js/json2.min.js +0 -1
  1014. data/lib/wp/wp-includes/js/masonry.min.js +0 -1
  1015. data/lib/wp/wp-includes/js/mce-view.js +0 -829
  1016. data/lib/wp/wp-includes/js/mce-view.min.js +0 -1
  1017. data/lib/wp/wp-includes/js/media-audiovideo.js +0 -831
  1018. data/lib/wp/wp-includes/js/media-audiovideo.min.js +0 -1
  1019. data/lib/wp/wp-includes/js/media-editor.js +0 -1114
  1020. data/lib/wp/wp-includes/js/media-editor.min.js +0 -1
  1021. data/lib/wp/wp-includes/js/media-grid.js +0 -732
  1022. data/lib/wp/wp-includes/js/media-grid.min.js +0 -1
  1023. data/lib/wp/wp-includes/js/media-models.js +0 -1362
  1024. data/lib/wp/wp-includes/js/media-models.min.js +0 -1
  1025. data/lib/wp/wp-includes/js/media-views.js +0 -7484
  1026. data/lib/wp/wp-includes/js/media-views.min.js +0 -3
  1027. data/lib/wp/wp-includes/js/mediaelement/background.png +0 -0
  1028. data/lib/wp/wp-includes/js/mediaelement/bigplay.png +0 -0
  1029. data/lib/wp/wp-includes/js/mediaelement/bigplay.svg +0 -1
  1030. data/lib/wp/wp-includes/js/mediaelement/controls.png +0 -0
  1031. data/lib/wp/wp-includes/js/mediaelement/controls.svg +0 -1
  1032. data/lib/wp/wp-includes/js/mediaelement/flashmediaelement.swf +0 -0
  1033. data/lib/wp/wp-includes/js/mediaelement/loading.gif +0 -0
  1034. data/lib/wp/wp-includes/js/mediaelement/mediaelement-and-player.min.js +0 -181
  1035. data/lib/wp/wp-includes/js/mediaelement/mediaelementplayer.min.css +0 -1
  1036. data/lib/wp/wp-includes/js/mediaelement/silverlightmediaelement.xap +0 -0
  1037. data/lib/wp/wp-includes/js/mediaelement/wp-mediaelement.css +0 -274
  1038. data/lib/wp/wp-includes/js/mediaelement/wp-mediaelement.js +0 -34
  1039. data/lib/wp/wp-includes/js/mediaelement/wp-playlist.js +0 -175
  1040. data/lib/wp/wp-includes/js/plupload/handlers.js +0 -488
  1041. data/lib/wp/wp-includes/js/plupload/handlers.min.js +0 -1
  1042. data/lib/wp/wp-includes/js/plupload/license.txt +0 -339
  1043. data/lib/wp/wp-includes/js/plupload/plupload.flash.swf +0 -0
  1044. data/lib/wp/wp-includes/js/plupload/plupload.full.min.js +0 -28
  1045. data/lib/wp/wp-includes/js/plupload/plupload.silverlight.xap +0 -0
  1046. data/lib/wp/wp-includes/js/plupload/wp-plupload.js +0 -376
  1047. data/lib/wp/wp-includes/js/plupload/wp-plupload.min.js +0 -1
  1048. data/lib/wp/wp-includes/js/quicktags.js +0 -652
  1049. data/lib/wp/wp-includes/js/quicktags.min.js +0 -1
  1050. data/lib/wp/wp-includes/js/shortcode.js +0 -356
  1051. data/lib/wp/wp-includes/js/shortcode.min.js +0 -1
  1052. data/lib/wp/wp-includes/js/swfobject.js +0 -4
  1053. data/lib/wp/wp-includes/js/swfupload/handlers.js +0 -376
  1054. data/lib/wp/wp-includes/js/swfupload/handlers.min.js +0 -1
  1055. data/lib/wp/wp-includes/js/swfupload/license.txt +0 -32
  1056. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.cookies.js +0 -53
  1057. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.queue.js +0 -98
  1058. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.speed.js +0 -342
  1059. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.swfobject.js +0 -105
  1060. data/lib/wp/wp-includes/js/swfupload/swfupload.js +0 -980
  1061. data/lib/wp/wp-includes/js/swfupload/swfupload.swf +0 -0
  1062. data/lib/wp/wp-includes/js/thickbox/loadingAnimation.gif +0 -0
  1063. data/lib/wp/wp-includes/js/thickbox/macFFBgHack.png +0 -0
  1064. data/lib/wp/wp-includes/js/thickbox/thickbox.css +0 -138
  1065. data/lib/wp/wp-includes/js/thickbox/thickbox.js +0 -314
  1066. data/lib/wp/wp-includes/js/tinymce/langs/wp-langs-en.js +0 -519
  1067. data/lib/wp/wp-includes/js/tinymce/license.txt +0 -504
  1068. data/lib/wp/wp-includes/js/tinymce/plugins/charmap/plugin.js +0 -370
  1069. data/lib/wp/wp-includes/js/tinymce/plugins/charmap/plugin.min.js +0 -1
  1070. data/lib/wp/wp-includes/js/tinymce/plugins/colorpicker/plugin.js +0 -112
  1071. data/lib/wp/wp-includes/js/tinymce/plugins/colorpicker/plugin.min.js +0 -1
  1072. data/lib/wp/wp-includes/js/tinymce/plugins/compat3x/css/dialog.css +0 -212
  1073. data/lib/wp/wp-includes/js/tinymce/plugins/compat3x/plugin.js +0 -304
  1074. data/lib/wp/wp-includes/js/tinymce/plugins/compat3x/plugin.min.js +0 -1
  1075. data/lib/wp/wp-includes/js/tinymce/plugins/directionality/plugin.js +0 -64
  1076. data/lib/wp/wp-includes/js/tinymce/plugins/directionality/plugin.min.js +0 -1
  1077. data/lib/wp/wp-includes/js/tinymce/plugins/fullscreen/plugin.js +0 -136
  1078. data/lib/wp/wp-includes/js/tinymce/plugins/fullscreen/plugin.min.js +0 -1
  1079. data/lib/wp/wp-includes/js/tinymce/plugins/hr/plugin.js +0 -30
  1080. data/lib/wp/wp-includes/js/tinymce/plugins/hr/plugin.min.js +0 -1
  1081. data/lib/wp/wp-includes/js/tinymce/plugins/image/plugin.js +0 -450
  1082. data/lib/wp/wp-includes/js/tinymce/plugins/image/plugin.min.js +0 -1
  1083. data/lib/wp/wp-includes/js/tinymce/plugins/lists/plugin.js +0 -786
  1084. data/lib/wp/wp-includes/js/tinymce/plugins/lists/plugin.min.js +0 -1
  1085. data/lib/wp/wp-includes/js/tinymce/plugins/media/moxieplayer.swf +0 -0
  1086. data/lib/wp/wp-includes/js/tinymce/plugins/media/plugin.js +0 -774
  1087. data/lib/wp/wp-includes/js/tinymce/plugins/media/plugin.min.js +0 -1
  1088. data/lib/wp/wp-includes/js/tinymce/plugins/paste/plugin.js +0 -1553
  1089. data/lib/wp/wp-includes/js/tinymce/plugins/paste/plugin.min.js +0 -1
  1090. data/lib/wp/wp-includes/js/tinymce/plugins/tabfocus/plugin.js +0 -125
  1091. data/lib/wp/wp-includes/js/tinymce/plugins/tabfocus/plugin.min.js +0 -1
  1092. data/lib/wp/wp-includes/js/tinymce/plugins/textcolor/plugin.js +0 -272
  1093. data/lib/wp/wp-includes/js/tinymce/plugins/textcolor/plugin.min.js +0 -1
  1094. data/lib/wp/wp-includes/js/tinymce/plugins/wordpress/plugin.js +0 -513
  1095. data/lib/wp/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js +0 -1
  1096. data/lib/wp/wp-includes/js/tinymce/plugins/wpautoresize/plugin.js +0 -207
  1097. data/lib/wp/wp-includes/js/tinymce/plugins/wpautoresize/plugin.min.js +0 -1
  1098. data/lib/wp/wp-includes/js/tinymce/plugins/wpdialogs/plugin.js +0 -92
  1099. data/lib/wp/wp-includes/js/tinymce/plugins/wpdialogs/plugin.min.js +0 -1
  1100. data/lib/wp/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js +0 -1035
  1101. data/lib/wp/wp-includes/js/tinymce/plugins/wpeditimage/plugin.min.js +0 -1
  1102. data/lib/wp/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.js +0 -78
  1103. data/lib/wp/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.min.js +0 -1
  1104. data/lib/wp/wp-includes/js/tinymce/plugins/wpgallery/plugin.js +0 -130
  1105. data/lib/wp/wp-includes/js/tinymce/plugins/wpgallery/plugin.min.js +0 -1
  1106. data/lib/wp/wp-includes/js/tinymce/plugins/wplink/plugin.js +0 -63
  1107. data/lib/wp/wp-includes/js/tinymce/plugins/wplink/plugin.min.js +0 -1
  1108. data/lib/wp/wp-includes/js/tinymce/plugins/wpview/plugin.js +0 -694
  1109. data/lib/wp/wp-includes/js/tinymce/plugins/wpview/plugin.min.js +0 -1
  1110. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/content.inline.min.css +0 -1
  1111. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/content.min.css +0 -1
  1112. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/readme.md +0 -1
  1113. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.eot +0 -0
  1114. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.svg +0 -62
  1115. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.ttf +0 -0
  1116. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.woff +0 -0
  1117. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.eot +0 -0
  1118. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.svg +0 -63
  1119. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.ttf +0 -0
  1120. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.woff +0 -0
  1121. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/anchor.gif +0 -0
  1122. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/loader.gif +0 -0
  1123. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/object.gif +0 -0
  1124. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/trans.gif +0 -0
  1125. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/skin.ie7.min.css +0 -1
  1126. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/skin.min.css +0 -1
  1127. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/audio.png +0 -0
  1128. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/dashicon-edit.png +0 -0
  1129. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/dashicon-no-alt.png +0 -0
  1130. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/embedded.png +0 -0
  1131. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/gallery-2x.png +0 -0
  1132. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/gallery.png +0 -0
  1133. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/more-2x.png +0 -0
  1134. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/more.png +0 -0
  1135. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/pagebreak-2x.png +0 -0
  1136. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/pagebreak.png +0 -0
  1137. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/playlist-audio.png +0 -0
  1138. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/playlist-video.png +0 -0
  1139. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/video.png +0 -0
  1140. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/wp-content.css +0 -618
  1141. data/lib/wp/wp-includes/js/tinymce/themes/modern/theme.js +0 -617
  1142. data/lib/wp/wp-includes/js/tinymce/themes/modern/theme.min.js +0 -1
  1143. data/lib/wp/wp-includes/js/tinymce/tiny_mce_popup.js +0 -539
  1144. data/lib/wp/wp-includes/js/tinymce/tinymce.min.js +0 -11
  1145. data/lib/wp/wp-includes/js/tinymce/utils/editable_selects.js +0 -70
  1146. data/lib/wp/wp-includes/js/tinymce/utils/form_utils.js +0 -210
  1147. data/lib/wp/wp-includes/js/tinymce/utils/mctabs.js +0 -164
  1148. data/lib/wp/wp-includes/js/tinymce/utils/validate.js +0 -252
  1149. data/lib/wp/wp-includes/js/tinymce/wp-mce-help.php +0 -145
  1150. data/lib/wp/wp-includes/js/tinymce/wp-tinymce.js.gz +0 -0
  1151. data/lib/wp/wp-includes/js/tinymce/wp-tinymce.php +0 -39
  1152. data/lib/wp/wp-includes/js/tw-sack.js +0 -193
  1153. data/lib/wp/wp-includes/js/tw-sack.min.js +0 -1
  1154. data/lib/wp/wp-includes/js/underscore.min.js +0 -1
  1155. data/lib/wp/wp-includes/js/utils.js +0 -197
  1156. data/lib/wp/wp-includes/js/utils.min.js +0 -1
  1157. data/lib/wp/wp-includes/js/wp-ajax-response.js +0 -64
  1158. data/lib/wp/wp-includes/js/wp-ajax-response.min.js +0 -1
  1159. data/lib/wp/wp-includes/js/wp-auth-check.js +0 -112
  1160. data/lib/wp/wp-includes/js/wp-auth-check.min.js +0 -1
  1161. data/lib/wp/wp-includes/js/wp-backbone.js +0 -386
  1162. data/lib/wp/wp-includes/js/wp-backbone.min.js +0 -1
  1163. data/lib/wp/wp-includes/js/wp-list-revisions.js +0 -24
  1164. data/lib/wp/wp-includes/js/wp-list-revisions.min.js +0 -1
  1165. data/lib/wp/wp-includes/js/wp-lists.js +0 -469
  1166. data/lib/wp/wp-includes/js/wp-lists.min.js +0 -1
  1167. data/lib/wp/wp-includes/js/wp-pointer.js +0 -282
  1168. data/lib/wp/wp-includes/js/wp-pointer.min.js +0 -1
  1169. data/lib/wp/wp-includes/js/wp-util.js +0 -106
  1170. data/lib/wp/wp-includes/js/wp-util.min.js +0 -1
  1171. data/lib/wp/wp-includes/js/wpdialog.js +0 -19
  1172. data/lib/wp/wp-includes/js/wpdialog.min.js +0 -1
  1173. data/lib/wp/wp-includes/js/wplink.js +0 -615
  1174. data/lib/wp/wp-includes/js/wplink.min.js +0 -1
  1175. data/lib/wp/wp-includes/js/zxcvbn-async.js +0 -18
  1176. data/lib/wp/wp-includes/js/zxcvbn-async.min.js +0 -1
  1177. data/lib/wp/wp-includes/js/zxcvbn.min.js +0 -47
  1178. data/lib/wp/wp-includes/kses.php +0 -1526
  1179. data/lib/wp/wp-includes/l10n.php +0 -908
  1180. data/lib/wp/wp-includes/link-template.php +0 -3141
  1181. data/lib/wp/wp-includes/load.php +0 -828
  1182. data/lib/wp/wp-includes/locale.php +0 -368
  1183. data/lib/wp/wp-includes/media-template.php +0 -1235
  1184. data/lib/wp/wp-includes/media.php +0 -3329
  1185. data/lib/wp/wp-includes/meta.php +0 -1221
  1186. data/lib/wp/wp-includes/ms-blogs.php +0 -939
  1187. data/lib/wp/wp-includes/ms-default-constants.php +0 -153
  1188. data/lib/wp/wp-includes/ms-default-filters.php +0 -82
  1189. data/lib/wp/wp-includes/ms-deprecated.php +0 -347
  1190. data/lib/wp/wp-includes/ms-files.php +0 -82
  1191. data/lib/wp/wp-includes/ms-functions.php +0 -2476
  1192. data/lib/wp/wp-includes/ms-load.php +0 -458
  1193. data/lib/wp/wp-includes/ms-settings.php +0 -213
  1194. data/lib/wp/wp-includes/nav-menu-template.php +0 -678
  1195. data/lib/wp/wp-includes/nav-menu.php +0 -895
  1196. data/lib/wp/wp-includes/option.php +0 -1440
  1197. data/lib/wp/wp-includes/pluggable-deprecated.php +0 -192
  1198. data/lib/wp/wp-includes/pluggable.php +0 -2283
  1199. data/lib/wp/wp-includes/plugin.php +0 -920
  1200. data/lib/wp/wp-includes/pomo/entry.php +0 -78
  1201. data/lib/wp/wp-includes/pomo/mo.php +0 -262
  1202. data/lib/wp/wp-includes/pomo/po.php +0 -384
  1203. data/lib/wp/wp-includes/pomo/streams.php +0 -209
  1204. data/lib/wp/wp-includes/pomo/translations.php +0 -275
  1205. data/lib/wp/wp-includes/post-formats.php +0 -243
  1206. data/lib/wp/wp-includes/post-template.php +0 -1766
  1207. data/lib/wp/wp-includes/post-thumbnail-template.php +0 -142
  1208. data/lib/wp/wp-includes/post.php +0 -5842
  1209. data/lib/wp/wp-includes/query.php +0 -4666
  1210. data/lib/wp/wp-includes/registration-functions.php +0 -7
  1211. data/lib/wp/wp-includes/registration.php +0 -7
  1212. data/lib/wp/wp-includes/revision.php +0 -657
  1213. data/lib/wp/wp-includes/rewrite.php +0 -2180
  1214. data/lib/wp/wp-includes/rss-functions.php +0 -9
  1215. data/lib/wp/wp-includes/rss.php +0 -936
  1216. data/lib/wp/wp-includes/script-loader.php +0 -1045
  1217. data/lib/wp/wp-includes/session.php +0 -430
  1218. data/lib/wp/wp-includes/shortcodes.php +0 -410
  1219. data/lib/wp/wp-includes/taxonomy.php +0 -4006
  1220. data/lib/wp/wp-includes/template-loader.php +0 -76
  1221. data/lib/wp/wp-includes/template.php +0 -505
  1222. data/lib/wp/wp-includes/theme-compat/comments-popup.php +0 -128
  1223. data/lib/wp/wp-includes/theme-compat/comments.php +0 -101
  1224. data/lib/wp/wp-includes/theme-compat/footer.php +0 -30
  1225. data/lib/wp/wp-includes/theme-compat/header.php +0 -49
  1226. data/lib/wp/wp-includes/theme-compat/sidebar.php +0 -83
  1227. data/lib/wp/wp-includes/theme.php +0 -2014
  1228. data/lib/wp/wp-includes/update.php +0 -674
  1229. data/lib/wp/wp-includes/user.php +0 -2292
  1230. data/lib/wp/wp-includes/vars.php +0 -144
  1231. data/lib/wp/wp-includes/version.php +0 -35
  1232. data/lib/wp/wp-includes/widgets.php +0 -1514
  1233. data/lib/wp/wp-includes/wlwmanifest.xml +0 -43
  1234. data/lib/wp/wp-includes/wp-db.php +0 -2190
  1235. data/lib/wp/wp-includes/wp-diff.php +0 -523
  1236. data/lib/wp/wp-links-opml.php +0 -80
  1237. data/lib/wp/wp-load.php +0 -73
  1238. data/lib/wp/wp-login.php +0 -952
  1239. data/lib/wp/wp-mail.php +0 -260
  1240. data/lib/wp/wp-settings.php +0 -374
  1241. data/lib/wp/wp-signup.php +0 -749
  1242. data/lib/wp/wp-trackback.php +0 -127
  1243. data/lib/wp/xmlrpc.php +0 -101
@@ -1,2586 +0,0 @@
1
- <?php
2
- /////////////////////////////////////////////////////////////////
3
- /// getID3() by James Heinrich <info@getid3.org> //
4
- // available at http://getid3.sourceforge.net //
5
- // or http://www.getid3.org //
6
- // also https://github.com/JamesHeinrich/getID3 //
7
- /////////////////////////////////////////////////////////////////
8
- // See readme.txt for more details //
9
- /////////////////////////////////////////////////////////////////
10
- // //
11
- // module.audio-video.riff.php //
12
- // module for analyzing RIFF files //
13
- // multiple formats supported by this module: //
14
- // Wave, AVI, AIFF/AIFC, (MP3,AC3)/RIFF, Wavpack v3, 8SVX //
15
- // dependencies: module.audio.mp3.php //
16
- // module.audio.ac3.php //
17
- // module.audio.dts.php //
18
- // ///
19
- /////////////////////////////////////////////////////////////////
20
-
21
- /**
22
- * @todo Parse AC-3/DTS audio inside WAVE correctly
23
- * @todo Rewrite RIFF parser totally
24
- */
25
-
26
- getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.audio.mp3.php', __FILE__, true);
27
- getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.audio.ac3.php', __FILE__, true);
28
- getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.audio.dts.php', __FILE__, true);
29
-
30
- class getid3_riff extends getid3_handler {
31
-
32
- protected $container = 'riff'; // default
33
-
34
- public function Analyze() {
35
- $info = &$this->getid3->info;
36
-
37
- // initialize these values to an empty array, otherwise they default to NULL
38
- // and you can't append array values to a NULL value
39
- $info['riff'] = array('raw'=>array());
40
-
41
- // Shortcuts
42
- $thisfile_riff = &$info['riff'];
43
- $thisfile_riff_raw = &$thisfile_riff['raw'];
44
- $thisfile_audio = &$info['audio'];
45
- $thisfile_video = &$info['video'];
46
- $thisfile_audio_dataformat = &$thisfile_audio['dataformat'];
47
- $thisfile_riff_audio = &$thisfile_riff['audio'];
48
- $thisfile_riff_video = &$thisfile_riff['video'];
49
-
50
- $Original['avdataoffset'] = $info['avdataoffset'];
51
- $Original['avdataend'] = $info['avdataend'];
52
-
53
- $this->fseek($info['avdataoffset']);
54
- $RIFFheader = $this->fread(12);
55
- $offset = $this->ftell();
56
- $RIFFtype = substr($RIFFheader, 0, 4);
57
- $RIFFsize = substr($RIFFheader, 4, 4);
58
- $RIFFsubtype = substr($RIFFheader, 8, 4);
59
-
60
- switch ($RIFFtype) {
61
-
62
- case 'FORM': // AIFF, AIFC
63
- //$info['fileformat'] = 'aiff';
64
- $this->container = 'aiff';
65
- $thisfile_riff['header_size'] = $this->EitherEndian2Int($RIFFsize);
66
- $thisfile_riff[$RIFFsubtype] = $this->ParseRIFF($offset, ($offset + $thisfile_riff['header_size'] - 4));
67
- break;
68
-
69
- case 'RIFF': // AVI, WAV, etc
70
- case 'SDSS': // SDSS is identical to RIFF, just renamed. Used by SmartSound QuickTracks (www.smartsound.com)
71
- case 'RMP3': // RMP3 is identical to RIFF, just renamed. Used by [unknown program] when creating RIFF-MP3s
72
- //$info['fileformat'] = 'riff';
73
- $this->container = 'riff';
74
- $thisfile_riff['header_size'] = $this->EitherEndian2Int($RIFFsize);
75
- if ($RIFFsubtype == 'RMP3') {
76
- // RMP3 is identical to WAVE, just renamed. Used by [unknown program] when creating RIFF-MP3s
77
- $RIFFsubtype = 'WAVE';
78
- }
79
- if ($RIFFsubtype != 'AMV ') {
80
- // AMV files are RIFF-AVI files with parts of the spec deliberately broken, such as chunk size fields hardcoded to zero (because players known in hardware that these fields are always a certain size
81
- // Handled separately in ParseRIFFAMV()
82
- $thisfile_riff[$RIFFsubtype] = $this->ParseRIFF($offset, ($offset + $thisfile_riff['header_size'] - 4));
83
- }
84
- if (($info['avdataend'] - $info['filesize']) == 1) {
85
- // LiteWave appears to incorrectly *not* pad actual output file
86
- // to nearest WORD boundary so may appear to be short by one
87
- // byte, in which case - skip warning
88
- $info['avdataend'] = $info['filesize'];
89
- }
90
-
91
- $nextRIFFoffset = $Original['avdataoffset'] + 8 + $thisfile_riff['header_size']; // 8 = "RIFF" + 32-bit offset
92
- while ($nextRIFFoffset < min($info['filesize'], $info['avdataend'])) {
93
- try {
94
- $this->fseek($nextRIFFoffset);
95
- } catch (getid3_exception $e) {
96
- if ($e->getCode() == 10) {
97
- //$this->warning('RIFF parser: '.$e->getMessage());
98
- $this->error('AVI extends beyond '.round(PHP_INT_MAX / 1073741824).'GB and PHP filesystem functions cannot read that far, playtime may be wrong');
99
- $this->warning('[avdataend] value may be incorrect, multiple AVIX chunks may be present');
100
- break;
101
- } else {
102
- throw $e;
103
- }
104
- }
105
- $nextRIFFheader = $this->fread(12);
106
- if ($nextRIFFoffset == ($info['avdataend'] - 1)) {
107
- if (substr($nextRIFFheader, 0, 1) == "\x00") {
108
- // RIFF padded to WORD boundary, we're actually already at the end
109
- break;
110
- }
111
- }
112
- $nextRIFFheaderID = substr($nextRIFFheader, 0, 4);
113
- $nextRIFFsize = $this->EitherEndian2Int(substr($nextRIFFheader, 4, 4));
114
- $nextRIFFtype = substr($nextRIFFheader, 8, 4);
115
- $chunkdata = array();
116
- $chunkdata['offset'] = $nextRIFFoffset + 8;
117
- $chunkdata['size'] = $nextRIFFsize;
118
- $nextRIFFoffset = $chunkdata['offset'] + $chunkdata['size'];
119
-
120
- switch ($nextRIFFheaderID) {
121
- case 'RIFF':
122
- $chunkdata['chunks'] = $this->ParseRIFF($chunkdata['offset'] + 4, $nextRIFFoffset);
123
- if (!isset($thisfile_riff[$nextRIFFtype])) {
124
- $thisfile_riff[$nextRIFFtype] = array();
125
- }
126
- $thisfile_riff[$nextRIFFtype][] = $chunkdata;
127
- break;
128
-
129
- case 'AMV ':
130
- unset($info['riff']);
131
- $info['amv'] = $this->ParseRIFFAMV($chunkdata['offset'] + 4, $nextRIFFoffset);
132
- break;
133
-
134
- case 'JUNK':
135
- // ignore
136
- $thisfile_riff[$nextRIFFheaderID][] = $chunkdata;
137
- break;
138
-
139
- case 'IDVX':
140
- $info['divxtag']['comments'] = self::ParseDIVXTAG($this->fread($chunkdata['size']));
141
- break;
142
-
143
- default:
144
- if ($info['filesize'] == ($chunkdata['offset'] - 8 + 128)) {
145
- $DIVXTAG = $nextRIFFheader.$this->fread(128 - 12);
146
- if (substr($DIVXTAG, -7) == 'DIVXTAG') {
147
- // DIVXTAG is supposed to be inside an IDVX chunk in a LIST chunk, but some bad encoders just slap it on the end of a file
148
- $this->warning('Found wrongly-structured DIVXTAG at offset '.($this->ftell() - 128).', parsing anyway');
149
- $info['divxtag']['comments'] = self::ParseDIVXTAG($DIVXTAG);
150
- break 2;
151
- }
152
- }
153
- $this->warning('Expecting "RIFF|JUNK|IDVX" at '.$nextRIFFoffset.', found "'.$nextRIFFheaderID.'" ('.getid3_lib::PrintHexBytes($nextRIFFheaderID).') - skipping rest of file');
154
- break 2;
155
-
156
- }
157
-
158
- }
159
- if ($RIFFsubtype == 'WAVE') {
160
- $thisfile_riff_WAVE = &$thisfile_riff['WAVE'];
161
- }
162
- break;
163
-
164
- default:
165
- $this->error('Cannot parse RIFF (this is maybe not a RIFF / WAV / AVI file?) - expecting "FORM|RIFF|SDSS|RMP3" found "'.$RIFFsubtype.'" instead');
166
- //unset($info['fileformat']);
167
- return false;
168
- }
169
-
170
- $streamindex = 0;
171
- switch ($RIFFsubtype) {
172
-
173
- // http://en.wikipedia.org/wiki/Wav
174
- case 'WAVE':
175
- $info['fileformat'] = 'wav';
176
-
177
- if (empty($thisfile_audio['bitrate_mode'])) {
178
- $thisfile_audio['bitrate_mode'] = 'cbr';
179
- }
180
- if (empty($thisfile_audio_dataformat)) {
181
- $thisfile_audio_dataformat = 'wav';
182
- }
183
-
184
- if (isset($thisfile_riff_WAVE['data'][0]['offset'])) {
185
- $info['avdataoffset'] = $thisfile_riff_WAVE['data'][0]['offset'] + 8;
186
- $info['avdataend'] = $info['avdataoffset'] + $thisfile_riff_WAVE['data'][0]['size'];
187
- }
188
- if (isset($thisfile_riff_WAVE['fmt '][0]['data'])) {
189
-
190
- $thisfile_riff_audio[$streamindex] = self::parseWAVEFORMATex($thisfile_riff_WAVE['fmt '][0]['data']);
191
- $thisfile_audio['wformattag'] = $thisfile_riff_audio[$streamindex]['raw']['wFormatTag'];
192
- if (!isset($thisfile_riff_audio[$streamindex]['bitrate']) || ($thisfile_riff_audio[$streamindex]['bitrate'] == 0)) {
193
- $info['error'][] = 'Corrupt RIFF file: bitrate_audio == zero';
194
- return false;
195
- }
196
- $thisfile_riff_raw['fmt '] = $thisfile_riff_audio[$streamindex]['raw'];
197
- unset($thisfile_riff_audio[$streamindex]['raw']);
198
- $thisfile_audio['streams'][$streamindex] = $thisfile_riff_audio[$streamindex];
199
-
200
- $thisfile_audio = getid3_lib::array_merge_noclobber($thisfile_audio, $thisfile_riff_audio[$streamindex]);
201
- if (substr($thisfile_audio['codec'], 0, strlen('unknown: 0x')) == 'unknown: 0x') {
202
- $info['warning'][] = 'Audio codec = '.$thisfile_audio['codec'];
203
- }
204
- $thisfile_audio['bitrate'] = $thisfile_riff_audio[$streamindex]['bitrate'];
205
-
206
- if (empty($info['playtime_seconds'])) { // may already be set (e.g. DTS-WAV)
207
- $info['playtime_seconds'] = (float) ((($info['avdataend'] - $info['avdataoffset']) * 8) / $thisfile_audio['bitrate']);
208
- }
209
-
210
- $thisfile_audio['lossless'] = false;
211
- if (isset($thisfile_riff_WAVE['data'][0]['offset']) && isset($thisfile_riff_raw['fmt ']['wFormatTag'])) {
212
- switch ($thisfile_riff_raw['fmt ']['wFormatTag']) {
213
-
214
- case 0x0001: // PCM
215
- $thisfile_audio['lossless'] = true;
216
- break;
217
-
218
- case 0x2000: // AC-3
219
- $thisfile_audio_dataformat = 'ac3';
220
- break;
221
-
222
- default:
223
- // do nothing
224
- break;
225
-
226
- }
227
- }
228
- $thisfile_audio['streams'][$streamindex]['wformattag'] = $thisfile_audio['wformattag'];
229
- $thisfile_audio['streams'][$streamindex]['bitrate_mode'] = $thisfile_audio['bitrate_mode'];
230
- $thisfile_audio['streams'][$streamindex]['lossless'] = $thisfile_audio['lossless'];
231
- $thisfile_audio['streams'][$streamindex]['dataformat'] = $thisfile_audio_dataformat;
232
- }
233
-
234
- if (isset($thisfile_riff_WAVE['rgad'][0]['data'])) {
235
-
236
- // shortcuts
237
- $rgadData = &$thisfile_riff_WAVE['rgad'][0]['data'];
238
- $thisfile_riff_raw['rgad'] = array('track'=>array(), 'album'=>array());
239
- $thisfile_riff_raw_rgad = &$thisfile_riff_raw['rgad'];
240
- $thisfile_riff_raw_rgad_track = &$thisfile_riff_raw_rgad['track'];
241
- $thisfile_riff_raw_rgad_album = &$thisfile_riff_raw_rgad['album'];
242
-
243
- $thisfile_riff_raw_rgad['fPeakAmplitude'] = getid3_lib::LittleEndian2Float(substr($rgadData, 0, 4));
244
- $thisfile_riff_raw_rgad['nRadioRgAdjust'] = $this->EitherEndian2Int(substr($rgadData, 4, 2));
245
- $thisfile_riff_raw_rgad['nAudiophileRgAdjust'] = $this->EitherEndian2Int(substr($rgadData, 6, 2));
246
-
247
- $nRadioRgAdjustBitstring = str_pad(getid3_lib::Dec2Bin($thisfile_riff_raw_rgad['nRadioRgAdjust']), 16, '0', STR_PAD_LEFT);
248
- $nAudiophileRgAdjustBitstring = str_pad(getid3_lib::Dec2Bin($thisfile_riff_raw_rgad['nAudiophileRgAdjust']), 16, '0', STR_PAD_LEFT);
249
- $thisfile_riff_raw_rgad_track['name'] = getid3_lib::Bin2Dec(substr($nRadioRgAdjustBitstring, 0, 3));
250
- $thisfile_riff_raw_rgad_track['originator'] = getid3_lib::Bin2Dec(substr($nRadioRgAdjustBitstring, 3, 3));
251
- $thisfile_riff_raw_rgad_track['signbit'] = getid3_lib::Bin2Dec(substr($nRadioRgAdjustBitstring, 6, 1));
252
- $thisfile_riff_raw_rgad_track['adjustment'] = getid3_lib::Bin2Dec(substr($nRadioRgAdjustBitstring, 7, 9));
253
- $thisfile_riff_raw_rgad_album['name'] = getid3_lib::Bin2Dec(substr($nAudiophileRgAdjustBitstring, 0, 3));
254
- $thisfile_riff_raw_rgad_album['originator'] = getid3_lib::Bin2Dec(substr($nAudiophileRgAdjustBitstring, 3, 3));
255
- $thisfile_riff_raw_rgad_album['signbit'] = getid3_lib::Bin2Dec(substr($nAudiophileRgAdjustBitstring, 6, 1));
256
- $thisfile_riff_raw_rgad_album['adjustment'] = getid3_lib::Bin2Dec(substr($nAudiophileRgAdjustBitstring, 7, 9));
257
-
258
- $thisfile_riff['rgad']['peakamplitude'] = $thisfile_riff_raw_rgad['fPeakAmplitude'];
259
- if (($thisfile_riff_raw_rgad_track['name'] != 0) && ($thisfile_riff_raw_rgad_track['originator'] != 0)) {
260
- $thisfile_riff['rgad']['track']['name'] = getid3_lib::RGADnameLookup($thisfile_riff_raw_rgad_track['name']);
261
- $thisfile_riff['rgad']['track']['originator'] = getid3_lib::RGADoriginatorLookup($thisfile_riff_raw_rgad_track['originator']);
262
- $thisfile_riff['rgad']['track']['adjustment'] = getid3_lib::RGADadjustmentLookup($thisfile_riff_raw_rgad_track['adjustment'], $thisfile_riff_raw_rgad_track['signbit']);
263
- }
264
- if (($thisfile_riff_raw_rgad_album['name'] != 0) && ($thisfile_riff_raw_rgad_album['originator'] != 0)) {
265
- $thisfile_riff['rgad']['album']['name'] = getid3_lib::RGADnameLookup($thisfile_riff_raw_rgad_album['name']);
266
- $thisfile_riff['rgad']['album']['originator'] = getid3_lib::RGADoriginatorLookup($thisfile_riff_raw_rgad_album['originator']);
267
- $thisfile_riff['rgad']['album']['adjustment'] = getid3_lib::RGADadjustmentLookup($thisfile_riff_raw_rgad_album['adjustment'], $thisfile_riff_raw_rgad_album['signbit']);
268
- }
269
- }
270
-
271
- if (isset($thisfile_riff_WAVE['fact'][0]['data'])) {
272
- $thisfile_riff_raw['fact']['NumberOfSamples'] = $this->EitherEndian2Int(substr($thisfile_riff_WAVE['fact'][0]['data'], 0, 4));
273
-
274
- // This should be a good way of calculating exact playtime,
275
- // but some sample files have had incorrect number of samples,
276
- // so cannot use this method
277
-
278
- // if (!empty($thisfile_riff_raw['fmt ']['nSamplesPerSec'])) {
279
- // $info['playtime_seconds'] = (float) $thisfile_riff_raw['fact']['NumberOfSamples'] / $thisfile_riff_raw['fmt ']['nSamplesPerSec'];
280
- // }
281
- }
282
- if (!empty($thisfile_riff_raw['fmt ']['nAvgBytesPerSec'])) {
283
- $thisfile_audio['bitrate'] = getid3_lib::CastAsInt($thisfile_riff_raw['fmt ']['nAvgBytesPerSec'] * 8);
284
- }
285
-
286
- if (isset($thisfile_riff_WAVE['bext'][0]['data'])) {
287
- // shortcut
288
- $thisfile_riff_WAVE_bext_0 = &$thisfile_riff_WAVE['bext'][0];
289
-
290
- $thisfile_riff_WAVE_bext_0['title'] = trim(substr($thisfile_riff_WAVE_bext_0['data'], 0, 256));
291
- $thisfile_riff_WAVE_bext_0['author'] = trim(substr($thisfile_riff_WAVE_bext_0['data'], 256, 32));
292
- $thisfile_riff_WAVE_bext_0['reference'] = trim(substr($thisfile_riff_WAVE_bext_0['data'], 288, 32));
293
- $thisfile_riff_WAVE_bext_0['origin_date'] = substr($thisfile_riff_WAVE_bext_0['data'], 320, 10);
294
- $thisfile_riff_WAVE_bext_0['origin_time'] = substr($thisfile_riff_WAVE_bext_0['data'], 330, 8);
295
- $thisfile_riff_WAVE_bext_0['time_reference'] = getid3_lib::LittleEndian2Int(substr($thisfile_riff_WAVE_bext_0['data'], 338, 8));
296
- $thisfile_riff_WAVE_bext_0['bwf_version'] = getid3_lib::LittleEndian2Int(substr($thisfile_riff_WAVE_bext_0['data'], 346, 1));
297
- $thisfile_riff_WAVE_bext_0['reserved'] = substr($thisfile_riff_WAVE_bext_0['data'], 347, 254);
298
- $thisfile_riff_WAVE_bext_0['coding_history'] = explode("\r\n", trim(substr($thisfile_riff_WAVE_bext_0['data'], 601)));
299
- if (preg_match('#^([0-9]{4}).([0-9]{2}).([0-9]{2})$#', $thisfile_riff_WAVE_bext_0['origin_date'], $matches_bext_date)) {
300
- if (preg_match('#^([0-9]{2}).([0-9]{2}).([0-9]{2})$#', $thisfile_riff_WAVE_bext_0['origin_time'], $matches_bext_time)) {
301
- list($dummy, $bext_timestamp['year'], $bext_timestamp['month'], $bext_timestamp['day']) = $matches_bext_date;
302
- list($dummy, $bext_timestamp['hour'], $bext_timestamp['minute'], $bext_timestamp['second']) = $matches_bext_time;
303
- $thisfile_riff_WAVE_bext_0['origin_date_unix'] = gmmktime($bext_timestamp['hour'], $bext_timestamp['minute'], $bext_timestamp['second'], $bext_timestamp['month'], $bext_timestamp['day'], $bext_timestamp['year']);
304
- } else {
305
- $info['warning'][] = 'RIFF.WAVE.BEXT.origin_time is invalid';
306
- }
307
- } else {
308
- $info['warning'][] = 'RIFF.WAVE.BEXT.origin_date is invalid';
309
- }
310
- $thisfile_riff['comments']['author'][] = $thisfile_riff_WAVE_bext_0['author'];
311
- $thisfile_riff['comments']['title'][] = $thisfile_riff_WAVE_bext_0['title'];
312
- }
313
-
314
- if (isset($thisfile_riff_WAVE['MEXT'][0]['data'])) {
315
- // shortcut
316
- $thisfile_riff_WAVE_MEXT_0 = &$thisfile_riff_WAVE['MEXT'][0];
317
-
318
- $thisfile_riff_WAVE_MEXT_0['raw']['sound_information'] = getid3_lib::LittleEndian2Int(substr($thisfile_riff_WAVE_MEXT_0['data'], 0, 2));
319
- $thisfile_riff_WAVE_MEXT_0['flags']['homogenous'] = (bool) ($thisfile_riff_WAVE_MEXT_0['raw']['sound_information'] & 0x0001);
320
- if ($thisfile_riff_WAVE_MEXT_0['flags']['homogenous']) {
321
- $thisfile_riff_WAVE_MEXT_0['flags']['padding'] = ($thisfile_riff_WAVE_MEXT_0['raw']['sound_information'] & 0x0002) ? false : true;
322
- $thisfile_riff_WAVE_MEXT_0['flags']['22_or_44'] = (bool) ($thisfile_riff_WAVE_MEXT_0['raw']['sound_information'] & 0x0004);
323
- $thisfile_riff_WAVE_MEXT_0['flags']['free_format'] = (bool) ($thisfile_riff_WAVE_MEXT_0['raw']['sound_information'] & 0x0008);
324
-
325
- $thisfile_riff_WAVE_MEXT_0['nominal_frame_size'] = getid3_lib::LittleEndian2Int(substr($thisfile_riff_WAVE_MEXT_0['data'], 2, 2));
326
- }
327
- $thisfile_riff_WAVE_MEXT_0['anciliary_data_length'] = getid3_lib::LittleEndian2Int(substr($thisfile_riff_WAVE_MEXT_0['data'], 6, 2));
328
- $thisfile_riff_WAVE_MEXT_0['raw']['anciliary_data_def'] = getid3_lib::LittleEndian2Int(substr($thisfile_riff_WAVE_MEXT_0['data'], 8, 2));
329
- $thisfile_riff_WAVE_MEXT_0['flags']['anciliary_data_left'] = (bool) ($thisfile_riff_WAVE_MEXT_0['raw']['anciliary_data_def'] & 0x0001);
330
- $thisfile_riff_WAVE_MEXT_0['flags']['anciliary_data_free'] = (bool) ($thisfile_riff_WAVE_MEXT_0['raw']['anciliary_data_def'] & 0x0002);
331
- $thisfile_riff_WAVE_MEXT_0['flags']['anciliary_data_right'] = (bool) ($thisfile_riff_WAVE_MEXT_0['raw']['anciliary_data_def'] & 0x0004);
332
- }
333
-
334
- if (isset($thisfile_riff_WAVE['cart'][0]['data'])) {
335
- // shortcut
336
- $thisfile_riff_WAVE_cart_0 = &$thisfile_riff_WAVE['cart'][0];
337
-
338
- $thisfile_riff_WAVE_cart_0['version'] = substr($thisfile_riff_WAVE_cart_0['data'], 0, 4);
339
- $thisfile_riff_WAVE_cart_0['title'] = trim(substr($thisfile_riff_WAVE_cart_0['data'], 4, 64));
340
- $thisfile_riff_WAVE_cart_0['artist'] = trim(substr($thisfile_riff_WAVE_cart_0['data'], 68, 64));
341
- $thisfile_riff_WAVE_cart_0['cut_id'] = trim(substr($thisfile_riff_WAVE_cart_0['data'], 132, 64));
342
- $thisfile_riff_WAVE_cart_0['client_id'] = trim(substr($thisfile_riff_WAVE_cart_0['data'], 196, 64));
343
- $thisfile_riff_WAVE_cart_0['category'] = trim(substr($thisfile_riff_WAVE_cart_0['data'], 260, 64));
344
- $thisfile_riff_WAVE_cart_0['classification'] = trim(substr($thisfile_riff_WAVE_cart_0['data'], 324, 64));
345
- $thisfile_riff_WAVE_cart_0['out_cue'] = trim(substr($thisfile_riff_WAVE_cart_0['data'], 388, 64));
346
- $thisfile_riff_WAVE_cart_0['start_date'] = trim(substr($thisfile_riff_WAVE_cart_0['data'], 452, 10));
347
- $thisfile_riff_WAVE_cart_0['start_time'] = trim(substr($thisfile_riff_WAVE_cart_0['data'], 462, 8));
348
- $thisfile_riff_WAVE_cart_0['end_date'] = trim(substr($thisfile_riff_WAVE_cart_0['data'], 470, 10));
349
- $thisfile_riff_WAVE_cart_0['end_time'] = trim(substr($thisfile_riff_WAVE_cart_0['data'], 480, 8));
350
- $thisfile_riff_WAVE_cart_0['producer_app_id'] = trim(substr($thisfile_riff_WAVE_cart_0['data'], 488, 64));
351
- $thisfile_riff_WAVE_cart_0['producer_app_version'] = trim(substr($thisfile_riff_WAVE_cart_0['data'], 552, 64));
352
- $thisfile_riff_WAVE_cart_0['user_defined_text'] = trim(substr($thisfile_riff_WAVE_cart_0['data'], 616, 64));
353
- $thisfile_riff_WAVE_cart_0['zero_db_reference'] = getid3_lib::LittleEndian2Int(substr($thisfile_riff_WAVE_cart_0['data'], 680, 4), true);
354
- for ($i = 0; $i < 8; $i++) {
355
- $thisfile_riff_WAVE_cart_0['post_time'][$i]['usage_fourcc'] = substr($thisfile_riff_WAVE_cart_0['data'], 684 + ($i * 8), 4);
356
- $thisfile_riff_WAVE_cart_0['post_time'][$i]['timer_value'] = getid3_lib::LittleEndian2Int(substr($thisfile_riff_WAVE_cart_0['data'], 684 + ($i * 8) + 4, 4));
357
- }
358
- $thisfile_riff_WAVE_cart_0['url'] = trim(substr($thisfile_riff_WAVE_cart_0['data'], 748, 1024));
359
- $thisfile_riff_WAVE_cart_0['tag_text'] = explode("\r\n", trim(substr($thisfile_riff_WAVE_cart_0['data'], 1772)));
360
-
361
- $thisfile_riff['comments']['artist'][] = $thisfile_riff_WAVE_cart_0['artist'];
362
- $thisfile_riff['comments']['title'][] = $thisfile_riff_WAVE_cart_0['title'];
363
- }
364
-
365
- if (isset($thisfile_riff_WAVE['SNDM'][0]['data'])) {
366
- // SoundMiner metadata
367
-
368
- // shortcuts
369
- $thisfile_riff_WAVE_SNDM_0 = &$thisfile_riff_WAVE['SNDM'][0];
370
- $thisfile_riff_WAVE_SNDM_0_data = &$thisfile_riff_WAVE_SNDM_0['data'];
371
- $SNDM_startoffset = 0;
372
- $SNDM_endoffset = $thisfile_riff_WAVE_SNDM_0['size'];
373
-
374
- while ($SNDM_startoffset < $SNDM_endoffset) {
375
- $SNDM_thisTagOffset = 0;
376
- $SNDM_thisTagSize = getid3_lib::BigEndian2Int(substr($thisfile_riff_WAVE_SNDM_0_data, $SNDM_startoffset + $SNDM_thisTagOffset, 4));
377
- $SNDM_thisTagOffset += 4;
378
- $SNDM_thisTagKey = substr($thisfile_riff_WAVE_SNDM_0_data, $SNDM_startoffset + $SNDM_thisTagOffset, 4);
379
- $SNDM_thisTagOffset += 4;
380
- $SNDM_thisTagDataSize = getid3_lib::BigEndian2Int(substr($thisfile_riff_WAVE_SNDM_0_data, $SNDM_startoffset + $SNDM_thisTagOffset, 2));
381
- $SNDM_thisTagOffset += 2;
382
- $SNDM_thisTagDataFlags = getid3_lib::BigEndian2Int(substr($thisfile_riff_WAVE_SNDM_0_data, $SNDM_startoffset + $SNDM_thisTagOffset, 2));
383
- $SNDM_thisTagOffset += 2;
384
- $SNDM_thisTagDataText = substr($thisfile_riff_WAVE_SNDM_0_data, $SNDM_startoffset + $SNDM_thisTagOffset, $SNDM_thisTagDataSize);
385
- $SNDM_thisTagOffset += $SNDM_thisTagDataSize;
386
-
387
- if ($SNDM_thisTagSize != (4 + 4 + 2 + 2 + $SNDM_thisTagDataSize)) {
388
- $info['warning'][] = 'RIFF.WAVE.SNDM.data contains tag not expected length (expected: '.$SNDM_thisTagSize.', found: '.(4 + 4 + 2 + 2 + $SNDM_thisTagDataSize).') at offset '.$SNDM_startoffset.' (file offset '.($thisfile_riff_WAVE_SNDM_0['offset'] + $SNDM_startoffset).')';
389
- break;
390
- } elseif ($SNDM_thisTagSize <= 0) {
391
- $info['warning'][] = 'RIFF.WAVE.SNDM.data contains zero-size tag at offset '.$SNDM_startoffset.' (file offset '.($thisfile_riff_WAVE_SNDM_0['offset'] + $SNDM_startoffset).')';
392
- break;
393
- }
394
- $SNDM_startoffset += $SNDM_thisTagSize;
395
-
396
- $thisfile_riff_WAVE_SNDM_0['parsed_raw'][$SNDM_thisTagKey] = $SNDM_thisTagDataText;
397
- if ($parsedkey = self::waveSNDMtagLookup($SNDM_thisTagKey)) {
398
- $thisfile_riff_WAVE_SNDM_0['parsed'][$parsedkey] = $SNDM_thisTagDataText;
399
- } else {
400
- $info['warning'][] = 'RIFF.WAVE.SNDM contains unknown tag "'.$SNDM_thisTagKey.'" at offset '.$SNDM_startoffset.' (file offset '.($thisfile_riff_WAVE_SNDM_0['offset'] + $SNDM_startoffset).')';
401
- }
402
- }
403
-
404
- $tagmapping = array(
405
- 'tracktitle'=>'title',
406
- 'category' =>'genre',
407
- 'cdtitle' =>'album',
408
- 'tracktitle'=>'title',
409
- );
410
- foreach ($tagmapping as $fromkey => $tokey) {
411
- if (isset($thisfile_riff_WAVE_SNDM_0['parsed'][$fromkey])) {
412
- $thisfile_riff['comments'][$tokey][] = $thisfile_riff_WAVE_SNDM_0['parsed'][$fromkey];
413
- }
414
- }
415
- }
416
-
417
- if (isset($thisfile_riff_WAVE['iXML'][0]['data'])) {
418
- // requires functions simplexml_load_string and get_object_vars
419
- if ($parsedXML = getid3_lib::XML2array($thisfile_riff_WAVE['iXML'][0]['data'])) {
420
- $thisfile_riff_WAVE['iXML'][0]['parsed'] = $parsedXML;
421
- if (isset($parsedXML['SPEED']['MASTER_SPEED'])) {
422
- @list($numerator, $denominator) = explode('/', $parsedXML['SPEED']['MASTER_SPEED']);
423
- $thisfile_riff_WAVE['iXML'][0]['master_speed'] = $numerator / ($denominator ? $denominator : 1000);
424
- }
425
- if (isset($parsedXML['SPEED']['TIMECODE_RATE'])) {
426
- @list($numerator, $denominator) = explode('/', $parsedXML['SPEED']['TIMECODE_RATE']);
427
- $thisfile_riff_WAVE['iXML'][0]['timecode_rate'] = $numerator / ($denominator ? $denominator : 1000);
428
- }
429
- if (isset($parsedXML['SPEED']['TIMESTAMP_SAMPLES_SINCE_MIDNIGHT_LO']) && !empty($parsedXML['SPEED']['TIMESTAMP_SAMPLE_RATE']) && !empty($thisfile_riff_WAVE['iXML'][0]['timecode_rate'])) {
430
- $samples_since_midnight = floatval(ltrim($parsedXML['SPEED']['TIMESTAMP_SAMPLES_SINCE_MIDNIGHT_HI'].$parsedXML['SPEED']['TIMESTAMP_SAMPLES_SINCE_MIDNIGHT_LO'], '0'));
431
- $thisfile_riff_WAVE['iXML'][0]['timecode_seconds'] = $samples_since_midnight / $parsedXML['SPEED']['TIMESTAMP_SAMPLE_RATE'];
432
- $h = floor( $thisfile_riff_WAVE['iXML'][0]['timecode_seconds'] / 3600);
433
- $m = floor(($thisfile_riff_WAVE['iXML'][0]['timecode_seconds'] - ($h * 3600)) / 60);
434
- $s = floor( $thisfile_riff_WAVE['iXML'][0]['timecode_seconds'] - ($h * 3600) - ($m * 60));
435
- $f = ($thisfile_riff_WAVE['iXML'][0]['timecode_seconds'] - ($h * 3600) - ($m * 60) - $s) * $thisfile_riff_WAVE['iXML'][0]['timecode_rate'];
436
- $thisfile_riff_WAVE['iXML'][0]['timecode_string'] = sprintf('%02d:%02d:%02d:%05.2f', $h, $m, $s, $f);
437
- $thisfile_riff_WAVE['iXML'][0]['timecode_string_round'] = sprintf('%02d:%02d:%02d:%02d', $h, $m, $s, round($f));
438
- }
439
- unset($parsedXML);
440
- }
441
- }
442
-
443
-
444
-
445
- if (!isset($thisfile_audio['bitrate']) && isset($thisfile_riff_audio[$streamindex]['bitrate'])) {
446
- $thisfile_audio['bitrate'] = $thisfile_riff_audio[$streamindex]['bitrate'];
447
- $info['playtime_seconds'] = (float) ((($info['avdataend'] - $info['avdataoffset']) * 8) / $thisfile_audio['bitrate']);
448
- }
449
-
450
- if (!empty($info['wavpack'])) {
451
- $thisfile_audio_dataformat = 'wavpack';
452
- $thisfile_audio['bitrate_mode'] = 'vbr';
453
- $thisfile_audio['encoder'] = 'WavPack v'.$info['wavpack']['version'];
454
-
455
- // Reset to the way it was - RIFF parsing will have messed this up
456
- $info['avdataend'] = $Original['avdataend'];
457
- $thisfile_audio['bitrate'] = (($info['avdataend'] - $info['avdataoffset']) * 8) / $info['playtime_seconds'];
458
-
459
- $this->fseek($info['avdataoffset'] - 44);
460
- $RIFFdata = $this->fread(44);
461
- $OrignalRIFFheaderSize = getid3_lib::LittleEndian2Int(substr($RIFFdata, 4, 4)) + 8;
462
- $OrignalRIFFdataSize = getid3_lib::LittleEndian2Int(substr($RIFFdata, 40, 4)) + 44;
463
-
464
- if ($OrignalRIFFheaderSize > $OrignalRIFFdataSize) {
465
- $info['avdataend'] -= ($OrignalRIFFheaderSize - $OrignalRIFFdataSize);
466
- $this->fseek($info['avdataend']);
467
- $RIFFdata .= $this->fread($OrignalRIFFheaderSize - $OrignalRIFFdataSize);
468
- }
469
-
470
- // move the data chunk after all other chunks (if any)
471
- // so that the RIFF parser doesn't see EOF when trying
472
- // to skip over the data chunk
473
- $RIFFdata = substr($RIFFdata, 0, 36).substr($RIFFdata, 44).substr($RIFFdata, 36, 8);
474
- $getid3_riff = new getid3_riff($this->getid3);
475
- $getid3_riff->ParseRIFFdata($RIFFdata);
476
- unset($getid3_riff);
477
- }
478
-
479
- if (isset($thisfile_riff_raw['fmt ']['wFormatTag'])) {
480
- switch ($thisfile_riff_raw['fmt ']['wFormatTag']) {
481
- case 0x0001: // PCM
482
- if (!empty($info['ac3'])) {
483
- // Dolby Digital WAV files masquerade as PCM-WAV, but they're not
484
- $thisfile_audio['wformattag'] = 0x2000;
485
- $thisfile_audio['codec'] = self::wFormatTagLookup($thisfile_audio['wformattag']);
486
- $thisfile_audio['lossless'] = false;
487
- $thisfile_audio['bitrate'] = $info['ac3']['bitrate'];
488
- $thisfile_audio['sample_rate'] = $info['ac3']['sample_rate'];
489
- }
490
- if (!empty($info['dts'])) {
491
- // Dolby DTS files masquerade as PCM-WAV, but they're not
492
- $thisfile_audio['wformattag'] = 0x2001;
493
- $thisfile_audio['codec'] = self::wFormatTagLookup($thisfile_audio['wformattag']);
494
- $thisfile_audio['lossless'] = false;
495
- $thisfile_audio['bitrate'] = $info['dts']['bitrate'];
496
- $thisfile_audio['sample_rate'] = $info['dts']['sample_rate'];
497
- }
498
- break;
499
- case 0x08AE: // ClearJump LiteWave
500
- $thisfile_audio['bitrate_mode'] = 'vbr';
501
- $thisfile_audio_dataformat = 'litewave';
502
-
503
- //typedef struct tagSLwFormat {
504
- // WORD m_wCompFormat; // low byte defines compression method, high byte is compression flags
505
- // DWORD m_dwScale; // scale factor for lossy compression
506
- // DWORD m_dwBlockSize; // number of samples in encoded blocks
507
- // WORD m_wQuality; // alias for the scale factor
508
- // WORD m_wMarkDistance; // distance between marks in bytes
509
- // WORD m_wReserved;
510
- //
511
- // //following paramters are ignored if CF_FILESRC is not set
512
- // DWORD m_dwOrgSize; // original file size in bytes
513
- // WORD m_bFactExists; // indicates if 'fact' chunk exists in the original file
514
- // DWORD m_dwRiffChunkSize; // riff chunk size in the original file
515
- //
516
- // PCMWAVEFORMAT m_OrgWf; // original wave format
517
- // }SLwFormat, *PSLwFormat;
518
-
519
- // shortcut
520
- $thisfile_riff['litewave']['raw'] = array();
521
- $riff_litewave = &$thisfile_riff['litewave'];
522
- $riff_litewave_raw = &$riff_litewave['raw'];
523
-
524
- $flags = array(
525
- 'compression_method' => 1,
526
- 'compression_flags' => 1,
527
- 'm_dwScale' => 4,
528
- 'm_dwBlockSize' => 4,
529
- 'm_wQuality' => 2,
530
- 'm_wMarkDistance' => 2,
531
- 'm_wReserved' => 2,
532
- 'm_dwOrgSize' => 4,
533
- 'm_bFactExists' => 2,
534
- 'm_dwRiffChunkSize' => 4,
535
- );
536
- $litewave_offset = 18;
537
- foreach ($flags as $flag => $length) {
538
- $riff_litewave_raw[$flag] = getid3_lib::LittleEndian2Int(substr($thisfile_riff_WAVE['fmt '][0]['data'], $litewave_offset, $length));
539
- $litewave_offset += $length;
540
- }
541
-
542
- //$riff_litewave['quality_factor'] = intval(round((2000 - $riff_litewave_raw['m_dwScale']) / 20));
543
- $riff_litewave['quality_factor'] = $riff_litewave_raw['m_wQuality'];
544
-
545
- $riff_litewave['flags']['raw_source'] = ($riff_litewave_raw['compression_flags'] & 0x01) ? false : true;
546
- $riff_litewave['flags']['vbr_blocksize'] = ($riff_litewave_raw['compression_flags'] & 0x02) ? false : true;
547
- $riff_litewave['flags']['seekpoints'] = (bool) ($riff_litewave_raw['compression_flags'] & 0x04);
548
-
549
- $thisfile_audio['lossless'] = (($riff_litewave_raw['m_wQuality'] == 100) ? true : false);
550
- $thisfile_audio['encoder_options'] = '-q'.$riff_litewave['quality_factor'];
551
- break;
552
-
553
- default:
554
- break;
555
- }
556
- }
557
- if ($info['avdataend'] > $info['filesize']) {
558
- switch (!empty($thisfile_audio_dataformat) ? $thisfile_audio_dataformat : '') {
559
- case 'wavpack': // WavPack
560
- case 'lpac': // LPAC
561
- case 'ofr': // OptimFROG
562
- case 'ofs': // OptimFROG DualStream
563
- // lossless compressed audio formats that keep original RIFF headers - skip warning
564
- break;
565
-
566
- case 'litewave':
567
- if (($info['avdataend'] - $info['filesize']) == 1) {
568
- // LiteWave appears to incorrectly *not* pad actual output file
569
- // to nearest WORD boundary so may appear to be short by one
570
- // byte, in which case - skip warning
571
- } else {
572
- // Short by more than one byte, throw warning
573
- $info['warning'][] = 'Probably truncated file - expecting '.$thisfile_riff[$RIFFsubtype]['data'][0]['size'].' bytes of data, only found '.($info['filesize'] - $info['avdataoffset']).' (short by '.($thisfile_riff[$RIFFsubtype]['data'][0]['size'] - ($info['filesize'] - $info['avdataoffset'])).' bytes)';
574
- $info['avdataend'] = $info['filesize'];
575
- }
576
- break;
577
-
578
- default:
579
- if ((($info['avdataend'] - $info['filesize']) == 1) && (($thisfile_riff[$RIFFsubtype]['data'][0]['size'] % 2) == 0) && ((($info['filesize'] - $info['avdataoffset']) % 2) == 1)) {
580
- // output file appears to be incorrectly *not* padded to nearest WORD boundary
581
- // Output less severe warning
582
- $info['warning'][] = 'File should probably be padded to nearest WORD boundary, but it is not (expecting '.$thisfile_riff[$RIFFsubtype]['data'][0]['size'].' bytes of data, only found '.($info['filesize'] - $info['avdataoffset']).' therefore short by '.($thisfile_riff[$RIFFsubtype]['data'][0]['size'] - ($info['filesize'] - $info['avdataoffset'])).' bytes)';
583
- $info['avdataend'] = $info['filesize'];
584
- } else {
585
- // Short by more than one byte, throw warning
586
- $info['warning'][] = 'Probably truncated file - expecting '.$thisfile_riff[$RIFFsubtype]['data'][0]['size'].' bytes of data, only found '.($info['filesize'] - $info['avdataoffset']).' (short by '.($thisfile_riff[$RIFFsubtype]['data'][0]['size'] - ($info['filesize'] - $info['avdataoffset'])).' bytes)';
587
- $info['avdataend'] = $info['filesize'];
588
- }
589
- break;
590
- }
591
- }
592
- if (!empty($info['mpeg']['audio']['LAME']['audio_bytes'])) {
593
- if ((($info['avdataend'] - $info['avdataoffset']) - $info['mpeg']['audio']['LAME']['audio_bytes']) == 1) {
594
- $info['avdataend']--;
595
- $info['warning'][] = 'Extra null byte at end of MP3 data assumed to be RIFF padding and therefore ignored';
596
- }
597
- }
598
- if (isset($thisfile_audio_dataformat) && ($thisfile_audio_dataformat == 'ac3')) {
599
- unset($thisfile_audio['bits_per_sample']);
600
- if (!empty($info['ac3']['bitrate']) && ($info['ac3']['bitrate'] != $thisfile_audio['bitrate'])) {
601
- $thisfile_audio['bitrate'] = $info['ac3']['bitrate'];
602
- }
603
- }
604
- break;
605
-
606
- // http://en.wikipedia.org/wiki/Audio_Video_Interleave
607
- case 'AVI ':
608
- $info['fileformat'] = 'avi';
609
- $info['mime_type'] = 'video/avi';
610
-
611
- $thisfile_video['bitrate_mode'] = 'vbr'; // maybe not, but probably
612
- $thisfile_video['dataformat'] = 'avi';
613
-
614
- if (isset($thisfile_riff[$RIFFsubtype]['movi']['offset'])) {
615
- $info['avdataoffset'] = $thisfile_riff[$RIFFsubtype]['movi']['offset'] + 8;
616
- if (isset($thisfile_riff['AVIX'])) {
617
- $info['avdataend'] = $thisfile_riff['AVIX'][(count($thisfile_riff['AVIX']) - 1)]['chunks']['movi']['offset'] + $thisfile_riff['AVIX'][(count($thisfile_riff['AVIX']) - 1)]['chunks']['movi']['size'];
618
- } else {
619
- $info['avdataend'] = $thisfile_riff['AVI ']['movi']['offset'] + $thisfile_riff['AVI ']['movi']['size'];
620
- }
621
- if ($info['avdataend'] > $info['filesize']) {
622
- $info['warning'][] = 'Probably truncated file - expecting '.($info['avdataend'] - $info['avdataoffset']).' bytes of data, only found '.($info['filesize'] - $info['avdataoffset']).' (short by '.($info['avdataend'] - $info['filesize']).' bytes)';
623
- $info['avdataend'] = $info['filesize'];
624
- }
625
- }
626
-
627
- if (isset($thisfile_riff['AVI ']['hdrl']['strl']['indx'])) {
628
- //$bIndexType = array(
629
- // 0x00 => 'AVI_INDEX_OF_INDEXES',
630
- // 0x01 => 'AVI_INDEX_OF_CHUNKS',
631
- // 0x80 => 'AVI_INDEX_IS_DATA',
632
- //);
633
- //$bIndexSubtype = array(
634
- // 0x01 => array(
635
- // 0x01 => 'AVI_INDEX_2FIELD',
636
- // ),
637
- //);
638
- foreach ($thisfile_riff['AVI ']['hdrl']['strl']['indx'] as $streamnumber => $steamdataarray) {
639
- $ahsisd = &$thisfile_riff['AVI ']['hdrl']['strl']['indx'][$streamnumber]['data'];
640
-
641
- $thisfile_riff_raw['indx'][$streamnumber]['wLongsPerEntry'] = $this->EitherEndian2Int(substr($ahsisd, 0, 2));
642
- $thisfile_riff_raw['indx'][$streamnumber]['bIndexSubType'] = $this->EitherEndian2Int(substr($ahsisd, 2, 1));
643
- $thisfile_riff_raw['indx'][$streamnumber]['bIndexType'] = $this->EitherEndian2Int(substr($ahsisd, 3, 1));
644
- $thisfile_riff_raw['indx'][$streamnumber]['nEntriesInUse'] = $this->EitherEndian2Int(substr($ahsisd, 4, 4));
645
- $thisfile_riff_raw['indx'][$streamnumber]['dwChunkId'] = substr($ahsisd, 8, 4);
646
- $thisfile_riff_raw['indx'][$streamnumber]['dwReserved'] = $this->EitherEndian2Int(substr($ahsisd, 12, 4));
647
-
648
- //$thisfile_riff_raw['indx'][$streamnumber]['bIndexType_name'] = $bIndexType[$thisfile_riff_raw['indx'][$streamnumber]['bIndexType']];
649
- //$thisfile_riff_raw['indx'][$streamnumber]['bIndexSubType_name'] = $bIndexSubtype[$thisfile_riff_raw['indx'][$streamnumber]['bIndexType']][$thisfile_riff_raw['indx'][$streamnumber]['bIndexSubType']];
650
-
651
- unset($ahsisd);
652
- }
653
- }
654
- if (isset($thisfile_riff['AVI ']['hdrl']['avih'][$streamindex]['data'])) {
655
- $avihData = $thisfile_riff['AVI ']['hdrl']['avih'][$streamindex]['data'];
656
-
657
- // shortcut
658
- $thisfile_riff_raw['avih'] = array();
659
- $thisfile_riff_raw_avih = &$thisfile_riff_raw['avih'];
660
-
661
- $thisfile_riff_raw_avih['dwMicroSecPerFrame'] = $this->EitherEndian2Int(substr($avihData, 0, 4)); // frame display rate (or 0L)
662
- if ($thisfile_riff_raw_avih['dwMicroSecPerFrame'] == 0) {
663
- $info['error'][] = 'Corrupt RIFF file: avih.dwMicroSecPerFrame == zero';
664
- return false;
665
- }
666
-
667
- $flags = array(
668
- 'dwMaxBytesPerSec', // max. transfer rate
669
- 'dwPaddingGranularity', // pad to multiples of this size; normally 2K.
670
- 'dwFlags', // the ever-present flags
671
- 'dwTotalFrames', // # frames in file
672
- 'dwInitialFrames', //
673
- 'dwStreams', //
674
- 'dwSuggestedBufferSize', //
675
- 'dwWidth', //
676
- 'dwHeight', //
677
- 'dwScale', //
678
- 'dwRate', //
679
- 'dwStart', //
680
- 'dwLength', //
681
- );
682
- $avih_offset = 4;
683
- foreach ($flags as $flag) {
684
- $thisfile_riff_raw_avih[$flag] = $this->EitherEndian2Int(substr($avihData, $avih_offset, 4));
685
- $avih_offset += 4;
686
- }
687
-
688
- $flags = array(
689
- 'hasindex' => 0x00000010,
690
- 'mustuseindex' => 0x00000020,
691
- 'interleaved' => 0x00000100,
692
- 'trustcktype' => 0x00000800,
693
- 'capturedfile' => 0x00010000,
694
- 'copyrighted' => 0x00020010,
695
- );
696
- foreach ($flags as $flag => $value) {
697
- $thisfile_riff_raw_avih['flags'][$flag] = (bool) ($thisfile_riff_raw_avih['dwFlags'] & $value);
698
- }
699
-
700
- // shortcut
701
- $thisfile_riff_video[$streamindex] = array();
702
- $thisfile_riff_video_current = &$thisfile_riff_video[$streamindex];
703
-
704
- if ($thisfile_riff_raw_avih['dwWidth'] > 0) {
705
- $thisfile_riff_video_current['frame_width'] = $thisfile_riff_raw_avih['dwWidth'];
706
- $thisfile_video['resolution_x'] = $thisfile_riff_video_current['frame_width'];
707
- }
708
- if ($thisfile_riff_raw_avih['dwHeight'] > 0) {
709
- $thisfile_riff_video_current['frame_height'] = $thisfile_riff_raw_avih['dwHeight'];
710
- $thisfile_video['resolution_y'] = $thisfile_riff_video_current['frame_height'];
711
- }
712
- if ($thisfile_riff_raw_avih['dwTotalFrames'] > 0) {
713
- $thisfile_riff_video_current['total_frames'] = $thisfile_riff_raw_avih['dwTotalFrames'];
714
- $thisfile_video['total_frames'] = $thisfile_riff_video_current['total_frames'];
715
- }
716
-
717
- $thisfile_riff_video_current['frame_rate'] = round(1000000 / $thisfile_riff_raw_avih['dwMicroSecPerFrame'], 3);
718
- $thisfile_video['frame_rate'] = $thisfile_riff_video_current['frame_rate'];
719
- }
720
- if (isset($thisfile_riff['AVI ']['hdrl']['strl']['strh'][0]['data'])) {
721
- if (is_array($thisfile_riff['AVI ']['hdrl']['strl']['strh'])) {
722
- for ($i = 0; $i < count($thisfile_riff['AVI ']['hdrl']['strl']['strh']); $i++) {
723
- if (isset($thisfile_riff['AVI ']['hdrl']['strl']['strh'][$i]['data'])) {
724
- $strhData = $thisfile_riff['AVI ']['hdrl']['strl']['strh'][$i]['data'];
725
- $strhfccType = substr($strhData, 0, 4);
726
-
727
- if (isset($thisfile_riff['AVI ']['hdrl']['strl']['strf'][$i]['data'])) {
728
- $strfData = $thisfile_riff['AVI ']['hdrl']['strl']['strf'][$i]['data'];
729
-
730
- // shortcut
731
- $thisfile_riff_raw_strf_strhfccType_streamindex = &$thisfile_riff_raw['strf'][$strhfccType][$streamindex];
732
-
733
- switch ($strhfccType) {
734
- case 'auds':
735
- $thisfile_audio['bitrate_mode'] = 'cbr';
736
- $thisfile_audio_dataformat = 'wav';
737
- if (isset($thisfile_riff_audio) && is_array($thisfile_riff_audio)) {
738
- $streamindex = count($thisfile_riff_audio);
739
- }
740
-
741
- $thisfile_riff_audio[$streamindex] = self::parseWAVEFORMATex($strfData);
742
- $thisfile_audio['wformattag'] = $thisfile_riff_audio[$streamindex]['raw']['wFormatTag'];
743
-
744
- // shortcut
745
- $thisfile_audio['streams'][$streamindex] = $thisfile_riff_audio[$streamindex];
746
- $thisfile_audio_streams_currentstream = &$thisfile_audio['streams'][$streamindex];
747
-
748
- if ($thisfile_audio_streams_currentstream['bits_per_sample'] == 0) {
749
- unset($thisfile_audio_streams_currentstream['bits_per_sample']);
750
- }
751
- $thisfile_audio_streams_currentstream['wformattag'] = $thisfile_audio_streams_currentstream['raw']['wFormatTag'];
752
- unset($thisfile_audio_streams_currentstream['raw']);
753
-
754
- // shortcut
755
- $thisfile_riff_raw['strf'][$strhfccType][$streamindex] = $thisfile_riff_audio[$streamindex]['raw'];
756
-
757
- unset($thisfile_riff_audio[$streamindex]['raw']);
758
- $thisfile_audio = getid3_lib::array_merge_noclobber($thisfile_audio, $thisfile_riff_audio[$streamindex]);
759
-
760
- $thisfile_audio['lossless'] = false;
761
- switch ($thisfile_riff_raw_strf_strhfccType_streamindex['wFormatTag']) {
762
- case 0x0001: // PCM
763
- $thisfile_audio_dataformat = 'wav';
764
- $thisfile_audio['lossless'] = true;
765
- break;
766
-
767
- case 0x0050: // MPEG Layer 2 or Layer 1
768
- $thisfile_audio_dataformat = 'mp2'; // Assume Layer-2
769
- break;
770
-
771
- case 0x0055: // MPEG Layer 3
772
- $thisfile_audio_dataformat = 'mp3';
773
- break;
774
-
775
- case 0x00FF: // AAC
776
- $thisfile_audio_dataformat = 'aac';
777
- break;
778
-
779
- case 0x0161: // Windows Media v7 / v8 / v9
780
- case 0x0162: // Windows Media Professional v9
781
- case 0x0163: // Windows Media Lossess v9
782
- $thisfile_audio_dataformat = 'wma';
783
- break;
784
-
785
- case 0x2000: // AC-3
786
- $thisfile_audio_dataformat = 'ac3';
787
- break;
788
-
789
- case 0x2001: // DTS
790
- $thisfile_audio_dataformat = 'dts';
791
- break;
792
-
793
- default:
794
- $thisfile_audio_dataformat = 'wav';
795
- break;
796
- }
797
- $thisfile_audio_streams_currentstream['dataformat'] = $thisfile_audio_dataformat;
798
- $thisfile_audio_streams_currentstream['lossless'] = $thisfile_audio['lossless'];
799
- $thisfile_audio_streams_currentstream['bitrate_mode'] = $thisfile_audio['bitrate_mode'];
800
- break;
801
-
802
-
803
- case 'iavs':
804
- case 'vids':
805
- // shortcut
806
- $thisfile_riff_raw['strh'][$i] = array();
807
- $thisfile_riff_raw_strh_current = &$thisfile_riff_raw['strh'][$i];
808
-
809
- $thisfile_riff_raw_strh_current['fccType'] = substr($strhData, 0, 4); // same as $strhfccType;
810
- $thisfile_riff_raw_strh_current['fccHandler'] = substr($strhData, 4, 4);
811
- $thisfile_riff_raw_strh_current['dwFlags'] = $this->EitherEndian2Int(substr($strhData, 8, 4)); // Contains AVITF_* flags
812
- $thisfile_riff_raw_strh_current['wPriority'] = $this->EitherEndian2Int(substr($strhData, 12, 2));
813
- $thisfile_riff_raw_strh_current['wLanguage'] = $this->EitherEndian2Int(substr($strhData, 14, 2));
814
- $thisfile_riff_raw_strh_current['dwInitialFrames'] = $this->EitherEndian2Int(substr($strhData, 16, 4));
815
- $thisfile_riff_raw_strh_current['dwScale'] = $this->EitherEndian2Int(substr($strhData, 20, 4));
816
- $thisfile_riff_raw_strh_current['dwRate'] = $this->EitherEndian2Int(substr($strhData, 24, 4));
817
- $thisfile_riff_raw_strh_current['dwStart'] = $this->EitherEndian2Int(substr($strhData, 28, 4));
818
- $thisfile_riff_raw_strh_current['dwLength'] = $this->EitherEndian2Int(substr($strhData, 32, 4));
819
- $thisfile_riff_raw_strh_current['dwSuggestedBufferSize'] = $this->EitherEndian2Int(substr($strhData, 36, 4));
820
- $thisfile_riff_raw_strh_current['dwQuality'] = $this->EitherEndian2Int(substr($strhData, 40, 4));
821
- $thisfile_riff_raw_strh_current['dwSampleSize'] = $this->EitherEndian2Int(substr($strhData, 44, 4));
822
- $thisfile_riff_raw_strh_current['rcFrame'] = $this->EitherEndian2Int(substr($strhData, 48, 4));
823
-
824
- $thisfile_riff_video_current['codec'] = self::fourccLookup($thisfile_riff_raw_strh_current['fccHandler']);
825
- $thisfile_video['fourcc'] = $thisfile_riff_raw_strh_current['fccHandler'];
826
- if (!$thisfile_riff_video_current['codec'] && isset($thisfile_riff_raw_strf_strhfccType_streamindex['fourcc']) && self::fourccLookup($thisfile_riff_raw_strf_strhfccType_streamindex['fourcc'])) {
827
- $thisfile_riff_video_current['codec'] = self::fourccLookup($thisfile_riff_raw_strf_strhfccType_streamindex['fourcc']);
828
- $thisfile_video['fourcc'] = $thisfile_riff_raw_strf_strhfccType_streamindex['fourcc'];
829
- }
830
- $thisfile_video['codec'] = $thisfile_riff_video_current['codec'];
831
- $thisfile_video['pixel_aspect_ratio'] = (float) 1;
832
- switch ($thisfile_riff_raw_strh_current['fccHandler']) {
833
- case 'HFYU': // Huffman Lossless Codec
834
- case 'IRAW': // Intel YUV Uncompressed
835
- case 'YUY2': // Uncompressed YUV 4:2:2
836
- $thisfile_video['lossless'] = true;
837
- break;
838
-
839
- default:
840
- $thisfile_video['lossless'] = false;
841
- break;
842
- }
843
-
844
- switch ($strhfccType) {
845
- case 'vids':
846
- $thisfile_riff_raw_strf_strhfccType_streamindex = self::ParseBITMAPINFOHEADER(substr($strfData, 0, 40), ($this->container == 'riff'));
847
- $thisfile_video['bits_per_sample'] = $thisfile_riff_raw_strf_strhfccType_streamindex['biBitCount'];
848
-
849
- if ($thisfile_riff_video_current['codec'] == 'DV') {
850
- $thisfile_riff_video_current['dv_type'] = 2;
851
- }
852
- break;
853
-
854
- case 'iavs':
855
- $thisfile_riff_video_current['dv_type'] = 1;
856
- break;
857
- }
858
- break;
859
-
860
- default:
861
- $info['warning'][] = 'Unhandled fccType for stream ('.$i.'): "'.$strhfccType.'"';
862
- break;
863
-
864
- }
865
- }
866
- }
867
-
868
- if (isset($thisfile_riff_raw_strf_strhfccType_streamindex['fourcc'])) {
869
-
870
- $thisfile_video['fourcc'] = $thisfile_riff_raw_strf_strhfccType_streamindex['fourcc'];
871
- if (self::fourccLookup($thisfile_video['fourcc'])) {
872
- $thisfile_riff_video_current['codec'] = self::fourccLookup($thisfile_video['fourcc']);
873
- $thisfile_video['codec'] = $thisfile_riff_video_current['codec'];
874
- }
875
-
876
- switch ($thisfile_riff_raw_strf_strhfccType_streamindex['fourcc']) {
877
- case 'HFYU': // Huffman Lossless Codec
878
- case 'IRAW': // Intel YUV Uncompressed
879
- case 'YUY2': // Uncompressed YUV 4:2:2
880
- $thisfile_video['lossless'] = true;
881
- //$thisfile_video['bits_per_sample'] = 24;
882
- break;
883
-
884
- default:
885
- $thisfile_video['lossless'] = false;
886
- //$thisfile_video['bits_per_sample'] = 24;
887
- break;
888
- }
889
-
890
- }
891
- }
892
- }
893
- }
894
- break;
895
-
896
-
897
- case 'AMV ':
898
- $info['fileformat'] = 'amv';
899
- $info['mime_type'] = 'video/amv';
900
-
901
- $thisfile_video['bitrate_mode'] = 'vbr'; // it's MJPEG, presumably contant-quality encoding, thereby VBR
902
- $thisfile_video['dataformat'] = 'mjpeg';
903
- $thisfile_video['codec'] = 'mjpeg';
904
- $thisfile_video['lossless'] = false;
905
- $thisfile_video['bits_per_sample'] = 24;
906
-
907
- $thisfile_audio['dataformat'] = 'adpcm';
908
- $thisfile_audio['lossless'] = false;
909
- break;
910
-
911
-
912
- // http://en.wikipedia.org/wiki/CD-DA
913
- case 'CDDA':
914
- $info['fileformat'] = 'cda';
915
- unset($info['mime_type']);
916
-
917
- $thisfile_audio_dataformat = 'cda';
918
-
919
- $info['avdataoffset'] = 44;
920
-
921
- if (isset($thisfile_riff['CDDA']['fmt '][0]['data'])) {
922
- // shortcut
923
- $thisfile_riff_CDDA_fmt_0 = &$thisfile_riff['CDDA']['fmt '][0];
924
-
925
- $thisfile_riff_CDDA_fmt_0['unknown1'] = $this->EitherEndian2Int(substr($thisfile_riff_CDDA_fmt_0['data'], 0, 2));
926
- $thisfile_riff_CDDA_fmt_0['track_num'] = $this->EitherEndian2Int(substr($thisfile_riff_CDDA_fmt_0['data'], 2, 2));
927
- $thisfile_riff_CDDA_fmt_0['disc_id'] = $this->EitherEndian2Int(substr($thisfile_riff_CDDA_fmt_0['data'], 4, 4));
928
- $thisfile_riff_CDDA_fmt_0['start_offset_frame'] = $this->EitherEndian2Int(substr($thisfile_riff_CDDA_fmt_0['data'], 8, 4));
929
- $thisfile_riff_CDDA_fmt_0['playtime_frames'] = $this->EitherEndian2Int(substr($thisfile_riff_CDDA_fmt_0['data'], 12, 4));
930
- $thisfile_riff_CDDA_fmt_0['unknown6'] = $this->EitherEndian2Int(substr($thisfile_riff_CDDA_fmt_0['data'], 16, 4));
931
- $thisfile_riff_CDDA_fmt_0['unknown7'] = $this->EitherEndian2Int(substr($thisfile_riff_CDDA_fmt_0['data'], 20, 4));
932
-
933
- $thisfile_riff_CDDA_fmt_0['start_offset_seconds'] = (float) $thisfile_riff_CDDA_fmt_0['start_offset_frame'] / 75;
934
- $thisfile_riff_CDDA_fmt_0['playtime_seconds'] = (float) $thisfile_riff_CDDA_fmt_0['playtime_frames'] / 75;
935
- $info['comments']['track'] = $thisfile_riff_CDDA_fmt_0['track_num'];
936
- $info['playtime_seconds'] = $thisfile_riff_CDDA_fmt_0['playtime_seconds'];
937
-
938
- // hardcoded data for CD-audio
939
- $thisfile_audio['lossless'] = true;
940
- $thisfile_audio['sample_rate'] = 44100;
941
- $thisfile_audio['channels'] = 2;
942
- $thisfile_audio['bits_per_sample'] = 16;
943
- $thisfile_audio['bitrate'] = $thisfile_audio['sample_rate'] * $thisfile_audio['channels'] * $thisfile_audio['bits_per_sample'];
944
- $thisfile_audio['bitrate_mode'] = 'cbr';
945
- }
946
- break;
947
-
948
- // http://en.wikipedia.org/wiki/AIFF
949
- case 'AIFF':
950
- case 'AIFC':
951
- $info['fileformat'] = 'aiff';
952
- $info['mime_type'] = 'audio/x-aiff';
953
-
954
- $thisfile_audio['bitrate_mode'] = 'cbr';
955
- $thisfile_audio_dataformat = 'aiff';
956
- $thisfile_audio['lossless'] = true;
957
-
958
- if (isset($thisfile_riff[$RIFFsubtype]['SSND'][0]['offset'])) {
959
- $info['avdataoffset'] = $thisfile_riff[$RIFFsubtype]['SSND'][0]['offset'] + 8;
960
- $info['avdataend'] = $info['avdataoffset'] + $thisfile_riff[$RIFFsubtype]['SSND'][0]['size'];
961
- if ($info['avdataend'] > $info['filesize']) {
962
- if (($info['avdataend'] == ($info['filesize'] + 1)) && (($info['filesize'] % 2) == 1)) {
963
- // structures rounded to 2-byte boundary, but dumb encoders
964
- // forget to pad end of file to make this actually work
965
- } else {
966
- $info['warning'][] = 'Probable truncated AIFF file: expecting '.$thisfile_riff[$RIFFsubtype]['SSND'][0]['size'].' bytes of audio data, only '.($info['filesize'] - $info['avdataoffset']).' bytes found';
967
- }
968
- $info['avdataend'] = $info['filesize'];
969
- }
970
- }
971
-
972
- if (isset($thisfile_riff[$RIFFsubtype]['COMM'][0]['data'])) {
973
-
974
- // shortcut
975
- $thisfile_riff_RIFFsubtype_COMM_0_data = &$thisfile_riff[$RIFFsubtype]['COMM'][0]['data'];
976
-
977
- $thisfile_riff_audio['channels'] = getid3_lib::BigEndian2Int(substr($thisfile_riff_RIFFsubtype_COMM_0_data, 0, 2), true);
978
- $thisfile_riff_audio['total_samples'] = getid3_lib::BigEndian2Int(substr($thisfile_riff_RIFFsubtype_COMM_0_data, 2, 4), false);
979
- $thisfile_riff_audio['bits_per_sample'] = getid3_lib::BigEndian2Int(substr($thisfile_riff_RIFFsubtype_COMM_0_data, 6, 2), true);
980
- $thisfile_riff_audio['sample_rate'] = (int) getid3_lib::BigEndian2Float(substr($thisfile_riff_RIFFsubtype_COMM_0_data, 8, 10));
981
-
982
- if ($thisfile_riff[$RIFFsubtype]['COMM'][0]['size'] > 18) {
983
- $thisfile_riff_audio['codec_fourcc'] = substr($thisfile_riff_RIFFsubtype_COMM_0_data, 18, 4);
984
- $CodecNameSize = getid3_lib::BigEndian2Int(substr($thisfile_riff_RIFFsubtype_COMM_0_data, 22, 1), false);
985
- $thisfile_riff_audio['codec_name'] = substr($thisfile_riff_RIFFsubtype_COMM_0_data, 23, $CodecNameSize);
986
- switch ($thisfile_riff_audio['codec_name']) {
987
- case 'NONE':
988
- $thisfile_audio['codec'] = 'Pulse Code Modulation (PCM)';
989
- $thisfile_audio['lossless'] = true;
990
- break;
991
-
992
- case '':
993
- switch ($thisfile_riff_audio['codec_fourcc']) {
994
- // http://developer.apple.com/qa/snd/snd07.html
995
- case 'sowt':
996
- $thisfile_riff_audio['codec_name'] = 'Two\'s Compliment Little-Endian PCM';
997
- $thisfile_audio['lossless'] = true;
998
- break;
999
-
1000
- case 'twos':
1001
- $thisfile_riff_audio['codec_name'] = 'Two\'s Compliment Big-Endian PCM';
1002
- $thisfile_audio['lossless'] = true;
1003
- break;
1004
-
1005
- default:
1006
- break;
1007
- }
1008
- break;
1009
-
1010
- default:
1011
- $thisfile_audio['codec'] = $thisfile_riff_audio['codec_name'];
1012
- $thisfile_audio['lossless'] = false;
1013
- break;
1014
- }
1015
- }
1016
-
1017
- $thisfile_audio['channels'] = $thisfile_riff_audio['channels'];
1018
- if ($thisfile_riff_audio['bits_per_sample'] > 0) {
1019
- $thisfile_audio['bits_per_sample'] = $thisfile_riff_audio['bits_per_sample'];
1020
- }
1021
- $thisfile_audio['sample_rate'] = $thisfile_riff_audio['sample_rate'];
1022
- if ($thisfile_audio['sample_rate'] == 0) {
1023
- $info['error'][] = 'Corrupted AIFF file: sample_rate == zero';
1024
- return false;
1025
- }
1026
- $info['playtime_seconds'] = $thisfile_riff_audio['total_samples'] / $thisfile_audio['sample_rate'];
1027
- }
1028
-
1029
- if (isset($thisfile_riff[$RIFFsubtype]['COMT'])) {
1030
- $offset = 0;
1031
- $CommentCount = getid3_lib::BigEndian2Int(substr($thisfile_riff[$RIFFsubtype]['COMT'][0]['data'], $offset, 2), false);
1032
- $offset += 2;
1033
- for ($i = 0; $i < $CommentCount; $i++) {
1034
- $info['comments_raw'][$i]['timestamp'] = getid3_lib::BigEndian2Int(substr($thisfile_riff[$RIFFsubtype]['COMT'][0]['data'], $offset, 4), false);
1035
- $offset += 4;
1036
- $info['comments_raw'][$i]['marker_id'] = getid3_lib::BigEndian2Int(substr($thisfile_riff[$RIFFsubtype]['COMT'][0]['data'], $offset, 2), true);
1037
- $offset += 2;
1038
- $CommentLength = getid3_lib::BigEndian2Int(substr($thisfile_riff[$RIFFsubtype]['COMT'][0]['data'], $offset, 2), false);
1039
- $offset += 2;
1040
- $info['comments_raw'][$i]['comment'] = substr($thisfile_riff[$RIFFsubtype]['COMT'][0]['data'], $offset, $CommentLength);
1041
- $offset += $CommentLength;
1042
-
1043
- $info['comments_raw'][$i]['timestamp_unix'] = getid3_lib::DateMac2Unix($info['comments_raw'][$i]['timestamp']);
1044
- $thisfile_riff['comments']['comment'][] = $info['comments_raw'][$i]['comment'];
1045
- }
1046
- }
1047
-
1048
- $CommentsChunkNames = array('NAME'=>'title', 'author'=>'artist', '(c) '=>'copyright', 'ANNO'=>'comment');
1049
- foreach ($CommentsChunkNames as $key => $value) {
1050
- if (isset($thisfile_riff[$RIFFsubtype][$key][0]['data'])) {
1051
- $thisfile_riff['comments'][$value][] = $thisfile_riff[$RIFFsubtype][$key][0]['data'];
1052
- }
1053
- }
1054
- /*
1055
- if (isset($thisfile_riff[$RIFFsubtype]['ID3 '])) {
1056
- getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.tag.id3v2.php', __FILE__, true);
1057
- $getid3_temp = new getID3();
1058
- $getid3_temp->openfile($this->getid3->filename);
1059
- $getid3_id3v2 = new getid3_id3v2($getid3_temp);
1060
- $getid3_id3v2->StartingOffset = $thisfile_riff[$RIFFsubtype]['ID3 '][0]['offset'] + 8;
1061
- if ($thisfile_riff[$RIFFsubtype]['ID3 '][0]['valid'] = $getid3_id3v2->Analyze()) {
1062
- $info['id3v2'] = $getid3_temp->info['id3v2'];
1063
- }
1064
- unset($getid3_temp, $getid3_id3v2);
1065
- }
1066
- */
1067
- break;
1068
-
1069
- // http://en.wikipedia.org/wiki/8SVX
1070
- case '8SVX':
1071
- $info['fileformat'] = '8svx';
1072
- $info['mime_type'] = 'audio/8svx';
1073
-
1074
- $thisfile_audio['bitrate_mode'] = 'cbr';
1075
- $thisfile_audio_dataformat = '8svx';
1076
- $thisfile_audio['bits_per_sample'] = 8;
1077
- $thisfile_audio['channels'] = 1; // overridden below, if need be
1078
-
1079
- if (isset($thisfile_riff[$RIFFsubtype]['BODY'][0]['offset'])) {
1080
- $info['avdataoffset'] = $thisfile_riff[$RIFFsubtype]['BODY'][0]['offset'] + 8;
1081
- $info['avdataend'] = $info['avdataoffset'] + $thisfile_riff[$RIFFsubtype]['BODY'][0]['size'];
1082
- if ($info['avdataend'] > $info['filesize']) {
1083
- $info['warning'][] = 'Probable truncated AIFF file: expecting '.$thisfile_riff[$RIFFsubtype]['BODY'][0]['size'].' bytes of audio data, only '.($info['filesize'] - $info['avdataoffset']).' bytes found';
1084
- }
1085
- }
1086
-
1087
- if (isset($thisfile_riff[$RIFFsubtype]['VHDR'][0]['offset'])) {
1088
- // shortcut
1089
- $thisfile_riff_RIFFsubtype_VHDR_0 = &$thisfile_riff[$RIFFsubtype]['VHDR'][0];
1090
-
1091
- $thisfile_riff_RIFFsubtype_VHDR_0['oneShotHiSamples'] = getid3_lib::BigEndian2Int(substr($thisfile_riff_RIFFsubtype_VHDR_0['data'], 0, 4));
1092
- $thisfile_riff_RIFFsubtype_VHDR_0['repeatHiSamples'] = getid3_lib::BigEndian2Int(substr($thisfile_riff_RIFFsubtype_VHDR_0['data'], 4, 4));
1093
- $thisfile_riff_RIFFsubtype_VHDR_0['samplesPerHiCycle'] = getid3_lib::BigEndian2Int(substr($thisfile_riff_RIFFsubtype_VHDR_0['data'], 8, 4));
1094
- $thisfile_riff_RIFFsubtype_VHDR_0['samplesPerSec'] = getid3_lib::BigEndian2Int(substr($thisfile_riff_RIFFsubtype_VHDR_0['data'], 12, 2));
1095
- $thisfile_riff_RIFFsubtype_VHDR_0['ctOctave'] = getid3_lib::BigEndian2Int(substr($thisfile_riff_RIFFsubtype_VHDR_0['data'], 14, 1));
1096
- $thisfile_riff_RIFFsubtype_VHDR_0['sCompression'] = getid3_lib::BigEndian2Int(substr($thisfile_riff_RIFFsubtype_VHDR_0['data'], 15, 1));
1097
- $thisfile_riff_RIFFsubtype_VHDR_0['Volume'] = getid3_lib::FixedPoint16_16(substr($thisfile_riff_RIFFsubtype_VHDR_0['data'], 16, 4));
1098
-
1099
- $thisfile_audio['sample_rate'] = $thisfile_riff_RIFFsubtype_VHDR_0['samplesPerSec'];
1100
-
1101
- switch ($thisfile_riff_RIFFsubtype_VHDR_0['sCompression']) {
1102
- case 0:
1103
- $thisfile_audio['codec'] = 'Pulse Code Modulation (PCM)';
1104
- $thisfile_audio['lossless'] = true;
1105
- $ActualBitsPerSample = 8;
1106
- break;
1107
-
1108
- case 1:
1109
- $thisfile_audio['codec'] = 'Fibonacci-delta encoding';
1110
- $thisfile_audio['lossless'] = false;
1111
- $ActualBitsPerSample = 4;
1112
- break;
1113
-
1114
- default:
1115
- $info['warning'][] = 'Unexpected sCompression value in 8SVX.VHDR chunk - expecting 0 or 1, found "'.sCompression.'"';
1116
- break;
1117
- }
1118
- }
1119
-
1120
- if (isset($thisfile_riff[$RIFFsubtype]['CHAN'][0]['data'])) {
1121
- $ChannelsIndex = getid3_lib::BigEndian2Int(substr($thisfile_riff[$RIFFsubtype]['CHAN'][0]['data'], 0, 4));
1122
- switch ($ChannelsIndex) {
1123
- case 6: // Stereo
1124
- $thisfile_audio['channels'] = 2;
1125
- break;
1126
-
1127
- case 2: // Left channel only
1128
- case 4: // Right channel only
1129
- $thisfile_audio['channels'] = 1;
1130
- break;
1131
-
1132
- default:
1133
- $info['warning'][] = 'Unexpected value in 8SVX.CHAN chunk - expecting 2 or 4 or 6, found "'.$ChannelsIndex.'"';
1134
- break;
1135
- }
1136
-
1137
- }
1138
-
1139
- $CommentsChunkNames = array('NAME'=>'title', 'author'=>'artist', '(c) '=>'copyright', 'ANNO'=>'comment');
1140
- foreach ($CommentsChunkNames as $key => $value) {
1141
- if (isset($thisfile_riff[$RIFFsubtype][$key][0]['data'])) {
1142
- $thisfile_riff['comments'][$value][] = $thisfile_riff[$RIFFsubtype][$key][0]['data'];
1143
- }
1144
- }
1145
-
1146
- $thisfile_audio['bitrate'] = $thisfile_audio['sample_rate'] * $ActualBitsPerSample * $thisfile_audio['channels'];
1147
- if (!empty($thisfile_audio['bitrate'])) {
1148
- $info['playtime_seconds'] = ($info['avdataend'] - $info['avdataoffset']) / ($thisfile_audio['bitrate'] / 8);
1149
- }
1150
- break;
1151
-
1152
- case 'CDXA':
1153
- $info['fileformat'] = 'vcd'; // Asume Video CD
1154
- $info['mime_type'] = 'video/mpeg';
1155
-
1156
- if (!empty($thisfile_riff['CDXA']['data'][0]['size'])) {
1157
- getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.audio-video.mpeg.php', __FILE__, true);
1158
-
1159
- $getid3_temp = new getID3();
1160
- $getid3_temp->openfile($this->getid3->filename);
1161
- $getid3_mpeg = new getid3_mpeg($getid3_temp);
1162
- $getid3_mpeg->Analyze();
1163
- if (empty($getid3_temp->info['error'])) {
1164
- $info['audio'] = $getid3_temp->info['audio'];
1165
- $info['video'] = $getid3_temp->info['video'];
1166
- $info['mpeg'] = $getid3_temp->info['mpeg'];
1167
- $info['warning'] = $getid3_temp->info['warning'];
1168
- }
1169
- unset($getid3_temp, $getid3_mpeg);
1170
- }
1171
- break;
1172
-
1173
-
1174
- default:
1175
- $info['error'][] = 'Unknown RIFF type: expecting one of (WAVE|RMP3|AVI |CDDA|AIFF|AIFC|8SVX|CDXA), found "'.$RIFFsubtype.'" instead';
1176
- //unset($info['fileformat']);
1177
- }
1178
-
1179
- switch ($RIFFsubtype) {
1180
- case 'WAVE':
1181
- case 'AIFF':
1182
- case 'AIFC':
1183
- $ID3v2_key_good = 'id3 ';
1184
- $ID3v2_keys_bad = array('ID3 ', 'tag ');
1185
- foreach ($ID3v2_keys_bad as $ID3v2_key_bad) {
1186
- if (isset($thisfile_riff[$RIFFsubtype][$ID3v2_key_bad]) && !array_key_exists($ID3v2_key_good, $thisfile_riff[$RIFFsubtype])) {
1187
- $thisfile_riff[$RIFFsubtype][$ID3v2_key_good] = $thisfile_riff[$RIFFsubtype][$ID3v2_key_bad];
1188
- $info['warning'][] = 'mapping "'.$ID3v2_key_bad.'" chunk to "'.$ID3v2_key_good.'"';
1189
- }
1190
- }
1191
-
1192
- if (isset($thisfile_riff[$RIFFsubtype]['id3 '])) {
1193
- getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.tag.id3v2.php', __FILE__, true);
1194
-
1195
- $getid3_temp = new getID3();
1196
- $getid3_temp->openfile($this->getid3->filename);
1197
- $getid3_id3v2 = new getid3_id3v2($getid3_temp);
1198
- $getid3_id3v2->StartingOffset = $thisfile_riff[$RIFFsubtype]['id3 '][0]['offset'] + 8;
1199
- if ($thisfile_riff[$RIFFsubtype]['id3 '][0]['valid'] = $getid3_id3v2->Analyze()) {
1200
- $info['id3v2'] = $getid3_temp->info['id3v2'];
1201
- }
1202
- unset($getid3_temp, $getid3_id3v2);
1203
- }
1204
- break;
1205
- }
1206
-
1207
- if (isset($thisfile_riff_WAVE['DISP']) && is_array($thisfile_riff_WAVE['DISP'])) {
1208
- $thisfile_riff['comments']['title'][] = trim(substr($thisfile_riff_WAVE['DISP'][count($thisfile_riff_WAVE['DISP']) - 1]['data'], 4));
1209
- }
1210
- if (isset($thisfile_riff_WAVE['INFO']) && is_array($thisfile_riff_WAVE['INFO'])) {
1211
- self::parseComments($thisfile_riff_WAVE['INFO'], $thisfile_riff['comments']);
1212
- }
1213
- if (isset($thisfile_riff['AVI ']['INFO']) && is_array($thisfile_riff['AVI ']['INFO'])) {
1214
- self::parseComments($thisfile_riff['AVI ']['INFO'], $thisfile_riff['comments']);
1215
- }
1216
-
1217
- if (empty($thisfile_audio['encoder']) && !empty($info['mpeg']['audio']['LAME']['short_version'])) {
1218
- $thisfile_audio['encoder'] = $info['mpeg']['audio']['LAME']['short_version'];
1219
- }
1220
-
1221
- if (!isset($info['playtime_seconds'])) {
1222
- $info['playtime_seconds'] = 0;
1223
- }
1224
- if (isset($thisfile_riff_raw['strh'][0]['dwLength']) && isset($thisfile_riff_raw['avih']['dwMicroSecPerFrame'])) {
1225
- // needed for >2GB AVIs where 'avih' chunk only lists number of frames in that chunk, not entire movie
1226
- $info['playtime_seconds'] = $thisfile_riff_raw['strh'][0]['dwLength'] * ($thisfile_riff_raw['avih']['dwMicroSecPerFrame'] / 1000000);
1227
- } elseif (isset($thisfile_riff_raw['avih']['dwTotalFrames']) && isset($thisfile_riff_raw['avih']['dwMicroSecPerFrame'])) {
1228
- $info['playtime_seconds'] = $thisfile_riff_raw['avih']['dwTotalFrames'] * ($thisfile_riff_raw['avih']['dwMicroSecPerFrame'] / 1000000);
1229
- }
1230
-
1231
- if ($info['playtime_seconds'] > 0) {
1232
- if (isset($thisfile_riff_audio) && isset($thisfile_riff_video)) {
1233
-
1234
- if (!isset($info['bitrate'])) {
1235
- $info['bitrate'] = ((($info['avdataend'] - $info['avdataoffset']) / $info['playtime_seconds']) * 8);
1236
- }
1237
-
1238
- } elseif (isset($thisfile_riff_audio) && !isset($thisfile_riff_video)) {
1239
-
1240
- if (!isset($thisfile_audio['bitrate'])) {
1241
- $thisfile_audio['bitrate'] = ((($info['avdataend'] - $info['avdataoffset']) / $info['playtime_seconds']) * 8);
1242
- }
1243
-
1244
- } elseif (!isset($thisfile_riff_audio) && isset($thisfile_riff_video)) {
1245
-
1246
- if (!isset($thisfile_video['bitrate'])) {
1247
- $thisfile_video['bitrate'] = ((($info['avdataend'] - $info['avdataoffset']) / $info['playtime_seconds']) * 8);
1248
- }
1249
-
1250
- }
1251
- }
1252
-
1253
-
1254
- if (isset($thisfile_riff_video) && isset($thisfile_audio['bitrate']) && ($thisfile_audio['bitrate'] > 0) && ($info['playtime_seconds'] > 0)) {
1255
-
1256
- $info['bitrate'] = ((($info['avdataend'] - $info['avdataoffset']) / $info['playtime_seconds']) * 8);
1257
- $thisfile_audio['bitrate'] = 0;
1258
- $thisfile_video['bitrate'] = $info['bitrate'];
1259
- foreach ($thisfile_riff_audio as $channelnumber => $audioinfoarray) {
1260
- $thisfile_video['bitrate'] -= $audioinfoarray['bitrate'];
1261
- $thisfile_audio['bitrate'] += $audioinfoarray['bitrate'];
1262
- }
1263
- if ($thisfile_video['bitrate'] <= 0) {
1264
- unset($thisfile_video['bitrate']);
1265
- }
1266
- if ($thisfile_audio['bitrate'] <= 0) {
1267
- unset($thisfile_audio['bitrate']);
1268
- }
1269
- }
1270
-
1271
- if (isset($info['mpeg']['audio'])) {
1272
- $thisfile_audio_dataformat = 'mp'.$info['mpeg']['audio']['layer'];
1273
- $thisfile_audio['sample_rate'] = $info['mpeg']['audio']['sample_rate'];
1274
- $thisfile_audio['channels'] = $info['mpeg']['audio']['channels'];
1275
- $thisfile_audio['bitrate'] = $info['mpeg']['audio']['bitrate'];
1276
- $thisfile_audio['bitrate_mode'] = strtolower($info['mpeg']['audio']['bitrate_mode']);
1277
- if (!empty($info['mpeg']['audio']['codec'])) {
1278
- $thisfile_audio['codec'] = $info['mpeg']['audio']['codec'].' '.$thisfile_audio['codec'];
1279
- }
1280
- if (!empty($thisfile_audio['streams'])) {
1281
- foreach ($thisfile_audio['streams'] as $streamnumber => $streamdata) {
1282
- if ($streamdata['dataformat'] == $thisfile_audio_dataformat) {
1283
- $thisfile_audio['streams'][$streamnumber]['sample_rate'] = $thisfile_audio['sample_rate'];
1284
- $thisfile_audio['streams'][$streamnumber]['channels'] = $thisfile_audio['channels'];
1285
- $thisfile_audio['streams'][$streamnumber]['bitrate'] = $thisfile_audio['bitrate'];
1286
- $thisfile_audio['streams'][$streamnumber]['bitrate_mode'] = $thisfile_audio['bitrate_mode'];
1287
- $thisfile_audio['streams'][$streamnumber]['codec'] = $thisfile_audio['codec'];
1288
- }
1289
- }
1290
- }
1291
- $getid3_mp3 = new getid3_mp3($this->getid3);
1292
- $thisfile_audio['encoder_options'] = $getid3_mp3->GuessEncoderOptions();
1293
- unset($getid3_mp3);
1294
- }
1295
-
1296
-
1297
- if (!empty($thisfile_riff_raw['fmt ']['wBitsPerSample']) && ($thisfile_riff_raw['fmt ']['wBitsPerSample'] > 0)) {
1298
- switch ($thisfile_audio_dataformat) {
1299
- case 'ac3':
1300
- // ignore bits_per_sample
1301
- break;
1302
-
1303
- default:
1304
- $thisfile_audio['bits_per_sample'] = $thisfile_riff_raw['fmt ']['wBitsPerSample'];
1305
- break;
1306
- }
1307
- }
1308
-
1309
-
1310
- if (empty($thisfile_riff_raw)) {
1311
- unset($thisfile_riff['raw']);
1312
- }
1313
- if (empty($thisfile_riff_audio)) {
1314
- unset($thisfile_riff['audio']);
1315
- }
1316
- if (empty($thisfile_riff_video)) {
1317
- unset($thisfile_riff['video']);
1318
- }
1319
-
1320
- return true;
1321
- }
1322
-
1323
- public function ParseRIFFAMV($startoffset, $maxoffset) {
1324
- // AMV files are RIFF-AVI files with parts of the spec deliberately broken, such as chunk size fields hardcoded to zero (because players known in hardware that these fields are always a certain size
1325
-
1326
- // https://code.google.com/p/amv-codec-tools/wiki/AmvDocumentation
1327
- //typedef struct _amvmainheader {
1328
- //FOURCC fcc; // 'amvh'
1329
- //DWORD cb;
1330
- //DWORD dwMicroSecPerFrame;
1331
- //BYTE reserve[28];
1332
- //DWORD dwWidth;
1333
- //DWORD dwHeight;
1334
- //DWORD dwSpeed;
1335
- //DWORD reserve0;
1336
- //DWORD reserve1;
1337
- //BYTE bTimeSec;
1338
- //BYTE bTimeMin;
1339
- //WORD wTimeHour;
1340
- //} AMVMAINHEADER;
1341
-
1342
- $info = &$this->getid3->info;
1343
- $RIFFchunk = false;
1344
-
1345
- try {
1346
-
1347
- $this->fseek($startoffset);
1348
- $maxoffset = min($maxoffset, $info['avdataend']);
1349
- $AMVheader = $this->fread(284);
1350
- if (substr($AMVheader, 0, 8) != 'hdrlamvh') {
1351
- throw new Exception('expecting "hdrlamv" at offset '.($startoffset + 0).', found "'.substr($AMVheader, 0, 8).'"');
1352
- }
1353
- if (substr($AMVheader, 8, 4) != "\x38\x00\x00\x00") { // "amvh" chunk size, hardcoded to 0x38 = 56 bytes
1354
- throw new Exception('expecting "0x38000000" at offset '.($startoffset + 8).', found "'.getid3_lib::PrintHexBytes(substr($AMVheader, 8, 4)).'"');
1355
- }
1356
- $RIFFchunk = array();
1357
- $RIFFchunk['amvh']['us_per_frame'] = getid3_lib::LittleEndian2Int(substr($AMVheader, 12, 4));
1358
- $RIFFchunk['amvh']['reserved28'] = substr($AMVheader, 16, 28); // null? reserved?
1359
- $RIFFchunk['amvh']['resolution_x'] = getid3_lib::LittleEndian2Int(substr($AMVheader, 44, 4));
1360
- $RIFFchunk['amvh']['resolution_y'] = getid3_lib::LittleEndian2Int(substr($AMVheader, 48, 4));
1361
- $RIFFchunk['amvh']['frame_rate_int'] = getid3_lib::LittleEndian2Int(substr($AMVheader, 52, 4));
1362
- $RIFFchunk['amvh']['reserved0'] = getid3_lib::LittleEndian2Int(substr($AMVheader, 56, 4)); // 1? reserved?
1363
- $RIFFchunk['amvh']['reserved1'] = getid3_lib::LittleEndian2Int(substr($AMVheader, 60, 4)); // 0? reserved?
1364
- $RIFFchunk['amvh']['runtime_sec'] = getid3_lib::LittleEndian2Int(substr($AMVheader, 64, 1));
1365
- $RIFFchunk['amvh']['runtime_min'] = getid3_lib::LittleEndian2Int(substr($AMVheader, 65, 1));
1366
- $RIFFchunk['amvh']['runtime_hrs'] = getid3_lib::LittleEndian2Int(substr($AMVheader, 66, 2));
1367
-
1368
- $info['video']['frame_rate'] = 1000000 / $RIFFchunk['amvh']['us_per_frame'];
1369
- $info['video']['resolution_x'] = $RIFFchunk['amvh']['resolution_x'];
1370
- $info['video']['resolution_y'] = $RIFFchunk['amvh']['resolution_y'];
1371
- $info['playtime_seconds'] = ($RIFFchunk['amvh']['runtime_hrs'] * 3600) + ($RIFFchunk['amvh']['runtime_min'] * 60) + $RIFFchunk['amvh']['runtime_sec'];
1372
-
1373
- // the rest is all hardcoded(?) and does not appear to be useful until you get to audio info at offset 256, even then everything is probably hardcoded
1374
-
1375
- if (substr($AMVheader, 68, 20) != 'LIST'."\x00\x00\x00\x00".'strlstrh'."\x38\x00\x00\x00") {
1376
- throw new Exception('expecting "LIST<0x00000000>strlstrh<0x38000000>" at offset '.($startoffset + 68).', found "'.getid3_lib::PrintHexBytes(substr($AMVheader, 68, 20)).'"');
1377
- }
1378
- // followed by 56 bytes of null: substr($AMVheader, 88, 56) -> 144
1379
- if (substr($AMVheader, 144, 8) != 'strf'."\x24\x00\x00\x00") {
1380
- throw new Exception('expecting "strf<0x24000000>" at offset '.($startoffset + 144).', found "'.getid3_lib::PrintHexBytes(substr($AMVheader, 144, 8)).'"');
1381
- }
1382
- // followed by 36 bytes of null: substr($AMVheader, 144, 36) -> 180
1383
-
1384
- if (substr($AMVheader, 188, 20) != 'LIST'."\x00\x00\x00\x00".'strlstrh'."\x30\x00\x00\x00") {
1385
- throw new Exception('expecting "LIST<0x00000000>strlstrh<0x30000000>" at offset '.($startoffset + 188).', found "'.getid3_lib::PrintHexBytes(substr($AMVheader, 188, 20)).'"');
1386
- }
1387
- // followed by 48 bytes of null: substr($AMVheader, 208, 48) -> 256
1388
- if (substr($AMVheader, 256, 8) != 'strf'."\x14\x00\x00\x00") {
1389
- throw new Exception('expecting "strf<0x14000000>" at offset '.($startoffset + 256).', found "'.getid3_lib::PrintHexBytes(substr($AMVheader, 256, 8)).'"');
1390
- }
1391
- // followed by 20 bytes of a modified WAVEFORMATEX:
1392
- // typedef struct {
1393
- // WORD wFormatTag; //(Fixme: this is equal to PCM's 0x01 format code)
1394
- // WORD nChannels; //(Fixme: this is always 1)
1395
- // DWORD nSamplesPerSec; //(Fixme: for all known sample files this is equal to 22050)
1396
- // DWORD nAvgBytesPerSec; //(Fixme: for all known sample files this is equal to 44100)
1397
- // WORD nBlockAlign; //(Fixme: this seems to be 2 in AMV files, is this correct ?)
1398
- // WORD wBitsPerSample; //(Fixme: this seems to be 16 in AMV files instead of the expected 4)
1399
- // WORD cbSize; //(Fixme: this seems to be 0 in AMV files)
1400
- // WORD reserved;
1401
- // } WAVEFORMATEX;
1402
- $RIFFchunk['strf']['wformattag'] = getid3_lib::LittleEndian2Int(substr($AMVheader, 264, 2));
1403
- $RIFFchunk['strf']['nchannels'] = getid3_lib::LittleEndian2Int(substr($AMVheader, 266, 2));
1404
- $RIFFchunk['strf']['nsamplespersec'] = getid3_lib::LittleEndian2Int(substr($AMVheader, 268, 4));
1405
- $RIFFchunk['strf']['navgbytespersec'] = getid3_lib::LittleEndian2Int(substr($AMVheader, 272, 4));
1406
- $RIFFchunk['strf']['nblockalign'] = getid3_lib::LittleEndian2Int(substr($AMVheader, 276, 2));
1407
- $RIFFchunk['strf']['wbitspersample'] = getid3_lib::LittleEndian2Int(substr($AMVheader, 278, 2));
1408
- $RIFFchunk['strf']['cbsize'] = getid3_lib::LittleEndian2Int(substr($AMVheader, 280, 2));
1409
- $RIFFchunk['strf']['reserved'] = getid3_lib::LittleEndian2Int(substr($AMVheader, 282, 2));
1410
-
1411
-
1412
- $info['audio']['lossless'] = false;
1413
- $info['audio']['sample_rate'] = $RIFFchunk['strf']['nsamplespersec'];
1414
- $info['audio']['channels'] = $RIFFchunk['strf']['nchannels'];
1415
- $info['audio']['bits_per_sample'] = $RIFFchunk['strf']['wbitspersample'];
1416
- $info['audio']['bitrate'] = $info['audio']['sample_rate'] * $info['audio']['channels'] * $info['audio']['bits_per_sample'];
1417
- $info['audio']['bitrate_mode'] = 'cbr';
1418
-
1419
-
1420
- } catch (getid3_exception $e) {
1421
- if ($e->getCode() == 10) {
1422
- $this->warning('RIFFAMV parser: '.$e->getMessage());
1423
- } else {
1424
- throw $e;
1425
- }
1426
- }
1427
-
1428
- return $RIFFchunk;
1429
- }
1430
-
1431
-
1432
- public function ParseRIFF($startoffset, $maxoffset) {
1433
- $info = &$this->getid3->info;
1434
-
1435
- $RIFFchunk = false;
1436
- $FoundAllChunksWeNeed = false;
1437
-
1438
- try {
1439
- $this->fseek($startoffset);
1440
- $maxoffset = min($maxoffset, $info['avdataend']);
1441
- while ($this->ftell() < $maxoffset) {
1442
- $chunknamesize = $this->fread(8);
1443
- //$chunkname = substr($chunknamesize, 0, 4);
1444
- $chunkname = str_replace("\x00", '_', substr($chunknamesize, 0, 4)); // note: chunk names of 4 null bytes do appear to be legal (has been observed inside INFO and PRMI chunks, for example), but makes traversing array keys more difficult
1445
- $chunksize = $this->EitherEndian2Int(substr($chunknamesize, 4, 4));
1446
- //if (strlen(trim($chunkname, "\x00")) < 4) {
1447
- if (strlen($chunkname) < 4) {
1448
- $this->error('Expecting chunk name at offset '.($this->ftell() - 8).' but found nothing. Aborting RIFF parsing.');
1449
- break;
1450
- }
1451
- if (($chunksize == 0) && ($chunkname != 'JUNK')) {
1452
- $this->warning('Chunk ('.$chunkname.') size at offset '.($this->ftell() - 4).' is zero. Aborting RIFF parsing.');
1453
- break;
1454
- }
1455
- if (($chunksize % 2) != 0) {
1456
- // all structures are packed on word boundaries
1457
- $chunksize++;
1458
- }
1459
-
1460
- switch ($chunkname) {
1461
- case 'LIST':
1462
- $listname = $this->fread(4);
1463
- if (preg_match('#^(movi|rec )$#i', $listname)) {
1464
- $RIFFchunk[$listname]['offset'] = $this->ftell() - 4;
1465
- $RIFFchunk[$listname]['size'] = $chunksize;
1466
-
1467
- if (!$FoundAllChunksWeNeed) {
1468
- $WhereWeWere = $this->ftell();
1469
- $AudioChunkHeader = $this->fread(12);
1470
- $AudioChunkStreamNum = substr($AudioChunkHeader, 0, 2);
1471
- $AudioChunkStreamType = substr($AudioChunkHeader, 2, 2);
1472
- $AudioChunkSize = getid3_lib::LittleEndian2Int(substr($AudioChunkHeader, 4, 4));
1473
-
1474
- if ($AudioChunkStreamType == 'wb') {
1475
- $FirstFourBytes = substr($AudioChunkHeader, 8, 4);
1476
- if (preg_match('/^\xFF[\xE2-\xE7\xF2-\xF7\xFA-\xFF][\x00-\xEB]/s', $FirstFourBytes)) {
1477
- // MP3
1478
- if (getid3_mp3::MPEGaudioHeaderBytesValid($FirstFourBytes)) {
1479
- $getid3_temp = new getID3();
1480
- $getid3_temp->openfile($this->getid3->filename);
1481
- $getid3_temp->info['avdataoffset'] = $this->ftell() - 4;
1482
- $getid3_temp->info['avdataend'] = $this->ftell() + $AudioChunkSize;
1483
- $getid3_mp3 = new getid3_mp3($getid3_temp, __CLASS__);
1484
- $getid3_mp3->getOnlyMPEGaudioInfo($getid3_temp->info['avdataoffset'], false);
1485
- if (isset($getid3_temp->info['mpeg']['audio'])) {
1486
- $info['mpeg']['audio'] = $getid3_temp->info['mpeg']['audio'];
1487
- $info['audio'] = $getid3_temp->info['audio'];
1488
- $info['audio']['dataformat'] = 'mp'.$info['mpeg']['audio']['layer'];
1489
- $info['audio']['sample_rate'] = $info['mpeg']['audio']['sample_rate'];
1490
- $info['audio']['channels'] = $info['mpeg']['audio']['channels'];
1491
- $info['audio']['bitrate'] = $info['mpeg']['audio']['bitrate'];
1492
- $info['audio']['bitrate_mode'] = strtolower($info['mpeg']['audio']['bitrate_mode']);
1493
- //$info['bitrate'] = $info['audio']['bitrate'];
1494
- }
1495
- unset($getid3_temp, $getid3_mp3);
1496
- }
1497
-
1498
- } elseif (strpos($FirstFourBytes, getid3_ac3::syncword) === 0) {
1499
-
1500
- // AC3
1501
- $getid3_temp = new getID3();
1502
- $getid3_temp->openfile($this->getid3->filename);
1503
- $getid3_temp->info['avdataoffset'] = $this->ftell() - 4;
1504
- $getid3_temp->info['avdataend'] = $this->ftell() + $AudioChunkSize;
1505
- $getid3_ac3 = new getid3_ac3($getid3_temp);
1506
- $getid3_ac3->Analyze();
1507
- if (empty($getid3_temp->info['error'])) {
1508
- $info['audio'] = $getid3_temp->info['audio'];
1509
- $info['ac3'] = $getid3_temp->info['ac3'];
1510
- if (!empty($getid3_temp->info['warning'])) {
1511
- foreach ($getid3_temp->info['warning'] as $key => $value) {
1512
- $info['warning'][] = $value;
1513
- }
1514
- }
1515
- }
1516
- unset($getid3_temp, $getid3_ac3);
1517
- }
1518
- }
1519
- $FoundAllChunksWeNeed = true;
1520
- $this->fseek($WhereWeWere);
1521
- }
1522
- $this->fseek($chunksize - 4, SEEK_CUR);
1523
-
1524
- } else {
1525
-
1526
- if (!isset($RIFFchunk[$listname])) {
1527
- $RIFFchunk[$listname] = array();
1528
- }
1529
- $LISTchunkParent = $listname;
1530
- $LISTchunkMaxOffset = $this->ftell() - 4 + $chunksize;
1531
- if ($parsedChunk = $this->ParseRIFF($this->ftell(), $LISTchunkMaxOffset)) {
1532
- $RIFFchunk[$listname] = array_merge_recursive($RIFFchunk[$listname], $parsedChunk);
1533
- }
1534
-
1535
- }
1536
- break;
1537
-
1538
- default:
1539
- if (preg_match('#^[0-9]{2}(wb|pc|dc|db)$#', $chunkname)) {
1540
- $this->fseek($chunksize, SEEK_CUR);
1541
- break;
1542
- }
1543
- $thisindex = 0;
1544
- if (isset($RIFFchunk[$chunkname]) && is_array($RIFFchunk[$chunkname])) {
1545
- $thisindex = count($RIFFchunk[$chunkname]);
1546
- }
1547
- $RIFFchunk[$chunkname][$thisindex]['offset'] = $this->ftell() - 8;
1548
- $RIFFchunk[$chunkname][$thisindex]['size'] = $chunksize;
1549
- switch ($chunkname) {
1550
- case 'data':
1551
- $info['avdataoffset'] = $this->ftell();
1552
- $info['avdataend'] = $info['avdataoffset'] + $chunksize;
1553
-
1554
- $testData = $this->fread(36);
1555
- if ($testData === '') {
1556
- break;
1557
- }
1558
- if (preg_match('/^\xFF[\xE2-\xE7\xF2-\xF7\xFA-\xFF][\x00-\xEB]/s', substr($testData, 0, 4))) {
1559
-
1560
- // Probably is MP3 data
1561
- if (getid3_mp3::MPEGaudioHeaderBytesValid(substr($testData, 0, 4))) {
1562
- $getid3_temp = new getID3();
1563
- $getid3_temp->openfile($this->getid3->filename);
1564
- $getid3_temp->info['avdataoffset'] = $info['avdataoffset'];
1565
- $getid3_temp->info['avdataend'] = $info['avdataend'];
1566
- $getid3_mp3 = new getid3_mp3($getid3_temp, __CLASS__);
1567
- $getid3_mp3->getOnlyMPEGaudioInfo($info['avdataoffset'], false);
1568
- if (empty($getid3_temp->info['error'])) {
1569
- $info['audio'] = $getid3_temp->info['audio'];
1570
- $info['mpeg'] = $getid3_temp->info['mpeg'];
1571
- }
1572
- unset($getid3_temp, $getid3_mp3);
1573
- }
1574
-
1575
- } elseif (($isRegularAC3 = (substr($testData, 0, 2) == getid3_ac3::syncword)) || substr($testData, 8, 2) == strrev(getid3_ac3::syncword)) {
1576
-
1577
- // This is probably AC-3 data
1578
- $getid3_temp = new getID3();
1579
- if ($isRegularAC3) {
1580
- $getid3_temp->openfile($this->getid3->filename);
1581
- $getid3_temp->info['avdataoffset'] = $info['avdataoffset'];
1582
- $getid3_temp->info['avdataend'] = $info['avdataend'];
1583
- }
1584
- $getid3_ac3 = new getid3_ac3($getid3_temp);
1585
- if ($isRegularAC3) {
1586
- $getid3_ac3->Analyze();
1587
- } else {
1588
- // Dolby Digital WAV
1589
- // AC-3 content, but not encoded in same format as normal AC-3 file
1590
- // For one thing, byte order is swapped
1591
- $ac3_data = '';
1592
- for ($i = 0; $i < 28; $i += 2) {
1593
- $ac3_data .= substr($testData, 8 + $i + 1, 1);
1594
- $ac3_data .= substr($testData, 8 + $i + 0, 1);
1595
- }
1596
- $getid3_ac3->AnalyzeString($ac3_data);
1597
- }
1598
-
1599
- if (empty($getid3_temp->info['error'])) {
1600
- $info['audio'] = $getid3_temp->info['audio'];
1601
- $info['ac3'] = $getid3_temp->info['ac3'];
1602
- if (!empty($getid3_temp->info['warning'])) {
1603
- foreach ($getid3_temp->info['warning'] as $newerror) {
1604
- $this->warning('getid3_ac3() says: ['.$newerror.']');
1605
- }
1606
- }
1607
- }
1608
- unset($getid3_temp, $getid3_ac3);
1609
-
1610
- } elseif (preg_match('/^('.implode('|', array_map('preg_quote', getid3_dts::$syncwords)).')/', $testData)) {
1611
-
1612
- // This is probably DTS data
1613
- $getid3_temp = new getID3();
1614
- $getid3_temp->openfile($this->getid3->filename);
1615
- $getid3_temp->info['avdataoffset'] = $info['avdataoffset'];
1616
- $getid3_dts = new getid3_dts($getid3_temp);
1617
- $getid3_dts->Analyze();
1618
- if (empty($getid3_temp->info['error'])) {
1619
- $info['audio'] = $getid3_temp->info['audio'];
1620
- $info['dts'] = $getid3_temp->info['dts'];
1621
- $info['playtime_seconds'] = $getid3_temp->info['playtime_seconds']; // may not match RIFF calculations since DTS-WAV often used 14/16 bit-word packing
1622
- if (!empty($getid3_temp->info['warning'])) {
1623
- foreach ($getid3_temp->info['warning'] as $newerror) {
1624
- $this->warning('getid3_dts() says: ['.$newerror.']');
1625
- }
1626
- }
1627
- }
1628
-
1629
- unset($getid3_temp, $getid3_dts);
1630
-
1631
- } elseif (substr($testData, 0, 4) == 'wvpk') {
1632
-
1633
- // This is WavPack data
1634
- $info['wavpack']['offset'] = $info['avdataoffset'];
1635
- $info['wavpack']['size'] = getid3_lib::LittleEndian2Int(substr($testData, 4, 4));
1636
- $this->parseWavPackHeader(substr($testData, 8, 28));
1637
-
1638
- } else {
1639
- // This is some other kind of data (quite possibly just PCM)
1640
- // do nothing special, just skip it
1641
- }
1642
- $nextoffset = $info['avdataend'];
1643
- $this->fseek($nextoffset);
1644
- break;
1645
-
1646
- case 'iXML':
1647
- case 'bext':
1648
- case 'cart':
1649
- case 'fmt ':
1650
- case 'strh':
1651
- case 'strf':
1652
- case 'indx':
1653
- case 'MEXT':
1654
- case 'DISP':
1655
- // always read data in
1656
- case 'JUNK':
1657
- // should be: never read data in
1658
- // but some programs write their version strings in a JUNK chunk (e.g. VirtualDub, AVIdemux, etc)
1659
- if ($chunksize < 1048576) {
1660
- if ($chunksize > 0) {
1661
- $RIFFchunk[$chunkname][$thisindex]['data'] = $this->fread($chunksize);
1662
- if ($chunkname == 'JUNK') {
1663
- if (preg_match('#^([\\x20-\\x7F]+)#', $RIFFchunk[$chunkname][$thisindex]['data'], $matches)) {
1664
- // only keep text characters [chr(32)-chr(127)]
1665
- $info['riff']['comments']['junk'][] = trim($matches[1]);
1666
- }
1667
- // but if nothing there, ignore
1668
- // remove the key in either case
1669
- unset($RIFFchunk[$chunkname][$thisindex]['data']);
1670
- }
1671
- }
1672
- } else {
1673
- $this->warning('Chunk "'.$chunkname.'" at offset '.$this->ftell().' is unexpectedly larger than 1MB (claims to be '.number_format($chunksize).' bytes), skipping data');
1674
- $this->fseek($chunksize, SEEK_CUR);
1675
- }
1676
- break;
1677
-
1678
- //case 'IDVX':
1679
- // $info['divxtag']['comments'] = self::ParseDIVXTAG($this->fread($chunksize));
1680
- // break;
1681
-
1682
- default:
1683
- if (!empty($LISTchunkParent) && (($RIFFchunk[$chunkname][$thisindex]['offset'] + $RIFFchunk[$chunkname][$thisindex]['size']) <= $LISTchunkMaxOffset)) {
1684
- $RIFFchunk[$LISTchunkParent][$chunkname][$thisindex]['offset'] = $RIFFchunk[$chunkname][$thisindex]['offset'];
1685
- $RIFFchunk[$LISTchunkParent][$chunkname][$thisindex]['size'] = $RIFFchunk[$chunkname][$thisindex]['size'];
1686
- unset($RIFFchunk[$chunkname][$thisindex]['offset']);
1687
- unset($RIFFchunk[$chunkname][$thisindex]['size']);
1688
- if (isset($RIFFchunk[$chunkname][$thisindex]) && empty($RIFFchunk[$chunkname][$thisindex])) {
1689
- unset($RIFFchunk[$chunkname][$thisindex]);
1690
- }
1691
- if (isset($RIFFchunk[$chunkname]) && empty($RIFFchunk[$chunkname])) {
1692
- unset($RIFFchunk[$chunkname]);
1693
- }
1694
- $RIFFchunk[$LISTchunkParent][$chunkname][$thisindex]['data'] = $this->fread($chunksize);
1695
- } elseif ($chunksize < 2048) {
1696
- // only read data in if smaller than 2kB
1697
- $RIFFchunk[$chunkname][$thisindex]['data'] = $this->fread($chunksize);
1698
- } else {
1699
- $this->fseek($chunksize, SEEK_CUR);
1700
- }
1701
- break;
1702
- }
1703
- break;
1704
- }
1705
- }
1706
-
1707
- } catch (getid3_exception $e) {
1708
- if ($e->getCode() == 10) {
1709
- $this->warning('RIFF parser: '.$e->getMessage());
1710
- } else {
1711
- throw $e;
1712
- }
1713
- }
1714
-
1715
- return $RIFFchunk;
1716
- }
1717
-
1718
- public function ParseRIFFdata(&$RIFFdata) {
1719
- $info = &$this->getid3->info;
1720
- if ($RIFFdata) {
1721
- $tempfile = tempnam(GETID3_TEMP_DIR, 'getID3');
1722
- $fp_temp = fopen($tempfile, 'wb');
1723
- $RIFFdataLength = strlen($RIFFdata);
1724
- $NewLengthString = getid3_lib::LittleEndian2String($RIFFdataLength, 4);
1725
- for ($i = 0; $i < 4; $i++) {
1726
- $RIFFdata[($i + 4)] = $NewLengthString[$i];
1727
- }
1728
- fwrite($fp_temp, $RIFFdata);
1729
- fclose($fp_temp);
1730
-
1731
- $getid3_temp = new getID3();
1732
- $getid3_temp->openfile($tempfile);
1733
- $getid3_temp->info['filesize'] = $RIFFdataLength;
1734
- $getid3_temp->info['filenamepath'] = $info['filenamepath'];
1735
- $getid3_temp->info['tags'] = $info['tags'];
1736
- $getid3_temp->info['warning'] = $info['warning'];
1737
- $getid3_temp->info['error'] = $info['error'];
1738
- $getid3_temp->info['comments'] = $info['comments'];
1739
- $getid3_temp->info['audio'] = (isset($info['audio']) ? $info['audio'] : array());
1740
- $getid3_temp->info['video'] = (isset($info['video']) ? $info['video'] : array());
1741
- $getid3_riff = new getid3_riff($getid3_temp);
1742
- $getid3_riff->Analyze();
1743
-
1744
- $info['riff'] = $getid3_temp->info['riff'];
1745
- $info['warning'] = $getid3_temp->info['warning'];
1746
- $info['error'] = $getid3_temp->info['error'];
1747
- $info['tags'] = $getid3_temp->info['tags'];
1748
- $info['comments'] = $getid3_temp->info['comments'];
1749
- unset($getid3_riff, $getid3_temp);
1750
- unlink($tempfile);
1751
- }
1752
- return false;
1753
- }
1754
-
1755
- public static function parseComments(&$RIFFinfoArray, &$CommentsTargetArray) {
1756
- $RIFFinfoKeyLookup = array(
1757
- 'IARL'=>'archivallocation',
1758
- 'IART'=>'artist',
1759
- 'ICDS'=>'costumedesigner',
1760
- 'ICMS'=>'commissionedby',
1761
- 'ICMT'=>'comment',
1762
- 'ICNT'=>'country',
1763
- 'ICOP'=>'copyright',
1764
- 'ICRD'=>'creationdate',
1765
- 'IDIM'=>'dimensions',
1766
- 'IDIT'=>'digitizationdate',
1767
- 'IDPI'=>'resolution',
1768
- 'IDST'=>'distributor',
1769
- 'IEDT'=>'editor',
1770
- 'IENG'=>'engineers',
1771
- 'IFRM'=>'accountofparts',
1772
- 'IGNR'=>'genre',
1773
- 'IKEY'=>'keywords',
1774
- 'ILGT'=>'lightness',
1775
- 'ILNG'=>'language',
1776
- 'IMED'=>'orignalmedium',
1777
- 'IMUS'=>'composer',
1778
- 'INAM'=>'title',
1779
- 'IPDS'=>'productiondesigner',
1780
- 'IPLT'=>'palette',
1781
- 'IPRD'=>'product',
1782
- 'IPRO'=>'producer',
1783
- 'IPRT'=>'part',
1784
- 'IRTD'=>'rating',
1785
- 'ISBJ'=>'subject',
1786
- 'ISFT'=>'software',
1787
- 'ISGN'=>'secondarygenre',
1788
- 'ISHP'=>'sharpness',
1789
- 'ISRC'=>'sourcesupplier',
1790
- 'ISRF'=>'digitizationsource',
1791
- 'ISTD'=>'productionstudio',
1792
- 'ISTR'=>'starring',
1793
- 'ITCH'=>'encoded_by',
1794
- 'IWEB'=>'url',
1795
- 'IWRI'=>'writer',
1796
- '____'=>'comment',
1797
- );
1798
- foreach ($RIFFinfoKeyLookup as $key => $value) {
1799
- if (isset($RIFFinfoArray[$key])) {
1800
- foreach ($RIFFinfoArray[$key] as $commentid => $commentdata) {
1801
- if (trim($commentdata['data']) != '') {
1802
- if (isset($CommentsTargetArray[$value])) {
1803
- $CommentsTargetArray[$value][] = trim($commentdata['data']);
1804
- } else {
1805
- $CommentsTargetArray[$value] = array(trim($commentdata['data']));
1806
- }
1807
- }
1808
- }
1809
- }
1810
- }
1811
- return true;
1812
- }
1813
-
1814
- public static function parseWAVEFORMATex($WaveFormatExData) {
1815
- // shortcut
1816
- $WaveFormatEx['raw'] = array();
1817
- $WaveFormatEx_raw = &$WaveFormatEx['raw'];
1818
-
1819
- $WaveFormatEx_raw['wFormatTag'] = substr($WaveFormatExData, 0, 2);
1820
- $WaveFormatEx_raw['nChannels'] = substr($WaveFormatExData, 2, 2);
1821
- $WaveFormatEx_raw['nSamplesPerSec'] = substr($WaveFormatExData, 4, 4);
1822
- $WaveFormatEx_raw['nAvgBytesPerSec'] = substr($WaveFormatExData, 8, 4);
1823
- $WaveFormatEx_raw['nBlockAlign'] = substr($WaveFormatExData, 12, 2);
1824
- $WaveFormatEx_raw['wBitsPerSample'] = substr($WaveFormatExData, 14, 2);
1825
- if (strlen($WaveFormatExData) > 16) {
1826
- $WaveFormatEx_raw['cbSize'] = substr($WaveFormatExData, 16, 2);
1827
- }
1828
- $WaveFormatEx_raw = array_map('getid3_lib::LittleEndian2Int', $WaveFormatEx_raw);
1829
-
1830
- $WaveFormatEx['codec'] = self::wFormatTagLookup($WaveFormatEx_raw['wFormatTag']);
1831
- $WaveFormatEx['channels'] = $WaveFormatEx_raw['nChannels'];
1832
- $WaveFormatEx['sample_rate'] = $WaveFormatEx_raw['nSamplesPerSec'];
1833
- $WaveFormatEx['bitrate'] = $WaveFormatEx_raw['nAvgBytesPerSec'] * 8;
1834
- $WaveFormatEx['bits_per_sample'] = $WaveFormatEx_raw['wBitsPerSample'];
1835
-
1836
- return $WaveFormatEx;
1837
- }
1838
-
1839
- public function parseWavPackHeader($WavPackChunkData) {
1840
- // typedef struct {
1841
- // char ckID [4];
1842
- // long ckSize;
1843
- // short version;
1844
- // short bits; // added for version 2.00
1845
- // short flags, shift; // added for version 3.00
1846
- // long total_samples, crc, crc2;
1847
- // char extension [4], extra_bc, extras [3];
1848
- // } WavpackHeader;
1849
-
1850
- // shortcut
1851
- $info = &$this->getid3->info;
1852
- $info['wavpack'] = array();
1853
- $thisfile_wavpack = &$info['wavpack'];
1854
-
1855
- $thisfile_wavpack['version'] = getid3_lib::LittleEndian2Int(substr($WavPackChunkData, 0, 2));
1856
- if ($thisfile_wavpack['version'] >= 2) {
1857
- $thisfile_wavpack['bits'] = getid3_lib::LittleEndian2Int(substr($WavPackChunkData, 2, 2));
1858
- }
1859
- if ($thisfile_wavpack['version'] >= 3) {
1860
- $thisfile_wavpack['flags_raw'] = getid3_lib::LittleEndian2Int(substr($WavPackChunkData, 4, 2));
1861
- $thisfile_wavpack['shift'] = getid3_lib::LittleEndian2Int(substr($WavPackChunkData, 6, 2));
1862
- $thisfile_wavpack['total_samples'] = getid3_lib::LittleEndian2Int(substr($WavPackChunkData, 8, 4));
1863
- $thisfile_wavpack['crc1'] = getid3_lib::LittleEndian2Int(substr($WavPackChunkData, 12, 4));
1864
- $thisfile_wavpack['crc2'] = getid3_lib::LittleEndian2Int(substr($WavPackChunkData, 16, 4));
1865
- $thisfile_wavpack['extension'] = substr($WavPackChunkData, 20, 4);
1866
- $thisfile_wavpack['extra_bc'] = getid3_lib::LittleEndian2Int(substr($WavPackChunkData, 24, 1));
1867
- for ($i = 0; $i <= 2; $i++) {
1868
- $thisfile_wavpack['extras'][] = getid3_lib::LittleEndian2Int(substr($WavPackChunkData, 25 + $i, 1));
1869
- }
1870
-
1871
- // shortcut
1872
- $thisfile_wavpack['flags'] = array();
1873
- $thisfile_wavpack_flags = &$thisfile_wavpack['flags'];
1874
-
1875
- $thisfile_wavpack_flags['mono'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x000001);
1876
- $thisfile_wavpack_flags['fast_mode'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x000002);
1877
- $thisfile_wavpack_flags['raw_mode'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x000004);
1878
- $thisfile_wavpack_flags['calc_noise'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x000008);
1879
- $thisfile_wavpack_flags['high_quality'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x000010);
1880
- $thisfile_wavpack_flags['3_byte_samples'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x000020);
1881
- $thisfile_wavpack_flags['over_20_bits'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x000040);
1882
- $thisfile_wavpack_flags['use_wvc'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x000080);
1883
- $thisfile_wavpack_flags['noiseshaping'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x000100);
1884
- $thisfile_wavpack_flags['very_fast_mode'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x000200);
1885
- $thisfile_wavpack_flags['new_high_quality'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x000400);
1886
- $thisfile_wavpack_flags['cancel_extreme'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x000800);
1887
- $thisfile_wavpack_flags['cross_decorrelation'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x001000);
1888
- $thisfile_wavpack_flags['new_decorrelation'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x002000);
1889
- $thisfile_wavpack_flags['joint_stereo'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x004000);
1890
- $thisfile_wavpack_flags['extra_decorrelation'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x008000);
1891
- $thisfile_wavpack_flags['override_noiseshape'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x010000);
1892
- $thisfile_wavpack_flags['override_jointstereo'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x020000);
1893
- $thisfile_wavpack_flags['copy_source_filetime'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x040000);
1894
- $thisfile_wavpack_flags['create_exe'] = (bool) ($thisfile_wavpack['flags_raw'] & 0x080000);
1895
- }
1896
-
1897
- return true;
1898
- }
1899
-
1900
- public static function ParseBITMAPINFOHEADER($BITMAPINFOHEADER, $littleEndian=true) {
1901
-
1902
- $parsed['biSize'] = substr($BITMAPINFOHEADER, 0, 4); // number of bytes required by the BITMAPINFOHEADER structure
1903
- $parsed['biWidth'] = substr($BITMAPINFOHEADER, 4, 4); // width of the bitmap in pixels
1904
- $parsed['biHeight'] = substr($BITMAPINFOHEADER, 8, 4); // height of the bitmap in pixels. If biHeight is positive, the bitmap is a 'bottom-up' DIB and its origin is the lower left corner. If biHeight is negative, the bitmap is a 'top-down' DIB and its origin is the upper left corner
1905
- $parsed['biPlanes'] = substr($BITMAPINFOHEADER, 12, 2); // number of color planes on the target device. In most cases this value must be set to 1
1906
- $parsed['biBitCount'] = substr($BITMAPINFOHEADER, 14, 2); // Specifies the number of bits per pixels
1907
- $parsed['biSizeImage'] = substr($BITMAPINFOHEADER, 20, 4); // size of the bitmap data section of the image (the actual pixel data, excluding BITMAPINFOHEADER and RGBQUAD structures)
1908
- $parsed['biXPelsPerMeter'] = substr($BITMAPINFOHEADER, 24, 4); // horizontal resolution, in pixels per metre, of the target device
1909
- $parsed['biYPelsPerMeter'] = substr($BITMAPINFOHEADER, 28, 4); // vertical resolution, in pixels per metre, of the target device
1910
- $parsed['biClrUsed'] = substr($BITMAPINFOHEADER, 32, 4); // actual number of color indices in the color table used by the bitmap. If this value is zero, the bitmap uses the maximum number of colors corresponding to the value of the biBitCount member for the compression mode specified by biCompression
1911
- $parsed['biClrImportant'] = substr($BITMAPINFOHEADER, 36, 4); // number of color indices that are considered important for displaying the bitmap. If this value is zero, all colors are important
1912
- $parsed = array_map('getid3_lib::'.($littleEndian ? 'Little' : 'Big').'Endian2Int', $parsed);
1913
-
1914
- $parsed['fourcc'] = substr($BITMAPINFOHEADER, 16, 4); // compression identifier
1915
-
1916
- return $parsed;
1917
- }
1918
-
1919
- public static function ParseDIVXTAG($DIVXTAG, $raw=false) {
1920
- // structure from "IDivX" source, Form1.frm, by "Greg Frazier of Daemonic Software Group", email: gfrazier@icestorm.net, web: http://dsg.cjb.net/
1921
- // source available at http://files.divx-digest.com/download/c663efe7ef8ad2e90bf4af4d3ea6188a/on0SWN2r/edit/IDivX.zip
1922
- // 'Byte Layout: '1111111111111111
1923
- // '32 for Movie - 1 '1111111111111111
1924
- // '28 for Author - 6 '6666666666666666
1925
- // '4 for year - 2 '6666666666662222
1926
- // '3 for genre - 3 '7777777777777777
1927
- // '48 for Comments - 7 '7777777777777777
1928
- // '1 for Rating - 4 '7777777777777777
1929
- // '5 for Future Additions - 0 '333400000DIVXTAG
1930
- // '128 bytes total
1931
-
1932
- static $DIVXTAGgenre = array(
1933
- 0 => 'Action',
1934
- 1 => 'Action/Adventure',
1935
- 2 => 'Adventure',
1936
- 3 => 'Adult',
1937
- 4 => 'Anime',
1938
- 5 => 'Cartoon',
1939
- 6 => 'Claymation',
1940
- 7 => 'Comedy',
1941
- 8 => 'Commercial',
1942
- 9 => 'Documentary',
1943
- 10 => 'Drama',
1944
- 11 => 'Home Video',
1945
- 12 => 'Horror',
1946
- 13 => 'Infomercial',
1947
- 14 => 'Interactive',
1948
- 15 => 'Mystery',
1949
- 16 => 'Music Video',
1950
- 17 => 'Other',
1951
- 18 => 'Religion',
1952
- 19 => 'Sci Fi',
1953
- 20 => 'Thriller',
1954
- 21 => 'Western',
1955
- ),
1956
- $DIVXTAGrating = array(
1957
- 0 => 'Unrated',
1958
- 1 => 'G',
1959
- 2 => 'PG',
1960
- 3 => 'PG-13',
1961
- 4 => 'R',
1962
- 5 => 'NC-17',
1963
- );
1964
-
1965
- $parsed['title'] = trim(substr($DIVXTAG, 0, 32));
1966
- $parsed['artist'] = trim(substr($DIVXTAG, 32, 28));
1967
- $parsed['year'] = intval(trim(substr($DIVXTAG, 60, 4)));
1968
- $parsed['comment'] = trim(substr($DIVXTAG, 64, 48));
1969
- $parsed['genre_id'] = intval(trim(substr($DIVXTAG, 112, 3)));
1970
- $parsed['rating_id'] = ord(substr($DIVXTAG, 115, 1));
1971
- //$parsed['padding'] = substr($DIVXTAG, 116, 5); // 5-byte null
1972
- //$parsed['magic'] = substr($DIVXTAG, 121, 7); // "DIVXTAG"
1973
-
1974
- $parsed['genre'] = (isset($DIVXTAGgenre[$parsed['genre_id']]) ? $DIVXTAGgenre[$parsed['genre_id']] : $parsed['genre_id']);
1975
- $parsed['rating'] = (isset($DIVXTAGrating[$parsed['rating_id']]) ? $DIVXTAGrating[$parsed['rating_id']] : $parsed['rating_id']);
1976
-
1977
- if (!$raw) {
1978
- unset($parsed['genre_id'], $parsed['rating_id']);
1979
- foreach ($parsed as $key => $value) {
1980
- if (!$value === '') {
1981
- unset($parsed['key']);
1982
- }
1983
- }
1984
- }
1985
-
1986
- foreach ($parsed as $tag => $value) {
1987
- $parsed[$tag] = array($value);
1988
- }
1989
-
1990
- return $parsed;
1991
- }
1992
-
1993
- public static function waveSNDMtagLookup($tagshortname) {
1994
- $begin = __LINE__;
1995
-
1996
- /** This is not a comment!
1997
-
1998
- ©kwd keywords
1999
- ©BPM bpm
2000
- ©trt tracktitle
2001
- ©des description
2002
- ©gen category
2003
- ©fin featuredinstrument
2004
- ©LID longid
2005
- ©bex bwdescription
2006
- ©pub publisher
2007
- ©cdt cdtitle
2008
- ©alb library
2009
- ©com composer
2010
-
2011
- */
2012
-
2013
- return getid3_lib::EmbeddedLookup($tagshortname, $begin, __LINE__, __FILE__, 'riff-sndm');
2014
- }
2015
-
2016
- public static function wFormatTagLookup($wFormatTag) {
2017
-
2018
- $begin = __LINE__;
2019
-
2020
- /** This is not a comment!
2021
-
2022
- 0x0000 Microsoft Unknown Wave Format
2023
- 0x0001 Pulse Code Modulation (PCM)
2024
- 0x0002 Microsoft ADPCM
2025
- 0x0003 IEEE Float
2026
- 0x0004 Compaq Computer VSELP
2027
- 0x0005 IBM CVSD
2028
- 0x0006 Microsoft A-Law
2029
- 0x0007 Microsoft mu-Law
2030
- 0x0008 Microsoft DTS
2031
- 0x0010 OKI ADPCM
2032
- 0x0011 Intel DVI/IMA ADPCM
2033
- 0x0012 Videologic MediaSpace ADPCM
2034
- 0x0013 Sierra Semiconductor ADPCM
2035
- 0x0014 Antex Electronics G.723 ADPCM
2036
- 0x0015 DSP Solutions DigiSTD
2037
- 0x0016 DSP Solutions DigiFIX
2038
- 0x0017 Dialogic OKI ADPCM
2039
- 0x0018 MediaVision ADPCM
2040
- 0x0019 Hewlett-Packard CU
2041
- 0x0020 Yamaha ADPCM
2042
- 0x0021 Speech Compression Sonarc
2043
- 0x0022 DSP Group TrueSpeech
2044
- 0x0023 Echo Speech EchoSC1
2045
- 0x0024 Audiofile AF36
2046
- 0x0025 Audio Processing Technology APTX
2047
- 0x0026 AudioFile AF10
2048
- 0x0027 Prosody 1612
2049
- 0x0028 LRC
2050
- 0x0030 Dolby AC2
2051
- 0x0031 Microsoft GSM 6.10
2052
- 0x0032 MSNAudio
2053
- 0x0033 Antex Electronics ADPCME
2054
- 0x0034 Control Resources VQLPC
2055
- 0x0035 DSP Solutions DigiREAL
2056
- 0x0036 DSP Solutions DigiADPCM
2057
- 0x0037 Control Resources CR10
2058
- 0x0038 Natural MicroSystems VBXADPCM
2059
- 0x0039 Crystal Semiconductor IMA ADPCM
2060
- 0x003A EchoSC3
2061
- 0x003B Rockwell ADPCM
2062
- 0x003C Rockwell Digit LK
2063
- 0x003D Xebec
2064
- 0x0040 Antex Electronics G.721 ADPCM
2065
- 0x0041 G.728 CELP
2066
- 0x0042 MSG723
2067
- 0x0050 MPEG Layer-2 or Layer-1
2068
- 0x0052 RT24
2069
- 0x0053 PAC
2070
- 0x0055 MPEG Layer-3
2071
- 0x0059 Lucent G.723
2072
- 0x0060 Cirrus
2073
- 0x0061 ESPCM
2074
- 0x0062 Voxware
2075
- 0x0063 Canopus Atrac
2076
- 0x0064 G.726 ADPCM
2077
- 0x0065 G.722 ADPCM
2078
- 0x0066 DSAT
2079
- 0x0067 DSAT Display
2080
- 0x0069 Voxware Byte Aligned
2081
- 0x0070 Voxware AC8
2082
- 0x0071 Voxware AC10
2083
- 0x0072 Voxware AC16
2084
- 0x0073 Voxware AC20
2085
- 0x0074 Voxware MetaVoice
2086
- 0x0075 Voxware MetaSound
2087
- 0x0076 Voxware RT29HW
2088
- 0x0077 Voxware VR12
2089
- 0x0078 Voxware VR18
2090
- 0x0079 Voxware TQ40
2091
- 0x0080 Softsound
2092
- 0x0081 Voxware TQ60
2093
- 0x0082 MSRT24
2094
- 0x0083 G.729A
2095
- 0x0084 MVI MV12
2096
- 0x0085 DF G.726
2097
- 0x0086 DF GSM610
2098
- 0x0088 ISIAudio
2099
- 0x0089 Onlive
2100
- 0x0091 SBC24
2101
- 0x0092 Dolby AC3 SPDIF
2102
- 0x0093 MediaSonic G.723
2103
- 0x0094 Aculab PLC Prosody 8kbps
2104
- 0x0097 ZyXEL ADPCM
2105
- 0x0098 Philips LPCBB
2106
- 0x0099 Packed
2107
- 0x00FF AAC
2108
- 0x0100 Rhetorex ADPCM
2109
- 0x0101 IBM mu-law
2110
- 0x0102 IBM A-law
2111
- 0x0103 IBM AVC Adaptive Differential Pulse Code Modulation (ADPCM)
2112
- 0x0111 Vivo G.723
2113
- 0x0112 Vivo Siren
2114
- 0x0123 Digital G.723
2115
- 0x0125 Sanyo LD ADPCM
2116
- 0x0130 Sipro Lab Telecom ACELP NET
2117
- 0x0131 Sipro Lab Telecom ACELP 4800
2118
- 0x0132 Sipro Lab Telecom ACELP 8V3
2119
- 0x0133 Sipro Lab Telecom G.729
2120
- 0x0134 Sipro Lab Telecom G.729A
2121
- 0x0135 Sipro Lab Telecom Kelvin
2122
- 0x0140 Windows Media Video V8
2123
- 0x0150 Qualcomm PureVoice
2124
- 0x0151 Qualcomm HalfRate
2125
- 0x0155 Ring Zero Systems TUB GSM
2126
- 0x0160 Microsoft Audio 1
2127
- 0x0161 Windows Media Audio V7 / V8 / V9
2128
- 0x0162 Windows Media Audio Professional V9
2129
- 0x0163 Windows Media Audio Lossless V9
2130
- 0x0200 Creative Labs ADPCM
2131
- 0x0202 Creative Labs Fastspeech8
2132
- 0x0203 Creative Labs Fastspeech10
2133
- 0x0210 UHER Informatic GmbH ADPCM
2134
- 0x0220 Quarterdeck
2135
- 0x0230 I-link Worldwide VC
2136
- 0x0240 Aureal RAW Sport
2137
- 0x0250 Interactive Products HSX
2138
- 0x0251 Interactive Products RPELP
2139
- 0x0260 Consistent Software CS2
2140
- 0x0270 Sony SCX
2141
- 0x0300 Fujitsu FM Towns Snd
2142
- 0x0400 BTV Digital
2143
- 0x0401 Intel Music Coder
2144
- 0x0450 QDesign Music
2145
- 0x0680 VME VMPCM
2146
- 0x0681 AT&T Labs TPC
2147
- 0x08AE ClearJump LiteWave
2148
- 0x1000 Olivetti GSM
2149
- 0x1001 Olivetti ADPCM
2150
- 0x1002 Olivetti CELP
2151
- 0x1003 Olivetti SBC
2152
- 0x1004 Olivetti OPR
2153
- 0x1100 Lernout & Hauspie Codec (0x1100)
2154
- 0x1101 Lernout & Hauspie CELP Codec (0x1101)
2155
- 0x1102 Lernout & Hauspie SBC Codec (0x1102)
2156
- 0x1103 Lernout & Hauspie SBC Codec (0x1103)
2157
- 0x1104 Lernout & Hauspie SBC Codec (0x1104)
2158
- 0x1400 Norris
2159
- 0x1401 AT&T ISIAudio
2160
- 0x1500 Soundspace Music Compression
2161
- 0x181C VoxWare RT24 Speech
2162
- 0x1FC4 NCT Soft ALF2CD (www.nctsoft.com)
2163
- 0x2000 Dolby AC3
2164
- 0x2001 Dolby DTS
2165
- 0x2002 WAVE_FORMAT_14_4
2166
- 0x2003 WAVE_FORMAT_28_8
2167
- 0x2004 WAVE_FORMAT_COOK
2168
- 0x2005 WAVE_FORMAT_DNET
2169
- 0x674F Ogg Vorbis 1
2170
- 0x6750 Ogg Vorbis 2
2171
- 0x6751 Ogg Vorbis 3
2172
- 0x676F Ogg Vorbis 1+
2173
- 0x6770 Ogg Vorbis 2+
2174
- 0x6771 Ogg Vorbis 3+
2175
- 0x7A21 GSM-AMR (CBR, no SID)
2176
- 0x7A22 GSM-AMR (VBR, including SID)
2177
- 0xFFFE WAVE_FORMAT_EXTENSIBLE
2178
- 0xFFFF WAVE_FORMAT_DEVELOPMENT
2179
-
2180
- */
2181
-
2182
- return getid3_lib::EmbeddedLookup('0x'.str_pad(strtoupper(dechex($wFormatTag)), 4, '0', STR_PAD_LEFT), $begin, __LINE__, __FILE__, 'riff-wFormatTag');
2183
- }
2184
-
2185
- public static function fourccLookup($fourcc) {
2186
-
2187
- $begin = __LINE__;
2188
-
2189
- /** This is not a comment!
2190
-
2191
- swot http://developer.apple.com/qa/snd/snd07.html
2192
- ____ No Codec (____)
2193
- _BIT BI_BITFIELDS (Raw RGB)
2194
- _JPG JPEG compressed
2195
- _PNG PNG compressed W3C/ISO/IEC (RFC-2083)
2196
- _RAW Full Frames (Uncompressed)
2197
- _RGB Raw RGB Bitmap
2198
- _RL4 RLE 4bpp RGB
2199
- _RL8 RLE 8bpp RGB
2200
- 3IV1 3ivx MPEG-4 v1
2201
- 3IV2 3ivx MPEG-4 v2
2202
- 3IVX 3ivx MPEG-4
2203
- AASC Autodesk Animator
2204
- ABYR Kensington ?ABYR?
2205
- AEMI Array Microsystems VideoONE MPEG1-I Capture
2206
- AFLC Autodesk Animator FLC
2207
- AFLI Autodesk Animator FLI
2208
- AMPG Array Microsystems VideoONE MPEG
2209
- ANIM Intel RDX (ANIM)
2210
- AP41 AngelPotion Definitive
2211
- ASV1 Asus Video v1
2212
- ASV2 Asus Video v2
2213
- ASVX Asus Video 2.0 (audio)
2214
- AUR2 AuraVision Aura 2 Codec - YUV 4:2:2
2215
- AURA AuraVision Aura 1 Codec - YUV 4:1:1
2216
- AVDJ Independent JPEG Group\'s codec (AVDJ)
2217
- AVRN Independent JPEG Group\'s codec (AVRN)
2218
- AYUV 4:4:4 YUV (AYUV)
2219
- AZPR Quicktime Apple Video (AZPR)
2220
- BGR Raw RGB32
2221
- BLZ0 Blizzard DivX MPEG-4
2222
- BTVC Conexant Composite Video
2223
- BINK RAD Game Tools Bink Video
2224
- BT20 Conexant Prosumer Video
2225
- BTCV Conexant Composite Video Codec
2226
- BW10 Data Translation Broadway MPEG Capture
2227
- CC12 Intel YUV12
2228
- CDVC Canopus DV
2229
- CFCC Digital Processing Systems DPS Perception
2230
- CGDI Microsoft Office 97 Camcorder Video
2231
- CHAM Winnov Caviara Champagne
2232
- CJPG Creative WebCam JPEG
2233
- CLJR Cirrus Logic YUV 4:1:1
2234
- CMYK Common Data Format in Printing (Colorgraph)
2235
- CPLA Weitek 4:2:0 YUV Planar
2236
- CRAM Microsoft Video 1 (CRAM)
2237
- cvid Radius Cinepak
2238
- CVID Radius Cinepak
2239
- CWLT Microsoft Color WLT DIB
2240
- CYUV Creative Labs YUV
2241
- CYUY ATI YUV
2242
- D261 H.261
2243
- D263 H.263
2244
- DIB Device Independent Bitmap
2245
- DIV1 FFmpeg OpenDivX
2246
- DIV2 Microsoft MPEG-4 v1/v2
2247
- DIV3 DivX ;-) MPEG-4 v3.x Low-Motion
2248
- DIV4 DivX ;-) MPEG-4 v3.x Fast-Motion
2249
- DIV5 DivX MPEG-4 v5.x
2250
- DIV6 DivX ;-) (MS MPEG-4 v3.x)
2251
- DIVX DivX MPEG-4 v4 (OpenDivX / Project Mayo)
2252
- divx DivX MPEG-4
2253
- DMB1 Matrox Rainbow Runner hardware MJPEG
2254
- DMB2 Paradigm MJPEG
2255
- DSVD ?DSVD?
2256
- DUCK Duck TrueMotion 1.0
2257
- DPS0 DPS/Leitch Reality Motion JPEG
2258
- DPSC DPS/Leitch PAR Motion JPEG
2259
- DV25 Matrox DVCPRO codec
2260
- DV50 Matrox DVCPRO50 codec
2261
- DVC IEC 61834 and SMPTE 314M (DVC/DV Video)
2262
- DVCP IEC 61834 and SMPTE 314M (DVC/DV Video)
2263
- DVHD IEC Standard DV 1125 lines @ 30fps / 1250 lines @ 25fps
2264
- DVMA Darim Vision DVMPEG (dummy for MPEG compressor) (www.darvision.com)
2265
- DVSL IEC Standard DV compressed in SD (SDL)
2266
- DVAN ?DVAN?
2267
- DVE2 InSoft DVE-2 Videoconferencing
2268
- dvsd IEC 61834 and SMPTE 314M DVC/DV Video
2269
- DVSD IEC 61834 and SMPTE 314M DVC/DV Video
2270
- DVX1 Lucent DVX1000SP Video Decoder
2271
- DVX2 Lucent DVX2000S Video Decoder
2272
- DVX3 Lucent DVX3000S Video Decoder
2273
- DX50 DivX v5
2274
- DXT1 Microsoft DirectX Compressed Texture (DXT1)
2275
- DXT2 Microsoft DirectX Compressed Texture (DXT2)
2276
- DXT3 Microsoft DirectX Compressed Texture (DXT3)
2277
- DXT4 Microsoft DirectX Compressed Texture (DXT4)
2278
- DXT5 Microsoft DirectX Compressed Texture (DXT5)
2279
- DXTC Microsoft DirectX Compressed Texture (DXTC)
2280
- DXTn Microsoft DirectX Compressed Texture (DXTn)
2281
- EM2V Etymonix MPEG-2 I-frame (www.etymonix.com)
2282
- EKQ0 Elsa ?EKQ0?
2283
- ELK0 Elsa ?ELK0?
2284
- ESCP Eidos Escape
2285
- ETV1 eTreppid Video ETV1
2286
- ETV2 eTreppid Video ETV2
2287
- ETVC eTreppid Video ETVC
2288
- FLIC Autodesk FLI/FLC Animation
2289
- FLV1 Sorenson Spark
2290
- FLV4 On2 TrueMotion VP6
2291
- FRWT Darim Vision Forward Motion JPEG (www.darvision.com)
2292
- FRWU Darim Vision Forward Uncompressed (www.darvision.com)
2293
- FLJP D-Vision Field Encoded Motion JPEG
2294
- FPS1 FRAPS v1
2295
- FRWA SoftLab-Nsk Forward Motion JPEG w/ alpha channel
2296
- FRWD SoftLab-Nsk Forward Motion JPEG
2297
- FVF1 Iterated Systems Fractal Video Frame
2298
- GLZW Motion LZW (gabest@freemail.hu)
2299
- GPEG Motion JPEG (gabest@freemail.hu)
2300
- GWLT Microsoft Greyscale WLT DIB
2301
- H260 Intel ITU H.260 Videoconferencing
2302
- H261 Intel ITU H.261 Videoconferencing
2303
- H262 Intel ITU H.262 Videoconferencing
2304
- H263 Intel ITU H.263 Videoconferencing
2305
- H264 Intel ITU H.264 Videoconferencing
2306
- H265 Intel ITU H.265 Videoconferencing
2307
- H266 Intel ITU H.266 Videoconferencing
2308
- H267 Intel ITU H.267 Videoconferencing
2309
- H268 Intel ITU H.268 Videoconferencing
2310
- H269 Intel ITU H.269 Videoconferencing
2311
- HFYU Huffman Lossless Codec
2312
- HMCR Rendition Motion Compensation Format (HMCR)
2313
- HMRR Rendition Motion Compensation Format (HMRR)
2314
- I263 FFmpeg I263 decoder
2315
- IF09 Indeo YVU9 ("YVU9 with additional delta-frame info after the U plane")
2316
- IUYV Interlaced version of UYVY (www.leadtools.com)
2317
- IY41 Interlaced version of Y41P (www.leadtools.com)
2318
- IYU1 12 bit format used in mode 2 of the IEEE 1394 Digital Camera 1.04 spec IEEE standard
2319
- IYU2 24 bit format used in mode 2 of the IEEE 1394 Digital Camera 1.04 spec IEEE standard
2320
- IYUV Planar YUV format (8-bpp Y plane, followed by 8-bpp 2×2 U and V planes)
2321
- i263 Intel ITU H.263 Videoconferencing (i263)
2322
- I420 Intel Indeo 4
2323
- IAN Intel Indeo 4 (RDX)
2324
- ICLB InSoft CellB Videoconferencing
2325
- IGOR Power DVD
2326
- IJPG Intergraph JPEG
2327
- ILVC Intel Layered Video
2328
- ILVR ITU-T H.263+
2329
- IPDV I-O Data Device Giga AVI DV Codec
2330
- IR21 Intel Indeo 2.1
2331
- IRAW Intel YUV Uncompressed
2332
- IV30 Intel Indeo 3.0
2333
- IV31 Intel Indeo 3.1
2334
- IV32 Ligos Indeo 3.2
2335
- IV33 Ligos Indeo 3.3
2336
- IV34 Ligos Indeo 3.4
2337
- IV35 Ligos Indeo 3.5
2338
- IV36 Ligos Indeo 3.6
2339
- IV37 Ligos Indeo 3.7
2340
- IV38 Ligos Indeo 3.8
2341
- IV39 Ligos Indeo 3.9
2342
- IV40 Ligos Indeo Interactive 4.0
2343
- IV41 Ligos Indeo Interactive 4.1
2344
- IV42 Ligos Indeo Interactive 4.2
2345
- IV43 Ligos Indeo Interactive 4.3
2346
- IV44 Ligos Indeo Interactive 4.4
2347
- IV45 Ligos Indeo Interactive 4.5
2348
- IV46 Ligos Indeo Interactive 4.6
2349
- IV47 Ligos Indeo Interactive 4.7
2350
- IV48 Ligos Indeo Interactive 4.8
2351
- IV49 Ligos Indeo Interactive 4.9
2352
- IV50 Ligos Indeo Interactive 5.0
2353
- JBYR Kensington ?JBYR?
2354
- JPEG Still Image JPEG DIB
2355
- JPGL Pegasus Lossless Motion JPEG
2356
- KMVC Team17 Software Karl Morton\'s Video Codec
2357
- LSVM Vianet Lighting Strike Vmail (Streaming) (www.vianet.com)
2358
- LEAD LEAD Video Codec
2359
- Ljpg LEAD MJPEG Codec
2360
- MDVD Alex MicroDVD Video (hacked MS MPEG-4) (www.tiasoft.de)
2361
- MJPA Morgan Motion JPEG (MJPA) (www.morgan-multimedia.com)
2362
- MJPB Morgan Motion JPEG (MJPB) (www.morgan-multimedia.com)
2363
- MMES Matrox MPEG-2 I-frame
2364
- MP2v Microsoft S-Mpeg 4 version 1 (MP2v)
2365
- MP42 Microsoft S-Mpeg 4 version 2 (MP42)
2366
- MP43 Microsoft S-Mpeg 4 version 3 (MP43)
2367
- MP4S Microsoft S-Mpeg 4 version 3 (MP4S)
2368
- MP4V FFmpeg MPEG-4
2369
- MPG1 FFmpeg MPEG 1/2
2370
- MPG2 FFmpeg MPEG 1/2
2371
- MPG3 FFmpeg DivX ;-) (MS MPEG-4 v3)
2372
- MPG4 Microsoft MPEG-4
2373
- MPGI Sigma Designs MPEG
2374
- MPNG PNG images decoder
2375
- MSS1 Microsoft Windows Screen Video
2376
- MSZH LCL (Lossless Codec Library) (www.geocities.co.jp/Playtown-Denei/2837/LRC.htm)
2377
- M261 Microsoft H.261
2378
- M263 Microsoft H.263
2379
- M4S2 Microsoft Fully Compliant MPEG-4 v2 simple profile (M4S2)
2380
- m4s2 Microsoft Fully Compliant MPEG-4 v2 simple profile (m4s2)
2381
- MC12 ATI Motion Compensation Format (MC12)
2382
- MCAM ATI Motion Compensation Format (MCAM)
2383
- MJ2C Morgan Multimedia Motion JPEG2000
2384
- mJPG IBM Motion JPEG w/ Huffman Tables
2385
- MJPG Microsoft Motion JPEG DIB
2386
- MP42 Microsoft MPEG-4 (low-motion)
2387
- MP43 Microsoft MPEG-4 (fast-motion)
2388
- MP4S Microsoft MPEG-4 (MP4S)
2389
- mp4s Microsoft MPEG-4 (mp4s)
2390
- MPEG Chromatic Research MPEG-1 Video I-Frame
2391
- MPG4 Microsoft MPEG-4 Video High Speed Compressor
2392
- MPGI Sigma Designs MPEG
2393
- MRCA FAST Multimedia Martin Regen Codec
2394
- MRLE Microsoft Run Length Encoding
2395
- MSVC Microsoft Video 1
2396
- MTX1 Matrox ?MTX1?
2397
- MTX2 Matrox ?MTX2?
2398
- MTX3 Matrox ?MTX3?
2399
- MTX4 Matrox ?MTX4?
2400
- MTX5 Matrox ?MTX5?
2401
- MTX6 Matrox ?MTX6?
2402
- MTX7 Matrox ?MTX7?
2403
- MTX8 Matrox ?MTX8?
2404
- MTX9 Matrox ?MTX9?
2405
- MV12 Motion Pixels Codec (old)
2406
- MWV1 Aware Motion Wavelets
2407
- nAVI SMR Codec (hack of Microsoft MPEG-4) (IRC #shadowrealm)
2408
- NT00 NewTek LightWave HDTV YUV w/ Alpha (www.newtek.com)
2409
- NUV1 NuppelVideo
2410
- NTN1 Nogatech Video Compression 1
2411
- NVS0 nVidia GeForce Texture (NVS0)
2412
- NVS1 nVidia GeForce Texture (NVS1)
2413
- NVS2 nVidia GeForce Texture (NVS2)
2414
- NVS3 nVidia GeForce Texture (NVS3)
2415
- NVS4 nVidia GeForce Texture (NVS4)
2416
- NVS5 nVidia GeForce Texture (NVS5)
2417
- NVT0 nVidia GeForce Texture (NVT0)
2418
- NVT1 nVidia GeForce Texture (NVT1)
2419
- NVT2 nVidia GeForce Texture (NVT2)
2420
- NVT3 nVidia GeForce Texture (NVT3)
2421
- NVT4 nVidia GeForce Texture (NVT4)
2422
- NVT5 nVidia GeForce Texture (NVT5)
2423
- PIXL MiroXL, Pinnacle PCTV
2424
- PDVC I-O Data Device Digital Video Capture DV codec
2425
- PGVV Radius Video Vision
2426
- PHMO IBM Photomotion
2427
- PIM1 MPEG Realtime (Pinnacle Cards)
2428
- PIM2 Pegasus Imaging ?PIM2?
2429
- PIMJ Pegasus Imaging Lossless JPEG
2430
- PVEZ Horizons Technology PowerEZ
2431
- PVMM PacketVideo Corporation MPEG-4
2432
- PVW2 Pegasus Imaging Wavelet Compression
2433
- Q1.0 Q-Team\'s QPEG 1.0 (www.q-team.de)
2434
- Q1.1 Q-Team\'s QPEG 1.1 (www.q-team.de)
2435
- QPEG Q-Team QPEG 1.0
2436
- qpeq Q-Team QPEG 1.1
2437
- RGB Raw BGR32
2438
- RGBA Raw RGB w/ Alpha
2439
- RMP4 REALmagic MPEG-4 (unauthorized XVID copy) (www.sigmadesigns.com)
2440
- ROQV Id RoQ File Video Decoder
2441
- RPZA Quicktime Apple Video (RPZA)
2442
- RUD0 Rududu video codec (http://rududu.ifrance.com/rududu/)
2443
- RV10 RealVideo 1.0 (aka RealVideo 5.0)
2444
- RV13 RealVideo 1.0 (RV13)
2445
- RV20 RealVideo G2
2446
- RV30 RealVideo 8
2447
- RV40 RealVideo 9
2448
- RGBT Raw RGB w/ Transparency
2449
- RLE Microsoft Run Length Encoder
2450
- RLE4 Run Length Encoded (4bpp, 16-color)
2451
- RLE8 Run Length Encoded (8bpp, 256-color)
2452
- RT21 Intel Indeo RealTime Video 2.1
2453
- rv20 RealVideo G2
2454
- rv30 RealVideo 8
2455
- RVX Intel RDX (RVX )
2456
- SMC Apple Graphics (SMC )
2457
- SP54 Logitech Sunplus Sp54 Codec for Mustek GSmart Mini 2
2458
- SPIG Radius Spigot
2459
- SVQ3 Sorenson Video 3 (Apple Quicktime 5)
2460
- s422 Tekram VideoCap C210 YUV 4:2:2
2461
- SDCC Sun Communication Digital Camera Codec
2462
- SFMC CrystalNet Surface Fitting Method
2463
- SMSC Radius SMSC
2464
- SMSD Radius SMSD
2465
- smsv WorldConnect Wavelet Video
2466
- SPIG Radius Spigot
2467
- SPLC Splash Studios ACM Audio Codec (www.splashstudios.net)
2468
- SQZ2 Microsoft VXTreme Video Codec V2
2469
- STVA ST Microelectronics CMOS Imager Data (Bayer)
2470
- STVB ST Microelectronics CMOS Imager Data (Nudged Bayer)
2471
- STVC ST Microelectronics CMOS Imager Data (Bunched)
2472
- STVX ST Microelectronics CMOS Imager Data (Extended CODEC Data Format)
2473
- STVY ST Microelectronics CMOS Imager Data (Extended CODEC Data Format with Correction Data)
2474
- SV10 Sorenson Video R1
2475
- SVQ1 Sorenson Video
2476
- T420 Toshiba YUV 4:2:0
2477
- TM2A Duck TrueMotion Archiver 2.0 (www.duck.com)
2478
- TVJP Pinnacle/Truevision Targa 2000 board (TVJP)
2479
- TVMJ Pinnacle/Truevision Targa 2000 board (TVMJ)
2480
- TY0N Tecomac Low-Bit Rate Codec (www.tecomac.com)
2481
- TY2C Trident Decompression Driver
2482
- TLMS TeraLogic Motion Intraframe Codec (TLMS)
2483
- TLST TeraLogic Motion Intraframe Codec (TLST)
2484
- TM20 Duck TrueMotion 2.0
2485
- TM2X Duck TrueMotion 2X
2486
- TMIC TeraLogic Motion Intraframe Codec (TMIC)
2487
- TMOT Horizons Technology TrueMotion S
2488
- tmot Horizons TrueMotion Video Compression
2489
- TR20 Duck TrueMotion RealTime 2.0
2490
- TSCC TechSmith Screen Capture Codec
2491
- TV10 Tecomac Low-Bit Rate Codec
2492
- TY2N Trident ?TY2N?
2493
- U263 UB Video H.263/H.263+/H.263++ Decoder
2494
- UMP4 UB Video MPEG 4 (www.ubvideo.com)
2495
- UYNV Nvidia UYVY packed 4:2:2
2496
- UYVP Evans & Sutherland YCbCr 4:2:2 extended precision
2497
- UCOD eMajix.com ClearVideo
2498
- ULTI IBM Ultimotion
2499
- UYVY UYVY packed 4:2:2
2500
- V261 Lucent VX2000S
2501
- VIFP VFAPI Reader Codec (www.yks.ne.jp/~hori/)
2502
- VIV1 FFmpeg H263+ decoder
2503
- VIV2 Vivo H.263
2504
- VQC2 Vector-quantised codec 2 (research) http://eprints.ecs.soton.ac.uk/archive/00001310/01/VTC97-js.pdf)
2505
- VTLP Alaris VideoGramPiX
2506
- VYU9 ATI YUV (VYU9)
2507
- VYUY ATI YUV (VYUY)
2508
- V261 Lucent VX2000S
2509
- V422 Vitec Multimedia 24-bit YUV 4:2:2 Format
2510
- V655 Vitec Multimedia 16-bit YUV 4:2:2 Format
2511
- VCR1 ATI Video Codec 1
2512
- VCR2 ATI Video Codec 2
2513
- VCR3 ATI VCR 3.0
2514
- VCR4 ATI VCR 4.0
2515
- VCR5 ATI VCR 5.0
2516
- VCR6 ATI VCR 6.0
2517
- VCR7 ATI VCR 7.0
2518
- VCR8 ATI VCR 8.0
2519
- VCR9 ATI VCR 9.0
2520
- VDCT Vitec Multimedia Video Maker Pro DIB
2521
- VDOM VDOnet VDOWave
2522
- VDOW VDOnet VDOLive (H.263)
2523
- VDTZ Darim Vison VideoTizer YUV
2524
- VGPX Alaris VideoGramPiX
2525
- VIDS Vitec Multimedia YUV 4:2:2 CCIR 601 for V422
2526
- VIVO Vivo H.263 v2.00
2527
- vivo Vivo H.263
2528
- VIXL Miro/Pinnacle Video XL
2529
- VLV1 VideoLogic/PURE Digital Videologic Capture
2530
- VP30 On2 VP3.0
2531
- VP31 On2 VP3.1
2532
- VP6F On2 TrueMotion VP6
2533
- VX1K Lucent VX1000S Video Codec
2534
- VX2K Lucent VX2000S Video Codec
2535
- VXSP Lucent VX1000SP Video Codec
2536
- WBVC Winbond W9960
2537
- WHAM Microsoft Video 1 (WHAM)
2538
- WINX Winnov Software Compression
2539
- WJPG AverMedia Winbond JPEG
2540
- WMV1 Windows Media Video V7
2541
- WMV2 Windows Media Video V8
2542
- WMV3 Windows Media Video V9
2543
- WNV1 Winnov Hardware Compression
2544
- XYZP Extended PAL format XYZ palette (www.riff.org)
2545
- x263 Xirlink H.263
2546
- XLV0 NetXL Video Decoder
2547
- XMPG Xing MPEG (I-Frame only)
2548
- XVID XviD MPEG-4 (www.xvid.org)
2549
- XXAN ?XXAN?
2550
- YU92 Intel YUV (YU92)
2551
- YUNV Nvidia Uncompressed YUV 4:2:2
2552
- YUVP Extended PAL format YUV palette (www.riff.org)
2553
- Y211 YUV 2:1:1 Packed
2554
- Y411 YUV 4:1:1 Packed
2555
- Y41B Weitek YUV 4:1:1 Planar
2556
- Y41P Brooktree PC1 YUV 4:1:1 Packed
2557
- Y41T Brooktree PC1 YUV 4:1:1 with transparency
2558
- Y42B Weitek YUV 4:2:2 Planar
2559
- Y42T Brooktree UYUV 4:2:2 with transparency
2560
- Y422 ADS Technologies Copy of UYVY used in Pyro WebCam firewire camera
2561
- Y800 Simple, single Y plane for monochrome images
2562
- Y8 Grayscale video
2563
- YC12 Intel YUV 12 codec
2564
- YUV8 Winnov Caviar YUV8
2565
- YUV9 Intel YUV9
2566
- YUY2 Uncompressed YUV 4:2:2
2567
- YUYV Canopus YUV
2568
- YV12 YVU12 Planar
2569
- YVU9 Intel YVU9 Planar (8-bpp Y plane, followed by 8-bpp 4x4 U and V planes)
2570
- YVYU YVYU 4:2:2 Packed
2571
- ZLIB Lossless Codec Library zlib compression (www.geocities.co.jp/Playtown-Denei/2837/LRC.htm)
2572
- ZPEG Metheus Video Zipper
2573
-
2574
- */
2575
-
2576
- return getid3_lib::EmbeddedLookup($fourcc, $begin, __LINE__, __FILE__, 'riff-fourcc');
2577
- }
2578
-
2579
- private function EitherEndian2Int($byteword, $signed=false) {
2580
- if ($this->container == 'riff') {
2581
- return getid3_lib::LittleEndian2Int($byteword, $signed);
2582
- }
2583
- return getid3_lib::BigEndian2Int($byteword, false, $signed);
2584
- }
2585
-
2586
- }