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,2246 +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.quicktime.php //
12
- // module for analyzing Quicktime and MP3-in-MP4 files //
13
- // dependencies: module.audio.mp3.php //
14
- // dependencies: module.tag.id3v2.php //
15
- // ///
16
- /////////////////////////////////////////////////////////////////
17
-
18
- getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.audio.mp3.php', __FILE__, true);
19
- getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.tag.id3v2.php', __FILE__, true); // needed for ISO 639-2 language code lookup
20
-
21
- class getid3_quicktime extends getid3_handler
22
- {
23
-
24
- public $ReturnAtomData = true;
25
- public $ParseAllPossibleAtoms = false;
26
-
27
- public function Analyze() {
28
- $info = &$this->getid3->info;
29
-
30
- $info['fileformat'] = 'quicktime';
31
- $info['quicktime']['hinting'] = false;
32
- $info['quicktime']['controller'] = 'standard'; // may be overridden if 'ctyp' atom is present
33
-
34
- $this->fseek($info['avdataoffset']);
35
-
36
- $offset = 0;
37
- $atomcounter = 0;
38
-
39
- while ($offset < $info['avdataend']) {
40
- if (!getid3_lib::intValueSupported($offset)) {
41
- $info['error'][] = 'Unable to parse atom at offset '.$offset.' because beyond '.round(PHP_INT_MAX / 1073741824).'GB limit of PHP filesystem functions';
42
- break;
43
- }
44
- $this->fseek($offset);
45
- $AtomHeader = $this->fread(8);
46
-
47
- $atomsize = getid3_lib::BigEndian2Int(substr($AtomHeader, 0, 4));
48
- $atomname = substr($AtomHeader, 4, 4);
49
-
50
- // 64-bit MOV patch by jlegateØktnc*com
51
- if ($atomsize == 1) {
52
- $atomsize = getid3_lib::BigEndian2Int($this->fread(8));
53
- }
54
-
55
- $info['quicktime'][$atomname]['name'] = $atomname;
56
- $info['quicktime'][$atomname]['size'] = $atomsize;
57
- $info['quicktime'][$atomname]['offset'] = $offset;
58
-
59
- if (($offset + $atomsize) > $info['avdataend']) {
60
- $info['error'][] = 'Atom at offset '.$offset.' claims to go beyond end-of-file (length: '.$atomsize.' bytes)';
61
- return false;
62
- }
63
-
64
- if ($atomsize == 0) {
65
- // Furthermore, for historical reasons the list of atoms is optionally
66
- // terminated by a 32-bit integer set to 0. If you are writing a program
67
- // to read user data atoms, you should allow for the terminating 0.
68
- break;
69
- }
70
- $atomHierarchy = array();
71
- $info['quicktime'][$atomname] = $this->QuicktimeParseAtom($atomname, $atomsize, $this->fread(min($atomsize, round($this->getid3->memory_limit / 2))), $offset, $atomHierarchy, $this->ParseAllPossibleAtoms);
72
-
73
- $offset += $atomsize;
74
- $atomcounter++;
75
- }
76
-
77
- if (!empty($info['avdataend_tmp'])) {
78
- // this value is assigned to a temp value and then erased because
79
- // otherwise any atoms beyond the 'mdat' atom would not get parsed
80
- $info['avdataend'] = $info['avdataend_tmp'];
81
- unset($info['avdataend_tmp']);
82
- }
83
-
84
- if (!isset($info['bitrate']) && isset($info['playtime_seconds'])) {
85
- $info['bitrate'] = (($info['avdataend'] - $info['avdataoffset']) * 8) / $info['playtime_seconds'];
86
- }
87
- if (isset($info['bitrate']) && !isset($info['audio']['bitrate']) && !isset($info['quicktime']['video'])) {
88
- $info['audio']['bitrate'] = $info['bitrate'];
89
- }
90
- if (!empty($info['playtime_seconds']) && !isset($info['video']['frame_rate']) && !empty($info['quicktime']['stts_framecount'])) {
91
- foreach ($info['quicktime']['stts_framecount'] as $key => $samples_count) {
92
- $samples_per_second = $samples_count / $info['playtime_seconds'];
93
- if ($samples_per_second > 240) {
94
- // has to be audio samples
95
- } else {
96
- $info['video']['frame_rate'] = $samples_per_second;
97
- break;
98
- }
99
- }
100
- }
101
- if (($info['audio']['dataformat'] == 'mp4') && empty($info['video']['resolution_x'])) {
102
- $info['fileformat'] = 'mp4';
103
- $info['mime_type'] = 'audio/mp4';
104
- unset($info['video']['dataformat']);
105
- }
106
-
107
- if (!$this->ReturnAtomData) {
108
- unset($info['quicktime']['moov']);
109
- }
110
-
111
- if (empty($info['audio']['dataformat']) && !empty($info['quicktime']['audio'])) {
112
- $info['audio']['dataformat'] = 'quicktime';
113
- }
114
- if (empty($info['video']['dataformat']) && !empty($info['quicktime']['video'])) {
115
- $info['video']['dataformat'] = 'quicktime';
116
- }
117
-
118
- return true;
119
- }
120
-
121
- public function QuicktimeParseAtom($atomname, $atomsize, $atom_data, $baseoffset, &$atomHierarchy, $ParseAllPossibleAtoms) {
122
- // http://developer.apple.com/techpubs/quicktime/qtdevdocs/APIREF/INDEX/atomalphaindex.htm
123
-
124
- $info = &$this->getid3->info;
125
-
126
- $atom_parent = end($atomHierarchy); // not array_pop($atomHierarchy); see http://www.getid3.org/phpBB3/viewtopic.php?t=1717
127
- array_push($atomHierarchy, $atomname);
128
- $atom_structure['hierarchy'] = implode(' ', $atomHierarchy);
129
- $atom_structure['name'] = $atomname;
130
- $atom_structure['size'] = $atomsize;
131
- $atom_structure['offset'] = $baseoffset;
132
- switch ($atomname) {
133
- case 'moov': // MOVie container atom
134
- case 'trak': // TRAcK container atom
135
- case 'clip': // CLIPping container atom
136
- case 'matt': // track MATTe container atom
137
- case 'edts': // EDiTS container atom
138
- case 'tref': // Track REFerence container atom
139
- case 'mdia': // MeDIA container atom
140
- case 'minf': // Media INFormation container atom
141
- case 'dinf': // Data INFormation container atom
142
- case 'udta': // User DaTA container atom
143
- case 'cmov': // Compressed MOVie container atom
144
- case 'rmra': // Reference Movie Record Atom
145
- case 'rmda': // Reference Movie Descriptor Atom
146
- case 'gmhd': // Generic Media info HeaDer atom (seen on QTVR)
147
- $atom_structure['subatoms'] = $this->QuicktimeParseContainerAtom($atom_data, $baseoffset + 8, $atomHierarchy, $ParseAllPossibleAtoms);
148
- break;
149
-
150
- case 'ilst': // Item LiST container atom
151
- if ($atom_structure['subatoms'] = $this->QuicktimeParseContainerAtom($atom_data, $baseoffset + 8, $atomHierarchy, $ParseAllPossibleAtoms)) {
152
- // some "ilst" atoms contain data atoms that have a numeric name, and the data is far more accessible if the returned array is compacted
153
- $allnumericnames = true;
154
- foreach ($atom_structure['subatoms'] as $subatomarray) {
155
- if (!is_integer($subatomarray['name']) || (count($subatomarray['subatoms']) != 1)) {
156
- $allnumericnames = false;
157
- break;
158
- }
159
- }
160
- if ($allnumericnames) {
161
- $newData = array();
162
- foreach ($atom_structure['subatoms'] as $subatomarray) {
163
- foreach ($subatomarray['subatoms'] as $newData_subatomarray) {
164
- unset($newData_subatomarray['hierarchy'], $newData_subatomarray['name']);
165
- $newData[$subatomarray['name']] = $newData_subatomarray;
166
- break;
167
- }
168
- }
169
- $atom_structure['data'] = $newData;
170
- unset($atom_structure['subatoms']);
171
- }
172
- }
173
- break;
174
-
175
- case "\x00\x00\x00\x01":
176
- case "\x00\x00\x00\x02":
177
- case "\x00\x00\x00\x03":
178
- case "\x00\x00\x00\x04":
179
- case "\x00\x00\x00\x05":
180
- $atomname = getid3_lib::BigEndian2Int($atomname);
181
- $atom_structure['name'] = $atomname;
182
- $atom_structure['subatoms'] = $this->QuicktimeParseContainerAtom($atom_data, $baseoffset + 8, $atomHierarchy, $ParseAllPossibleAtoms);
183
- break;
184
-
185
- case 'stbl': // Sample TaBLe container atom
186
- $atom_structure['subatoms'] = $this->QuicktimeParseContainerAtom($atom_data, $baseoffset + 8, $atomHierarchy, $ParseAllPossibleAtoms);
187
- $isVideo = false;
188
- $framerate = 0;
189
- $framecount = 0;
190
- foreach ($atom_structure['subatoms'] as $key => $value_array) {
191
- if (isset($value_array['sample_description_table'])) {
192
- foreach ($value_array['sample_description_table'] as $key2 => $value_array2) {
193
- if (isset($value_array2['data_format'])) {
194
- switch ($value_array2['data_format']) {
195
- case 'avc1':
196
- case 'mp4v':
197
- // video data
198
- $isVideo = true;
199
- break;
200
- case 'mp4a':
201
- // audio data
202
- break;
203
- }
204
- }
205
- }
206
- } elseif (isset($value_array['time_to_sample_table'])) {
207
- foreach ($value_array['time_to_sample_table'] as $key2 => $value_array2) {
208
- if (isset($value_array2['sample_count']) && isset($value_array2['sample_duration']) && ($value_array2['sample_duration'] > 0)) {
209
- $framerate = round($info['quicktime']['time_scale'] / $value_array2['sample_duration'], 3);
210
- $framecount = $value_array2['sample_count'];
211
- }
212
- }
213
- }
214
- }
215
- if ($isVideo && $framerate) {
216
- $info['quicktime']['video']['frame_rate'] = $framerate;
217
- $info['video']['frame_rate'] = $info['quicktime']['video']['frame_rate'];
218
- }
219
- if ($isVideo && $framecount) {
220
- $info['quicktime']['video']['frame_count'] = $framecount;
221
- }
222
- break;
223
-
224
-
225
- case 'aART': // Album ARTist
226
- case 'catg': // CaTeGory
227
- case 'covr': // COVeR artwork
228
- case 'cpil': // ComPILation
229
- case 'cprt': // CoPyRighT
230
- case 'desc': // DESCription
231
- case 'disk': // DISK number
232
- case 'egid': // Episode Global ID
233
- case 'gnre': // GeNRE
234
- case 'keyw': // KEYWord
235
- case 'ldes':
236
- case 'pcst': // PodCaST
237
- case 'pgap': // GAPless Playback
238
- case 'purd': // PURchase Date
239
- case 'purl': // Podcast URL
240
- case 'rati':
241
- case 'rndu':
242
- case 'rpdu':
243
- case 'rtng': // RaTiNG
244
- case 'stik':
245
- case 'tmpo': // TeMPO (BPM)
246
- case 'trkn': // TRacK Number
247
- case 'tves': // TV EpiSode
248
- case 'tvnn': // TV Network Name
249
- case 'tvsh': // TV SHow Name
250
- case 'tvsn': // TV SeasoN
251
- case 'akID': // iTunes store account type
252
- case 'apID':
253
- case 'atID':
254
- case 'cmID':
255
- case 'cnID':
256
- case 'geID':
257
- case 'plID':
258
- case 'sfID': // iTunes store country
259
- case "\xA9".'alb': // ALBum
260
- case "\xA9".'art': // ARTist
261
- case "\xA9".'ART':
262
- case "\xA9".'aut':
263
- case "\xA9".'cmt': // CoMmenT
264
- case "\xA9".'com': // COMposer
265
- case "\xA9".'cpy':
266
- case "\xA9".'day': // content created year
267
- case "\xA9".'dir':
268
- case "\xA9".'ed1':
269
- case "\xA9".'ed2':
270
- case "\xA9".'ed3':
271
- case "\xA9".'ed4':
272
- case "\xA9".'ed5':
273
- case "\xA9".'ed6':
274
- case "\xA9".'ed7':
275
- case "\xA9".'ed8':
276
- case "\xA9".'ed9':
277
- case "\xA9".'enc':
278
- case "\xA9".'fmt':
279
- case "\xA9".'gen': // GENre
280
- case "\xA9".'grp': // GRouPing
281
- case "\xA9".'hst':
282
- case "\xA9".'inf':
283
- case "\xA9".'lyr': // LYRics
284
- case "\xA9".'mak':
285
- case "\xA9".'mod':
286
- case "\xA9".'nam': // full NAMe
287
- case "\xA9".'ope':
288
- case "\xA9".'PRD':
289
- case "\xA9".'prd':
290
- case "\xA9".'prf':
291
- case "\xA9".'req':
292
- case "\xA9".'src':
293
- case "\xA9".'swr':
294
- case "\xA9".'too': // encoder
295
- case "\xA9".'trk': // TRacK
296
- case "\xA9".'url':
297
- case "\xA9".'wrn':
298
- case "\xA9".'wrt': // WRiTer
299
- case '----': // itunes specific
300
- if ($atom_parent == 'udta') {
301
- // User data atom handler
302
- $atom_structure['data_length'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 2));
303
- $atom_structure['language_id'] = getid3_lib::BigEndian2Int(substr($atom_data, 2, 2));
304
- $atom_structure['data'] = substr($atom_data, 4);
305
-
306
- $atom_structure['language'] = $this->QuicktimeLanguageLookup($atom_structure['language_id']);
307
- if (empty($info['comments']['language']) || (!in_array($atom_structure['language'], $info['comments']['language']))) {
308
- $info['comments']['language'][] = $atom_structure['language'];
309
- }
310
- } else {
311
- // Apple item list box atom handler
312
- $atomoffset = 0;
313
- if (substr($atom_data, 2, 2) == "\x10\xB5") {
314
- // not sure what it means, but observed on iPhone4 data.
315
- // Each $atom_data has 2 bytes of datasize, plus 0x10B5, then data
316
- while ($atomoffset < strlen($atom_data)) {
317
- $boxsmallsize = getid3_lib::BigEndian2Int(substr($atom_data, $atomoffset, 2));
318
- $boxsmalltype = substr($atom_data, $atomoffset + 2, 2);
319
- $boxsmalldata = substr($atom_data, $atomoffset + 4, $boxsmallsize);
320
- if ($boxsmallsize <= 1) {
321
- $info['warning'][] = 'Invalid QuickTime atom smallbox size "'.$boxsmallsize.'" in atom "'.preg_replace('#[^a-zA-Z0-9 _\\-]#', '?', $atomname).'" at offset: '.($atom_structure['offset'] + $atomoffset);
322
- $atom_structure['data'] = null;
323
- $atomoffset = strlen($atom_data);
324
- break;
325
- }
326
- switch ($boxsmalltype) {
327
- case "\x10\xB5":
328
- $atom_structure['data'] = $boxsmalldata;
329
- break;
330
- default:
331
- $info['warning'][] = 'Unknown QuickTime smallbox type: "'.preg_replace('#[^a-zA-Z0-9 _\\-]#', '?', $boxsmalltype).'" ('.trim(getid3_lib::PrintHexBytes($boxsmalltype)).') at offset '.$baseoffset;
332
- $atom_structure['data'] = $atom_data;
333
- break;
334
- }
335
- $atomoffset += (4 + $boxsmallsize);
336
- }
337
- } else {
338
- while ($atomoffset < strlen($atom_data)) {
339
- $boxsize = getid3_lib::BigEndian2Int(substr($atom_data, $atomoffset, 4));
340
- $boxtype = substr($atom_data, $atomoffset + 4, 4);
341
- $boxdata = substr($atom_data, $atomoffset + 8, $boxsize - 8);
342
- if ($boxsize <= 1) {
343
- $info['warning'][] = 'Invalid QuickTime atom box size "'.$boxsize.'" in atom "'.preg_replace('#[^a-zA-Z0-9 _\\-]#', '?', $atomname).'" at offset: '.($atom_structure['offset'] + $atomoffset);
344
- $atom_structure['data'] = null;
345
- $atomoffset = strlen($atom_data);
346
- break;
347
- }
348
- $atomoffset += $boxsize;
349
-
350
- switch ($boxtype) {
351
- case 'mean':
352
- case 'name':
353
- $atom_structure[$boxtype] = substr($boxdata, 4);
354
- break;
355
-
356
- case 'data':
357
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($boxdata, 0, 1));
358
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($boxdata, 1, 3));
359
- switch ($atom_structure['flags_raw']) {
360
- case 0: // data flag
361
- case 21: // tmpo/cpil flag
362
- switch ($atomname) {
363
- case 'cpil':
364
- case 'pcst':
365
- case 'pgap':
366
- $atom_structure['data'] = getid3_lib::BigEndian2Int(substr($boxdata, 8, 1));
367
- break;
368
-
369
- case 'tmpo':
370
- $atom_structure['data'] = getid3_lib::BigEndian2Int(substr($boxdata, 8, 2));
371
- break;
372
-
373
- case 'disk':
374
- case 'trkn':
375
- $num = getid3_lib::BigEndian2Int(substr($boxdata, 10, 2));
376
- $num_total = getid3_lib::BigEndian2Int(substr($boxdata, 12, 2));
377
- $atom_structure['data'] = empty($num) ? '' : $num;
378
- $atom_structure['data'] .= empty($num_total) ? '' : '/'.$num_total;
379
- break;
380
-
381
- case 'gnre':
382
- $GenreID = getid3_lib::BigEndian2Int(substr($boxdata, 8, 4));
383
- $atom_structure['data'] = getid3_id3v1::LookupGenreName($GenreID - 1);
384
- break;
385
-
386
- case 'rtng':
387
- $atom_structure[$atomname] = getid3_lib::BigEndian2Int(substr($boxdata, 8, 1));
388
- $atom_structure['data'] = $this->QuicktimeContentRatingLookup($atom_structure[$atomname]);
389
- break;
390
-
391
- case 'stik':
392
- $atom_structure[$atomname] = getid3_lib::BigEndian2Int(substr($boxdata, 8, 1));
393
- $atom_structure['data'] = $this->QuicktimeSTIKLookup($atom_structure[$atomname]);
394
- break;
395
-
396
- case 'sfID':
397
- $atom_structure[$atomname] = getid3_lib::BigEndian2Int(substr($boxdata, 8, 4));
398
- $atom_structure['data'] = $this->QuicktimeStoreFrontCodeLookup($atom_structure[$atomname]);
399
- break;
400
-
401
- case 'egid':
402
- case 'purl':
403
- $atom_structure['data'] = substr($boxdata, 8);
404
- break;
405
-
406
- default:
407
- $atom_structure['data'] = getid3_lib::BigEndian2Int(substr($boxdata, 8, 4));
408
- }
409
- break;
410
-
411
- case 1: // text flag
412
- case 13: // image flag
413
- default:
414
- $atom_structure['data'] = substr($boxdata, 8);
415
- if ($atomname == 'covr') {
416
- // not a foolproof check, but better than nothing
417
- if (preg_match('#^\xFF\xD8\xFF#', $atom_structure['data'])) {
418
- $atom_structure['image_mime'] = 'image/jpeg';
419
- } elseif (preg_match('#^\x89\x50\x4E\x47\x0D\x0A\x1A\x0A#', $atom_structure['data'])) {
420
- $atom_structure['image_mime'] = 'image/png';
421
- } elseif (preg_match('#^GIF#', $atom_structure['data'])) {
422
- $atom_structure['image_mime'] = 'image/gif';
423
- }
424
- }
425
- break;
426
-
427
- }
428
- break;
429
-
430
- default:
431
- $info['warning'][] = 'Unknown QuickTime box type: "'.preg_replace('#[^a-zA-Z0-9 _\\-]#', '?', $boxtype).'" ('.trim(getid3_lib::PrintHexBytes($boxtype)).') at offset '.$baseoffset;
432
- $atom_structure['data'] = $atom_data;
433
-
434
- }
435
- }
436
- }
437
- }
438
- $this->CopyToAppropriateCommentsSection($atomname, $atom_structure['data'], $atom_structure['name']);
439
- break;
440
-
441
-
442
- case 'play': // auto-PLAY atom
443
- $atom_structure['autoplay'] = (bool) getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
444
-
445
- $info['quicktime']['autoplay'] = $atom_structure['autoplay'];
446
- break;
447
-
448
-
449
- case 'WLOC': // Window LOCation atom
450
- $atom_structure['location_x'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 2));
451
- $atom_structure['location_y'] = getid3_lib::BigEndian2Int(substr($atom_data, 2, 2));
452
- break;
453
-
454
-
455
- case 'LOOP': // LOOPing atom
456
- case 'SelO': // play SELection Only atom
457
- case 'AllF': // play ALL Frames atom
458
- $atom_structure['data'] = getid3_lib::BigEndian2Int($atom_data);
459
- break;
460
-
461
-
462
- case 'name': //
463
- case 'MCPS': // Media Cleaner PRo
464
- case '@PRM': // adobe PReMiere version
465
- case '@PRQ': // adobe PRemiere Quicktime version
466
- $atom_structure['data'] = $atom_data;
467
- break;
468
-
469
-
470
- case 'cmvd': // Compressed MooV Data atom
471
- // Code by ubergeekØubergeek*tv based on information from
472
- // http://developer.apple.com/quicktime/icefloe/dispatch012.html
473
- $atom_structure['unCompressedSize'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 4));
474
-
475
- $CompressedFileData = substr($atom_data, 4);
476
- if ($UncompressedHeader = @gzuncompress($CompressedFileData)) {
477
- $atom_structure['subatoms'] = $this->QuicktimeParseContainerAtom($UncompressedHeader, 0, $atomHierarchy, $ParseAllPossibleAtoms);
478
- } else {
479
- $info['warning'][] = 'Error decompressing compressed MOV atom at offset '.$atom_structure['offset'];
480
- }
481
- break;
482
-
483
-
484
- case 'dcom': // Data COMpression atom
485
- $atom_structure['compression_id'] = $atom_data;
486
- $atom_structure['compression_text'] = $this->QuicktimeDCOMLookup($atom_data);
487
- break;
488
-
489
-
490
- case 'rdrf': // Reference movie Data ReFerence atom
491
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
492
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3));
493
- $atom_structure['flags']['internal_data'] = (bool) ($atom_structure['flags_raw'] & 0x000001);
494
-
495
- $atom_structure['reference_type_name'] = substr($atom_data, 4, 4);
496
- $atom_structure['reference_length'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 4));
497
- switch ($atom_structure['reference_type_name']) {
498
- case 'url ':
499
- $atom_structure['url'] = $this->NoNullString(substr($atom_data, 12));
500
- break;
501
-
502
- case 'alis':
503
- $atom_structure['file_alias'] = substr($atom_data, 12);
504
- break;
505
-
506
- case 'rsrc':
507
- $atom_structure['resource_alias'] = substr($atom_data, 12);
508
- break;
509
-
510
- default:
511
- $atom_structure['data'] = substr($atom_data, 12);
512
- break;
513
- }
514
- break;
515
-
516
-
517
- case 'rmqu': // Reference Movie QUality atom
518
- $atom_structure['movie_quality'] = getid3_lib::BigEndian2Int($atom_data);
519
- break;
520
-
521
-
522
- case 'rmcs': // Reference Movie Cpu Speed atom
523
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
524
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
525
- $atom_structure['cpu_speed_rating'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2));
526
- break;
527
-
528
-
529
- case 'rmvc': // Reference Movie Version Check atom
530
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
531
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
532
- $atom_structure['gestalt_selector'] = substr($atom_data, 4, 4);
533
- $atom_structure['gestalt_value_mask'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 4));
534
- $atom_structure['gestalt_value'] = getid3_lib::BigEndian2Int(substr($atom_data, 12, 4));
535
- $atom_structure['gestalt_check_type'] = getid3_lib::BigEndian2Int(substr($atom_data, 14, 2));
536
- break;
537
-
538
-
539
- case 'rmcd': // Reference Movie Component check atom
540
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
541
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
542
- $atom_structure['component_type'] = substr($atom_data, 4, 4);
543
- $atom_structure['component_subtype'] = substr($atom_data, 8, 4);
544
- $atom_structure['component_manufacturer'] = substr($atom_data, 12, 4);
545
- $atom_structure['component_flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 16, 4));
546
- $atom_structure['component_flags_mask'] = getid3_lib::BigEndian2Int(substr($atom_data, 20, 4));
547
- $atom_structure['component_min_version'] = getid3_lib::BigEndian2Int(substr($atom_data, 24, 4));
548
- break;
549
-
550
-
551
- case 'rmdr': // Reference Movie Data Rate atom
552
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
553
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
554
- $atom_structure['data_rate'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
555
-
556
- $atom_structure['data_rate_bps'] = $atom_structure['data_rate'] * 10;
557
- break;
558
-
559
-
560
- case 'rmla': // Reference Movie Language Atom
561
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
562
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
563
- $atom_structure['language_id'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2));
564
-
565
- $atom_structure['language'] = $this->QuicktimeLanguageLookup($atom_structure['language_id']);
566
- if (empty($info['comments']['language']) || (!in_array($atom_structure['language'], $info['comments']['language']))) {
567
- $info['comments']['language'][] = $atom_structure['language'];
568
- }
569
- break;
570
-
571
-
572
- case 'rmla': // Reference Movie Language Atom
573
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
574
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
575
- $atom_structure['track_id'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2));
576
- break;
577
-
578
-
579
- case 'ptv ': // Print To Video - defines a movie's full screen mode
580
- // http://developer.apple.com/documentation/QuickTime/APIREF/SOURCESIV/at_ptv-_pg.htm
581
- $atom_structure['display_size_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 2));
582
- $atom_structure['reserved_1'] = getid3_lib::BigEndian2Int(substr($atom_data, 2, 2)); // hardcoded: 0x0000
583
- $atom_structure['reserved_2'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2)); // hardcoded: 0x0000
584
- $atom_structure['slide_show_flag'] = getid3_lib::BigEndian2Int(substr($atom_data, 6, 1));
585
- $atom_structure['play_on_open_flag'] = getid3_lib::BigEndian2Int(substr($atom_data, 7, 1));
586
-
587
- $atom_structure['flags']['play_on_open'] = (bool) $atom_structure['play_on_open_flag'];
588
- $atom_structure['flags']['slide_show'] = (bool) $atom_structure['slide_show_flag'];
589
-
590
- $ptv_lookup[0] = 'normal';
591
- $ptv_lookup[1] = 'double';
592
- $ptv_lookup[2] = 'half';
593
- $ptv_lookup[3] = 'full';
594
- $ptv_lookup[4] = 'current';
595
- if (isset($ptv_lookup[$atom_structure['display_size_raw']])) {
596
- $atom_structure['display_size'] = $ptv_lookup[$atom_structure['display_size_raw']];
597
- } else {
598
- $info['warning'][] = 'unknown "ptv " display constant ('.$atom_structure['display_size_raw'].')';
599
- }
600
- break;
601
-
602
-
603
- case 'stsd': // Sample Table Sample Description atom
604
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
605
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
606
- $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
607
- $stsdEntriesDataOffset = 8;
608
- for ($i = 0; $i < $atom_structure['number_entries']; $i++) {
609
- $atom_structure['sample_description_table'][$i]['size'] = getid3_lib::BigEndian2Int(substr($atom_data, $stsdEntriesDataOffset, 4));
610
- $stsdEntriesDataOffset += 4;
611
- $atom_structure['sample_description_table'][$i]['data_format'] = substr($atom_data, $stsdEntriesDataOffset, 4);
612
- $stsdEntriesDataOffset += 4;
613
- $atom_structure['sample_description_table'][$i]['reserved'] = getid3_lib::BigEndian2Int(substr($atom_data, $stsdEntriesDataOffset, 6));
614
- $stsdEntriesDataOffset += 6;
615
- $atom_structure['sample_description_table'][$i]['reference_index'] = getid3_lib::BigEndian2Int(substr($atom_data, $stsdEntriesDataOffset, 2));
616
- $stsdEntriesDataOffset += 2;
617
- $atom_structure['sample_description_table'][$i]['data'] = substr($atom_data, $stsdEntriesDataOffset, ($atom_structure['sample_description_table'][$i]['size'] - 4 - 4 - 6 - 2));
618
- $stsdEntriesDataOffset += ($atom_structure['sample_description_table'][$i]['size'] - 4 - 4 - 6 - 2);
619
-
620
- $atom_structure['sample_description_table'][$i]['encoder_version'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 0, 2));
621
- $atom_structure['sample_description_table'][$i]['encoder_revision'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 2, 2));
622
- $atom_structure['sample_description_table'][$i]['encoder_vendor'] = substr($atom_structure['sample_description_table'][$i]['data'], 4, 4);
623
-
624
- switch ($atom_structure['sample_description_table'][$i]['encoder_vendor']) {
625
-
626
- case "\x00\x00\x00\x00":
627
- // audio tracks
628
- $atom_structure['sample_description_table'][$i]['audio_channels'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 8, 2));
629
- $atom_structure['sample_description_table'][$i]['audio_bit_depth'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 10, 2));
630
- $atom_structure['sample_description_table'][$i]['audio_compression_id'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 12, 2));
631
- $atom_structure['sample_description_table'][$i]['audio_packet_size'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 14, 2));
632
- $atom_structure['sample_description_table'][$i]['audio_sample_rate'] = getid3_lib::FixedPoint16_16(substr($atom_structure['sample_description_table'][$i]['data'], 16, 4));
633
-
634
- // video tracks
635
- // http://developer.apple.com/library/mac/#documentation/QuickTime/QTFF/QTFFChap3/qtff3.html
636
- $atom_structure['sample_description_table'][$i]['temporal_quality'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 8, 4));
637
- $atom_structure['sample_description_table'][$i]['spatial_quality'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 12, 4));
638
- $atom_structure['sample_description_table'][$i]['width'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 16, 2));
639
- $atom_structure['sample_description_table'][$i]['height'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 18, 2));
640
- $atom_structure['sample_description_table'][$i]['resolution_x'] = getid3_lib::FixedPoint16_16(substr($atom_structure['sample_description_table'][$i]['data'], 24, 4));
641
- $atom_structure['sample_description_table'][$i]['resolution_y'] = getid3_lib::FixedPoint16_16(substr($atom_structure['sample_description_table'][$i]['data'], 28, 4));
642
- $atom_structure['sample_description_table'][$i]['data_size'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 32, 4));
643
- $atom_structure['sample_description_table'][$i]['frame_count'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 36, 2));
644
- $atom_structure['sample_description_table'][$i]['compressor_name'] = substr($atom_structure['sample_description_table'][$i]['data'], 38, 4);
645
- $atom_structure['sample_description_table'][$i]['pixel_depth'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 42, 2));
646
- $atom_structure['sample_description_table'][$i]['color_table_id'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 44, 2));
647
-
648
- switch ($atom_structure['sample_description_table'][$i]['data_format']) {
649
- case '2vuY':
650
- case 'avc1':
651
- case 'cvid':
652
- case 'dvc ':
653
- case 'dvcp':
654
- case 'gif ':
655
- case 'h263':
656
- case 'jpeg':
657
- case 'kpcd':
658
- case 'mjpa':
659
- case 'mjpb':
660
- case 'mp4v':
661
- case 'png ':
662
- case 'raw ':
663
- case 'rle ':
664
- case 'rpza':
665
- case 'smc ':
666
- case 'SVQ1':
667
- case 'SVQ3':
668
- case 'tiff':
669
- case 'v210':
670
- case 'v216':
671
- case 'v308':
672
- case 'v408':
673
- case 'v410':
674
- case 'yuv2':
675
- $info['fileformat'] = 'mp4';
676
- $info['video']['fourcc'] = $atom_structure['sample_description_table'][$i]['data_format'];
677
- // http://www.getid3.org/phpBB3/viewtopic.php?t=1550
678
- //if ((!empty($atom_structure['sample_description_table'][$i]['width']) && !empty($atom_structure['sample_description_table'][$i]['width'])) && (empty($info['video']['resolution_x']) || empty($info['video']['resolution_y']) || (number_format($info['video']['resolution_x'], 6) != number_format(round($info['video']['resolution_x']), 6)) || (number_format($info['video']['resolution_y'], 6) != number_format(round($info['video']['resolution_y']), 6)))) { // ugly check for floating point numbers
679
- if (!empty($atom_structure['sample_description_table'][$i]['width']) && !empty($atom_structure['sample_description_table'][$i]['height'])) {
680
- // assume that values stored here are more important than values stored in [tkhd] atom
681
- $info['video']['resolution_x'] = $atom_structure['sample_description_table'][$i]['width'];
682
- $info['video']['resolution_y'] = $atom_structure['sample_description_table'][$i]['height'];
683
- $info['quicktime']['video']['resolution_x'] = $info['video']['resolution_x'];
684
- $info['quicktime']['video']['resolution_y'] = $info['video']['resolution_y'];
685
- }
686
- break;
687
-
688
- case 'qtvr':
689
- $info['video']['dataformat'] = 'quicktimevr';
690
- break;
691
-
692
- case 'mp4a':
693
- default:
694
- $info['quicktime']['audio']['codec'] = $this->QuicktimeAudioCodecLookup($atom_structure['sample_description_table'][$i]['data_format']);
695
- $info['quicktime']['audio']['sample_rate'] = $atom_structure['sample_description_table'][$i]['audio_sample_rate'];
696
- $info['quicktime']['audio']['channels'] = $atom_structure['sample_description_table'][$i]['audio_channels'];
697
- $info['quicktime']['audio']['bit_depth'] = $atom_structure['sample_description_table'][$i]['audio_bit_depth'];
698
- $info['audio']['codec'] = $info['quicktime']['audio']['codec'];
699
- $info['audio']['sample_rate'] = $info['quicktime']['audio']['sample_rate'];
700
- $info['audio']['channels'] = $info['quicktime']['audio']['channels'];
701
- $info['audio']['bits_per_sample'] = $info['quicktime']['audio']['bit_depth'];
702
- switch ($atom_structure['sample_description_table'][$i]['data_format']) {
703
- case 'raw ': // PCM
704
- case 'alac': // Apple Lossless Audio Codec
705
- $info['audio']['lossless'] = true;
706
- break;
707
- default:
708
- $info['audio']['lossless'] = false;
709
- break;
710
- }
711
- break;
712
- }
713
- break;
714
-
715
- default:
716
- switch ($atom_structure['sample_description_table'][$i]['data_format']) {
717
- case 'mp4s':
718
- $info['fileformat'] = 'mp4';
719
- break;
720
-
721
- default:
722
- // video atom
723
- $atom_structure['sample_description_table'][$i]['video_temporal_quality'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 8, 4));
724
- $atom_structure['sample_description_table'][$i]['video_spatial_quality'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 12, 4));
725
- $atom_structure['sample_description_table'][$i]['video_frame_width'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 16, 2));
726
- $atom_structure['sample_description_table'][$i]['video_frame_height'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 18, 2));
727
- $atom_structure['sample_description_table'][$i]['video_resolution_x'] = getid3_lib::FixedPoint16_16(substr($atom_structure['sample_description_table'][$i]['data'], 20, 4));
728
- $atom_structure['sample_description_table'][$i]['video_resolution_y'] = getid3_lib::FixedPoint16_16(substr($atom_structure['sample_description_table'][$i]['data'], 24, 4));
729
- $atom_structure['sample_description_table'][$i]['video_data_size'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 28, 4));
730
- $atom_structure['sample_description_table'][$i]['video_frame_count'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 32, 2));
731
- $atom_structure['sample_description_table'][$i]['video_encoder_name_len'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 34, 1));
732
- $atom_structure['sample_description_table'][$i]['video_encoder_name'] = substr($atom_structure['sample_description_table'][$i]['data'], 35, $atom_structure['sample_description_table'][$i]['video_encoder_name_len']);
733
- $atom_structure['sample_description_table'][$i]['video_pixel_color_depth'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 66, 2));
734
- $atom_structure['sample_description_table'][$i]['video_color_table_id'] = getid3_lib::BigEndian2Int(substr($atom_structure['sample_description_table'][$i]['data'], 68, 2));
735
-
736
- $atom_structure['sample_description_table'][$i]['video_pixel_color_type'] = (($atom_structure['sample_description_table'][$i]['video_pixel_color_depth'] > 32) ? 'grayscale' : 'color');
737
- $atom_structure['sample_description_table'][$i]['video_pixel_color_name'] = $this->QuicktimeColorNameLookup($atom_structure['sample_description_table'][$i]['video_pixel_color_depth']);
738
-
739
- if ($atom_structure['sample_description_table'][$i]['video_pixel_color_name'] != 'invalid') {
740
- $info['quicktime']['video']['codec_fourcc'] = $atom_structure['sample_description_table'][$i]['data_format'];
741
- $info['quicktime']['video']['codec_fourcc_lookup'] = $this->QuicktimeVideoCodecLookup($atom_structure['sample_description_table'][$i]['data_format']);
742
- $info['quicktime']['video']['codec'] = (($atom_structure['sample_description_table'][$i]['video_encoder_name_len'] > 0) ? $atom_structure['sample_description_table'][$i]['video_encoder_name'] : $atom_structure['sample_description_table'][$i]['data_format']);
743
- $info['quicktime']['video']['color_depth'] = $atom_structure['sample_description_table'][$i]['video_pixel_color_depth'];
744
- $info['quicktime']['video']['color_depth_name'] = $atom_structure['sample_description_table'][$i]['video_pixel_color_name'];
745
-
746
- $info['video']['codec'] = $info['quicktime']['video']['codec'];
747
- $info['video']['bits_per_sample'] = $info['quicktime']['video']['color_depth'];
748
- }
749
- $info['video']['lossless'] = false;
750
- $info['video']['pixel_aspect_ratio'] = (float) 1;
751
- break;
752
- }
753
- break;
754
- }
755
- switch (strtolower($atom_structure['sample_description_table'][$i]['data_format'])) {
756
- case 'mp4a':
757
- $info['audio']['dataformat'] = 'mp4';
758
- $info['quicktime']['audio']['codec'] = 'mp4';
759
- break;
760
-
761
- case '3ivx':
762
- case '3iv1':
763
- case '3iv2':
764
- $info['video']['dataformat'] = '3ivx';
765
- break;
766
-
767
- case 'xvid':
768
- $info['video']['dataformat'] = 'xvid';
769
- break;
770
-
771
- case 'mp4v':
772
- $info['video']['dataformat'] = 'mpeg4';
773
- break;
774
-
775
- case 'divx':
776
- case 'div1':
777
- case 'div2':
778
- case 'div3':
779
- case 'div4':
780
- case 'div5':
781
- case 'div6':
782
- $info['video']['dataformat'] = 'divx';
783
- break;
784
-
785
- default:
786
- // do nothing
787
- break;
788
- }
789
- unset($atom_structure['sample_description_table'][$i]['data']);
790
- }
791
- break;
792
-
793
-
794
- case 'stts': // Sample Table Time-to-Sample atom
795
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
796
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
797
- $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
798
- $sttsEntriesDataOffset = 8;
799
- //$FrameRateCalculatorArray = array();
800
- $frames_count = 0;
801
-
802
- $max_stts_entries_to_scan = min(floor($this->getid3->memory_limit / 10000), $atom_structure['number_entries']);
803
- if ($max_stts_entries_to_scan < $atom_structure['number_entries']) {
804
- $info['warning'][] = 'QuickTime atom "stts" has '.$atom_structure['number_entries'].' but only scanning the first '.$max_stts_entries_to_scan.' entries due to limited PHP memory available ('.floor($this->getid3->memory_limit / 1048576).'MB).';
805
- }
806
- for ($i = 0; $i < $max_stts_entries_to_scan; $i++) {
807
- $atom_structure['time_to_sample_table'][$i]['sample_count'] = getid3_lib::BigEndian2Int(substr($atom_data, $sttsEntriesDataOffset, 4));
808
- $sttsEntriesDataOffset += 4;
809
- $atom_structure['time_to_sample_table'][$i]['sample_duration'] = getid3_lib::BigEndian2Int(substr($atom_data, $sttsEntriesDataOffset, 4));
810
- $sttsEntriesDataOffset += 4;
811
-
812
- $frames_count += $atom_structure['time_to_sample_table'][$i]['sample_count'];
813
-
814
- // THIS SECTION REPLACED WITH CODE IN "stbl" ATOM
815
- //if (!empty($info['quicktime']['time_scale']) && ($atom_structure['time_to_sample_table'][$i]['sample_duration'] > 0)) {
816
- // $stts_new_framerate = $info['quicktime']['time_scale'] / $atom_structure['time_to_sample_table'][$i]['sample_duration'];
817
- // if ($stts_new_framerate <= 60) {
818
- // // some atoms have durations of "1" giving a very large framerate, which probably is not right
819
- // $info['video']['frame_rate'] = max($info['video']['frame_rate'], $stts_new_framerate);
820
- // }
821
- //}
822
- //
823
- //$FrameRateCalculatorArray[($info['quicktime']['time_scale'] / $atom_structure['time_to_sample_table'][$i]['sample_duration'])] += $atom_structure['time_to_sample_table'][$i]['sample_count'];
824
- }
825
- $info['quicktime']['stts_framecount'][] = $frames_count;
826
- //$sttsFramesTotal = 0;
827
- //$sttsSecondsTotal = 0;
828
- //foreach ($FrameRateCalculatorArray as $frames_per_second => $frame_count) {
829
- // if (($frames_per_second > 60) || ($frames_per_second < 1)) {
830
- // // not video FPS information, probably audio information
831
- // $sttsFramesTotal = 0;
832
- // $sttsSecondsTotal = 0;
833
- // break;
834
- // }
835
- // $sttsFramesTotal += $frame_count;
836
- // $sttsSecondsTotal += $frame_count / $frames_per_second;
837
- //}
838
- //if (($sttsFramesTotal > 0) && ($sttsSecondsTotal > 0)) {
839
- // if (($sttsFramesTotal / $sttsSecondsTotal) > $info['video']['frame_rate']) {
840
- // $info['video']['frame_rate'] = $sttsFramesTotal / $sttsSecondsTotal;
841
- // }
842
- //}
843
- break;
844
-
845
-
846
- case 'stss': // Sample Table Sync Sample (key frames) atom
847
- if ($ParseAllPossibleAtoms) {
848
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
849
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
850
- $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
851
- $stssEntriesDataOffset = 8;
852
- for ($i = 0; $i < $atom_structure['number_entries']; $i++) {
853
- $atom_structure['time_to_sample_table'][$i] = getid3_lib::BigEndian2Int(substr($atom_data, $stssEntriesDataOffset, 4));
854
- $stssEntriesDataOffset += 4;
855
- }
856
- }
857
- break;
858
-
859
-
860
- case 'stsc': // Sample Table Sample-to-Chunk atom
861
- if ($ParseAllPossibleAtoms) {
862
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
863
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
864
- $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
865
- $stscEntriesDataOffset = 8;
866
- for ($i = 0; $i < $atom_structure['number_entries']; $i++) {
867
- $atom_structure['sample_to_chunk_table'][$i]['first_chunk'] = getid3_lib::BigEndian2Int(substr($atom_data, $stscEntriesDataOffset, 4));
868
- $stscEntriesDataOffset += 4;
869
- $atom_structure['sample_to_chunk_table'][$i]['samples_per_chunk'] = getid3_lib::BigEndian2Int(substr($atom_data, $stscEntriesDataOffset, 4));
870
- $stscEntriesDataOffset += 4;
871
- $atom_structure['sample_to_chunk_table'][$i]['sample_description'] = getid3_lib::BigEndian2Int(substr($atom_data, $stscEntriesDataOffset, 4));
872
- $stscEntriesDataOffset += 4;
873
- }
874
- }
875
- break;
876
-
877
-
878
- case 'stsz': // Sample Table SiZe atom
879
- if ($ParseAllPossibleAtoms) {
880
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
881
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
882
- $atom_structure['sample_size'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
883
- $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 4));
884
- $stszEntriesDataOffset = 12;
885
- if ($atom_structure['sample_size'] == 0) {
886
- for ($i = 0; $i < $atom_structure['number_entries']; $i++) {
887
- $atom_structure['sample_size_table'][$i] = getid3_lib::BigEndian2Int(substr($atom_data, $stszEntriesDataOffset, 4));
888
- $stszEntriesDataOffset += 4;
889
- }
890
- }
891
- }
892
- break;
893
-
894
-
895
- case 'stco': // Sample Table Chunk Offset atom
896
- if ($ParseAllPossibleAtoms) {
897
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
898
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
899
- $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
900
- $stcoEntriesDataOffset = 8;
901
- for ($i = 0; $i < $atom_structure['number_entries']; $i++) {
902
- $atom_structure['chunk_offset_table'][$i] = getid3_lib::BigEndian2Int(substr($atom_data, $stcoEntriesDataOffset, 4));
903
- $stcoEntriesDataOffset += 4;
904
- }
905
- }
906
- break;
907
-
908
-
909
- case 'co64': // Chunk Offset 64-bit (version of "stco" that supports > 2GB files)
910
- if ($ParseAllPossibleAtoms) {
911
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
912
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
913
- $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
914
- $stcoEntriesDataOffset = 8;
915
- for ($i = 0; $i < $atom_structure['number_entries']; $i++) {
916
- $atom_structure['chunk_offset_table'][$i] = getid3_lib::BigEndian2Int(substr($atom_data, $stcoEntriesDataOffset, 8));
917
- $stcoEntriesDataOffset += 8;
918
- }
919
- }
920
- break;
921
-
922
-
923
- case 'dref': // Data REFerence atom
924
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
925
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
926
- $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
927
- $drefDataOffset = 8;
928
- for ($i = 0; $i < $atom_structure['number_entries']; $i++) {
929
- $atom_structure['data_references'][$i]['size'] = getid3_lib::BigEndian2Int(substr($atom_data, $drefDataOffset, 4));
930
- $drefDataOffset += 4;
931
- $atom_structure['data_references'][$i]['type'] = substr($atom_data, $drefDataOffset, 4);
932
- $drefDataOffset += 4;
933
- $atom_structure['data_references'][$i]['version'] = getid3_lib::BigEndian2Int(substr($atom_data, $drefDataOffset, 1));
934
- $drefDataOffset += 1;
935
- $atom_structure['data_references'][$i]['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, $drefDataOffset, 3)); // hardcoded: 0x0000
936
- $drefDataOffset += 3;
937
- $atom_structure['data_references'][$i]['data'] = substr($atom_data, $drefDataOffset, ($atom_structure['data_references'][$i]['size'] - 4 - 4 - 1 - 3));
938
- $drefDataOffset += ($atom_structure['data_references'][$i]['size'] - 4 - 4 - 1 - 3);
939
-
940
- $atom_structure['data_references'][$i]['flags']['self_reference'] = (bool) ($atom_structure['data_references'][$i]['flags_raw'] & 0x001);
941
- }
942
- break;
943
-
944
-
945
- case 'gmin': // base Media INformation atom
946
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
947
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
948
- $atom_structure['graphics_mode'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2));
949
- $atom_structure['opcolor_red'] = getid3_lib::BigEndian2Int(substr($atom_data, 6, 2));
950
- $atom_structure['opcolor_green'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 2));
951
- $atom_structure['opcolor_blue'] = getid3_lib::BigEndian2Int(substr($atom_data, 10, 2));
952
- $atom_structure['balance'] = getid3_lib::BigEndian2Int(substr($atom_data, 12, 2));
953
- $atom_structure['reserved'] = getid3_lib::BigEndian2Int(substr($atom_data, 14, 2));
954
- break;
955
-
956
-
957
- case 'smhd': // Sound Media information HeaDer atom
958
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
959
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
960
- $atom_structure['balance'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2));
961
- $atom_structure['reserved'] = getid3_lib::BigEndian2Int(substr($atom_data, 6, 2));
962
- break;
963
-
964
-
965
- case 'vmhd': // Video Media information HeaDer atom
966
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
967
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3));
968
- $atom_structure['graphics_mode'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2));
969
- $atom_structure['opcolor_red'] = getid3_lib::BigEndian2Int(substr($atom_data, 6, 2));
970
- $atom_structure['opcolor_green'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 2));
971
- $atom_structure['opcolor_blue'] = getid3_lib::BigEndian2Int(substr($atom_data, 10, 2));
972
-
973
- $atom_structure['flags']['no_lean_ahead'] = (bool) ($atom_structure['flags_raw'] & 0x001);
974
- break;
975
-
976
-
977
- case 'hdlr': // HanDLeR reference atom
978
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
979
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
980
- $atom_structure['component_type'] = substr($atom_data, 4, 4);
981
- $atom_structure['component_subtype'] = substr($atom_data, 8, 4);
982
- $atom_structure['component_manufacturer'] = substr($atom_data, 12, 4);
983
- $atom_structure['component_flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 16, 4));
984
- $atom_structure['component_flags_mask'] = getid3_lib::BigEndian2Int(substr($atom_data, 20, 4));
985
- $atom_structure['component_name'] = $this->Pascal2String(substr($atom_data, 24));
986
-
987
- if (($atom_structure['component_subtype'] == 'STpn') && ($atom_structure['component_manufacturer'] == 'zzzz')) {
988
- $info['video']['dataformat'] = 'quicktimevr';
989
- }
990
- break;
991
-
992
-
993
- case 'mdhd': // MeDia HeaDer atom
994
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
995
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
996
- $atom_structure['creation_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
997
- $atom_structure['modify_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 4));
998
- $atom_structure['time_scale'] = getid3_lib::BigEndian2Int(substr($atom_data, 12, 4));
999
- $atom_structure['duration'] = getid3_lib::BigEndian2Int(substr($atom_data, 16, 4));
1000
- $atom_structure['language_id'] = getid3_lib::BigEndian2Int(substr($atom_data, 20, 2));
1001
- $atom_structure['quality'] = getid3_lib::BigEndian2Int(substr($atom_data, 22, 2));
1002
-
1003
- if ($atom_structure['time_scale'] == 0) {
1004
- $info['error'][] = 'Corrupt Quicktime file: mdhd.time_scale == zero';
1005
- return false;
1006
- }
1007
- $info['quicktime']['time_scale'] = (isset($info['quicktime']['time_scale']) ? max($info['quicktime']['time_scale'], $atom_structure['time_scale']) : $atom_structure['time_scale']);
1008
-
1009
- $atom_structure['creation_time_unix'] = getid3_lib::DateMac2Unix($atom_structure['creation_time']);
1010
- $atom_structure['modify_time_unix'] = getid3_lib::DateMac2Unix($atom_structure['modify_time']);
1011
- $atom_structure['playtime_seconds'] = $atom_structure['duration'] / $atom_structure['time_scale'];
1012
- $atom_structure['language'] = $this->QuicktimeLanguageLookup($atom_structure['language_id']);
1013
- if (empty($info['comments']['language']) || (!in_array($atom_structure['language'], $info['comments']['language']))) {
1014
- $info['comments']['language'][] = $atom_structure['language'];
1015
- }
1016
- break;
1017
-
1018
-
1019
- case 'pnot': // Preview atom
1020
- $atom_structure['modification_date'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 4)); // "standard Macintosh format"
1021
- $atom_structure['version_number'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2)); // hardcoded: 0x00
1022
- $atom_structure['atom_type'] = substr($atom_data, 6, 4); // usually: 'PICT'
1023
- $atom_structure['atom_index'] = getid3_lib::BigEndian2Int(substr($atom_data, 10, 2)); // usually: 0x01
1024
-
1025
- $atom_structure['modification_date_unix'] = getid3_lib::DateMac2Unix($atom_structure['modification_date']);
1026
- break;
1027
-
1028
-
1029
- case 'crgn': // Clipping ReGioN atom
1030
- $atom_structure['region_size'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 2)); // The Region size, Region boundary box,
1031
- $atom_structure['boundary_box'] = getid3_lib::BigEndian2Int(substr($atom_data, 2, 8)); // and Clipping region data fields
1032
- $atom_structure['clipping_data'] = substr($atom_data, 10); // constitute a QuickDraw region.
1033
- break;
1034
-
1035
-
1036
- case 'load': // track LOAD settings atom
1037
- $atom_structure['preload_start_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 4));
1038
- $atom_structure['preload_duration'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
1039
- $atom_structure['preload_flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 4));
1040
- $atom_structure['default_hints_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 12, 4));
1041
-
1042
- $atom_structure['default_hints']['double_buffer'] = (bool) ($atom_structure['default_hints_raw'] & 0x0020);
1043
- $atom_structure['default_hints']['high_quality'] = (bool) ($atom_structure['default_hints_raw'] & 0x0100);
1044
- break;
1045
-
1046
-
1047
- case 'tmcd': // TiMe CoDe atom
1048
- case 'chap': // CHAPter list atom
1049
- case 'sync': // SYNChronization atom
1050
- case 'scpt': // tranSCriPT atom
1051
- case 'ssrc': // non-primary SouRCe atom
1052
- for ($i = 0; $i < strlen($atom_data); $i += 4) {
1053
- @$atom_structure['track_id'][] = getid3_lib::BigEndian2Int(substr($atom_data, $i, 4));
1054
- }
1055
- break;
1056
-
1057
-
1058
- case 'elst': // Edit LiST atom
1059
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
1060
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
1061
- $atom_structure['number_entries'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
1062
- for ($i = 0; $i < $atom_structure['number_entries']; $i++ ) {
1063
- $atom_structure['edit_list'][$i]['track_duration'] = getid3_lib::BigEndian2Int(substr($atom_data, 8 + ($i * 12) + 0, 4));
1064
- $atom_structure['edit_list'][$i]['media_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 8 + ($i * 12) + 4, 4));
1065
- $atom_structure['edit_list'][$i]['media_rate'] = getid3_lib::FixedPoint16_16(substr($atom_data, 8 + ($i * 12) + 8, 4));
1066
- }
1067
- break;
1068
-
1069
-
1070
- case 'kmat': // compressed MATte atom
1071
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
1072
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3)); // hardcoded: 0x0000
1073
- $atom_structure['matte_data_raw'] = substr($atom_data, 4);
1074
- break;
1075
-
1076
-
1077
- case 'ctab': // Color TABle atom
1078
- $atom_structure['color_table_seed'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 4)); // hardcoded: 0x00000000
1079
- $atom_structure['color_table_flags'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 2)); // hardcoded: 0x8000
1080
- $atom_structure['color_table_size'] = getid3_lib::BigEndian2Int(substr($atom_data, 6, 2)) + 1;
1081
- for ($colortableentry = 0; $colortableentry < $atom_structure['color_table_size']; $colortableentry++) {
1082
- $atom_structure['color_table'][$colortableentry]['alpha'] = getid3_lib::BigEndian2Int(substr($atom_data, 8 + ($colortableentry * 8) + 0, 2));
1083
- $atom_structure['color_table'][$colortableentry]['red'] = getid3_lib::BigEndian2Int(substr($atom_data, 8 + ($colortableentry * 8) + 2, 2));
1084
- $atom_structure['color_table'][$colortableentry]['green'] = getid3_lib::BigEndian2Int(substr($atom_data, 8 + ($colortableentry * 8) + 4, 2));
1085
- $atom_structure['color_table'][$colortableentry]['blue'] = getid3_lib::BigEndian2Int(substr($atom_data, 8 + ($colortableentry * 8) + 6, 2));
1086
- }
1087
- break;
1088
-
1089
-
1090
- case 'mvhd': // MoVie HeaDer atom
1091
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
1092
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3));
1093
- $atom_structure['creation_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
1094
- $atom_structure['modify_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 4));
1095
- $atom_structure['time_scale'] = getid3_lib::BigEndian2Int(substr($atom_data, 12, 4));
1096
- $atom_structure['duration'] = getid3_lib::BigEndian2Int(substr($atom_data, 16, 4));
1097
- $atom_structure['preferred_rate'] = getid3_lib::FixedPoint16_16(substr($atom_data, 20, 4));
1098
- $atom_structure['preferred_volume'] = getid3_lib::FixedPoint8_8(substr($atom_data, 24, 2));
1099
- $atom_structure['reserved'] = substr($atom_data, 26, 10);
1100
- $atom_structure['matrix_a'] = getid3_lib::FixedPoint16_16(substr($atom_data, 36, 4));
1101
- $atom_structure['matrix_b'] = getid3_lib::FixedPoint16_16(substr($atom_data, 40, 4));
1102
- $atom_structure['matrix_u'] = getid3_lib::FixedPoint2_30(substr($atom_data, 44, 4));
1103
- $atom_structure['matrix_c'] = getid3_lib::FixedPoint16_16(substr($atom_data, 48, 4));
1104
- $atom_structure['matrix_d'] = getid3_lib::FixedPoint16_16(substr($atom_data, 52, 4));
1105
- $atom_structure['matrix_v'] = getid3_lib::FixedPoint2_30(substr($atom_data, 56, 4));
1106
- $atom_structure['matrix_x'] = getid3_lib::FixedPoint16_16(substr($atom_data, 60, 4));
1107
- $atom_structure['matrix_y'] = getid3_lib::FixedPoint16_16(substr($atom_data, 64, 4));
1108
- $atom_structure['matrix_w'] = getid3_lib::FixedPoint2_30(substr($atom_data, 68, 4));
1109
- $atom_structure['preview_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 72, 4));
1110
- $atom_structure['preview_duration'] = getid3_lib::BigEndian2Int(substr($atom_data, 76, 4));
1111
- $atom_structure['poster_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 80, 4));
1112
- $atom_structure['selection_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 84, 4));
1113
- $atom_structure['selection_duration'] = getid3_lib::BigEndian2Int(substr($atom_data, 88, 4));
1114
- $atom_structure['current_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 92, 4));
1115
- $atom_structure['next_track_id'] = getid3_lib::BigEndian2Int(substr($atom_data, 96, 4));
1116
-
1117
- if ($atom_structure['time_scale'] == 0) {
1118
- $info['error'][] = 'Corrupt Quicktime file: mvhd.time_scale == zero';
1119
- return false;
1120
- }
1121
- $atom_structure['creation_time_unix'] = getid3_lib::DateMac2Unix($atom_structure['creation_time']);
1122
- $atom_structure['modify_time_unix'] = getid3_lib::DateMac2Unix($atom_structure['modify_time']);
1123
- $info['quicktime']['time_scale'] = (isset($info['quicktime']['time_scale']) ? max($info['quicktime']['time_scale'], $atom_structure['time_scale']) : $atom_structure['time_scale']);
1124
- $info['quicktime']['display_scale'] = $atom_structure['matrix_a'];
1125
- $info['playtime_seconds'] = $atom_structure['duration'] / $atom_structure['time_scale'];
1126
- break;
1127
-
1128
-
1129
- case 'tkhd': // TracK HeaDer atom
1130
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
1131
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3));
1132
- $atom_structure['creation_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
1133
- $atom_structure['modify_time'] = getid3_lib::BigEndian2Int(substr($atom_data, 8, 4));
1134
- $atom_structure['trackid'] = getid3_lib::BigEndian2Int(substr($atom_data, 12, 4));
1135
- $atom_structure['reserved1'] = getid3_lib::BigEndian2Int(substr($atom_data, 16, 4));
1136
- $atom_structure['duration'] = getid3_lib::BigEndian2Int(substr($atom_data, 20, 4));
1137
- $atom_structure['reserved2'] = getid3_lib::BigEndian2Int(substr($atom_data, 24, 8));
1138
- $atom_structure['layer'] = getid3_lib::BigEndian2Int(substr($atom_data, 32, 2));
1139
- $atom_structure['alternate_group'] = getid3_lib::BigEndian2Int(substr($atom_data, 34, 2));
1140
- $atom_structure['volume'] = getid3_lib::FixedPoint8_8(substr($atom_data, 36, 2));
1141
- $atom_structure['reserved3'] = getid3_lib::BigEndian2Int(substr($atom_data, 38, 2));
1142
- // http://developer.apple.com/library/mac/#documentation/QuickTime/RM/MovieBasics/MTEditing/K-Chapter/11MatrixFunctions.html
1143
- // http://developer.apple.com/library/mac/#documentation/QuickTime/qtff/QTFFChap4/qtff4.html#//apple_ref/doc/uid/TP40000939-CH206-18737
1144
- $atom_structure['matrix_a'] = getid3_lib::FixedPoint16_16(substr($atom_data, 40, 4));
1145
- $atom_structure['matrix_b'] = getid3_lib::FixedPoint16_16(substr($atom_data, 44, 4));
1146
- $atom_structure['matrix_u'] = getid3_lib::FixedPoint2_30(substr($atom_data, 48, 4));
1147
- $atom_structure['matrix_c'] = getid3_lib::FixedPoint16_16(substr($atom_data, 52, 4));
1148
- $atom_structure['matrix_d'] = getid3_lib::FixedPoint16_16(substr($atom_data, 56, 4));
1149
- $atom_structure['matrix_v'] = getid3_lib::FixedPoint2_30(substr($atom_data, 60, 4));
1150
- $atom_structure['matrix_x'] = getid3_lib::FixedPoint16_16(substr($atom_data, 64, 4));
1151
- $atom_structure['matrix_y'] = getid3_lib::FixedPoint16_16(substr($atom_data, 68, 4));
1152
- $atom_structure['matrix_w'] = getid3_lib::FixedPoint2_30(substr($atom_data, 72, 4));
1153
- $atom_structure['width'] = getid3_lib::FixedPoint16_16(substr($atom_data, 76, 4));
1154
- $atom_structure['height'] = getid3_lib::FixedPoint16_16(substr($atom_data, 80, 4));
1155
- $atom_structure['flags']['enabled'] = (bool) ($atom_structure['flags_raw'] & 0x0001);
1156
- $atom_structure['flags']['in_movie'] = (bool) ($atom_structure['flags_raw'] & 0x0002);
1157
- $atom_structure['flags']['in_preview'] = (bool) ($atom_structure['flags_raw'] & 0x0004);
1158
- $atom_structure['flags']['in_poster'] = (bool) ($atom_structure['flags_raw'] & 0x0008);
1159
- $atom_structure['creation_time_unix'] = getid3_lib::DateMac2Unix($atom_structure['creation_time']);
1160
- $atom_structure['modify_time_unix'] = getid3_lib::DateMac2Unix($atom_structure['modify_time']);
1161
-
1162
- if ($atom_structure['flags']['enabled'] == 1) {
1163
- if (!isset($info['video']['resolution_x']) || !isset($info['video']['resolution_y'])) {
1164
- $info['video']['resolution_x'] = $atom_structure['width'];
1165
- $info['video']['resolution_y'] = $atom_structure['height'];
1166
- }
1167
- $info['video']['resolution_x'] = max($info['video']['resolution_x'], $atom_structure['width']);
1168
- $info['video']['resolution_y'] = max($info['video']['resolution_y'], $atom_structure['height']);
1169
- $info['quicktime']['video']['resolution_x'] = $info['video']['resolution_x'];
1170
- $info['quicktime']['video']['resolution_y'] = $info['video']['resolution_y'];
1171
- } else {
1172
- // see: http://www.getid3.org/phpBB3/viewtopic.php?t=1295
1173
- //if (isset($info['video']['resolution_x'])) { unset($info['video']['resolution_x']); }
1174
- //if (isset($info['video']['resolution_y'])) { unset($info['video']['resolution_y']); }
1175
- //if (isset($info['quicktime']['video'])) { unset($info['quicktime']['video']); }
1176
- }
1177
- break;
1178
-
1179
-
1180
- case 'iods': // Initial Object DeScriptor atom
1181
- // http://www.koders.com/c/fid1FAB3E762903DC482D8A246D4A4BF9F28E049594.aspx?s=windows.h
1182
- // http://libquicktime.sourcearchive.com/documentation/1.0.2plus-pdebian/iods_8c-source.html
1183
- $offset = 0;
1184
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 1));
1185
- $offset += 1;
1186
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 3));
1187
- $offset += 3;
1188
- $atom_structure['mp4_iod_tag'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 1));
1189
- $offset += 1;
1190
- $atom_structure['length'] = $this->quicktime_read_mp4_descr_length($atom_data, $offset);
1191
- //$offset already adjusted by quicktime_read_mp4_descr_length()
1192
- $atom_structure['object_descriptor_id'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 2));
1193
- $offset += 2;
1194
- $atom_structure['od_profile_level'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 1));
1195
- $offset += 1;
1196
- $atom_structure['scene_profile_level'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 1));
1197
- $offset += 1;
1198
- $atom_structure['audio_profile_id'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 1));
1199
- $offset += 1;
1200
- $atom_structure['video_profile_id'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 1));
1201
- $offset += 1;
1202
- $atom_structure['graphics_profile_level'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 1));
1203
- $offset += 1;
1204
-
1205
- $atom_structure['num_iods_tracks'] = ($atom_structure['length'] - 7) / 6; // 6 bytes would only be right if all tracks use 1-byte length fields
1206
- for ($i = 0; $i < $atom_structure['num_iods_tracks']; $i++) {
1207
- $atom_structure['track'][$i]['ES_ID_IncTag'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 1));
1208
- $offset += 1;
1209
- $atom_structure['track'][$i]['length'] = $this->quicktime_read_mp4_descr_length($atom_data, $offset);
1210
- //$offset already adjusted by quicktime_read_mp4_descr_length()
1211
- $atom_structure['track'][$i]['track_id'] = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 4));
1212
- $offset += 4;
1213
- }
1214
-
1215
- $atom_structure['audio_profile_name'] = $this->QuicktimeIODSaudioProfileName($atom_structure['audio_profile_id']);
1216
- $atom_structure['video_profile_name'] = $this->QuicktimeIODSvideoProfileName($atom_structure['video_profile_id']);
1217
- break;
1218
-
1219
- case 'ftyp': // FileTYPe (?) atom (for MP4 it seems)
1220
- $atom_structure['signature'] = substr($atom_data, 0, 4);
1221
- $atom_structure['unknown_1'] = getid3_lib::BigEndian2Int(substr($atom_data, 4, 4));
1222
- $atom_structure['fourcc'] = substr($atom_data, 8, 4);
1223
- break;
1224
-
1225
- case 'mdat': // Media DATa atom
1226
- // 'mdat' contains the actual data for the audio/video, possibly also subtitles
1227
-
1228
- /* due to lack of known documentation, this is a kludge implementation. If you know of documentation on how mdat is properly structed, please send it to info@getid3.org */
1229
-
1230
- // first, skip any 'wide' padding, and second 'mdat' header (with specified size of zero?)
1231
- $mdat_offset = 0;
1232
- while (true) {
1233
- if (substr($atom_data, $mdat_offset, 8) == "\x00\x00\x00\x08".'wide') {
1234
- $mdat_offset += 8;
1235
- } elseif (substr($atom_data, $mdat_offset, 8) == "\x00\x00\x00\x00".'mdat') {
1236
- $mdat_offset += 8;
1237
- } else {
1238
- break;
1239
- }
1240
- }
1241
-
1242
- // check to see if it looks like chapter titles, in the form of unterminated strings with a leading 16-bit size field
1243
- while (($chapter_string_length = getid3_lib::BigEndian2Int(substr($atom_data, $mdat_offset, 2)))
1244
- && ($chapter_string_length < 1000)
1245
- && ($chapter_string_length <= (strlen($atom_data) - $mdat_offset - 2))
1246
- && preg_match('#^[\x20-\xFF]+$#', substr($atom_data, $mdat_offset + 2, $chapter_string_length), $chapter_matches)) {
1247
- $mdat_offset += (2 + $chapter_string_length);
1248
- @$info['quicktime']['comments']['chapters'][] = $chapter_matches[0];
1249
- }
1250
-
1251
-
1252
-
1253
- if (($atomsize > 8) && (!isset($info['avdataend_tmp']) || ($info['quicktime'][$atomname]['size'] > ($info['avdataend_tmp'] - $info['avdataoffset'])))) {
1254
-
1255
- $info['avdataoffset'] = $atom_structure['offset'] + 8; // $info['quicktime'][$atomname]['offset'] + 8;
1256
- $OldAVDataEnd = $info['avdataend'];
1257
- $info['avdataend'] = $atom_structure['offset'] + $atom_structure['size']; // $info['quicktime'][$atomname]['offset'] + $info['quicktime'][$atomname]['size'];
1258
-
1259
- $getid3_temp = new getID3();
1260
- $getid3_temp->openfile($this->getid3->filename);
1261
- $getid3_temp->info['avdataoffset'] = $info['avdataoffset'];
1262
- $getid3_temp->info['avdataend'] = $info['avdataend'];
1263
- $getid3_mp3 = new getid3_mp3($getid3_temp);
1264
- if ($getid3_mp3->MPEGaudioHeaderValid($getid3_mp3->MPEGaudioHeaderDecode($this->fread(4)))) {
1265
- $getid3_mp3->getOnlyMPEGaudioInfo($getid3_temp->info['avdataoffset'], false);
1266
- if (!empty($getid3_temp->info['warning'])) {
1267
- foreach ($getid3_temp->info['warning'] as $value) {
1268
- $info['warning'][] = $value;
1269
- }
1270
- }
1271
- if (!empty($getid3_temp->info['mpeg'])) {
1272
- $info['mpeg'] = $getid3_temp->info['mpeg'];
1273
- if (isset($info['mpeg']['audio'])) {
1274
- $info['audio']['dataformat'] = 'mp3';
1275
- $info['audio']['codec'] = (!empty($info['mpeg']['audio']['encoder']) ? $info['mpeg']['audio']['encoder'] : (!empty($info['mpeg']['audio']['codec']) ? $info['mpeg']['audio']['codec'] : (!empty($info['mpeg']['audio']['LAME']) ? 'LAME' :'mp3')));
1276
- $info['audio']['sample_rate'] = $info['mpeg']['audio']['sample_rate'];
1277
- $info['audio']['channels'] = $info['mpeg']['audio']['channels'];
1278
- $info['audio']['bitrate'] = $info['mpeg']['audio']['bitrate'];
1279
- $info['audio']['bitrate_mode'] = strtolower($info['mpeg']['audio']['bitrate_mode']);
1280
- $info['bitrate'] = $info['audio']['bitrate'];
1281
- }
1282
- }
1283
- }
1284
- unset($getid3_mp3, $getid3_temp);
1285
- $info['avdataend'] = $OldAVDataEnd;
1286
- unset($OldAVDataEnd);
1287
-
1288
- }
1289
-
1290
- unset($mdat_offset, $chapter_string_length, $chapter_matches);
1291
- break;
1292
-
1293
- case 'free': // FREE space atom
1294
- case 'skip': // SKIP atom
1295
- case 'wide': // 64-bit expansion placeholder atom
1296
- // 'free', 'skip' and 'wide' are just padding, contains no useful data at all
1297
-
1298
- // When writing QuickTime files, it is sometimes necessary to update an atom's size.
1299
- // It is impossible to update a 32-bit atom to a 64-bit atom since the 32-bit atom
1300
- // is only 8 bytes in size, and the 64-bit atom requires 16 bytes. Therefore, QuickTime
1301
- // puts an 8-byte placeholder atom before any atoms it may have to update the size of.
1302
- // In this way, if the atom needs to be converted from a 32-bit to a 64-bit atom, the
1303
- // placeholder atom can be overwritten to obtain the necessary 8 extra bytes.
1304
- // The placeholder atom has a type of kWideAtomPlaceholderType ( 'wide' ).
1305
- break;
1306
-
1307
-
1308
- case 'nsav': // NoSAVe atom
1309
- // http://developer.apple.com/technotes/tn/tn2038.html
1310
- $atom_structure['data'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 4));
1311
- break;
1312
-
1313
- case 'ctyp': // Controller TYPe atom (seen on QTVR)
1314
- // http://homepages.slingshot.co.nz/~helmboy/quicktime/formats/qtm-layout.txt
1315
- // some controller names are:
1316
- // 0x00 + 'std' for linear movie
1317
- // 'none' for no controls
1318
- $atom_structure['ctyp'] = substr($atom_data, 0, 4);
1319
- $info['quicktime']['controller'] = $atom_structure['ctyp'];
1320
- switch ($atom_structure['ctyp']) {
1321
- case 'qtvr':
1322
- $info['video']['dataformat'] = 'quicktimevr';
1323
- break;
1324
- }
1325
- break;
1326
-
1327
- case 'pano': // PANOrama track (seen on QTVR)
1328
- $atom_structure['pano'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 4));
1329
- break;
1330
-
1331
- case 'hint': // HINT track
1332
- case 'hinf': //
1333
- case 'hinv': //
1334
- case 'hnti': //
1335
- $info['quicktime']['hinting'] = true;
1336
- break;
1337
-
1338
- case 'imgt': // IMaGe Track reference (kQTVRImageTrackRefType) (seen on QTVR)
1339
- for ($i = 0; $i < ($atom_structure['size'] - 8); $i += 4) {
1340
- $atom_structure['imgt'][] = getid3_lib::BigEndian2Int(substr($atom_data, $i, 4));
1341
- }
1342
- break;
1343
-
1344
-
1345
- // Observed-but-not-handled atom types are just listed here to prevent warnings being generated
1346
- case 'FXTC': // Something to do with Adobe After Effects (?)
1347
- case 'PrmA':
1348
- case 'code':
1349
- case 'FIEL': // this is NOT "fiel" (Field Ordering) as describe here: http://developer.apple.com/documentation/QuickTime/QTFF/QTFFChap3/chapter_4_section_2.html
1350
- case 'tapt': // TrackApertureModeDimensionsAID - http://developer.apple.com/documentation/QuickTime/Reference/QT7-1_Update_Reference/Constants/Constants.html
1351
- // tapt seems to be used to compute the video size [http://www.getid3.org/phpBB3/viewtopic.php?t=838]
1352
- // * http://lists.apple.com/archives/quicktime-api/2006/Aug/msg00014.html
1353
- // * http://handbrake.fr/irclogs/handbrake-dev/handbrake-dev20080128_pg2.html
1354
- case 'ctts':// STCompositionOffsetAID - http://developer.apple.com/documentation/QuickTime/Reference/QTRef_Constants/Reference/reference.html
1355
- case 'cslg':// STCompositionShiftLeastGreatestAID - http://developer.apple.com/documentation/QuickTime/Reference/QTRef_Constants/Reference/reference.html
1356
- case 'sdtp':// STSampleDependencyAID - http://developer.apple.com/documentation/QuickTime/Reference/QTRef_Constants/Reference/reference.html
1357
- case 'stps':// STPartialSyncSampleAID - http://developer.apple.com/documentation/QuickTime/Reference/QTRef_Constants/Reference/reference.html
1358
- //$atom_structure['data'] = $atom_data;
1359
- break;
1360
-
1361
- case "\xA9".'xyz': // GPS latitude+longitude+altitude
1362
- $atom_structure['data'] = $atom_data;
1363
- if (preg_match('#([\\+\\-][0-9\\.]+)([\\+\\-][0-9\\.]+)([\\+\\-][0-9\\.]+)?/$#i', $atom_data, $matches)) {
1364
- @list($all, $latitude, $longitude, $altitude) = $matches;
1365
- $info['quicktime']['comments']['gps_latitude'][] = floatval($latitude);
1366
- $info['quicktime']['comments']['gps_longitude'][] = floatval($longitude);
1367
- if (!empty($altitude)) {
1368
- $info['quicktime']['comments']['gps_altitude'][] = floatval($altitude);
1369
- }
1370
- } else {
1371
- $info['warning'][] = 'QuickTime atom "©xyz" data does not match expected data pattern at offset '.$baseoffset.'. Please report as getID3() bug.';
1372
- }
1373
- break;
1374
-
1375
- case 'NCDT':
1376
- // http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html
1377
- // Nikon-specific QuickTime tags found in the NCDT atom of MOV videos from some Nikon cameras such as the Coolpix S8000 and D5100
1378
- $atom_structure['subatoms'] = $this->QuicktimeParseContainerAtom($atom_data, $baseoffset + 4, $atomHierarchy, $ParseAllPossibleAtoms);
1379
- break;
1380
- case 'NCTH': // Nikon Camera THumbnail image
1381
- case 'NCVW': // Nikon Camera preVieW image
1382
- // http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html
1383
- if (preg_match('/^\xFF\xD8\xFF/', $atom_data)) {
1384
- $atom_structure['data'] = $atom_data;
1385
- $atom_structure['image_mime'] = 'image/jpeg';
1386
- $atom_structure['description'] = (($atomname == 'NCTH') ? 'Nikon Camera Thumbnail Image' : (($atomname == 'NCVW') ? 'Nikon Camera Preview Image' : 'Nikon preview image'));
1387
- $info['quicktime']['comments']['picture'][] = array('image_mime'=>$atom_structure['image_mime'], 'data'=>$atom_data, 'description'=>$atom_structure['description']);
1388
- }
1389
- break;
1390
- case 'NCTG': // Nikon - http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html#NCTG
1391
- $atom_structure['data'] = $this->QuicktimeParseNikonNCTG($atom_data);
1392
- break;
1393
- case 'NCHD': // Nikon:MakerNoteVersion - http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html
1394
- case 'NCDB': // Nikon - http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html
1395
- case 'CNCV': // Canon:CompressorVersion - http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Canon.html
1396
- $atom_structure['data'] = $atom_data;
1397
- break;
1398
-
1399
- case "\x00\x00\x00\x00":
1400
- case 'meta': // METAdata atom
1401
- // some kind of metacontainer, may contain a big data dump such as:
1402
- // mdta keys  mdtacom.apple.quicktime.make (mdtacom.apple.quicktime.creationdate ,mdtacom.apple.quicktime.location.ISO6709 $mdtacom.apple.quicktime.software !mdtacom.apple.quicktime.model ilst   data DEApple 0  (data DE2011-05-11T17:54:04+0200 2  *data DE+52.4936+013.3897+040.247/   data DE4.3.1  data DEiPhone 4
1403
- // http://www.geocities.com/xhelmboyx/quicktime/formats/qti-layout.txt
1404
-
1405
- $atom_structure['version'] = getid3_lib::BigEndian2Int(substr($atom_data, 0, 1));
1406
- $atom_structure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atom_data, 1, 3));
1407
- $atom_structure['subatoms'] = $this->QuicktimeParseContainerAtom(substr($atom_data, 4), $baseoffset + 8, $atomHierarchy, $ParseAllPossibleAtoms);
1408
- //$atom_structure['subatoms'] = $this->QuicktimeParseContainerAtom($atom_data, $baseoffset + 8, $atomHierarchy, $ParseAllPossibleAtoms);
1409
- break;
1410
-
1411
- case 'data': // metaDATA atom
1412
- // seems to be 2 bytes language code (ASCII), 2 bytes unknown (set to 0x10B5 in sample I have), remainder is useful data
1413
- $atom_structure['language'] = substr($atom_data, 4 + 0, 2);
1414
- $atom_structure['unknown'] = getid3_lib::BigEndian2Int(substr($atom_data, 4 + 2, 2));
1415
- $atom_structure['data'] = substr($atom_data, 4 + 4);
1416
- break;
1417
-
1418
- default:
1419
- $info['warning'][] = 'Unknown QuickTime atom type: "'.preg_replace('#[^a-zA-Z0-9 _\\-]#', '?', $atomname).'" ('.trim(getid3_lib::PrintHexBytes($atomname)).') at offset '.$baseoffset;
1420
- $atom_structure['data'] = $atom_data;
1421
- break;
1422
- }
1423
- array_pop($atomHierarchy);
1424
- return $atom_structure;
1425
- }
1426
-
1427
- public function QuicktimeParseContainerAtom($atom_data, $baseoffset, &$atomHierarchy, $ParseAllPossibleAtoms) {
1428
- //echo 'QuicktimeParseContainerAtom('.substr($atom_data, 4, 4).') @ '.$baseoffset.'<br><br>';
1429
- $atom_structure = false;
1430
- $subatomoffset = 0;
1431
- $subatomcounter = 0;
1432
- if ((strlen($atom_data) == 4) && (getid3_lib::BigEndian2Int($atom_data) == 0x00000000)) {
1433
- return false;
1434
- }
1435
- while ($subatomoffset < strlen($atom_data)) {
1436
- $subatomsize = getid3_lib::BigEndian2Int(substr($atom_data, $subatomoffset + 0, 4));
1437
- $subatomname = substr($atom_data, $subatomoffset + 4, 4);
1438
- $subatomdata = substr($atom_data, $subatomoffset + 8, $subatomsize - 8);
1439
- if ($subatomsize == 0) {
1440
- // Furthermore, for historical reasons the list of atoms is optionally
1441
- // terminated by a 32-bit integer set to 0. If you are writing a program
1442
- // to read user data atoms, you should allow for the terminating 0.
1443
- return $atom_structure;
1444
- }
1445
-
1446
- $atom_structure[$subatomcounter] = $this->QuicktimeParseAtom($subatomname, $subatomsize, $subatomdata, $baseoffset + $subatomoffset, $atomHierarchy, $ParseAllPossibleAtoms);
1447
-
1448
- $subatomoffset += $subatomsize;
1449
- $subatomcounter++;
1450
- }
1451
- return $atom_structure;
1452
- }
1453
-
1454
-
1455
- public function quicktime_read_mp4_descr_length($data, &$offset) {
1456
- // http://libquicktime.sourcearchive.com/documentation/2:1.0.2plus-pdebian-2build1/esds_8c-source.html
1457
- $num_bytes = 0;
1458
- $length = 0;
1459
- do {
1460
- $b = ord(substr($data, $offset++, 1));
1461
- $length = ($length << 7) | ($b & 0x7F);
1462
- } while (($b & 0x80) && ($num_bytes++ < 4));
1463
- return $length;
1464
- }
1465
-
1466
-
1467
- public function QuicktimeLanguageLookup($languageid) {
1468
- // http://developer.apple.com/library/mac/#documentation/QuickTime/QTFF/QTFFChap4/qtff4.html#//apple_ref/doc/uid/TP40000939-CH206-34353
1469
- static $QuicktimeLanguageLookup = array();
1470
- if (empty($QuicktimeLanguageLookup)) {
1471
- $QuicktimeLanguageLookup[0] = 'English';
1472
- $QuicktimeLanguageLookup[1] = 'French';
1473
- $QuicktimeLanguageLookup[2] = 'German';
1474
- $QuicktimeLanguageLookup[3] = 'Italian';
1475
- $QuicktimeLanguageLookup[4] = 'Dutch';
1476
- $QuicktimeLanguageLookup[5] = 'Swedish';
1477
- $QuicktimeLanguageLookup[6] = 'Spanish';
1478
- $QuicktimeLanguageLookup[7] = 'Danish';
1479
- $QuicktimeLanguageLookup[8] = 'Portuguese';
1480
- $QuicktimeLanguageLookup[9] = 'Norwegian';
1481
- $QuicktimeLanguageLookup[10] = 'Hebrew';
1482
- $QuicktimeLanguageLookup[11] = 'Japanese';
1483
- $QuicktimeLanguageLookup[12] = 'Arabic';
1484
- $QuicktimeLanguageLookup[13] = 'Finnish';
1485
- $QuicktimeLanguageLookup[14] = 'Greek';
1486
- $QuicktimeLanguageLookup[15] = 'Icelandic';
1487
- $QuicktimeLanguageLookup[16] = 'Maltese';
1488
- $QuicktimeLanguageLookup[17] = 'Turkish';
1489
- $QuicktimeLanguageLookup[18] = 'Croatian';
1490
- $QuicktimeLanguageLookup[19] = 'Chinese (Traditional)';
1491
- $QuicktimeLanguageLookup[20] = 'Urdu';
1492
- $QuicktimeLanguageLookup[21] = 'Hindi';
1493
- $QuicktimeLanguageLookup[22] = 'Thai';
1494
- $QuicktimeLanguageLookup[23] = 'Korean';
1495
- $QuicktimeLanguageLookup[24] = 'Lithuanian';
1496
- $QuicktimeLanguageLookup[25] = 'Polish';
1497
- $QuicktimeLanguageLookup[26] = 'Hungarian';
1498
- $QuicktimeLanguageLookup[27] = 'Estonian';
1499
- $QuicktimeLanguageLookup[28] = 'Lettish';
1500
- $QuicktimeLanguageLookup[28] = 'Latvian';
1501
- $QuicktimeLanguageLookup[29] = 'Saamisk';
1502
- $QuicktimeLanguageLookup[29] = 'Lappish';
1503
- $QuicktimeLanguageLookup[30] = 'Faeroese';
1504
- $QuicktimeLanguageLookup[31] = 'Farsi';
1505
- $QuicktimeLanguageLookup[31] = 'Persian';
1506
- $QuicktimeLanguageLookup[32] = 'Russian';
1507
- $QuicktimeLanguageLookup[33] = 'Chinese (Simplified)';
1508
- $QuicktimeLanguageLookup[34] = 'Flemish';
1509
- $QuicktimeLanguageLookup[35] = 'Irish';
1510
- $QuicktimeLanguageLookup[36] = 'Albanian';
1511
- $QuicktimeLanguageLookup[37] = 'Romanian';
1512
- $QuicktimeLanguageLookup[38] = 'Czech';
1513
- $QuicktimeLanguageLookup[39] = 'Slovak';
1514
- $QuicktimeLanguageLookup[40] = 'Slovenian';
1515
- $QuicktimeLanguageLookup[41] = 'Yiddish';
1516
- $QuicktimeLanguageLookup[42] = 'Serbian';
1517
- $QuicktimeLanguageLookup[43] = 'Macedonian';
1518
- $QuicktimeLanguageLookup[44] = 'Bulgarian';
1519
- $QuicktimeLanguageLookup[45] = 'Ukrainian';
1520
- $QuicktimeLanguageLookup[46] = 'Byelorussian';
1521
- $QuicktimeLanguageLookup[47] = 'Uzbek';
1522
- $QuicktimeLanguageLookup[48] = 'Kazakh';
1523
- $QuicktimeLanguageLookup[49] = 'Azerbaijani';
1524
- $QuicktimeLanguageLookup[50] = 'AzerbaijanAr';
1525
- $QuicktimeLanguageLookup[51] = 'Armenian';
1526
- $QuicktimeLanguageLookup[52] = 'Georgian';
1527
- $QuicktimeLanguageLookup[53] = 'Moldavian';
1528
- $QuicktimeLanguageLookup[54] = 'Kirghiz';
1529
- $QuicktimeLanguageLookup[55] = 'Tajiki';
1530
- $QuicktimeLanguageLookup[56] = 'Turkmen';
1531
- $QuicktimeLanguageLookup[57] = 'Mongolian';
1532
- $QuicktimeLanguageLookup[58] = 'MongolianCyr';
1533
- $QuicktimeLanguageLookup[59] = 'Pashto';
1534
- $QuicktimeLanguageLookup[60] = 'Kurdish';
1535
- $QuicktimeLanguageLookup[61] = 'Kashmiri';
1536
- $QuicktimeLanguageLookup[62] = 'Sindhi';
1537
- $QuicktimeLanguageLookup[63] = 'Tibetan';
1538
- $QuicktimeLanguageLookup[64] = 'Nepali';
1539
- $QuicktimeLanguageLookup[65] = 'Sanskrit';
1540
- $QuicktimeLanguageLookup[66] = 'Marathi';
1541
- $QuicktimeLanguageLookup[67] = 'Bengali';
1542
- $QuicktimeLanguageLookup[68] = 'Assamese';
1543
- $QuicktimeLanguageLookup[69] = 'Gujarati';
1544
- $QuicktimeLanguageLookup[70] = 'Punjabi';
1545
- $QuicktimeLanguageLookup[71] = 'Oriya';
1546
- $QuicktimeLanguageLookup[72] = 'Malayalam';
1547
- $QuicktimeLanguageLookup[73] = 'Kannada';
1548
- $QuicktimeLanguageLookup[74] = 'Tamil';
1549
- $QuicktimeLanguageLookup[75] = 'Telugu';
1550
- $QuicktimeLanguageLookup[76] = 'Sinhalese';
1551
- $QuicktimeLanguageLookup[77] = 'Burmese';
1552
- $QuicktimeLanguageLookup[78] = 'Khmer';
1553
- $QuicktimeLanguageLookup[79] = 'Lao';
1554
- $QuicktimeLanguageLookup[80] = 'Vietnamese';
1555
- $QuicktimeLanguageLookup[81] = 'Indonesian';
1556
- $QuicktimeLanguageLookup[82] = 'Tagalog';
1557
- $QuicktimeLanguageLookup[83] = 'MalayRoman';
1558
- $QuicktimeLanguageLookup[84] = 'MalayArabic';
1559
- $QuicktimeLanguageLookup[85] = 'Amharic';
1560
- $QuicktimeLanguageLookup[86] = 'Tigrinya';
1561
- $QuicktimeLanguageLookup[87] = 'Galla';
1562
- $QuicktimeLanguageLookup[87] = 'Oromo';
1563
- $QuicktimeLanguageLookup[88] = 'Somali';
1564
- $QuicktimeLanguageLookup[89] = 'Swahili';
1565
- $QuicktimeLanguageLookup[90] = 'Ruanda';
1566
- $QuicktimeLanguageLookup[91] = 'Rundi';
1567
- $QuicktimeLanguageLookup[92] = 'Chewa';
1568
- $QuicktimeLanguageLookup[93] = 'Malagasy';
1569
- $QuicktimeLanguageLookup[94] = 'Esperanto';
1570
- $QuicktimeLanguageLookup[128] = 'Welsh';
1571
- $QuicktimeLanguageLookup[129] = 'Basque';
1572
- $QuicktimeLanguageLookup[130] = 'Catalan';
1573
- $QuicktimeLanguageLookup[131] = 'Latin';
1574
- $QuicktimeLanguageLookup[132] = 'Quechua';
1575
- $QuicktimeLanguageLookup[133] = 'Guarani';
1576
- $QuicktimeLanguageLookup[134] = 'Aymara';
1577
- $QuicktimeLanguageLookup[135] = 'Tatar';
1578
- $QuicktimeLanguageLookup[136] = 'Uighur';
1579
- $QuicktimeLanguageLookup[137] = 'Dzongkha';
1580
- $QuicktimeLanguageLookup[138] = 'JavaneseRom';
1581
- $QuicktimeLanguageLookup[32767] = 'Unspecified';
1582
- }
1583
- if (($languageid > 138) && ($languageid < 32767)) {
1584
- /*
1585
- ISO Language Codes - http://www.loc.gov/standards/iso639-2/php/code_list.php
1586
- Because the language codes specified by ISO 639-2/T are three characters long, they must be packed to fit into a 16-bit field.
1587
- The packing algorithm must map each of the three characters, which are always lowercase, into a 5-bit integer and then concatenate
1588
- these integers into the least significant 15 bits of a 16-bit integer, leaving the 16-bit integer's most significant bit set to zero.
1589
-
1590
- One algorithm for performing this packing is to treat each ISO character as a 16-bit integer. Subtract 0x60 from the first character
1591
- and multiply by 2^10 (0x400), subtract 0x60 from the second character and multiply by 2^5 (0x20), subtract 0x60 from the third character,
1592
- and add the three 16-bit values. This will result in a single 16-bit value with the three codes correctly packed into the 15 least
1593
- significant bits and the most significant bit set to zero.
1594
- */
1595
- $iso_language_id = '';
1596
- $iso_language_id .= chr((($languageid & 0x7C00) >> 10) + 0x60);
1597
- $iso_language_id .= chr((($languageid & 0x03E0) >> 5) + 0x60);
1598
- $iso_language_id .= chr((($languageid & 0x001F) >> 0) + 0x60);
1599
- $QuicktimeLanguageLookup[$languageid] = getid3_id3v2::LanguageLookup($iso_language_id);
1600
- }
1601
- return (isset($QuicktimeLanguageLookup[$languageid]) ? $QuicktimeLanguageLookup[$languageid] : 'invalid');
1602
- }
1603
-
1604
- public function QuicktimeVideoCodecLookup($codecid) {
1605
- static $QuicktimeVideoCodecLookup = array();
1606
- if (empty($QuicktimeVideoCodecLookup)) {
1607
- $QuicktimeVideoCodecLookup['.SGI'] = 'SGI';
1608
- $QuicktimeVideoCodecLookup['3IV1'] = '3ivx MPEG-4 v1';
1609
- $QuicktimeVideoCodecLookup['3IV2'] = '3ivx MPEG-4 v2';
1610
- $QuicktimeVideoCodecLookup['3IVX'] = '3ivx MPEG-4';
1611
- $QuicktimeVideoCodecLookup['8BPS'] = 'Planar RGB';
1612
- $QuicktimeVideoCodecLookup['avc1'] = 'H.264/MPEG-4 AVC';
1613
- $QuicktimeVideoCodecLookup['avr '] = 'AVR-JPEG';
1614
- $QuicktimeVideoCodecLookup['b16g'] = '16Gray';
1615
- $QuicktimeVideoCodecLookup['b32a'] = '32AlphaGray';
1616
- $QuicktimeVideoCodecLookup['b48r'] = '48RGB';
1617
- $QuicktimeVideoCodecLookup['b64a'] = '64ARGB';
1618
- $QuicktimeVideoCodecLookup['base'] = 'Base';
1619
- $QuicktimeVideoCodecLookup['clou'] = 'Cloud';
1620
- $QuicktimeVideoCodecLookup['cmyk'] = 'CMYK';
1621
- $QuicktimeVideoCodecLookup['cvid'] = 'Cinepak';
1622
- $QuicktimeVideoCodecLookup['dmb1'] = 'OpenDML JPEG';
1623
- $QuicktimeVideoCodecLookup['dvc '] = 'DVC-NTSC';
1624
- $QuicktimeVideoCodecLookup['dvcp'] = 'DVC-PAL';
1625
- $QuicktimeVideoCodecLookup['dvpn'] = 'DVCPro-NTSC';
1626
- $QuicktimeVideoCodecLookup['dvpp'] = 'DVCPro-PAL';
1627
- $QuicktimeVideoCodecLookup['fire'] = 'Fire';
1628
- $QuicktimeVideoCodecLookup['flic'] = 'FLC';
1629
- $QuicktimeVideoCodecLookup['gif '] = 'GIF';
1630
- $QuicktimeVideoCodecLookup['h261'] = 'H261';
1631
- $QuicktimeVideoCodecLookup['h263'] = 'H263';
1632
- $QuicktimeVideoCodecLookup['IV41'] = 'Indeo4';
1633
- $QuicktimeVideoCodecLookup['jpeg'] = 'JPEG';
1634
- $QuicktimeVideoCodecLookup['kpcd'] = 'PhotoCD';
1635
- $QuicktimeVideoCodecLookup['mjpa'] = 'Motion JPEG-A';
1636
- $QuicktimeVideoCodecLookup['mjpb'] = 'Motion JPEG-B';
1637
- $QuicktimeVideoCodecLookup['msvc'] = 'Microsoft Video1';
1638
- $QuicktimeVideoCodecLookup['myuv'] = 'MPEG YUV420';
1639
- $QuicktimeVideoCodecLookup['path'] = 'Vector';
1640
- $QuicktimeVideoCodecLookup['png '] = 'PNG';
1641
- $QuicktimeVideoCodecLookup['PNTG'] = 'MacPaint';
1642
- $QuicktimeVideoCodecLookup['qdgx'] = 'QuickDrawGX';
1643
- $QuicktimeVideoCodecLookup['qdrw'] = 'QuickDraw';
1644
- $QuicktimeVideoCodecLookup['raw '] = 'RAW';
1645
- $QuicktimeVideoCodecLookup['ripl'] = 'WaterRipple';
1646
- $QuicktimeVideoCodecLookup['rpza'] = 'Video';
1647
- $QuicktimeVideoCodecLookup['smc '] = 'Graphics';
1648
- $QuicktimeVideoCodecLookup['SVQ1'] = 'Sorenson Video 1';
1649
- $QuicktimeVideoCodecLookup['SVQ1'] = 'Sorenson Video 3';
1650
- $QuicktimeVideoCodecLookup['syv9'] = 'Sorenson YUV9';
1651
- $QuicktimeVideoCodecLookup['tga '] = 'Targa';
1652
- $QuicktimeVideoCodecLookup['tiff'] = 'TIFF';
1653
- $QuicktimeVideoCodecLookup['WRAW'] = 'Windows RAW';
1654
- $QuicktimeVideoCodecLookup['WRLE'] = 'BMP';
1655
- $QuicktimeVideoCodecLookup['y420'] = 'YUV420';
1656
- $QuicktimeVideoCodecLookup['yuv2'] = 'ComponentVideo';
1657
- $QuicktimeVideoCodecLookup['yuvs'] = 'ComponentVideoUnsigned';
1658
- $QuicktimeVideoCodecLookup['yuvu'] = 'ComponentVideoSigned';
1659
- }
1660
- return (isset($QuicktimeVideoCodecLookup[$codecid]) ? $QuicktimeVideoCodecLookup[$codecid] : '');
1661
- }
1662
-
1663
- public function QuicktimeAudioCodecLookup($codecid) {
1664
- static $QuicktimeAudioCodecLookup = array();
1665
- if (empty($QuicktimeAudioCodecLookup)) {
1666
- $QuicktimeAudioCodecLookup['.mp3'] = 'Fraunhofer MPEG Layer-III alias';
1667
- $QuicktimeAudioCodecLookup['aac '] = 'ISO/IEC 14496-3 AAC';
1668
- $QuicktimeAudioCodecLookup['agsm'] = 'Apple GSM 10:1';
1669
- $QuicktimeAudioCodecLookup['alac'] = 'Apple Lossless Audio Codec';
1670
- $QuicktimeAudioCodecLookup['alaw'] = 'A-law 2:1';
1671
- $QuicktimeAudioCodecLookup['conv'] = 'Sample Format';
1672
- $QuicktimeAudioCodecLookup['dvca'] = 'DV';
1673
- $QuicktimeAudioCodecLookup['dvi '] = 'DV 4:1';
1674
- $QuicktimeAudioCodecLookup['eqal'] = 'Frequency Equalizer';
1675
- $QuicktimeAudioCodecLookup['fl32'] = '32-bit Floating Point';
1676
- $QuicktimeAudioCodecLookup['fl64'] = '64-bit Floating Point';
1677
- $QuicktimeAudioCodecLookup['ima4'] = 'Interactive Multimedia Association 4:1';
1678
- $QuicktimeAudioCodecLookup['in24'] = '24-bit Integer';
1679
- $QuicktimeAudioCodecLookup['in32'] = '32-bit Integer';
1680
- $QuicktimeAudioCodecLookup['lpc '] = 'LPC 23:1';
1681
- $QuicktimeAudioCodecLookup['MAC3'] = 'Macintosh Audio Compression/Expansion (MACE) 3:1';
1682
- $QuicktimeAudioCodecLookup['MAC6'] = 'Macintosh Audio Compression/Expansion (MACE) 6:1';
1683
- $QuicktimeAudioCodecLookup['mixb'] = '8-bit Mixer';
1684
- $QuicktimeAudioCodecLookup['mixw'] = '16-bit Mixer';
1685
- $QuicktimeAudioCodecLookup['mp4a'] = 'ISO/IEC 14496-3 AAC';
1686
- $QuicktimeAudioCodecLookup['MS'."\x00\x02"] = 'Microsoft ADPCM';
1687
- $QuicktimeAudioCodecLookup['MS'."\x00\x11"] = 'DV IMA';
1688
- $QuicktimeAudioCodecLookup['MS'."\x00\x55"] = 'Fraunhofer MPEG Layer III';
1689
- $QuicktimeAudioCodecLookup['NONE'] = 'No Encoding';
1690
- $QuicktimeAudioCodecLookup['Qclp'] = 'Qualcomm PureVoice';
1691
- $QuicktimeAudioCodecLookup['QDM2'] = 'QDesign Music 2';
1692
- $QuicktimeAudioCodecLookup['QDMC'] = 'QDesign Music 1';
1693
- $QuicktimeAudioCodecLookup['ratb'] = '8-bit Rate';
1694
- $QuicktimeAudioCodecLookup['ratw'] = '16-bit Rate';
1695
- $QuicktimeAudioCodecLookup['raw '] = 'raw PCM';
1696
- $QuicktimeAudioCodecLookup['sour'] = 'Sound Source';
1697
- $QuicktimeAudioCodecLookup['sowt'] = 'signed/two\'s complement (Little Endian)';
1698
- $QuicktimeAudioCodecLookup['str1'] = 'Iomega MPEG layer II';
1699
- $QuicktimeAudioCodecLookup['str2'] = 'Iomega MPEG *layer II';
1700
- $QuicktimeAudioCodecLookup['str3'] = 'Iomega MPEG **layer II';
1701
- $QuicktimeAudioCodecLookup['str4'] = 'Iomega MPEG ***layer II';
1702
- $QuicktimeAudioCodecLookup['twos'] = 'signed/two\'s complement (Big Endian)';
1703
- $QuicktimeAudioCodecLookup['ulaw'] = 'mu-law 2:1';
1704
- }
1705
- return (isset($QuicktimeAudioCodecLookup[$codecid]) ? $QuicktimeAudioCodecLookup[$codecid] : '');
1706
- }
1707
-
1708
- public function QuicktimeDCOMLookup($compressionid) {
1709
- static $QuicktimeDCOMLookup = array();
1710
- if (empty($QuicktimeDCOMLookup)) {
1711
- $QuicktimeDCOMLookup['zlib'] = 'ZLib Deflate';
1712
- $QuicktimeDCOMLookup['adec'] = 'Apple Compression';
1713
- }
1714
- return (isset($QuicktimeDCOMLookup[$compressionid]) ? $QuicktimeDCOMLookup[$compressionid] : '');
1715
- }
1716
-
1717
- public function QuicktimeColorNameLookup($colordepthid) {
1718
- static $QuicktimeColorNameLookup = array();
1719
- if (empty($QuicktimeColorNameLookup)) {
1720
- $QuicktimeColorNameLookup[1] = '2-color (monochrome)';
1721
- $QuicktimeColorNameLookup[2] = '4-color';
1722
- $QuicktimeColorNameLookup[4] = '16-color';
1723
- $QuicktimeColorNameLookup[8] = '256-color';
1724
- $QuicktimeColorNameLookup[16] = 'thousands (16-bit color)';
1725
- $QuicktimeColorNameLookup[24] = 'millions (24-bit color)';
1726
- $QuicktimeColorNameLookup[32] = 'millions+ (32-bit color)';
1727
- $QuicktimeColorNameLookup[33] = 'black & white';
1728
- $QuicktimeColorNameLookup[34] = '4-gray';
1729
- $QuicktimeColorNameLookup[36] = '16-gray';
1730
- $QuicktimeColorNameLookup[40] = '256-gray';
1731
- }
1732
- return (isset($QuicktimeColorNameLookup[$colordepthid]) ? $QuicktimeColorNameLookup[$colordepthid] : 'invalid');
1733
- }
1734
-
1735
- public function QuicktimeSTIKLookup($stik) {
1736
- static $QuicktimeSTIKLookup = array();
1737
- if (empty($QuicktimeSTIKLookup)) {
1738
- $QuicktimeSTIKLookup[0] = 'Movie';
1739
- $QuicktimeSTIKLookup[1] = 'Normal';
1740
- $QuicktimeSTIKLookup[2] = 'Audiobook';
1741
- $QuicktimeSTIKLookup[5] = 'Whacked Bookmark';
1742
- $QuicktimeSTIKLookup[6] = 'Music Video';
1743
- $QuicktimeSTIKLookup[9] = 'Short Film';
1744
- $QuicktimeSTIKLookup[10] = 'TV Show';
1745
- $QuicktimeSTIKLookup[11] = 'Booklet';
1746
- $QuicktimeSTIKLookup[14] = 'Ringtone';
1747
- $QuicktimeSTIKLookup[21] = 'Podcast';
1748
- }
1749
- return (isset($QuicktimeSTIKLookup[$stik]) ? $QuicktimeSTIKLookup[$stik] : 'invalid');
1750
- }
1751
-
1752
- public function QuicktimeIODSaudioProfileName($audio_profile_id) {
1753
- static $QuicktimeIODSaudioProfileNameLookup = array();
1754
- if (empty($QuicktimeIODSaudioProfileNameLookup)) {
1755
- $QuicktimeIODSaudioProfileNameLookup = array(
1756
- 0x00 => 'ISO Reserved (0x00)',
1757
- 0x01 => 'Main Audio Profile @ Level 1',
1758
- 0x02 => 'Main Audio Profile @ Level 2',
1759
- 0x03 => 'Main Audio Profile @ Level 3',
1760
- 0x04 => 'Main Audio Profile @ Level 4',
1761
- 0x05 => 'Scalable Audio Profile @ Level 1',
1762
- 0x06 => 'Scalable Audio Profile @ Level 2',
1763
- 0x07 => 'Scalable Audio Profile @ Level 3',
1764
- 0x08 => 'Scalable Audio Profile @ Level 4',
1765
- 0x09 => 'Speech Audio Profile @ Level 1',
1766
- 0x0A => 'Speech Audio Profile @ Level 2',
1767
- 0x0B => 'Synthetic Audio Profile @ Level 1',
1768
- 0x0C => 'Synthetic Audio Profile @ Level 2',
1769
- 0x0D => 'Synthetic Audio Profile @ Level 3',
1770
- 0x0E => 'High Quality Audio Profile @ Level 1',
1771
- 0x0F => 'High Quality Audio Profile @ Level 2',
1772
- 0x10 => 'High Quality Audio Profile @ Level 3',
1773
- 0x11 => 'High Quality Audio Profile @ Level 4',
1774
- 0x12 => 'High Quality Audio Profile @ Level 5',
1775
- 0x13 => 'High Quality Audio Profile @ Level 6',
1776
- 0x14 => 'High Quality Audio Profile @ Level 7',
1777
- 0x15 => 'High Quality Audio Profile @ Level 8',
1778
- 0x16 => 'Low Delay Audio Profile @ Level 1',
1779
- 0x17 => 'Low Delay Audio Profile @ Level 2',
1780
- 0x18 => 'Low Delay Audio Profile @ Level 3',
1781
- 0x19 => 'Low Delay Audio Profile @ Level 4',
1782
- 0x1A => 'Low Delay Audio Profile @ Level 5',
1783
- 0x1B => 'Low Delay Audio Profile @ Level 6',
1784
- 0x1C => 'Low Delay Audio Profile @ Level 7',
1785
- 0x1D => 'Low Delay Audio Profile @ Level 8',
1786
- 0x1E => 'Natural Audio Profile @ Level 1',
1787
- 0x1F => 'Natural Audio Profile @ Level 2',
1788
- 0x20 => 'Natural Audio Profile @ Level 3',
1789
- 0x21 => 'Natural Audio Profile @ Level 4',
1790
- 0x22 => 'Mobile Audio Internetworking Profile @ Level 1',
1791
- 0x23 => 'Mobile Audio Internetworking Profile @ Level 2',
1792
- 0x24 => 'Mobile Audio Internetworking Profile @ Level 3',
1793
- 0x25 => 'Mobile Audio Internetworking Profile @ Level 4',
1794
- 0x26 => 'Mobile Audio Internetworking Profile @ Level 5',
1795
- 0x27 => 'Mobile Audio Internetworking Profile @ Level 6',
1796
- 0x28 => 'AAC Profile @ Level 1',
1797
- 0x29 => 'AAC Profile @ Level 2',
1798
- 0x2A => 'AAC Profile @ Level 4',
1799
- 0x2B => 'AAC Profile @ Level 5',
1800
- 0x2C => 'High Efficiency AAC Profile @ Level 2',
1801
- 0x2D => 'High Efficiency AAC Profile @ Level 3',
1802
- 0x2E => 'High Efficiency AAC Profile @ Level 4',
1803
- 0x2F => 'High Efficiency AAC Profile @ Level 5',
1804
- 0xFE => 'Not part of MPEG-4 audio profiles',
1805
- 0xFF => 'No audio capability required',
1806
- );
1807
- }
1808
- return (isset($QuicktimeIODSaudioProfileNameLookup[$audio_profile_id]) ? $QuicktimeIODSaudioProfileNameLookup[$audio_profile_id] : 'ISO Reserved / User Private');
1809
- }
1810
-
1811
-
1812
- public function QuicktimeIODSvideoProfileName($video_profile_id) {
1813
- static $QuicktimeIODSvideoProfileNameLookup = array();
1814
- if (empty($QuicktimeIODSvideoProfileNameLookup)) {
1815
- $QuicktimeIODSvideoProfileNameLookup = array(
1816
- 0x00 => 'Reserved (0x00) Profile',
1817
- 0x01 => 'Simple Profile @ Level 1',
1818
- 0x02 => 'Simple Profile @ Level 2',
1819
- 0x03 => 'Simple Profile @ Level 3',
1820
- 0x08 => 'Simple Profile @ Level 0',
1821
- 0x10 => 'Simple Scalable Profile @ Level 0',
1822
- 0x11 => 'Simple Scalable Profile @ Level 1',
1823
- 0x12 => 'Simple Scalable Profile @ Level 2',
1824
- 0x15 => 'AVC/H264 Profile',
1825
- 0x21 => 'Core Profile @ Level 1',
1826
- 0x22 => 'Core Profile @ Level 2',
1827
- 0x32 => 'Main Profile @ Level 2',
1828
- 0x33 => 'Main Profile @ Level 3',
1829
- 0x34 => 'Main Profile @ Level 4',
1830
- 0x42 => 'N-bit Profile @ Level 2',
1831
- 0x51 => 'Scalable Texture Profile @ Level 1',
1832
- 0x61 => 'Simple Face Animation Profile @ Level 1',
1833
- 0x62 => 'Simple Face Animation Profile @ Level 2',
1834
- 0x63 => 'Simple FBA Profile @ Level 1',
1835
- 0x64 => 'Simple FBA Profile @ Level 2',
1836
- 0x71 => 'Basic Animated Texture Profile @ Level 1',
1837
- 0x72 => 'Basic Animated Texture Profile @ Level 2',
1838
- 0x81 => 'Hybrid Profile @ Level 1',
1839
- 0x82 => 'Hybrid Profile @ Level 2',
1840
- 0x91 => 'Advanced Real Time Simple Profile @ Level 1',
1841
- 0x92 => 'Advanced Real Time Simple Profile @ Level 2',
1842
- 0x93 => 'Advanced Real Time Simple Profile @ Level 3',
1843
- 0x94 => 'Advanced Real Time Simple Profile @ Level 4',
1844
- 0xA1 => 'Core Scalable Profile @ Level1',
1845
- 0xA2 => 'Core Scalable Profile @ Level2',
1846
- 0xA3 => 'Core Scalable Profile @ Level3',
1847
- 0xB1 => 'Advanced Coding Efficiency Profile @ Level 1',
1848
- 0xB2 => 'Advanced Coding Efficiency Profile @ Level 2',
1849
- 0xB3 => 'Advanced Coding Efficiency Profile @ Level 3',
1850
- 0xB4 => 'Advanced Coding Efficiency Profile @ Level 4',
1851
- 0xC1 => 'Advanced Core Profile @ Level 1',
1852
- 0xC2 => 'Advanced Core Profile @ Level 2',
1853
- 0xD1 => 'Advanced Scalable Texture @ Level1',
1854
- 0xD2 => 'Advanced Scalable Texture @ Level2',
1855
- 0xE1 => 'Simple Studio Profile @ Level 1',
1856
- 0xE2 => 'Simple Studio Profile @ Level 2',
1857
- 0xE3 => 'Simple Studio Profile @ Level 3',
1858
- 0xE4 => 'Simple Studio Profile @ Level 4',
1859
- 0xE5 => 'Core Studio Profile @ Level 1',
1860
- 0xE6 => 'Core Studio Profile @ Level 2',
1861
- 0xE7 => 'Core Studio Profile @ Level 3',
1862
- 0xE8 => 'Core Studio Profile @ Level 4',
1863
- 0xF0 => 'Advanced Simple Profile @ Level 0',
1864
- 0xF1 => 'Advanced Simple Profile @ Level 1',
1865
- 0xF2 => 'Advanced Simple Profile @ Level 2',
1866
- 0xF3 => 'Advanced Simple Profile @ Level 3',
1867
- 0xF4 => 'Advanced Simple Profile @ Level 4',
1868
- 0xF5 => 'Advanced Simple Profile @ Level 5',
1869
- 0xF7 => 'Advanced Simple Profile @ Level 3b',
1870
- 0xF8 => 'Fine Granularity Scalable Profile @ Level 0',
1871
- 0xF9 => 'Fine Granularity Scalable Profile @ Level 1',
1872
- 0xFA => 'Fine Granularity Scalable Profile @ Level 2',
1873
- 0xFB => 'Fine Granularity Scalable Profile @ Level 3',
1874
- 0xFC => 'Fine Granularity Scalable Profile @ Level 4',
1875
- 0xFD => 'Fine Granularity Scalable Profile @ Level 5',
1876
- 0xFE => 'Not part of MPEG-4 Visual profiles',
1877
- 0xFF => 'No visual capability required',
1878
- );
1879
- }
1880
- return (isset($QuicktimeIODSvideoProfileNameLookup[$video_profile_id]) ? $QuicktimeIODSvideoProfileNameLookup[$video_profile_id] : 'ISO Reserved Profile');
1881
- }
1882
-
1883
-
1884
- public function QuicktimeContentRatingLookup($rtng) {
1885
- static $QuicktimeContentRatingLookup = array();
1886
- if (empty($QuicktimeContentRatingLookup)) {
1887
- $QuicktimeContentRatingLookup[0] = 'None';
1888
- $QuicktimeContentRatingLookup[2] = 'Clean';
1889
- $QuicktimeContentRatingLookup[4] = 'Explicit';
1890
- }
1891
- return (isset($QuicktimeContentRatingLookup[$rtng]) ? $QuicktimeContentRatingLookup[$rtng] : 'invalid');
1892
- }
1893
-
1894
- public function QuicktimeStoreAccountTypeLookup($akid) {
1895
- static $QuicktimeStoreAccountTypeLookup = array();
1896
- if (empty($QuicktimeStoreAccountTypeLookup)) {
1897
- $QuicktimeStoreAccountTypeLookup[0] = 'iTunes';
1898
- $QuicktimeStoreAccountTypeLookup[1] = 'AOL';
1899
- }
1900
- return (isset($QuicktimeStoreAccountTypeLookup[$akid]) ? $QuicktimeStoreAccountTypeLookup[$akid] : 'invalid');
1901
- }
1902
-
1903
- public function QuicktimeStoreFrontCodeLookup($sfid) {
1904
- static $QuicktimeStoreFrontCodeLookup = array();
1905
- if (empty($QuicktimeStoreFrontCodeLookup)) {
1906
- $QuicktimeStoreFrontCodeLookup[143460] = 'Australia';
1907
- $QuicktimeStoreFrontCodeLookup[143445] = 'Austria';
1908
- $QuicktimeStoreFrontCodeLookup[143446] = 'Belgium';
1909
- $QuicktimeStoreFrontCodeLookup[143455] = 'Canada';
1910
- $QuicktimeStoreFrontCodeLookup[143458] = 'Denmark';
1911
- $QuicktimeStoreFrontCodeLookup[143447] = 'Finland';
1912
- $QuicktimeStoreFrontCodeLookup[143442] = 'France';
1913
- $QuicktimeStoreFrontCodeLookup[143443] = 'Germany';
1914
- $QuicktimeStoreFrontCodeLookup[143448] = 'Greece';
1915
- $QuicktimeStoreFrontCodeLookup[143449] = 'Ireland';
1916
- $QuicktimeStoreFrontCodeLookup[143450] = 'Italy';
1917
- $QuicktimeStoreFrontCodeLookup[143462] = 'Japan';
1918
- $QuicktimeStoreFrontCodeLookup[143451] = 'Luxembourg';
1919
- $QuicktimeStoreFrontCodeLookup[143452] = 'Netherlands';
1920
- $QuicktimeStoreFrontCodeLookup[143461] = 'New Zealand';
1921
- $QuicktimeStoreFrontCodeLookup[143457] = 'Norway';
1922
- $QuicktimeStoreFrontCodeLookup[143453] = 'Portugal';
1923
- $QuicktimeStoreFrontCodeLookup[143454] = 'Spain';
1924
- $QuicktimeStoreFrontCodeLookup[143456] = 'Sweden';
1925
- $QuicktimeStoreFrontCodeLookup[143459] = 'Switzerland';
1926
- $QuicktimeStoreFrontCodeLookup[143444] = 'United Kingdom';
1927
- $QuicktimeStoreFrontCodeLookup[143441] = 'United States';
1928
- }
1929
- return (isset($QuicktimeStoreFrontCodeLookup[$sfid]) ? $QuicktimeStoreFrontCodeLookup[$sfid] : 'invalid');
1930
- }
1931
-
1932
- public function QuicktimeParseNikonNCTG($atom_data) {
1933
- // http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html#NCTG
1934
- // Nikon-specific QuickTime tags found in the NCDT atom of MOV videos from some Nikon cameras such as the Coolpix S8000 and D5100
1935
- // Data is stored as records of:
1936
- // * 4 bytes record type
1937
- // * 2 bytes size of data field type:
1938
- // 0x0001 = flag (size field *= 1-byte)
1939
- // 0x0002 = char (size field *= 1-byte)
1940
- // 0x0003 = DWORD+ (size field *= 2-byte), values are stored CDAB
1941
- // 0x0004 = QWORD+ (size field *= 4-byte), values are stored EFGHABCD
1942
- // 0x0005 = float (size field *= 8-byte), values are stored aaaabbbb where value is aaaa/bbbb; possibly multiple sets of values appended together
1943
- // 0x0007 = bytes (size field *= 1-byte), values are stored as ??????
1944
- // 0x0008 = ????? (size field *= 2-byte), values are stored as ??????
1945
- // * 2 bytes data size field
1946
- // * ? bytes data (string data may be null-padded; datestamp fields are in the format "2011:05:25 20:24:15")
1947
- // all integers are stored BigEndian
1948
-
1949
- $NCTGtagName = array(
1950
- 0x00000001 => 'Make',
1951
- 0x00000002 => 'Model',
1952
- 0x00000003 => 'Software',
1953
- 0x00000011 => 'CreateDate',
1954
- 0x00000012 => 'DateTimeOriginal',
1955
- 0x00000013 => 'FrameCount',
1956
- 0x00000016 => 'FrameRate',
1957
- 0x00000022 => 'FrameWidth',
1958
- 0x00000023 => 'FrameHeight',
1959
- 0x00000032 => 'AudioChannels',
1960
- 0x00000033 => 'AudioBitsPerSample',
1961
- 0x00000034 => 'AudioSampleRate',
1962
- 0x02000001 => 'MakerNoteVersion',
1963
- 0x02000005 => 'WhiteBalance',
1964
- 0x0200000b => 'WhiteBalanceFineTune',
1965
- 0x0200001e => 'ColorSpace',
1966
- 0x02000023 => 'PictureControlData',
1967
- 0x02000024 => 'WorldTime',
1968
- 0x02000032 => 'UnknownInfo',
1969
- 0x02000083 => 'LensType',
1970
- 0x02000084 => 'Lens',
1971
- );
1972
-
1973
- $offset = 0;
1974
- $datalength = strlen($atom_data);
1975
- $parsed = array();
1976
- while ($offset < $datalength) {
1977
- //echo getid3_lib::PrintHexBytes(substr($atom_data, $offset, 4)).'<br>';
1978
- $record_type = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 4)); $offset += 4;
1979
- $data_size_type = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 2)); $offset += 2;
1980
- $data_size = getid3_lib::BigEndian2Int(substr($atom_data, $offset, 2)); $offset += 2;
1981
- switch ($data_size_type) {
1982
- case 0x0001: // 0x0001 = flag (size field *= 1-byte)
1983
- $data = getid3_lib::BigEndian2Int(substr($atom_data, $offset, $data_size * 1));
1984
- $offset += ($data_size * 1);
1985
- break;
1986
- case 0x0002: // 0x0002 = char (size field *= 1-byte)
1987
- $data = substr($atom_data, $offset, $data_size * 1);
1988
- $offset += ($data_size * 1);
1989
- $data = rtrim($data, "\x00");
1990
- break;
1991
- case 0x0003: // 0x0003 = DWORD+ (size field *= 2-byte), values are stored CDAB
1992
- $data = '';
1993
- for ($i = $data_size - 1; $i >= 0; $i--) {
1994
- $data .= substr($atom_data, $offset + ($i * 2), 2);
1995
- }
1996
- $data = getid3_lib::BigEndian2Int($data);
1997
- $offset += ($data_size * 2);
1998
- break;
1999
- case 0x0004: // 0x0004 = QWORD+ (size field *= 4-byte), values are stored EFGHABCD
2000
- $data = '';
2001
- for ($i = $data_size - 1; $i >= 0; $i--) {
2002
- $data .= substr($atom_data, $offset + ($i * 4), 4);
2003
- }
2004
- $data = getid3_lib::BigEndian2Int($data);
2005
- $offset += ($data_size * 4);
2006
- break;
2007
- case 0x0005: // 0x0005 = float (size field *= 8-byte), values are stored aaaabbbb where value is aaaa/bbbb; possibly multiple sets of values appended together
2008
- $data = array();
2009
- for ($i = 0; $i < $data_size; $i++) {
2010
- $numerator = getid3_lib::BigEndian2Int(substr($atom_data, $offset + ($i * 8) + 0, 4));
2011
- $denomninator = getid3_lib::BigEndian2Int(substr($atom_data, $offset + ($i * 8) + 4, 4));
2012
- if ($denomninator == 0) {
2013
- $data[$i] = false;
2014
- } else {
2015
- $data[$i] = (double) $numerator / $denomninator;
2016
- }
2017
- }
2018
- $offset += (8 * $data_size);
2019
- if (count($data) == 1) {
2020
- $data = $data[0];
2021
- }
2022
- break;
2023
- case 0x0007: // 0x0007 = bytes (size field *= 1-byte), values are stored as ??????
2024
- $data = substr($atom_data, $offset, $data_size * 1);
2025
- $offset += ($data_size * 1);
2026
- break;
2027
- case 0x0008: // 0x0008 = ????? (size field *= 2-byte), values are stored as ??????
2028
- $data = substr($atom_data, $offset, $data_size * 2);
2029
- $offset += ($data_size * 2);
2030
- break;
2031
- default:
2032
- echo 'QuicktimeParseNikonNCTG()::unknown $data_size_type: '.$data_size_type.'<br>';
2033
- break 2;
2034
- }
2035
-
2036
- switch ($record_type) {
2037
- case 0x00000011: // CreateDate
2038
- case 0x00000012: // DateTimeOriginal
2039
- $data = strtotime($data);
2040
- break;
2041
- case 0x0200001e: // ColorSpace
2042
- switch ($data) {
2043
- case 1:
2044
- $data = 'sRGB';
2045
- break;
2046
- case 2:
2047
- $data = 'Adobe RGB';
2048
- break;
2049
- }
2050
- break;
2051
- case 0x02000023: // PictureControlData
2052
- $PictureControlAdjust = array(0=>'default', 1=>'quick', 2=>'full');
2053
- $FilterEffect = array(0x80=>'off', 0x81=>'yellow', 0x82=>'orange', 0x83=>'red', 0x84=>'green', 0xff=>'n/a');
2054
- $ToningEffect = array(0x80=>'b&w', 0x81=>'sepia', 0x82=>'cyanotype', 0x83=>'red', 0x84=>'yellow', 0x85=>'green', 0x86=>'blue-green', 0x87=>'blue', 0x88=>'purple-blue', 0x89=>'red-purple', 0xff=>'n/a');
2055
- $data = array(
2056
- 'PictureControlVersion' => substr($data, 0, 4),
2057
- 'PictureControlName' => rtrim(substr($data, 4, 20), "\x00"),
2058
- 'PictureControlBase' => rtrim(substr($data, 24, 20), "\x00"),
2059
- //'?' => substr($data, 44, 4),
2060
- 'PictureControlAdjust' => $PictureControlAdjust[ord(substr($data, 48, 1))],
2061
- 'PictureControlQuickAdjust' => ord(substr($data, 49, 1)),
2062
- 'Sharpness' => ord(substr($data, 50, 1)),
2063
- 'Contrast' => ord(substr($data, 51, 1)),
2064
- 'Brightness' => ord(substr($data, 52, 1)),
2065
- 'Saturation' => ord(substr($data, 53, 1)),
2066
- 'HueAdjustment' => ord(substr($data, 54, 1)),
2067
- 'FilterEffect' => $FilterEffect[ord(substr($data, 55, 1))],
2068
- 'ToningEffect' => $ToningEffect[ord(substr($data, 56, 1))],
2069
- 'ToningSaturation' => ord(substr($data, 57, 1)),
2070
- );
2071
- break;
2072
- case 0x02000024: // WorldTime
2073
- // http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Nikon.html#WorldTime
2074
- // timezone is stored as offset from GMT in minutes
2075
- $timezone = getid3_lib::BigEndian2Int(substr($data, 0, 2));
2076
- if ($timezone & 0x8000) {
2077
- $timezone = 0 - (0x10000 - $timezone);
2078
- }
2079
- $timezone /= 60;
2080
-
2081
- $dst = (bool) getid3_lib::BigEndian2Int(substr($data, 2, 1));
2082
- switch (getid3_lib::BigEndian2Int(substr($data, 3, 1))) {
2083
- case 2:
2084
- $datedisplayformat = 'D/M/Y'; break;
2085
- case 1:
2086
- $datedisplayformat = 'M/D/Y'; break;
2087
- case 0:
2088
- default:
2089
- $datedisplayformat = 'Y/M/D'; break;
2090
- }
2091
-
2092
- $data = array('timezone'=>floatval($timezone), 'dst'=>$dst, 'display'=>$datedisplayformat);
2093
- break;
2094
- case 0x02000083: // LensType
2095
- $data = array(
2096
- //'_' => $data,
2097
- 'mf' => (bool) ($data & 0x01),
2098
- 'd' => (bool) ($data & 0x02),
2099
- 'g' => (bool) ($data & 0x04),
2100
- 'vr' => (bool) ($data & 0x08),
2101
- );
2102
- break;
2103
- }
2104
- $tag_name = (isset($NCTGtagName[$record_type]) ? $NCTGtagName[$record_type] : '0x'.str_pad(dechex($record_type), 8, '0', STR_PAD_LEFT));
2105
- $parsed[$tag_name] = $data;
2106
- }
2107
- return $parsed;
2108
- }
2109
-
2110
-
2111
- public function CopyToAppropriateCommentsSection($keyname, $data, $boxname='') {
2112
- static $handyatomtranslatorarray = array();
2113
- if (empty($handyatomtranslatorarray)) {
2114
- $handyatomtranslatorarray["\xA9".'cpy'] = 'copyright';
2115
- $handyatomtranslatorarray["\xA9".'day'] = 'creation_date'; // iTunes 4.0
2116
- $handyatomtranslatorarray["\xA9".'dir'] = 'director';
2117
- $handyatomtranslatorarray["\xA9".'ed1'] = 'edit1';
2118
- $handyatomtranslatorarray["\xA9".'ed2'] = 'edit2';
2119
- $handyatomtranslatorarray["\xA9".'ed3'] = 'edit3';
2120
- $handyatomtranslatorarray["\xA9".'ed4'] = 'edit4';
2121
- $handyatomtranslatorarray["\xA9".'ed5'] = 'edit5';
2122
- $handyatomtranslatorarray["\xA9".'ed6'] = 'edit6';
2123
- $handyatomtranslatorarray["\xA9".'ed7'] = 'edit7';
2124
- $handyatomtranslatorarray["\xA9".'ed8'] = 'edit8';
2125
- $handyatomtranslatorarray["\xA9".'ed9'] = 'edit9';
2126
- $handyatomtranslatorarray["\xA9".'fmt'] = 'format';
2127
- $handyatomtranslatorarray["\xA9".'inf'] = 'information';
2128
- $handyatomtranslatorarray["\xA9".'prd'] = 'producer';
2129
- $handyatomtranslatorarray["\xA9".'prf'] = 'performers';
2130
- $handyatomtranslatorarray["\xA9".'req'] = 'system_requirements';
2131
- $handyatomtranslatorarray["\xA9".'src'] = 'source_credit';
2132
- $handyatomtranslatorarray["\xA9".'wrt'] = 'writer';
2133
-
2134
- // http://www.geocities.com/xhelmboyx/quicktime/formats/qtm-layout.txt
2135
- $handyatomtranslatorarray["\xA9".'nam'] = 'title'; // iTunes 4.0
2136
- $handyatomtranslatorarray["\xA9".'cmt'] = 'comment'; // iTunes 4.0
2137
- $handyatomtranslatorarray["\xA9".'wrn'] = 'warning';
2138
- $handyatomtranslatorarray["\xA9".'hst'] = 'host_computer';
2139
- $handyatomtranslatorarray["\xA9".'mak'] = 'make';
2140
- $handyatomtranslatorarray["\xA9".'mod'] = 'model';
2141
- $handyatomtranslatorarray["\xA9".'PRD'] = 'product';
2142
- $handyatomtranslatorarray["\xA9".'swr'] = 'software';
2143
- $handyatomtranslatorarray["\xA9".'aut'] = 'author';
2144
- $handyatomtranslatorarray["\xA9".'ART'] = 'artist';
2145
- $handyatomtranslatorarray["\xA9".'trk'] = 'track';
2146
- $handyatomtranslatorarray["\xA9".'alb'] = 'album'; // iTunes 4.0
2147
- $handyatomtranslatorarray["\xA9".'com'] = 'comment';
2148
- $handyatomtranslatorarray["\xA9".'gen'] = 'genre'; // iTunes 4.0
2149
- $handyatomtranslatorarray["\xA9".'ope'] = 'composer';
2150
- $handyatomtranslatorarray["\xA9".'url'] = 'url';
2151
- $handyatomtranslatorarray["\xA9".'enc'] = 'encoder';
2152
-
2153
- // http://atomicparsley.sourceforge.net/mpeg-4files.html
2154
- $handyatomtranslatorarray["\xA9".'art'] = 'artist'; // iTunes 4.0
2155
- $handyatomtranslatorarray['aART'] = 'album_artist';
2156
- $handyatomtranslatorarray['trkn'] = 'track_number'; // iTunes 4.0
2157
- $handyatomtranslatorarray['disk'] = 'disc_number'; // iTunes 4.0
2158
- $handyatomtranslatorarray['gnre'] = 'genre'; // iTunes 4.0
2159
- $handyatomtranslatorarray["\xA9".'too'] = 'encoder'; // iTunes 4.0
2160
- $handyatomtranslatorarray['tmpo'] = 'bpm'; // iTunes 4.0
2161
- $handyatomtranslatorarray['cprt'] = 'copyright'; // iTunes 4.0?
2162
- $handyatomtranslatorarray['cpil'] = 'compilation'; // iTunes 4.0
2163
- $handyatomtranslatorarray['covr'] = 'picture'; // iTunes 4.0
2164
- $handyatomtranslatorarray['rtng'] = 'rating'; // iTunes 4.0
2165
- $handyatomtranslatorarray["\xA9".'grp'] = 'grouping'; // iTunes 4.2
2166
- $handyatomtranslatorarray['stik'] = 'stik'; // iTunes 4.9
2167
- $handyatomtranslatorarray['pcst'] = 'podcast'; // iTunes 4.9
2168
- $handyatomtranslatorarray['catg'] = 'category'; // iTunes 4.9
2169
- $handyatomtranslatorarray['keyw'] = 'keyword'; // iTunes 4.9
2170
- $handyatomtranslatorarray['purl'] = 'podcast_url'; // iTunes 4.9
2171
- $handyatomtranslatorarray['egid'] = 'episode_guid'; // iTunes 4.9
2172
- $handyatomtranslatorarray['desc'] = 'description'; // iTunes 5.0
2173
- $handyatomtranslatorarray["\xA9".'lyr'] = 'lyrics'; // iTunes 5.0
2174
- $handyatomtranslatorarray['tvnn'] = 'tv_network_name'; // iTunes 6.0
2175
- $handyatomtranslatorarray['tvsh'] = 'tv_show_name'; // iTunes 6.0
2176
- $handyatomtranslatorarray['tvsn'] = 'tv_season'; // iTunes 6.0
2177
- $handyatomtranslatorarray['tves'] = 'tv_episode'; // iTunes 6.0
2178
- $handyatomtranslatorarray['purd'] = 'purchase_date'; // iTunes 6.0.2
2179
- $handyatomtranslatorarray['pgap'] = 'gapless_playback'; // iTunes 7.0
2180
-
2181
- // http://www.geocities.com/xhelmboyx/quicktime/formats/mp4-layout.txt
2182
-
2183
-
2184
-
2185
- // boxnames:
2186
- /*
2187
- $handyatomtranslatorarray['iTunSMPB'] = 'iTunSMPB';
2188
- $handyatomtranslatorarray['iTunNORM'] = 'iTunNORM';
2189
- $handyatomtranslatorarray['Encoding Params'] = 'Encoding Params';
2190
- $handyatomtranslatorarray['replaygain_track_gain'] = 'replaygain_track_gain';
2191
- $handyatomtranslatorarray['replaygain_track_peak'] = 'replaygain_track_peak';
2192
- $handyatomtranslatorarray['replaygain_track_minmax'] = 'replaygain_track_minmax';
2193
- $handyatomtranslatorarray['MusicIP PUID'] = 'MusicIP PUID';
2194
- $handyatomtranslatorarray['MusicBrainz Artist Id'] = 'MusicBrainz Artist Id';
2195
- $handyatomtranslatorarray['MusicBrainz Album Id'] = 'MusicBrainz Album Id';
2196
- $handyatomtranslatorarray['MusicBrainz Album Artist Id'] = 'MusicBrainz Album Artist Id';
2197
- $handyatomtranslatorarray['MusicBrainz Track Id'] = 'MusicBrainz Track Id';
2198
- $handyatomtranslatorarray['MusicBrainz Disc Id'] = 'MusicBrainz Disc Id';
2199
-
2200
- // http://age.hobba.nl/audio/tag_frame_reference.html
2201
- $handyatomtranslatorarray['PLAY_COUNTER'] = 'play_counter'; // Foobar2000 - http://www.getid3.org/phpBB3/viewtopic.php?t=1355
2202
- $handyatomtranslatorarray['MEDIATYPE'] = 'mediatype'; // Foobar2000 - http://www.getid3.org/phpBB3/viewtopic.php?t=1355
2203
- */
2204
- }
2205
- $info = &$this->getid3->info;
2206
- $comment_key = '';
2207
- if ($boxname && ($boxname != $keyname)) {
2208
- $comment_key = (isset($handyatomtranslatorarray[$boxname]) ? $handyatomtranslatorarray[$boxname] : $boxname);
2209
- } elseif (isset($handyatomtranslatorarray[$keyname])) {
2210
- $comment_key = $handyatomtranslatorarray[$keyname];
2211
- }
2212
- if ($comment_key) {
2213
- if ($comment_key == 'picture') {
2214
- if (!is_array($data)) {
2215
- $image_mime = '';
2216
- if (preg_match('#^\x89\x50\x4E\x47\x0D\x0A\x1A\x0A#', $data)) {
2217
- $image_mime = 'image/png';
2218
- } elseif (preg_match('#^\xFF\xD8\xFF#', $data)) {
2219
- $image_mime = 'image/jpeg';
2220
- } elseif (preg_match('#^GIF#', $data)) {
2221
- $image_mime = 'image/gif';
2222
- } elseif (preg_match('#^BM#', $data)) {
2223
- $image_mime = 'image/bmp';
2224
- }
2225
- $data = array('data'=>$data, 'image_mime'=>$image_mime);
2226
- }
2227
- }
2228
- $info['quicktime']['comments'][$comment_key][] = $data;
2229
- }
2230
- return true;
2231
- }
2232
-
2233
- public function NoNullString($nullterminatedstring) {
2234
- // remove the single null terminator on null terminated strings
2235
- if (substr($nullterminatedstring, strlen($nullterminatedstring) - 1, 1) === "\x00") {
2236
- return substr($nullterminatedstring, 0, strlen($nullterminatedstring) - 1);
2237
- }
2238
- return $nullterminatedstring;
2239
- }
2240
-
2241
- public function Pascal2String($pascalstring) {
2242
- // Pascal strings have 1 unsigned byte at the beginning saying how many chars (1-255) are in the string
2243
- return substr($pascalstring, 1);
2244
- }
2245
-
2246
- }