laag-libjpeg-turbo 1.5.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (444) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +57 -0
  3. data/LICENSE.txt +139 -0
  4. data/README.org +34 -0
  5. data/ext/laag/libjpeg-turbo/extconf.rb +16 -0
  6. data/laag-libjpeg-turbo.gemspec +20 -0
  7. data/lib/laag/libjpeg-turbo.rb +29 -0
  8. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/.gitignore +14 -0
  9. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/.travis.yml +131 -0
  10. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/BUILDING.md +964 -0
  11. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/CMakeLists.txt +962 -0
  12. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/ChangeLog.md +1151 -0
  13. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/LICENSE.md +139 -0
  14. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/Makefile.am +794 -0
  15. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/README.ijg +279 -0
  16. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/README.md +341 -0
  17. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/acinclude.m4 +287 -0
  18. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/appveyor.yml +57 -0
  19. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/bmp.c +341 -0
  20. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/bmp.h +42 -0
  21. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/cderror.h +136 -0
  22. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/cdjpeg.c +144 -0
  23. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/cdjpeg.h +153 -0
  24. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/change.log +315 -0
  25. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/ci/keys.enc +0 -0
  26. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/cjpeg.1 +351 -0
  27. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/cjpeg.c +644 -0
  28. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/cmakescripts/cmake_uninstall.cmake.in +24 -0
  29. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/cmakescripts/testclean.cmake +39 -0
  30. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/coderules.txt +78 -0
  31. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/configure.ac +616 -0
  32. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/djpeg.1 +293 -0
  33. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/djpeg.c +782 -0
  34. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/annotated.html +104 -0
  35. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/bc_s.png +0 -0
  36. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/bdwn.png +0 -0
  37. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/classes.html +106 -0
  38. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/closed.png +0 -0
  39. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/doxygen-extra.css +3 -0
  40. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/doxygen.css +1184 -0
  41. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/doxygen.png +0 -0
  42. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/dynsections.js +97 -0
  43. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/ftv2blank.png +0 -0
  44. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/ftv2cl.png +0 -0
  45. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/ftv2doc.png +0 -0
  46. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/ftv2folderclosed.png +0 -0
  47. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/ftv2folderopen.png +0 -0
  48. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/ftv2lastnode.png +0 -0
  49. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/ftv2link.png +0 -0
  50. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/ftv2mlastnode.png +0 -0
  51. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/ftv2mnode.png +0 -0
  52. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/ftv2mo.png +0 -0
  53. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/ftv2node.png +0 -0
  54. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/ftv2ns.png +0 -0
  55. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/ftv2plastnode.png +0 -0
  56. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/ftv2pnode.png +0 -0
  57. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/ftv2splitbar.png +0 -0
  58. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/ftv2vertline.png +0 -0
  59. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/functions.html +134 -0
  60. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/functions_vars.html +134 -0
  61. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/group___turbo_j_p_e_g.html +2446 -0
  62. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/index.html +90 -0
  63. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/jquery.js +8 -0
  64. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/modules.html +95 -0
  65. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/nav_f.png +0 -0
  66. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/nav_g.png +0 -0
  67. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/nav_h.png +0 -0
  68. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/open.png +0 -0
  69. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_63.html +26 -0
  70. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_63.js +4 -0
  71. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_64.html +26 -0
  72. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_64.js +5 -0
  73. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_68.html +26 -0
  74. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_68.js +4 -0
  75. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_6e.html +26 -0
  76. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_6e.js +4 -0
  77. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_6f.html +26 -0
  78. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_6f.js +5 -0
  79. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_72.html +26 -0
  80. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_72.js +4 -0
  81. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_74.html +26 -0
  82. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_74.js +89 -0
  83. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_77.html +26 -0
  84. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_77.js +4 -0
  85. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_78.html +26 -0
  86. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_78.js +4 -0
  87. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_79.html +26 -0
  88. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/all_79.js +4 -0
  89. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/classes_74.html +26 -0
  90. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/classes_74.js +6 -0
  91. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/close.png +0 -0
  92. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/enums_74.html +26 -0
  93. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/enums_74.js +7 -0
  94. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/enumvalues_74.html +26 -0
  95. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/enumvalues_74.js +34 -0
  96. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/functions_74.html +26 -0
  97. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/functions_74.js +28 -0
  98. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/groups_74.html +26 -0
  99. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/groups_74.js +4 -0
  100. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/mag_sel.png +0 -0
  101. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/nomatches.html +12 -0
  102. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/search.css +271 -0
  103. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/search.js +809 -0
  104. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/search_l.png +0 -0
  105. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/search_m.png +0 -0
  106. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/search_r.png +0 -0
  107. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/typedefs_74.html +26 -0
  108. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/typedefs_74.js +5 -0
  109. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_63.html +26 -0
  110. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_63.js +4 -0
  111. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_64.html +26 -0
  112. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_64.js +5 -0
  113. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_68.html +26 -0
  114. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_68.js +4 -0
  115. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_6e.html +26 -0
  116. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_6e.js +4 -0
  117. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_6f.html +26 -0
  118. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_6f.js +5 -0
  119. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_72.html +26 -0
  120. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_72.js +4 -0
  121. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_74.html +26 -0
  122. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_74.js +9 -0
  123. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_77.html +26 -0
  124. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_77.js +4 -0
  125. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_78.html +26 -0
  126. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_78.js +4 -0
  127. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_79.html +26 -0
  128. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/search/variables_79.js +4 -0
  129. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/structtjregion.html +186 -0
  130. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/structtjscalingfactor.html +148 -0
  131. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/structtjtransform.html +212 -0
  132. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/sync_off.png +0 -0
  133. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/sync_on.png +0 -0
  134. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/tab_a.png +0 -0
  135. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/tab_b.png +0 -0
  136. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/tab_h.png +0 -0
  137. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/tab_s.png +0 -0
  138. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doc/html/tabs.css +60 -0
  139. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doxygen-extra.css +3 -0
  140. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/doxygen.config +16 -0
  141. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/example.c +433 -0
  142. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jaricom.c +156 -0
  143. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/CMakeLists.txt +57 -0
  144. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/MANIFEST.MF +2 -0
  145. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/Makefile.am +75 -0
  146. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/README +52 -0
  147. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/TJBench.java +926 -0
  148. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/TJExample.java +362 -0
  149. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/TJUnitTest.java +959 -0
  150. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/allclasses-frame.html +24 -0
  151. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/allclasses-noframe.html +24 -0
  152. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/constant-values.html +479 -0
  153. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/deprecated-list.html +248 -0
  154. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/help-doc.html +206 -0
  155. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/index-all.html +980 -0
  156. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/index.html +70 -0
  157. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/org/libjpegturbo/turbojpeg/TJ.html +1254 -0
  158. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/org/libjpegturbo/turbojpeg/TJCompressor.html +922 -0
  159. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/org/libjpegturbo/turbojpeg/TJCustomFilter.html +237 -0
  160. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/org/libjpegturbo/turbojpeg/TJDecompressor.html +1235 -0
  161. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/org/libjpegturbo/turbojpeg/TJException.html +287 -0
  162. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/org/libjpegturbo/turbojpeg/TJScalingFactor.html +333 -0
  163. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/org/libjpegturbo/turbojpeg/TJTransform.html +706 -0
  164. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/org/libjpegturbo/turbojpeg/TJTransformer.html +417 -0
  165. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/org/libjpegturbo/turbojpeg/YUVImage.html +761 -0
  166. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/org/libjpegturbo/turbojpeg/package-frame.html +31 -0
  167. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/org/libjpegturbo/turbojpeg/package-summary.html +198 -0
  168. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/org/libjpegturbo/turbojpeg/package-tree.html +156 -0
  169. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/overview-tree.html +160 -0
  170. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/package-list +1 -0
  171. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/resources/background.gif +0 -0
  172. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/resources/tab.gif +0 -0
  173. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/resources/titlebar.gif +0 -0
  174. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/resources/titlebar_end.gif +0 -0
  175. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/serialized-form.html +159 -0
  176. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/doc/stylesheet.css +474 -0
  177. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/org/libjpegturbo/turbojpeg/TJ.java +513 -0
  178. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/org/libjpegturbo/turbojpeg/TJCompressor.java +658 -0
  179. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/org/libjpegturbo/turbojpeg/TJCustomFilter.java +76 -0
  180. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/org/libjpegturbo/turbojpeg/TJDecompressor.java +909 -0
  181. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/org/libjpegturbo/turbojpeg/TJException.java +53 -0
  182. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/org/libjpegturbo/turbojpeg/TJLoader.java.in +35 -0
  183. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/org/libjpegturbo/turbojpeg/TJLoader.java.tmpl +59 -0
  184. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/org/libjpegturbo/turbojpeg/TJScalingFactor.java +104 -0
  185. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/org/libjpegturbo/turbojpeg/TJTransform.java +208 -0
  186. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/org/libjpegturbo/turbojpeg/TJTransformer.java +163 -0
  187. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/org/libjpegturbo/turbojpeg/YUVImage.java +443 -0
  188. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/org_libjpegturbo_turbojpeg_TJ.h +129 -0
  189. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/org_libjpegturbo_turbojpeg_TJCompressor.h +101 -0
  190. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/org_libjpegturbo_turbojpeg_TJDecompressor.h +101 -0
  191. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/java/org_libjpegturbo_turbojpeg_TJTransformer.h +29 -0
  192. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jcapimin.c +295 -0
  193. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jcapistd.c +162 -0
  194. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jcarith.c +928 -0
  195. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jccoefct.c +449 -0
  196. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jccolext.c +148 -0
  197. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jccolor.c +719 -0
  198. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jcdctmgr.c +721 -0
  199. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jchuff.c +1091 -0
  200. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jchuff.h +43 -0
  201. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jcinit.c +77 -0
  202. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jcmainct.c +162 -0
  203. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jcmarker.c +665 -0
  204. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jcmaster.c +639 -0
  205. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jcomapi.c +109 -0
  206. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jconfig.h.in +73 -0
  207. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jconfig.txt +143 -0
  208. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jconfigint.h.in +17 -0
  209. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jcparam.c +542 -0
  210. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jcphuff.c +834 -0
  211. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jcprepct.c +357 -0
  212. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jcsample.c +539 -0
  213. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jcstest.c +126 -0
  214. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jctrans.c +402 -0
  215. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdapimin.c +407 -0
  216. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdapistd.c +637 -0
  217. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdarith.c +769 -0
  218. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdatadst-tj.c +202 -0
  219. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdatadst.c +293 -0
  220. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdatasrc-tj.c +191 -0
  221. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdatasrc.c +295 -0
  222. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdcoefct.c +693 -0
  223. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdcoefct.h +82 -0
  224. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdcol565.c +384 -0
  225. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdcolext.c +143 -0
  226. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdcolor.c +897 -0
  227. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdct.h +208 -0
  228. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jddctmgr.c +352 -0
  229. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdhuff.c +822 -0
  230. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdhuff.h +234 -0
  231. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdinput.c +405 -0
  232. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdmainct.c +456 -0
  233. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdmainct.h +71 -0
  234. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdmarker.c +1377 -0
  235. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdmaster.c +736 -0
  236. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdmaster.h +28 -0
  237. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdmerge.c +627 -0
  238. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdmrg565.c +356 -0
  239. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdmrgext.c +186 -0
  240. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdphuff.c +674 -0
  241. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdpostct.c +290 -0
  242. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdsample.c +517 -0
  243. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdsample.h +50 -0
  244. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jdtrans.c +155 -0
  245. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jerror.c +251 -0
  246. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jerror.h +317 -0
  247. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jfdctflt.c +169 -0
  248. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jfdctfst.c +227 -0
  249. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jfdctint.c +286 -0
  250. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jidctflt.c +240 -0
  251. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jidctfst.c +371 -0
  252. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jidctint.c +2627 -0
  253. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jidctred.c +403 -0
  254. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jinclude.h +84 -0
  255. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jmemmgr.c +1183 -0
  256. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jmemnobs.c +115 -0
  257. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jmemsys.h +178 -0
  258. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jmorecfg.h +421 -0
  259. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jpeg_nbits_table.h +4098 -0
  260. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jpegcomp.h +31 -0
  261. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jpegint.h +368 -0
  262. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jpeglib.h +1122 -0
  263. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jpegtran.1 +290 -0
  264. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jpegtran.c +551 -0
  265. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jquant1.c +857 -0
  266. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jquant2.c +1282 -0
  267. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jsimd.h +93 -0
  268. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jsimd_none.c +404 -0
  269. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jsimddct.h +74 -0
  270. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jstdhuff.c +135 -0
  271. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jutils.c +133 -0
  272. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/jversion.h +49 -0
  273. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/libjpeg.map.in +11 -0
  274. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/libjpeg.txt +3104 -0
  275. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/md5/CMakeLists.txt +1 -0
  276. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/md5/Makefile.am +4 -0
  277. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/md5/md5.c +340 -0
  278. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/md5/md5.h +49 -0
  279. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/md5/md5cmp.c +60 -0
  280. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/md5/md5hl.c +114 -0
  281. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/rdbmp.c +483 -0
  282. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/rdcolmap.c +254 -0
  283. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/rdgif.c +39 -0
  284. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/rdjpgcom.1 +63 -0
  285. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/rdjpgcom.c +510 -0
  286. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/rdppm.c +471 -0
  287. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/rdrle.c +389 -0
  288. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/rdswitch.c +424 -0
  289. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/rdtarga.c +503 -0
  290. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/release/Distribution.xml +24 -0
  291. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/release/License.rtf +20 -0
  292. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/release/ReadMe.txt +5 -0
  293. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/release/Welcome.rtf +17 -0
  294. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/release/deb-control.tmpl +31 -0
  295. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/release/libjpeg-turbo.nsi.in +162 -0
  296. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/release/libjpeg-turbo.spec.in +164 -0
  297. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/release/libjpeg.pc.in +10 -0
  298. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/release/libturbojpeg.pc.in +10 -0
  299. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/release/makecygwinpkg.in +42 -0
  300. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/release/makedpkg.in +82 -0
  301. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/release/makemacpkg.in +470 -0
  302. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/release/uninstall.in +112 -0
  303. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/sharedlib/CMakeLists.txt +73 -0
  304. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/CMakeLists.txt +81 -0
  305. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/Makefile.am +102 -0
  306. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jccolext-altivec.c +267 -0
  307. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jccolext-mmx.asm +476 -0
  308. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jccolext-sse2-64.asm +486 -0
  309. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jccolext-sse2.asm +503 -0
  310. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jccolor-altivec.c +104 -0
  311. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jccolor-mmx.asm +122 -0
  312. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jccolor-sse2-64.asm +121 -0
  313. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jccolor-sse2.asm +121 -0
  314. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jcgray-altivec.c +99 -0
  315. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jcgray-mmx.asm +115 -0
  316. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jcgray-sse2-64.asm +114 -0
  317. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jcgray-sse2.asm +114 -0
  318. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jcgryext-altivec.c +227 -0
  319. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jcgryext-mmx.asm +356 -0
  320. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jcgryext-sse2-64.asm +365 -0
  321. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jcgryext-sse2.asm +384 -0
  322. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jchuff-sse2-64.asm +360 -0
  323. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jchuff-sse2.asm +426 -0
  324. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jcolsamp.inc +104 -0
  325. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jcsample-altivec.c +158 -0
  326. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jcsample-mmx.asm +323 -0
  327. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jcsample-sse2-64.asm +329 -0
  328. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jcsample-sse2.asm +350 -0
  329. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jcsample.h +28 -0
  330. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdcolext-altivec.c +274 -0
  331. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdcolext-mmx.asm +404 -0
  332. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdcolext-sse2-64.asm +440 -0
  333. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdcolext-sse2.asm +459 -0
  334. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdcolor-altivec.c +96 -0
  335. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdcolor-mmx.asm +119 -0
  336. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdcolor-sse2-64.asm +119 -0
  337. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdcolor-sse2.asm +119 -0
  338. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdct.inc +27 -0
  339. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdmerge-altivec.c +108 -0
  340. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdmerge-mmx.asm +125 -0
  341. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdmerge-sse2-64.asm +125 -0
  342. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdmerge-sse2.asm +125 -0
  343. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdmrgext-altivec.c +323 -0
  344. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdmrgext-mmx.asm +463 -0
  345. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdmrgext-sse2-64.asm +537 -0
  346. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdmrgext-sse2.asm +518 -0
  347. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdsample-altivec.c +392 -0
  348. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdsample-mmx.asm +736 -0
  349. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdsample-sse2-64.asm +670 -0
  350. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jdsample-sse2.asm +728 -0
  351. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jfdctflt-3dn.asm +319 -0
  352. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jfdctflt-sse-64.asm +357 -0
  353. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jfdctflt-sse.asm +369 -0
  354. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jfdctfst-altivec.c +156 -0
  355. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jfdctfst-mmx.asm +396 -0
  356. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jfdctfst-sse2-64.asm +391 -0
  357. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jfdctfst-sse2.asm +403 -0
  358. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jfdctint-altivec.c +262 -0
  359. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jfdctint-mmx.asm +621 -0
  360. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jfdctint-sse2-64.asm +621 -0
  361. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jfdctint-sse2.asm +633 -0
  362. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jidctflt-3dn.asm +451 -0
  363. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jidctflt-sse.asm +571 -0
  364. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jidctflt-sse2-64.asm +482 -0
  365. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jidctflt-sse2.asm +497 -0
  366. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jidctfst-altivec.c +257 -0
  367. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jidctfst-mmx.asm +499 -0
  368. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jidctfst-sse2-64.asm +491 -0
  369. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jidctfst-sse2.asm +501 -0
  370. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jidctint-altivec.c +359 -0
  371. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jidctint-mmx.asm +851 -0
  372. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jidctint-sse2-64.asm +847 -0
  373. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jidctint-sse2.asm +858 -0
  374. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jidctred-mmx.asm +705 -0
  375. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jidctred-sse2-64.asm +575 -0
  376. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jidctred-sse2.asm +593 -0
  377. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jpeg_nbits_table.inc +4097 -0
  378. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jquant-3dn.asm +232 -0
  379. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jquant-mmx.asm +273 -0
  380. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jquant-sse.asm +210 -0
  381. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jquantf-sse2-64.asm +157 -0
  382. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jquantf-sse2.asm +170 -0
  383. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jquanti-altivec.c +252 -0
  384. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jquanti-sse2-64.asm +186 -0
  385. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jquanti-sse2.asm +199 -0
  386. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jsimd.h +871 -0
  387. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jsimd_altivec.h +99 -0
  388. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jsimd_arm.c +728 -0
  389. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jsimd_arm64.c +803 -0
  390. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jsimd_arm64_neon.S +3425 -0
  391. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jsimd_arm_neon.S +2878 -0
  392. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jsimd_i386.c +1091 -0
  393. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jsimd_mips.c +1140 -0
  394. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jsimd_mips_dspr2.S +4486 -0
  395. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jsimd_mips_dspr2_asm.h +283 -0
  396. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jsimd_powerpc.c +852 -0
  397. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jsimd_x86_64.c +887 -0
  398. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jsimdcfg.inc.h +130 -0
  399. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jsimdcpu.asm +104 -0
  400. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/jsimdext.inc +375 -0
  401. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/simd/nasm_lt.sh +60 -0
  402. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/structure.txt +904 -0
  403. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/testimages/nightshot_iso_100.bmp +0 -0
  404. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/testimages/nightshot_iso_100.txt +25 -0
  405. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/testimages/testimgari.jpg +0 -0
  406. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/testimages/testimgint.jpg +0 -0
  407. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/testimages/testorig.jpg +0 -0
  408. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/testimages/testorig.ppm +4 -0
  409. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/testimages/testorig12.jpg +0 -0
  410. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/testimages/vgl_5674_0098.bmp +0 -0
  411. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/testimages/vgl_6434_0018a.bmp +0 -0
  412. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/testimages/vgl_6548_0026a.bmp +0 -0
  413. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/tjbench.c +1010 -0
  414. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/tjbenchtest.in +252 -0
  415. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/tjbenchtest.java.in +207 -0
  416. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/tjexampletest.in +150 -0
  417. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/tjunittest.c +734 -0
  418. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/tjutil.c +66 -0
  419. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/tjutil.h +47 -0
  420. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/transupp.c +1626 -0
  421. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/transupp.h +207 -0
  422. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/turbojpeg-jni.c +1166 -0
  423. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/turbojpeg-mapfile +56 -0
  424. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/turbojpeg-mapfile.jni +92 -0
  425. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/turbojpeg.c +2175 -0
  426. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/turbojpeg.h +1545 -0
  427. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/usage.txt +635 -0
  428. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/win/jconfig.h.in +51 -0
  429. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/win/jconfigint.h.in +13 -0
  430. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/win/jpeg62-memsrcdst.def +106 -0
  431. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/win/jpeg62.def +104 -0
  432. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/win/jpeg7-memsrcdst.def +108 -0
  433. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/win/jpeg7.def +106 -0
  434. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/win/jpeg8.def +109 -0
  435. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/win/jsimdcfg.inc +94 -0
  436. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/wizard.txt +211 -0
  437. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/wrbmp.c +494 -0
  438. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/wrgif.c +413 -0
  439. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/wrjpgcom.1 +103 -0
  440. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/wrjpgcom.c +592 -0
  441. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/wrppm.c +280 -0
  442. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/wrrle.c +308 -0
  443. data/vendor/github.com/libjpeg-turbo/libjpeg-turbo/wrtarga.c +261 -0
  444. metadata +509 -0
@@ -0,0 +1,658 @@
1
+ /*
2
+ * Copyright (C)2011-2015 D. R. Commander. All Rights Reserved.
3
+ * Copyright (C)2015 Viktor Szathmáry. All Rights Reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without
6
+ * modification, are permitted provided that the following conditions are met:
7
+ *
8
+ * - Redistributions of source code must retain the above copyright notice,
9
+ * this list of conditions and the following disclaimer.
10
+ * - Redistributions in binary form must reproduce the above copyright notice,
11
+ * this list of conditions and the following disclaimer in the documentation
12
+ * and/or other materials provided with the distribution.
13
+ * - Neither the name of the libjpeg-turbo Project nor the names of its
14
+ * contributors may be used to endorse or promote products derived from this
15
+ * software without specific prior written permission.
16
+ *
17
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS",
18
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
21
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
+ * POSSIBILITY OF SUCH DAMAGE.
28
+ */
29
+
30
+ package org.libjpegturbo.turbojpeg;
31
+
32
+ import java.awt.image.*;
33
+ import java.nio.*;
34
+ import java.io.*;
35
+
36
+ /**
37
+ * TurboJPEG compressor
38
+ */
39
+ public class TJCompressor implements Closeable {
40
+
41
+ private static final String NO_ASSOC_ERROR =
42
+ "No source image is associated with this instance";
43
+
44
+ /**
45
+ * Create a TurboJPEG compressor instance.
46
+ */
47
+ public TJCompressor() throws TJException {
48
+ init();
49
+ }
50
+
51
+ /**
52
+ * Create a TurboJPEG compressor instance and associate the uncompressed
53
+ * source image stored in <code>srcImage</code> with the newly created
54
+ * instance.
55
+ *
56
+ * @param srcImage see {@link #setSourceImage} for description
57
+ *
58
+ * @param x see {@link #setSourceImage} for description
59
+ *
60
+ * @param y see {@link #setSourceImage} for description
61
+ *
62
+ * @param width see {@link #setSourceImage} for description
63
+ *
64
+ * @param pitch see {@link #setSourceImage} for description
65
+ *
66
+ * @param height see {@link #setSourceImage} for description
67
+ *
68
+ * @param pixelFormat pixel format of the source image (one of
69
+ * {@link TJ#PF_RGB TJ.PF_*})
70
+ */
71
+ public TJCompressor(byte[] srcImage, int x, int y, int width, int pitch,
72
+ int height, int pixelFormat) throws TJException {
73
+ setSourceImage(srcImage, x, y, width, pitch, height, pixelFormat);
74
+ }
75
+
76
+ /**
77
+ * @deprecated Use
78
+ * {@link #TJCompressor(byte[], int, int, int, int, int, int)} instead.
79
+ */
80
+ @Deprecated
81
+ public TJCompressor(byte[] srcImage, int width, int pitch, int height,
82
+ int pixelFormat) throws TJException {
83
+ setSourceImage(srcImage, width, pitch, height, pixelFormat);
84
+ }
85
+
86
+ /**
87
+ * Create a TurboJPEG compressor instance and associate the uncompressed
88
+ * source image stored in <code>srcImage</code> with the newly created
89
+ * instance.
90
+ *
91
+ * @param srcImage see
92
+ * {@link #setSourceImage(BufferedImage, int, int, int, int)} for description
93
+ *
94
+ * @param x see
95
+ * {@link #setSourceImage(BufferedImage, int, int, int, int)} for description
96
+ *
97
+ * @param y see
98
+ * {@link #setSourceImage(BufferedImage, int, int, int, int)} for description
99
+ *
100
+ * @param width see
101
+ * {@link #setSourceImage(BufferedImage, int, int, int, int)} for description
102
+ *
103
+ * @param height see
104
+ * {@link #setSourceImage(BufferedImage, int, int, int, int)} for description
105
+ */
106
+ public TJCompressor(BufferedImage srcImage, int x, int y, int width,
107
+ int height) throws TJException {
108
+ setSourceImage(srcImage, x, y, width, height);
109
+ }
110
+
111
+ /**
112
+ * Associate an uncompressed RGB, grayscale, or CMYK source image with this
113
+ * compressor instance.
114
+ *
115
+ * @param srcImage image buffer containing RGB, grayscale, or CMYK pixels to
116
+ * be compressed or encoded. This buffer is not modified.
117
+ *
118
+ * @param x x offset (in pixels) of the region in the source image from which
119
+ * the JPEG or YUV image should be compressed/encoded
120
+ *
121
+ * @param y y offset (in pixels) of the region in the source image from which
122
+ * the JPEG or YUV image should be compressed/encoded
123
+ *
124
+ * @param width width (in pixels) of the region in the source image from
125
+ * which the JPEG or YUV image should be compressed/encoded
126
+ *
127
+ * @param pitch bytes per line of the source image. Normally, this should be
128
+ * <code>width * TJ.pixelSize(pixelFormat)</code> if the source image is
129
+ * unpadded, but you can use this parameter to, for instance, specify that
130
+ * the scanlines in the source image are padded to a 4-byte boundary or to
131
+ * compress/encode a JPEG or YUV image from a region of a larger source
132
+ * image. You can also be clever and use this parameter to skip lines, etc.
133
+ * Setting this parameter to 0 is the equivalent of setting it to
134
+ * <code>width * TJ.pixelSize(pixelFormat)</code>.
135
+ *
136
+ * @param height height (in pixels) of the region in the source image from
137
+ * which the JPEG or YUV image should be compressed/encoded
138
+ *
139
+ * @param pixelFormat pixel format of the source image (one of
140
+ * {@link TJ#PF_RGB TJ.PF_*})
141
+ */
142
+ public void setSourceImage(byte[] srcImage, int x, int y, int width,
143
+ int pitch, int height, int pixelFormat)
144
+ throws TJException {
145
+ if (handle == 0) init();
146
+ if (srcImage == null || x < 0 || y < 0 || width < 1 || height < 1 ||
147
+ pitch < 0 || pixelFormat < 0 || pixelFormat >= TJ.NUMPF)
148
+ throw new IllegalArgumentException("Invalid argument in setSourceImage()");
149
+ srcBuf = srcImage;
150
+ srcWidth = width;
151
+ if (pitch == 0)
152
+ srcPitch = width * TJ.getPixelSize(pixelFormat);
153
+ else
154
+ srcPitch = pitch;
155
+ srcHeight = height;
156
+ srcPixelFormat = pixelFormat;
157
+ srcX = x;
158
+ srcY = y;
159
+ srcBufInt = null;
160
+ srcYUVImage = null;
161
+ }
162
+
163
+ /**
164
+ * @deprecated Use
165
+ * {@link #setSourceImage(byte[], int, int, int, int, int, int)} instead.
166
+ */
167
+ @Deprecated
168
+ public void setSourceImage(byte[] srcImage, int width, int pitch,
169
+ int height, int pixelFormat) throws TJException {
170
+ setSourceImage(srcImage, 0, 0, width, pitch, height, pixelFormat);
171
+ srcX = srcY = -1;
172
+ }
173
+
174
+ /**
175
+ * Associate an uncompressed RGB or grayscale source image with this
176
+ * compressor instance.
177
+ *
178
+ * @param srcImage a <code>BufferedImage</code> instance containing RGB or
179
+ * grayscale pixels to be compressed or encoded. This image is not modified.
180
+ *
181
+ * @param x x offset (in pixels) of the region in the source image from which
182
+ * the JPEG or YUV image should be compressed/encoded
183
+ *
184
+ * @param y y offset (in pixels) of the region in the source image from which
185
+ * the JPEG or YUV image should be compressed/encoded
186
+ *
187
+ * @param width width (in pixels) of the region in the source image from
188
+ * which the JPEG or YUV image should be compressed/encoded (0 = use the
189
+ * width of the source image)
190
+ *
191
+ * @param height height (in pixels) of the region in the source image from
192
+ * which the JPEG or YUV image should be compressed/encoded (0 = use the
193
+ * height of the source image)
194
+ */
195
+ public void setSourceImage(BufferedImage srcImage, int x, int y, int width,
196
+ int height) throws TJException {
197
+ if (handle == 0) init();
198
+ if (srcImage == null || x < 0 || y < 0 || width < 0 || height < 0)
199
+ throw new IllegalArgumentException("Invalid argument in setSourceImage()");
200
+ srcX = x;
201
+ srcY = y;
202
+ srcWidth = (width == 0) ? srcImage.getWidth(): width;
203
+ srcHeight = (height == 0) ? srcImage.getHeight() : height;
204
+ if (x + width > srcImage.getWidth() || y + height > srcImage.getHeight())
205
+ throw new IllegalArgumentException("Compression region exceeds the bounds of the source image");
206
+
207
+ int pixelFormat;
208
+ boolean intPixels = false;
209
+ if (byteOrder == null)
210
+ byteOrder = ByteOrder.nativeOrder();
211
+ switch(srcImage.getType()) {
212
+ case BufferedImage.TYPE_3BYTE_BGR:
213
+ pixelFormat = TJ.PF_BGR; break;
214
+ case BufferedImage.TYPE_4BYTE_ABGR:
215
+ case BufferedImage.TYPE_4BYTE_ABGR_PRE:
216
+ pixelFormat = TJ.PF_XBGR; break;
217
+ case BufferedImage.TYPE_BYTE_GRAY:
218
+ pixelFormat = TJ.PF_GRAY; break;
219
+ case BufferedImage.TYPE_INT_BGR:
220
+ if (byteOrder == ByteOrder.BIG_ENDIAN)
221
+ pixelFormat = TJ.PF_XBGR;
222
+ else
223
+ pixelFormat = TJ.PF_RGBX;
224
+ intPixels = true; break;
225
+ case BufferedImage.TYPE_INT_RGB:
226
+ case BufferedImage.TYPE_INT_ARGB:
227
+ case BufferedImage.TYPE_INT_ARGB_PRE:
228
+ if (byteOrder == ByteOrder.BIG_ENDIAN)
229
+ pixelFormat = TJ.PF_XRGB;
230
+ else
231
+ pixelFormat = TJ.PF_BGRX;
232
+ intPixels = true; break;
233
+ default:
234
+ throw new IllegalArgumentException("Unsupported BufferedImage format");
235
+ }
236
+ srcPixelFormat = pixelFormat;
237
+
238
+ WritableRaster wr = srcImage.getRaster();
239
+ if (intPixels) {
240
+ SinglePixelPackedSampleModel sm =
241
+ (SinglePixelPackedSampleModel)srcImage.getSampleModel();
242
+ srcStride = sm.getScanlineStride();
243
+ DataBufferInt db = (DataBufferInt)wr.getDataBuffer();
244
+ srcBufInt = db.getData();
245
+ srcBuf = null;
246
+ } else {
247
+ ComponentSampleModel sm =
248
+ (ComponentSampleModel)srcImage.getSampleModel();
249
+ int pixelSize = sm.getPixelStride();
250
+ if (pixelSize != TJ.getPixelSize(pixelFormat))
251
+ throw new IllegalArgumentException("Inconsistency between pixel format and pixel size in BufferedImage");
252
+ srcPitch = sm.getScanlineStride();
253
+ DataBufferByte db = (DataBufferByte)wr.getDataBuffer();
254
+ srcBuf = db.getData();
255
+ srcBufInt = null;
256
+ }
257
+ srcYUVImage = null;
258
+ }
259
+
260
+ /**
261
+ * Associate an uncompressed YUV planar source image with this compressor
262
+ * instance.
263
+ *
264
+ * @param srcImage YUV planar image to be compressed. This image is not
265
+ * modified.
266
+ */
267
+ public void setSourceImage(YUVImage srcImage) throws TJException {
268
+ if (handle == 0) init();
269
+ if (srcImage == null)
270
+ throw new IllegalArgumentException("Invalid argument in setSourceImage()");
271
+ srcYUVImage = srcImage;
272
+ srcBuf = null;
273
+ srcBufInt = null;
274
+ }
275
+
276
+ /**
277
+ * Set the level of chrominance subsampling for subsequent compress/encode
278
+ * operations. When pixels are converted from RGB to YCbCr (see
279
+ * {@link TJ#CS_YCbCr}) or from CMYK to YCCK (see {@link TJ#CS_YCCK}) as part
280
+ * of the JPEG compression process, some of the Cb and Cr (chrominance)
281
+ * components can be discarded or averaged together to produce a smaller
282
+ * image with little perceptible loss of image clarity (the human eye is more
283
+ * sensitive to small changes in brightness than to small changes in color.)
284
+ * This is called "chrominance subsampling".
285
+ * <p>
286
+ * NOTE: This method has no effect when compressing a JPEG image from a YUV
287
+ * planar source. In that case, the level of chrominance subsampling in
288
+ * the JPEG image is determined by the source. Further, this method has no
289
+ * effect when encoding to a pre-allocated {@link YUVImage} instance. In
290
+ * that case, the level of chrominance subsampling is determined by the
291
+ * destination.
292
+ *
293
+ * @param newSubsamp the level of chrominance subsampling to use in
294
+ * subsequent compress/encode oeprations (one of
295
+ * {@link TJ#SAMP_444 TJ.SAMP_*})
296
+ */
297
+ public void setSubsamp(int newSubsamp) {
298
+ if (newSubsamp < 0 || newSubsamp >= TJ.NUMSAMP)
299
+ throw new IllegalArgumentException("Invalid argument in setSubsamp()");
300
+ subsamp = newSubsamp;
301
+ }
302
+
303
+ /**
304
+ * Set the JPEG image quality level for subsequent compress operations.
305
+ *
306
+ * @param quality the new JPEG image quality level (1 to 100, 1 = worst,
307
+ * 100 = best)
308
+ */
309
+ public void setJPEGQuality(int quality) {
310
+ if (quality < 1 || quality > 100)
311
+ throw new IllegalArgumentException("Invalid argument in setJPEGQuality()");
312
+ jpegQuality = quality;
313
+ }
314
+
315
+ /**
316
+ * Compress the uncompressed source image associated with this compressor
317
+ * instance and output a JPEG image to the given destination buffer.
318
+ *
319
+ * @param dstBuf buffer that will receive the JPEG image. Use
320
+ * {@link TJ#bufSize} to determine the maximum size for this buffer based on
321
+ * the source image's width and height and the desired level of chrominance
322
+ * subsampling.
323
+ *
324
+ * @param flags the bitwise OR of one or more of
325
+ * {@link TJ#FLAG_BOTTOMUP TJ.FLAG_*}
326
+ */
327
+ public void compress(byte[] dstBuf, int flags) throws TJException {
328
+ if (dstBuf == null || flags < 0)
329
+ throw new IllegalArgumentException("Invalid argument in compress()");
330
+ if (srcBuf == null && srcBufInt == null && srcYUVImage == null)
331
+ throw new IllegalStateException(NO_ASSOC_ERROR);
332
+ if (jpegQuality < 0)
333
+ throw new IllegalStateException("JPEG Quality not set");
334
+ if (subsamp < 0 && srcYUVImage == null)
335
+ throw new IllegalStateException("Subsampling level not set");
336
+
337
+ if (srcYUVImage != null)
338
+ compressedSize = compressFromYUV(srcYUVImage.getPlanes(),
339
+ srcYUVImage.getOffsets(),
340
+ srcYUVImage.getWidth(),
341
+ srcYUVImage.getStrides(),
342
+ srcYUVImage.getHeight(),
343
+ srcYUVImage.getSubsamp(),
344
+ dstBuf, jpegQuality, flags);
345
+ else if (srcBuf != null) {
346
+ if (srcX >= 0 && srcY >= 0)
347
+ compressedSize = compress(srcBuf, srcX, srcY, srcWidth, srcPitch,
348
+ srcHeight, srcPixelFormat, dstBuf, subsamp,
349
+ jpegQuality, flags);
350
+ else
351
+ compressedSize = compress(srcBuf, srcWidth, srcPitch, srcHeight,
352
+ srcPixelFormat, dstBuf, subsamp, jpegQuality,
353
+ flags);
354
+ } else if (srcBufInt != null) {
355
+ if (srcX >= 0 && srcY >= 0)
356
+ compressedSize = compress(srcBufInt, srcX, srcY, srcWidth, srcStride,
357
+ srcHeight, srcPixelFormat, dstBuf, subsamp,
358
+ jpegQuality, flags);
359
+ else
360
+ compressedSize = compress(srcBufInt, srcWidth, srcStride, srcHeight,
361
+ srcPixelFormat, dstBuf, subsamp, jpegQuality,
362
+ flags);
363
+ }
364
+ }
365
+
366
+ /**
367
+ * Compress the uncompressed source image associated with this compressor
368
+ * instance and return a buffer containing a JPEG image.
369
+ *
370
+ * @param flags the bitwise OR of one or more of
371
+ * {@link TJ#FLAG_BOTTOMUP TJ.FLAG_*}
372
+ *
373
+ * @return a buffer containing a JPEG image. The length of this buffer will
374
+ * not be equal to the size of the JPEG image. Use {@link
375
+ * #getCompressedSize} to obtain the size of the JPEG image.
376
+ */
377
+ public byte[] compress(int flags) throws TJException {
378
+ checkSourceImage();
379
+ byte[] buf = new byte[TJ.bufSize(srcWidth, srcHeight, subsamp)];
380
+ compress(buf, flags);
381
+ return buf;
382
+ }
383
+
384
+ /**
385
+ * @deprecated Use
386
+ * {@link #setSourceImage(BufferedImage, int, int, int, int)} and
387
+ * {@link #compress(byte[], int)} instead.
388
+ */
389
+ @Deprecated
390
+ public void compress(BufferedImage srcImage, byte[] dstBuf, int flags)
391
+ throws TJException {
392
+ setSourceImage(srcImage, 0, 0, 0, 0);
393
+ compress(dstBuf, flags);
394
+ }
395
+
396
+ /**
397
+ * @deprecated Use
398
+ * {@link #setSourceImage(BufferedImage, int, int, int, int)} and
399
+ * {@link #compress(int)} instead.
400
+ */
401
+ @Deprecated
402
+ public byte[] compress(BufferedImage srcImage, int flags)
403
+ throws TJException {
404
+ setSourceImage(srcImage, 0, 0, 0, 0);
405
+ return compress(flags);
406
+ }
407
+
408
+ /**
409
+ * Encode the uncompressed source image associated with this compressor
410
+ * instance into a YUV planar image and store it in the given
411
+ * <code>YUVImage</code> instance. This method uses the accelerated color
412
+ * conversion routines in TurboJPEG's underlying codec but does not execute
413
+ * any of the other steps in the JPEG compression process. Encoding
414
+ * CMYK source images to YUV is not supported.
415
+ *
416
+ * @param dstImage {@link YUVImage} instance that will receive the YUV planar
417
+ * image
418
+ *
419
+ * @param flags the bitwise OR of one or more of
420
+ * {@link TJ#FLAG_BOTTOMUP TJ.FLAG_*}
421
+ */
422
+ public void encodeYUV(YUVImage dstImage, int flags) throws TJException {
423
+ if (dstImage == null || flags < 0)
424
+ throw new IllegalArgumentException("Invalid argument in encodeYUV()");
425
+ if (srcBuf == null && srcBufInt == null)
426
+ throw new IllegalStateException(NO_ASSOC_ERROR);
427
+ if (srcYUVImage != null)
428
+ throw new IllegalStateException("Source image is not correct type");
429
+ checkSubsampling();
430
+ if (srcWidth != dstImage.getWidth() || srcHeight != dstImage.getHeight())
431
+ throw new IllegalStateException("Destination image is the wrong size");
432
+
433
+ if (srcBufInt != null) {
434
+ encodeYUV(srcBufInt, srcX, srcY, srcWidth, srcStride, srcHeight,
435
+ srcPixelFormat, dstImage.getPlanes(), dstImage.getOffsets(),
436
+ dstImage.getStrides(), dstImage.getSubsamp(), flags);
437
+ } else {
438
+ encodeYUV(srcBuf, srcX, srcY, srcWidth, srcPitch, srcHeight,
439
+ srcPixelFormat, dstImage.getPlanes(), dstImage.getOffsets(),
440
+ dstImage.getStrides(), dstImage.getSubsamp(), flags);
441
+ }
442
+ compressedSize = 0;
443
+ }
444
+
445
+ /**
446
+ * @deprecated Use {@link #encodeYUV(YUVImage, int)} instead.
447
+ */
448
+ @Deprecated
449
+ public void encodeYUV(byte[] dstBuf, int flags) throws TJException {
450
+ if(dstBuf == null)
451
+ throw new IllegalArgumentException("Invalid argument in encodeYUV()");
452
+ checkSourceImage();
453
+ checkSubsampling();
454
+ YUVImage yuvImage = new YUVImage(dstBuf, srcWidth, 4, srcHeight, subsamp);
455
+ encodeYUV(yuvImage, flags);
456
+ }
457
+
458
+ /**
459
+ * Encode the uncompressed source image associated with this compressor
460
+ * instance into a unified YUV planar image buffer and return a
461
+ * <code>YUVImage</code> instance containing the encoded image. This method
462
+ * uses the accelerated color conversion routines in TurboJPEG's underlying
463
+ * codec but does not execute any of the other steps in the JPEG compression
464
+ * process. Encoding CMYK source images to YUV is not supported.
465
+ *
466
+ * @param pad the width of each line in each plane of the YUV image will be
467
+ * padded to the nearest multiple of this number of bytes (must be a power of
468
+ * 2.)
469
+ *
470
+ * @param flags the bitwise OR of one or more of
471
+ * {@link TJ#FLAG_BOTTOMUP TJ.FLAG_*}
472
+ *
473
+ * @return a YUV planar image.
474
+ */
475
+ public YUVImage encodeYUV(int pad, int flags) throws TJException {
476
+ checkSourceImage();
477
+ checkSubsampling();
478
+ if(pad < 1 || ((pad & (pad - 1)) != 0))
479
+ throw new IllegalStateException("Invalid argument in encodeYUV()");
480
+ YUVImage yuvImage = new YUVImage(srcWidth, pad, srcHeight, subsamp);
481
+ encodeYUV(yuvImage, flags);
482
+ return yuvImage;
483
+ }
484
+
485
+ /**
486
+ * Encode the uncompressed source image associated with this compressor
487
+ * instance into separate Y, U (Cb), and V (Cr) image planes and return a
488
+ * <code>YUVImage</code> instance containing the encoded image planes. This
489
+ * method uses the accelerated color conversion routines in TurboJPEG's
490
+ * underlying codec but does not execute any of the other steps in the JPEG
491
+ * compression process. Encoding CMYK source images to YUV is not supported.
492
+ *
493
+ * @param strides an array of integers, each specifying the number of bytes
494
+ * per line in the corresponding plane of the output image. Setting the
495
+ * stride for any plane to 0 is the same as setting it to the component width
496
+ * of the plane. If <code>strides</code> is null, then the strides for all
497
+ * planes will be set to their respective component widths. You can adjust
498
+ * the strides in order to add an arbitrary amount of line padding to each
499
+ * plane.
500
+ *
501
+ * @param flags the bitwise OR of one or more of
502
+ * {@link TJ#FLAG_BOTTOMUP TJ.FLAG_*}
503
+ *
504
+ * @return a YUV planar image.
505
+ */
506
+ public YUVImage encodeYUV(int[] strides, int flags) throws TJException {
507
+ checkSourceImage();
508
+ checkSubsampling();
509
+ YUVImage yuvImage = new YUVImage(srcWidth, strides, srcHeight, subsamp);
510
+ encodeYUV(yuvImage, flags);
511
+ return yuvImage;
512
+ }
513
+
514
+ /**
515
+ * @deprecated Use {@link #encodeYUV(int, int)} instead.
516
+ */
517
+ @Deprecated
518
+ public byte[] encodeYUV(int flags) throws TJException {
519
+ checkSourceImage();
520
+ checkSubsampling();
521
+ YUVImage yuvImage = new YUVImage(srcWidth, 4, srcHeight, subsamp);
522
+ encodeYUV(yuvImage, flags);
523
+ return yuvImage.getBuf();
524
+ }
525
+
526
+ /**
527
+ * @deprecated Use
528
+ * {@link #setSourceImage(BufferedImage, int, int, int, int)} and
529
+ * {@link #encodeYUV(byte[], int)} instead.
530
+ */
531
+ @Deprecated
532
+ public void encodeYUV(BufferedImage srcImage, byte[] dstBuf, int flags)
533
+ throws TJException {
534
+ setSourceImage(srcImage, 0, 0, 0, 0);
535
+ encodeYUV(dstBuf, flags);
536
+ }
537
+
538
+ /**
539
+ * @deprecated Use
540
+ * {@link #setSourceImage(BufferedImage, int, int, int, int)} and
541
+ * {@link #encodeYUV(int, int)} instead.
542
+ */
543
+ @Deprecated
544
+ public byte[] encodeYUV(BufferedImage srcImage, int flags)
545
+ throws TJException {
546
+ setSourceImage(srcImage, 0, 0, 0, 0);
547
+ return encodeYUV(flags);
548
+ }
549
+
550
+ /**
551
+ * Returns the size of the image (in bytes) generated by the most recent
552
+ * compress operation.
553
+ *
554
+ * @return the size of the image (in bytes) generated by the most recent
555
+ * compress operation.
556
+ */
557
+ public int getCompressedSize() {
558
+ return compressedSize;
559
+ }
560
+
561
+ /**
562
+ * Free the native structures associated with this compressor instance.
563
+ */
564
+ @Override
565
+ public void close() throws TJException {
566
+ if (handle != 0)
567
+ destroy();
568
+ }
569
+
570
+ @Override
571
+ protected void finalize() throws Throwable {
572
+ try {
573
+ close();
574
+ } catch(TJException e) {
575
+ } finally {
576
+ super.finalize();
577
+ }
578
+ };
579
+
580
+ private native void init() throws TJException;
581
+
582
+ private native void destroy() throws TJException;
583
+
584
+ // JPEG size in bytes is returned
585
+ @Deprecated
586
+ private native int compress(byte[] srcBuf, int width, int pitch,
587
+ int height, int pixelFormat, byte[] dstBuf, int jpegSubsamp, int jpegQual,
588
+ int flags) throws TJException;
589
+
590
+ private native int compress(byte[] srcBuf, int x, int y, int width,
591
+ int pitch, int height, int pixelFormat, byte[] dstBuf, int jpegSubsamp,
592
+ int jpegQual, int flags) throws TJException;
593
+
594
+ @Deprecated
595
+ private native int compress(int[] srcBuf, int width, int stride,
596
+ int height, int pixelFormat, byte[] dstBuf, int jpegSubsamp, int jpegQual,
597
+ int flags) throws TJException;
598
+
599
+ private native int compress(int[] srcBuf, int x, int y, int width,
600
+ int stride, int height, int pixelFormat, byte[] dstBuf, int jpegSubsamp,
601
+ int jpegQual, int flags) throws TJException;
602
+
603
+ private native int compressFromYUV(byte[][] srcPlanes, int[] srcOffsets,
604
+ int width, int[] srcStrides, int height, int subsamp, byte[] dstBuf,
605
+ int jpegQual, int flags)
606
+ throws TJException;
607
+
608
+ @Deprecated
609
+ private native void encodeYUV(byte[] srcBuf, int width, int pitch,
610
+ int height, int pixelFormat, byte[] dstBuf, int subsamp, int flags)
611
+ throws TJException;
612
+
613
+ private native void encodeYUV(byte[] srcBuf, int x, int y, int width,
614
+ int pitch, int height, int pixelFormat, byte[][] dstPlanes,
615
+ int[] dstOffsets, int[] dstStrides, int subsamp, int flags)
616
+ throws TJException;
617
+
618
+ @Deprecated
619
+ private native void encodeYUV(int[] srcBuf, int width, int stride,
620
+ int height, int pixelFormat, byte[] dstBuf, int subsamp, int flags)
621
+ throws TJException;
622
+
623
+ private native void encodeYUV(int[] srcBuf, int x, int y, int width,
624
+ int srcStride, int height, int pixelFormat, byte[][] dstPlanes,
625
+ int[] dstOffsets, int[] dstStrides, int subsamp, int flags)
626
+ throws TJException;
627
+
628
+ static {
629
+ TJLoader.load();
630
+ }
631
+
632
+ private void checkSourceImage() {
633
+ if (srcWidth < 1 || srcHeight < 1)
634
+ throw new IllegalStateException(NO_ASSOC_ERROR);
635
+ }
636
+
637
+ private void checkSubsampling() {
638
+ if (subsamp < 0)
639
+ throw new IllegalStateException("Subsampling level not set");
640
+ }
641
+
642
+ private long handle = 0;
643
+ private byte[] srcBuf = null;
644
+ private int[] srcBufInt = null;
645
+ private int srcWidth = 0;
646
+ private int srcHeight = 0;
647
+ private int srcX = -1;
648
+ private int srcY = -1;
649
+ private int srcPitch = 0;
650
+ private int srcStride = 0;
651
+ private int srcPixelFormat = -1;
652
+ private YUVImage srcYUVImage = null;
653
+ private int subsamp = -1;
654
+ private int jpegQuality = -1;
655
+ private int compressedSize = 0;
656
+ private int yuvPad = 4;
657
+ private ByteOrder byteOrder = null;
658
+ }