laag-libtiff 4.0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (629) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +57 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.org +34 -0
  5. data/ext/laag/libtiff/extconf.rb +13 -0
  6. data/laag-libtiff.gemspec +20 -0
  7. data/lib/laag/libtiff.rb +29 -0
  8. data/vendor/gitlab.com/libtiff/libtiff/.appveyor.yml +109 -0
  9. data/vendor/gitlab.com/libtiff/libtiff/.cvsignore +4 -0
  10. data/vendor/gitlab.com/libtiff/libtiff/.travis.yml +34 -0
  11. data/vendor/gitlab.com/libtiff/libtiff/CMakeLists.txt +764 -0
  12. data/vendor/gitlab.com/libtiff/libtiff/COMMITTERS +19 -0
  13. data/vendor/gitlab.com/libtiff/libtiff/COPYRIGHT +21 -0
  14. data/vendor/gitlab.com/libtiff/libtiff/ChangeLog +8073 -0
  15. data/vendor/gitlab.com/libtiff/libtiff/HOWTO-RELEASE +119 -0
  16. data/vendor/gitlab.com/libtiff/libtiff/HOWTO-SECURITY-RELEASE +19 -0
  17. data/vendor/gitlab.com/libtiff/libtiff/Makefile.am +91 -0
  18. data/vendor/gitlab.com/libtiff/libtiff/Makefile.in +995 -0
  19. data/vendor/gitlab.com/libtiff/libtiff/Makefile.vc +58 -0
  20. data/vendor/gitlab.com/libtiff/libtiff/README +61 -0
  21. data/vendor/gitlab.com/libtiff/libtiff/README.vms +12 -0
  22. data/vendor/gitlab.com/libtiff/libtiff/RELEASE-DATE +1 -0
  23. data/vendor/gitlab.com/libtiff/libtiff/SConstruct +171 -0
  24. data/vendor/gitlab.com/libtiff/libtiff/TODO +12 -0
  25. data/vendor/gitlab.com/libtiff/libtiff/VERSION +1 -0
  26. data/vendor/gitlab.com/libtiff/libtiff/aclocal.m4 +1194 -0
  27. data/vendor/gitlab.com/libtiff/libtiff/archive/html/man/bmp2tiff.1.html +121 -0
  28. data/vendor/gitlab.com/libtiff/libtiff/archive/html/man/gif2tiff.1.html +141 -0
  29. data/vendor/gitlab.com/libtiff/libtiff/archive/html/man/ras2tiff.1.html +139 -0
  30. data/vendor/gitlab.com/libtiff/libtiff/archive/html/man/sgi2tiff.1.html +147 -0
  31. data/vendor/gitlab.com/libtiff/libtiff/archive/html/man/tiffsv.1.html +207 -0
  32. data/vendor/gitlab.com/libtiff/libtiff/archive/man/bmp2tiff.1 +85 -0
  33. data/vendor/gitlab.com/libtiff/libtiff/archive/man/gif2tiff.1 +81 -0
  34. data/vendor/gitlab.com/libtiff/libtiff/archive/man/ras2tiff.1 +96 -0
  35. data/vendor/gitlab.com/libtiff/libtiff/archive/man/sgi2tiff.1 +93 -0
  36. data/vendor/gitlab.com/libtiff/libtiff/archive/man/tiffsv.1 +142 -0
  37. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/bmp2tiff.c +937 -0
  38. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/gif2tiff.c +591 -0
  39. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/ras2tiff.c +338 -0
  40. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/rasterfile.h +44 -0
  41. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/sgi2tiff.c +337 -0
  42. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/sgisv.c +318 -0
  43. data/vendor/gitlab.com/libtiff/libtiff/archive/tools/ycbcr.c +168 -0
  44. data/vendor/gitlab.com/libtiff/libtiff/autogen.sh +8 -0
  45. data/vendor/gitlab.com/libtiff/libtiff/build/.cvsignore +1 -0
  46. data/vendor/gitlab.com/libtiff/libtiff/build/CMakeLists.txt +25 -0
  47. data/vendor/gitlab.com/libtiff/libtiff/build/Makefile.am +32 -0
  48. data/vendor/gitlab.com/libtiff/libtiff/build/Makefile.in +680 -0
  49. data/vendor/gitlab.com/libtiff/libtiff/build/README +3 -0
  50. data/vendor/gitlab.com/libtiff/libtiff/build/travis-ci +108 -0
  51. data/vendor/gitlab.com/libtiff/libtiff/commit +233 -0
  52. data/vendor/gitlab.com/libtiff/libtiff/config/compile +347 -0
  53. data/vendor/gitlab.com/libtiff/libtiff/config/config.guess +1526 -0
  54. data/vendor/gitlab.com/libtiff/libtiff/config/config.sub +1658 -0
  55. data/vendor/gitlab.com/libtiff/libtiff/config/depcomp +791 -0
  56. data/vendor/gitlab.com/libtiff/libtiff/config/install-sh +507 -0
  57. data/vendor/gitlab.com/libtiff/libtiff/config/ltmain.sh +11156 -0
  58. data/vendor/gitlab.com/libtiff/libtiff/config/missing +215 -0
  59. data/vendor/gitlab.com/libtiff/libtiff/config/mkinstalldirs +161 -0
  60. data/vendor/gitlab.com/libtiff/libtiff/config/test-driver +127 -0
  61. data/vendor/gitlab.com/libtiff/libtiff/configure +23612 -0
  62. data/vendor/gitlab.com/libtiff/libtiff/configure.ac +1112 -0
  63. data/vendor/gitlab.com/libtiff/libtiff/configure.com +1357 -0
  64. data/vendor/gitlab.com/libtiff/libtiff/contrib/.cvsignore +2 -0
  65. data/vendor/gitlab.com/libtiff/libtiff/contrib/CMakeLists.txt +35 -0
  66. data/vendor/gitlab.com/libtiff/libtiff/contrib/Makefile.am +31 -0
  67. data/vendor/gitlab.com/libtiff/libtiff/contrib/Makefile.in +679 -0
  68. data/vendor/gitlab.com/libtiff/libtiff/contrib/README +2 -0
  69. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/.cvsignore +5 -0
  70. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/CMakeLists.txt +34 -0
  71. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/Makefile.am +39 -0
  72. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/Makefile.in +652 -0
  73. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/Makefile.vc +28 -0
  74. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/README +142 -0
  75. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/addtiffo.c +181 -0
  76. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/tif_overview.c +916 -0
  77. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/tif_ovrcache.c +344 -0
  78. data/vendor/gitlab.com/libtiff/libtiff/contrib/addtiffo/tif_ovrcache.h +103 -0
  79. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/.cvsignore +8 -0
  80. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/CMakeLists.txt +43 -0
  81. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/Makefile.am +46 -0
  82. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/Makefile.in +798 -0
  83. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/README +7 -0
  84. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/tiff-bi.c +91 -0
  85. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/tiff-grayscale.c +147 -0
  86. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/tiff-palette.c +284 -0
  87. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/tiff-rgb.c +201 -0
  88. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/.cvsignore +2 -0
  89. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/CMakeLists.txt +29 -0
  90. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/Makefile.am +47 -0
  91. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/Makefile.in +516 -0
  92. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/README +6 -0
  93. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/patchlevel.h +8 -0
  94. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/xtiff.c +1290 -0
  95. data/vendor/gitlab.com/libtiff/libtiff/contrib/dbs/xtiff/xtifficon.h +21 -0
  96. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/.cvsignore +5 -0
  97. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/CMakeLists.txt +35 -0
  98. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/Makefile.am +40 -0
  99. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/Makefile.in +650 -0
  100. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/README +25 -0
  101. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/iptcutil.c +954 -0
  102. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/test.iptc +0 -0
  103. data/vendor/gitlab.com/libtiff/libtiff/contrib/iptcutil/test.txt +32 -0
  104. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/.cvsignore +2 -0
  105. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/CMakeLists.txt +27 -0
  106. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/Makefile.am +29 -0
  107. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/Makefile.in +499 -0
  108. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/README +37 -0
  109. data/vendor/gitlab.com/libtiff/libtiff/contrib/mfs/mfs_file.c +586 -0
  110. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/.cvsignore +2 -0
  111. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/CMakeLists.txt +30 -0
  112. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/Makefile.am +32 -0
  113. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/Makefile.in +502 -0
  114. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/README +90 -0
  115. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/tif_imageiter.c +525 -0
  116. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/tif_imageiter.h +64 -0
  117. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/tif_pdsdirread.c +1131 -0
  118. data/vendor/gitlab.com/libtiff/libtiff/contrib/pds/tif_pdsdirwrite.c +971 -0
  119. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/.cvsignore +2 -0
  120. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/CMakeLists.txt +28 -0
  121. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/Makefile.am +30 -0
  122. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/Makefile.in +500 -0
  123. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/README +10 -0
  124. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/ras2tif.c +254 -0
  125. data/vendor/gitlab.com/libtiff/libtiff/contrib/ras/tif2ras.c +344 -0
  126. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/.cvsignore +2 -0
  127. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/CMakeLists.txt +28 -0
  128. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/Makefile.am +30 -0
  129. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/Makefile.in +500 -0
  130. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/README +30 -0
  131. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/tiffstream.cpp +238 -0
  132. data/vendor/gitlab.com/libtiff/libtiff/contrib/stream/tiffstream.h +70 -0
  133. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/.cvsignore +2 -0
  134. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/CMakeLists.txt +32 -0
  135. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/Makefile.am +33 -0
  136. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/Makefile.in +503 -0
  137. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/README +132 -0
  138. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/listtif.c +39 -0
  139. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/maketif.c +77 -0
  140. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/xtif_dir.c +350 -0
  141. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/xtiffio.h +59 -0
  142. data/vendor/gitlab.com/libtiff/libtiff/contrib/tags/xtiffiop.h +72 -0
  143. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/.cvsignore +2 -0
  144. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/CMakeLists.txt +30 -0
  145. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/Makefile.am +32 -0
  146. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/Makefile.in +502 -0
  147. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/Makefile.w95 +134 -0
  148. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/README.Tiffile +31 -0
  149. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/README.tiff2dib +51 -0
  150. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/Tiffile.cpp +449 -0
  151. data/vendor/gitlab.com/libtiff/libtiff/contrib/win_dib/tiff2dib.c +379 -0
  152. data/vendor/gitlab.com/libtiff/libtiff/html/.cvsignore +5 -0
  153. data/vendor/gitlab.com/libtiff/libtiff/html/BigTIFFProposal.html +99 -0
  154. data/vendor/gitlab.com/libtiff/libtiff/html/CMakeLists.txt +87 -0
  155. data/vendor/gitlab.com/libtiff/libtiff/html/Makefile.am +96 -0
  156. data/vendor/gitlab.com/libtiff/libtiff/html/Makefile.in +798 -0
  157. data/vendor/gitlab.com/libtiff/libtiff/html/TIFFTechNote2.html +707 -0
  158. data/vendor/gitlab.com/libtiff/libtiff/html/addingtags.html +292 -0
  159. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffdesign.html +80 -0
  160. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffpr.html +77 -0
  161. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffpr_images/esri.png +0 -0
  162. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffpr_images/leica.png +0 -0
  163. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffpr_images/safe.png +0 -0
  164. data/vendor/gitlab.com/libtiff/libtiff/html/bigtiffpr_images/weogeo.png +0 -0
  165. data/vendor/gitlab.com/libtiff/libtiff/html/bugs.html +61 -0
  166. data/vendor/gitlab.com/libtiff/libtiff/html/build.html +737 -0
  167. data/vendor/gitlab.com/libtiff/libtiff/html/contrib.html +209 -0
  168. data/vendor/gitlab.com/libtiff/libtiff/html/document.html +52 -0
  169. data/vendor/gitlab.com/libtiff/libtiff/html/images.html +41 -0
  170. data/vendor/gitlab.com/libtiff/libtiff/html/images/.cvsignore +2 -0
  171. data/vendor/gitlab.com/libtiff/libtiff/html/images/CMakeLists.txt +46 -0
  172. data/vendor/gitlab.com/libtiff/libtiff/html/images/Makefile.am +49 -0
  173. data/vendor/gitlab.com/libtiff/libtiff/html/images/Makefile.in +572 -0
  174. data/vendor/gitlab.com/libtiff/libtiff/html/images/back.gif +0 -0
  175. data/vendor/gitlab.com/libtiff/libtiff/html/images/bali.jpg +0 -0
  176. data/vendor/gitlab.com/libtiff/libtiff/html/images/cat.gif +0 -0
  177. data/vendor/gitlab.com/libtiff/libtiff/html/images/cover.jpg +0 -0
  178. data/vendor/gitlab.com/libtiff/libtiff/html/images/cramps.gif +0 -0
  179. data/vendor/gitlab.com/libtiff/libtiff/html/images/dave.gif +0 -0
  180. data/vendor/gitlab.com/libtiff/libtiff/html/images/info.gif +0 -0
  181. data/vendor/gitlab.com/libtiff/libtiff/html/images/jello.jpg +0 -0
  182. data/vendor/gitlab.com/libtiff/libtiff/html/images/jim.gif +0 -0
  183. data/vendor/gitlab.com/libtiff/libtiff/html/images/note.gif +0 -0
  184. data/vendor/gitlab.com/libtiff/libtiff/html/images/oxford.gif +0 -0
  185. data/vendor/gitlab.com/libtiff/libtiff/html/images/quad.jpg +0 -0
  186. data/vendor/gitlab.com/libtiff/libtiff/html/images/ring.gif +0 -0
  187. data/vendor/gitlab.com/libtiff/libtiff/html/images/smallliz.jpg +0 -0
  188. data/vendor/gitlab.com/libtiff/libtiff/html/images/strike.gif +0 -0
  189. data/vendor/gitlab.com/libtiff/libtiff/html/images/warning.gif +0 -0
  190. data/vendor/gitlab.com/libtiff/libtiff/html/index.html +122 -0
  191. data/vendor/gitlab.com/libtiff/libtiff/html/internals.html +572 -0
  192. data/vendor/gitlab.com/libtiff/libtiff/html/intro.html +68 -0
  193. data/vendor/gitlab.com/libtiff/libtiff/html/libtiff.html +747 -0
  194. data/vendor/gitlab.com/libtiff/libtiff/html/man/.cvsignore +2 -0
  195. data/vendor/gitlab.com/libtiff/libtiff/html/man/CMakeLists.txt +108 -0
  196. data/vendor/gitlab.com/libtiff/libtiff/html/man/HtmlDoc.cmake +50 -0
  197. data/vendor/gitlab.com/libtiff/libtiff/html/man/Makefile.am +122 -0
  198. data/vendor/gitlab.com/libtiff/libtiff/html/man/Makefile.in +642 -0
  199. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFClose.3tiff.html +87 -0
  200. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFDataWidth.3tiff.html +98 -0
  201. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFError.3tiff.html +106 -0
  202. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldDataType.3tiff.html +89 -0
  203. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldName.3tiff.html +86 -0
  204. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldPassCount.3tiff.html +98 -0
  205. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldReadCount.3tiff.html +101 -0
  206. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldTag.3tiff.html +88 -0
  207. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFieldWriteCount.3tiff.html +108 -0
  208. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFFlush.3tiff.html +113 -0
  209. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFGetField.3tiff.html +1969 -0
  210. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFOpen.3tiff.html +421 -0
  211. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFPrintDirectory.3tiff.html +225 -0
  212. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFRGBAImage.3tiff.html +319 -0
  213. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadDirectory.3tiff.html +218 -0
  214. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadEncodedStrip.3tiff.html +133 -0
  215. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadEncodedTile.3tiff.html +130 -0
  216. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadRGBAImage.3tiff.html +301 -0
  217. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadRGBAStrip.3tiff.html +208 -0
  218. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadRGBATile.3tiff.html +261 -0
  219. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadRawStrip.3tiff.html +109 -0
  220. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadRawTile.3tiff.html +111 -0
  221. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadScanline.3tiff.html +157 -0
  222. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFReadTile.3tiff.html +133 -0
  223. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFSetDirectory.3tiff.html +122 -0
  224. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFSetField.3tiff.html +1865 -0
  225. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWarning.3tiff.html +108 -0
  226. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteDirectory.3tiff.html +176 -0
  227. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteEncodedStrip.3tiff.html +153 -0
  228. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteEncodedTile.3tiff.html +147 -0
  229. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteRawStrip.3tiff.html +144 -0
  230. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteRawTile.3tiff.html +128 -0
  231. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteScanline.3tiff.html +206 -0
  232. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFWriteTile.3tiff.html +115 -0
  233. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFbuffer.3tiff.html +116 -0
  234. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFcodec.3tiff.html +116 -0
  235. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFcolor.3tiff.html +975 -0
  236. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFmemory.3tiff.html +110 -0
  237. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFquery.3tiff.html +148 -0
  238. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFsize.3tiff.html +95 -0
  239. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFstrip.3tiff.html +129 -0
  240. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFswab.3tiff.html +110 -0
  241. data/vendor/gitlab.com/libtiff/libtiff/html/man/TIFFtile.3tiff.html +141 -0
  242. data/vendor/gitlab.com/libtiff/libtiff/html/man/fax2ps.1.html +252 -0
  243. data/vendor/gitlab.com/libtiff/libtiff/html/man/fax2tiff.1.html +607 -0
  244. data/vendor/gitlab.com/libtiff/libtiff/html/man/index.html +64 -0
  245. data/vendor/gitlab.com/libtiff/libtiff/html/man/libtiff.3tiff.html +1150 -0
  246. data/vendor/gitlab.com/libtiff/libtiff/html/man/pal2rgb.1.html +189 -0
  247. data/vendor/gitlab.com/libtiff/libtiff/html/man/ppm2tiff.1.html +141 -0
  248. data/vendor/gitlab.com/libtiff/libtiff/html/man/raw2tiff.1.html +510 -0
  249. data/vendor/gitlab.com/libtiff/libtiff/html/man/rgb2ycbcr.1.html +155 -0
  250. data/vendor/gitlab.com/libtiff/libtiff/html/man/thumbnail.1.html +148 -0
  251. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiff2bw.1.html +161 -0
  252. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiff2pdf.1.html +609 -0
  253. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiff2ps.1.html +639 -0
  254. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiff2rgba.1.html +162 -0
  255. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffcmp.1.html +156 -0
  256. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffcp.1.html +569 -0
  257. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffcrop.1.html +684 -0
  258. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffdither.1.html +196 -0
  259. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffdump.1.html +145 -0
  260. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffgt.1.html +551 -0
  261. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffinfo.1.html +196 -0
  262. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffmedian.1.html +183 -0
  263. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffset.1.html +176 -0
  264. data/vendor/gitlab.com/libtiff/libtiff/html/man/tiffsplit.1.html +102 -0
  265. data/vendor/gitlab.com/libtiff/libtiff/html/misc.html +117 -0
  266. data/vendor/gitlab.com/libtiff/libtiff/html/support.html +655 -0
  267. data/vendor/gitlab.com/libtiff/libtiff/html/tools.html +137 -0
  268. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta007.html +112 -0
  269. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta016.html +122 -0
  270. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta018.html +84 -0
  271. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta024.html +139 -0
  272. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta028.html +146 -0
  273. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta029.html +86 -0
  274. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta031.html +94 -0
  275. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta032.html +90 -0
  276. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta033.html +82 -0
  277. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta034.html +68 -0
  278. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta035.html +63 -0
  279. data/vendor/gitlab.com/libtiff/libtiff/html/v3.4beta036.html +117 -0
  280. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.1.html +75 -0
  281. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.2.html +108 -0
  282. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.3.html +132 -0
  283. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.4.html +88 -0
  284. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.5.html +155 -0
  285. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.6-beta.html +185 -0
  286. data/vendor/gitlab.com/libtiff/libtiff/html/v3.5.7.html +259 -0
  287. data/vendor/gitlab.com/libtiff/libtiff/html/v3.6.0.html +434 -0
  288. data/vendor/gitlab.com/libtiff/libtiff/html/v3.6.1.html +199 -0
  289. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.0.html +144 -0
  290. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.0alpha.html +249 -0
  291. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.0beta.html +162 -0
  292. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.0beta2.html +131 -0
  293. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.1.html +233 -0
  294. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.2.html +222 -0
  295. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.3.html +230 -0
  296. data/vendor/gitlab.com/libtiff/libtiff/html/v3.7.4.html +133 -0
  297. data/vendor/gitlab.com/libtiff/libtiff/html/v3.8.0.html +199 -0
  298. data/vendor/gitlab.com/libtiff/libtiff/html/v3.8.1.html +217 -0
  299. data/vendor/gitlab.com/libtiff/libtiff/html/v3.8.2.html +137 -0
  300. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.0.html +261 -0
  301. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.0beta.html +304 -0
  302. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.1.html +115 -0
  303. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.2.html +122 -0
  304. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.3.html +160 -0
  305. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.4.html +125 -0
  306. data/vendor/gitlab.com/libtiff/libtiff/html/v3.9.5.html +270 -0
  307. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.0.html +269 -0
  308. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.1.html +113 -0
  309. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.2.html +118 -0
  310. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.3.html +125 -0
  311. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.4.html +274 -0
  312. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.4beta.html +291 -0
  313. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.5.html +148 -0
  314. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.6.html +139 -0
  315. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.7.html +411 -0
  316. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.8.html +445 -0
  317. data/vendor/gitlab.com/libtiff/libtiff/html/v4.0.9.html +373 -0
  318. data/vendor/gitlab.com/libtiff/libtiff/libtiff-4.pc.in +11 -0
  319. data/vendor/gitlab.com/libtiff/libtiff/libtiff/.cvsignore +22 -0
  320. data/vendor/gitlab.com/libtiff/libtiff/libtiff/CMakeLists.txt +165 -0
  321. data/vendor/gitlab.com/libtiff/libtiff/libtiff/Makefile.am +154 -0
  322. data/vendor/gitlab.com/libtiff/libtiff/libtiff/Makefile.in +966 -0
  323. data/vendor/gitlab.com/libtiff/libtiff/libtiff/Makefile.lcc +129 -0
  324. data/vendor/gitlab.com/libtiff/libtiff/libtiff/Makefile.vc +102 -0
  325. data/vendor/gitlab.com/libtiff/libtiff/libtiff/SConstruct +73 -0
  326. data/vendor/gitlab.com/libtiff/libtiff/libtiff/libtiff.def +168 -0
  327. data/vendor/gitlab.com/libtiff/libtiff/libtiff/libtiff.map +4 -0
  328. data/vendor/gitlab.com/libtiff/libtiff/libtiff/libtiffxx.map +4 -0
  329. data/vendor/gitlab.com/libtiff/libtiff/libtiff/mkg3states.c +454 -0
  330. data/vendor/gitlab.com/libtiff/libtiff/libtiff/mkspans.c +82 -0
  331. data/vendor/gitlab.com/libtiff/libtiff/libtiff/t4.h +292 -0
  332. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_aux.c +376 -0
  333. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_close.c +140 -0
  334. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_codec.c +165 -0
  335. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_color.c +309 -0
  336. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_compress.c +304 -0
  337. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_config.h-vms +46 -0
  338. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_config.h.cmake.in +261 -0
  339. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_config.h.in +410 -0
  340. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_config.vc.h +137 -0
  341. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_config.wince.h +71 -0
  342. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dir.c +1767 -0
  343. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dir.h +309 -0
  344. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dirinfo.c +1070 -0
  345. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dirread.c +5803 -0
  346. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dirwrite.c +3024 -0
  347. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_dumpmode.c +143 -0
  348. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_error.c +88 -0
  349. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_extension.c +118 -0
  350. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_fax3.c +1648 -0
  351. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_fax3.h +540 -0
  352. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_fax3sm.c +1260 -0
  353. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_flush.c +118 -0
  354. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_getimage.c +3048 -0
  355. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_jbig.c +214 -0
  356. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_jpeg.c +2601 -0
  357. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_jpeg_12.c +69 -0
  358. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_luv.c +1765 -0
  359. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_lzma.c +495 -0
  360. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_lzw.c +1218 -0
  361. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_next.c +189 -0
  362. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_ojpeg.c +2563 -0
  363. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_open.c +725 -0
  364. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_packbits.c +311 -0
  365. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_pixarlog.c +1485 -0
  366. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_predict.c +881 -0
  367. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_predict.h +79 -0
  368. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_print.c +722 -0
  369. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_read.c +1572 -0
  370. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_stream.cxx +430 -0
  371. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_strip.c +389 -0
  372. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_swab.c +312 -0
  373. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_thunder.c +208 -0
  374. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_tile.c +322 -0
  375. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_unix.c +386 -0
  376. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_version.c +40 -0
  377. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_vms.c +611 -0
  378. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_warning.c +89 -0
  379. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_win32.c +476 -0
  380. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_wince.c +293 -0
  381. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_write.c +834 -0
  382. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tif_zip.c +476 -0
  383. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiff.h +681 -0
  384. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffconf.h-vms +99 -0
  385. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffconf.h.cmake.in +130 -0
  386. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffconf.h.in +127 -0
  387. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffconf.vc.h +161 -0
  388. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffconf.wince.h +121 -0
  389. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffio.h +560 -0
  390. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffio.hxx +49 -0
  391. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffiop.h +445 -0
  392. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffvers.h +9 -0
  393. data/vendor/gitlab.com/libtiff/libtiff/libtiff/tiffvers.h.in +9 -0
  394. data/vendor/gitlab.com/libtiff/libtiff/libtiff/uvcode.h +180 -0
  395. data/vendor/gitlab.com/libtiff/libtiff/m4/acinclude.m4 +851 -0
  396. data/vendor/gitlab.com/libtiff/libtiff/m4/ice_find_athena.m4 +187 -0
  397. data/vendor/gitlab.com/libtiff/libtiff/m4/libtool.m4 +8388 -0
  398. data/vendor/gitlab.com/libtiff/libtiff/m4/ltoptions.m4 +437 -0
  399. data/vendor/gitlab.com/libtiff/libtiff/m4/ltsugar.m4 +124 -0
  400. data/vendor/gitlab.com/libtiff/libtiff/m4/ltversion.m4 +23 -0
  401. data/vendor/gitlab.com/libtiff/libtiff/m4/lt~obsolete.m4 +99 -0
  402. data/vendor/gitlab.com/libtiff/libtiff/man/.cvsignore +3 -0
  403. data/vendor/gitlab.com/libtiff/libtiff/man/CMakeLists.txt +97 -0
  404. data/vendor/gitlab.com/libtiff/libtiff/man/Makefile.am +94 -0
  405. data/vendor/gitlab.com/libtiff/libtiff/man/Makefile.in +684 -0
  406. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFClose.3tiff +53 -0
  407. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFDataWidth.3tiff +74 -0
  408. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFError.3tiff +69 -0
  409. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldDataType.3tiff +53 -0
  410. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldName.3tiff +52 -0
  411. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldPassCount.3tiff +73 -0
  412. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldReadCount.3tiff +77 -0
  413. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldTag.3tiff +56 -0
  414. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFieldWriteCount.3tiff +88 -0
  415. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFFlush.3tiff +64 -0
  416. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFGetField.3tiff +229 -0
  417. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFOpen.3tiff +279 -0
  418. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFPrintDirectory.3tiff +70 -0
  419. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFRGBAImage.3tiff +286 -0
  420. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadDirectory.3tiff +164 -0
  421. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadEncodedStrip.3tiff +78 -0
  422. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadEncodedTile.3tiff +76 -0
  423. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadRGBAImage.3tiff +218 -0
  424. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadRGBAStrip.3tiff +170 -0
  425. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadRGBATile.3tiff +171 -0
  426. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadRawStrip.3tiff +64 -0
  427. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadRawTile.3tiff +65 -0
  428. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadScanline.3tiff +94 -0
  429. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFReadTile.3tiff +84 -0
  430. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFSetDirectory.3tiff +79 -0
  431. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFSetField.3tiff +217 -0
  432. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWarning.3tiff +70 -0
  433. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteDirectory.3tiff +138 -0
  434. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteEncodedStrip.3tiff +102 -0
  435. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteEncodedTile.3tiff +96 -0
  436. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteRawStrip.3tiff +96 -0
  437. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteRawTile.3tiff +84 -0
  438. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteScanline.3tiff +154 -0
  439. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFWriteTile.3tiff +77 -0
  440. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFbuffer.3tiff +77 -0
  441. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFcodec.3tiff +82 -0
  442. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFcolor.3tiff +268 -0
  443. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFmemory.3tiff +90 -0
  444. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFquery.3tiff +142 -0
  445. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFsize.3tiff +59 -0
  446. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFstrip.3tiff +99 -0
  447. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFswab.3tiff +80 -0
  448. data/vendor/gitlab.com/libtiff/libtiff/man/TIFFtile.3tiff +131 -0
  449. data/vendor/gitlab.com/libtiff/libtiff/man/fax2ps.1 +159 -0
  450. data/vendor/gitlab.com/libtiff/libtiff/man/fax2tiff.1 +286 -0
  451. data/vendor/gitlab.com/libtiff/libtiff/man/libtiff.3tiff +545 -0
  452. data/vendor/gitlab.com/libtiff/libtiff/man/pal2rgb.1 +111 -0
  453. data/vendor/gitlab.com/libtiff/libtiff/man/ppm2tiff.1 +105 -0
  454. data/vendor/gitlab.com/libtiff/libtiff/man/raw2tiff.1 +196 -0
  455. data/vendor/gitlab.com/libtiff/libtiff/man/rgb2ycbcr.1 +99 -0
  456. data/vendor/gitlab.com/libtiff/libtiff/man/thumbnail.1 +90 -0
  457. data/vendor/gitlab.com/libtiff/libtiff/man/tiff2bw.1 +94 -0
  458. data/vendor/gitlab.com/libtiff/libtiff/man/tiff2pdf.1 +254 -0
  459. data/vendor/gitlab.com/libtiff/libtiff/man/tiff2ps.1 +294 -0
  460. data/vendor/gitlab.com/libtiff/libtiff/man/tiff2rgba.1 +97 -0
  461. data/vendor/gitlab.com/libtiff/libtiff/man/tiffcmp.1 +87 -0
  462. data/vendor/gitlab.com/libtiff/libtiff/man/tiffcp.1 +317 -0
  463. data/vendor/gitlab.com/libtiff/libtiff/man/tiffcrop.1 +571 -0
  464. data/vendor/gitlab.com/libtiff/libtiff/man/tiffdither.1 +135 -0
  465. data/vendor/gitlab.com/libtiff/libtiff/man/tiffdump.1 +81 -0
  466. data/vendor/gitlab.com/libtiff/libtiff/man/tiffgt.1 +245 -0
  467. data/vendor/gitlab.com/libtiff/libtiff/man/tiffinfo.1 +88 -0
  468. data/vendor/gitlab.com/libtiff/libtiff/man/tiffmedian.1 +112 -0
  469. data/vendor/gitlab.com/libtiff/libtiff/man/tiffset.1 +99 -0
  470. data/vendor/gitlab.com/libtiff/libtiff/man/tiffsplit.1 +69 -0
  471. data/vendor/gitlab.com/libtiff/libtiff/nmake.opt +229 -0
  472. data/vendor/gitlab.com/libtiff/libtiff/port/.cvsignore +7 -0
  473. data/vendor/gitlab.com/libtiff/libtiff/port/CMakeLists.txt +60 -0
  474. data/vendor/gitlab.com/libtiff/libtiff/port/Makefile.am +35 -0
  475. data/vendor/gitlab.com/libtiff/libtiff/port/Makefile.in +656 -0
  476. data/vendor/gitlab.com/libtiff/libtiff/port/Makefile.vc +44 -0
  477. data/vendor/gitlab.com/libtiff/libtiff/port/dummy.c +12 -0
  478. data/vendor/gitlab.com/libtiff/libtiff/port/getopt.c +125 -0
  479. data/vendor/gitlab.com/libtiff/libtiff/port/lfind.c +62 -0
  480. data/vendor/gitlab.com/libtiff/libtiff/port/libport.h +60 -0
  481. data/vendor/gitlab.com/libtiff/libtiff/port/snprintf.c +38 -0
  482. data/vendor/gitlab.com/libtiff/libtiff/port/strcasecmp.c +51 -0
  483. data/vendor/gitlab.com/libtiff/libtiff/port/strtoul.c +109 -0
  484. data/vendor/gitlab.com/libtiff/libtiff/port/strtoull.c +116 -0
  485. data/vendor/gitlab.com/libtiff/libtiff/test/.cvsignore +12 -0
  486. data/vendor/gitlab.com/libtiff/libtiff/test/CMakeLists.txt +382 -0
  487. data/vendor/gitlab.com/libtiff/libtiff/test/Makefile.am +334 -0
  488. data/vendor/gitlab.com/libtiff/libtiff/test/Makefile.in +1987 -0
  489. data/vendor/gitlab.com/libtiff/libtiff/test/TiffSplitTest.cmake +34 -0
  490. data/vendor/gitlab.com/libtiff/libtiff/test/TiffTest.cmake +63 -0
  491. data/vendor/gitlab.com/libtiff/libtiff/test/TiffTestCommon.cmake +108 -0
  492. data/vendor/gitlab.com/libtiff/libtiff/test/ascii_tag.c +177 -0
  493. data/vendor/gitlab.com/libtiff/libtiff/test/check_tag.c +91 -0
  494. data/vendor/gitlab.com/libtiff/libtiff/test/common.sh +122 -0
  495. data/vendor/gitlab.com/libtiff/libtiff/test/custom_dir.c +247 -0
  496. data/vendor/gitlab.com/libtiff/libtiff/test/images/README.txt +29 -0
  497. data/vendor/gitlab.com/libtiff/libtiff/test/images/logluv-3c-16b.tiff +0 -0
  498. data/vendor/gitlab.com/libtiff/libtiff/test/images/minisblack-1c-16b.tiff +0 -0
  499. data/vendor/gitlab.com/libtiff/libtiff/test/images/minisblack-1c-8b.pgm +0 -0
  500. data/vendor/gitlab.com/libtiff/libtiff/test/images/minisblack-1c-8b.tiff +0 -0
  501. data/vendor/gitlab.com/libtiff/libtiff/test/images/minisblack-2c-8b-alpha.tiff +0 -0
  502. data/vendor/gitlab.com/libtiff/libtiff/test/images/miniswhite-1c-1b.pbm +0 -0
  503. data/vendor/gitlab.com/libtiff/libtiff/test/images/miniswhite-1c-1b.tiff +0 -0
  504. data/vendor/gitlab.com/libtiff/libtiff/test/images/palette-1c-1b.tiff +0 -0
  505. data/vendor/gitlab.com/libtiff/libtiff/test/images/palette-1c-4b.tiff +0 -0
  506. data/vendor/gitlab.com/libtiff/libtiff/test/images/palette-1c-8b.tiff +0 -0
  507. data/vendor/gitlab.com/libtiff/libtiff/test/images/quad-lzw-compat.tiff +0 -0
  508. data/vendor/gitlab.com/libtiff/libtiff/test/images/quad-tile.jpg.tiff +0 -0
  509. data/vendor/gitlab.com/libtiff/libtiff/test/images/rgb-3c-16b.tiff +0 -0
  510. data/vendor/gitlab.com/libtiff/libtiff/test/images/rgb-3c-8b.ppm +0 -0
  511. data/vendor/gitlab.com/libtiff/libtiff/test/images/rgb-3c-8b.tiff +0 -0
  512. data/vendor/gitlab.com/libtiff/libtiff/test/long_tag.c +156 -0
  513. data/vendor/gitlab.com/libtiff/libtiff/test/ppm2tiff_pbm.sh +7 -0
  514. data/vendor/gitlab.com/libtiff/libtiff/test/ppm2tiff_pgm.sh +7 -0
  515. data/vendor/gitlab.com/libtiff/libtiff/test/ppm2tiff_ppm.sh +7 -0
  516. data/vendor/gitlab.com/libtiff/libtiff/test/raw_decode.c +304 -0
  517. data/vendor/gitlab.com/libtiff/libtiff/test/rewrite_tag.c +344 -0
  518. data/vendor/gitlab.com/libtiff/libtiff/test/short_tag.c +205 -0
  519. data/vendor/gitlab.com/libtiff/libtiff/test/strip.c +290 -0
  520. data/vendor/gitlab.com/libtiff/libtiff/test/strip_rw.c +157 -0
  521. data/vendor/gitlab.com/libtiff/libtiff/test/test_arrays.c +829 -0
  522. data/vendor/gitlab.com/libtiff/libtiff/test/test_arrays.h +63 -0
  523. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2bw-palette-1c-8b.sh +7 -0
  524. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2bw-quad-lzw-compat.sh +7 -0
  525. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2bw-rgb-3c-8b.sh +7 -0
  526. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2pdf.sh +6 -0
  527. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2ps-EPS1.sh +6 -0
  528. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2ps-PS1.sh +6 -0
  529. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2ps-PS2.sh +6 -0
  530. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2ps-PS3.sh +6 -0
  531. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-logluv-3c-16b.sh +7 -0
  532. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-minisblack-1c-16b.sh +7 -0
  533. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-minisblack-1c-8b.sh +7 -0
  534. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-minisblack-2c-8b-alpha.sh +7 -0
  535. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-miniswhite-1c-1b.sh +7 -0
  536. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-palette-1c-1b.sh +7 -0
  537. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-palette-1c-4b.sh +7 -0
  538. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-palette-1c-8b.sh +7 -0
  539. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-quad-tile.jpg.sh +7 -0
  540. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-rgb-3c-16b.sh +7 -0
  541. data/vendor/gitlab.com/libtiff/libtiff/test/tiff2rgba-rgb-3c-8b.sh +7 -0
  542. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g3-1d-fill.sh +7 -0
  543. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g3-1d.sh +6 -0
  544. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g3-2d-fill.sh +7 -0
  545. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g3-2d.sh +6 -0
  546. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g3.sh +6 -0
  547. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-g4.sh +6 -0
  548. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-logluv.sh +7 -0
  549. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-lzw-compat.sh +6 -0
  550. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-split-join.sh +16 -0
  551. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-split.sh +13 -0
  552. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcp-thumbnail.sh +10 -0
  553. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-logluv-3c-16b.sh +7 -0
  554. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-minisblack-1c-16b.sh +7 -0
  555. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-minisblack-1c-8b.sh +7 -0
  556. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-minisblack-2c-8b-alpha.sh +7 -0
  557. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-miniswhite-1c-1b.sh +7 -0
  558. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-palette-1c-1b.sh +7 -0
  559. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-palette-1c-4b.sh +7 -0
  560. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-palette-1c-8b.sh +7 -0
  561. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-quad-tile.jpg.sh +7 -0
  562. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-rgb-3c-16b.sh +7 -0
  563. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-R90-rgb-3c-8b.sh +7 -0
  564. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-logluv-3c-16b.sh +7 -0
  565. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-minisblack-1c-16b.sh +7 -0
  566. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-minisblack-1c-8b.sh +7 -0
  567. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-minisblack-2c-8b-alpha.sh +7 -0
  568. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-miniswhite-1c-1b.sh +7 -0
  569. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-palette-1c-1b.sh +7 -0
  570. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-palette-1c-4b.sh +7 -0
  571. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-palette-1c-8b.sh +7 -0
  572. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-quad-tile.jpg.sh +7 -0
  573. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-rgb-3c-16b.sh +7 -0
  574. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-doubleflip-rgb-3c-8b.sh +7 -0
  575. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-logluv-3c-16b.sh +7 -0
  576. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-minisblack-1c-16b.sh +7 -0
  577. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-minisblack-1c-8b.sh +7 -0
  578. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-minisblack-2c-8b-alpha.sh +7 -0
  579. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-miniswhite-1c-1b.sh +7 -0
  580. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-palette-1c-1b.sh +7 -0
  581. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-palette-1c-4b.sh +7 -0
  582. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-palette-1c-8b.sh +7 -0
  583. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-quad-tile.jpg.sh +7 -0
  584. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-rgb-3c-16b.sh +7 -0
  585. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extract-rgb-3c-8b.sh +7 -0
  586. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-logluv-3c-16b.sh +7 -0
  587. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-minisblack-1c-16b.sh +7 -0
  588. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-minisblack-1c-8b.sh +7 -0
  589. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-minisblack-2c-8b-alpha.sh +7 -0
  590. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-miniswhite-1c-1b.sh +7 -0
  591. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-palette-1c-1b.sh +7 -0
  592. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-palette-1c-4b.sh +7 -0
  593. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-palette-1c-8b.sh +7 -0
  594. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-quad-tile.jpg.sh +7 -0
  595. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-rgb-3c-16b.sh +7 -0
  596. data/vendor/gitlab.com/libtiff/libtiff/test/tiffcrop-extractz14-rgb-3c-8b.sh +7 -0
  597. data/vendor/gitlab.com/libtiff/libtiff/test/tiffdump.sh +6 -0
  598. data/vendor/gitlab.com/libtiff/libtiff/test/tiffinfo.sh +6 -0
  599. data/vendor/gitlab.com/libtiff/libtiff/test/tifftest.h +42 -0
  600. data/vendor/gitlab.com/libtiff/libtiff/tiff.spec +68 -0
  601. data/vendor/gitlab.com/libtiff/libtiff/tools/.cvsignore +27 -0
  602. data/vendor/gitlab.com/libtiff/libtiff/tools/CMakeLists.txt +125 -0
  603. data/vendor/gitlab.com/libtiff/libtiff/tools/Makefile.am +138 -0
  604. data/vendor/gitlab.com/libtiff/libtiff/tools/Makefile.in +955 -0
  605. data/vendor/gitlab.com/libtiff/libtiff/tools/Makefile.lcc +133 -0
  606. data/vendor/gitlab.com/libtiff/libtiff/tools/Makefile.vc +52 -0
  607. data/vendor/gitlab.com/libtiff/libtiff/tools/fax2ps.c +463 -0
  608. data/vendor/gitlab.com/libtiff/libtiff/tools/fax2tiff.c +491 -0
  609. data/vendor/gitlab.com/libtiff/libtiff/tools/pal2rgb.c +438 -0
  610. data/vendor/gitlab.com/libtiff/libtiff/tools/ppm2tiff.c +397 -0
  611. data/vendor/gitlab.com/libtiff/libtiff/tools/raw2tiff.c +690 -0
  612. data/vendor/gitlab.com/libtiff/libtiff/tools/rgb2ycbcr.c +397 -0
  613. data/vendor/gitlab.com/libtiff/libtiff/tools/thumbnail.c +691 -0
  614. data/vendor/gitlab.com/libtiff/libtiff/tools/tiff2bw.c +501 -0
  615. data/vendor/gitlab.com/libtiff/libtiff/tools/tiff2pdf.c +5594 -0
  616. data/vendor/gitlab.com/libtiff/libtiff/tools/tiff2ps.c +3106 -0
  617. data/vendor/gitlab.com/libtiff/libtiff/tools/tiff2rgba.c +569 -0
  618. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffcmp.c +659 -0
  619. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffcp.c +1913 -0
  620. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffcrop.c +9231 -0
  621. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffdither.c +347 -0
  622. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffdump.c +889 -0
  623. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffgt.c +486 -0
  624. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffinfo.c +488 -0
  625. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffinfoce.c +472 -0
  626. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffmedian.c +918 -0
  627. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffset.c +356 -0
  628. data/vendor/gitlab.com/libtiff/libtiff/tools/tiffsplit.c +305 -0
  629. metadata +692 -0
@@ -0,0 +1,881 @@
1
+ /* $Id: tif_predict.c,v 1.44 2017-06-18 10:31:50 erouault Exp $ */
2
+
3
+ /*
4
+ * Copyright (c) 1988-1997 Sam Leffler
5
+ * Copyright (c) 1991-1997 Silicon Graphics, Inc.
6
+ *
7
+ * Permission to use, copy, modify, distribute, and sell this software and
8
+ * its documentation for any purpose is hereby granted without fee, provided
9
+ * that (i) the above copyright notices and this permission notice appear in
10
+ * all copies of the software and related documentation, and (ii) the names of
11
+ * Sam Leffler and Silicon Graphics may not be used in any advertising or
12
+ * publicity relating to the software without the specific, prior written
13
+ * permission of Sam Leffler and Silicon Graphics.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
16
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
17
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
18
+ *
19
+ * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
20
+ * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
21
+ * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
22
+ * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
23
+ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
24
+ * OF THIS SOFTWARE.
25
+ */
26
+
27
+ /*
28
+ * TIFF Library.
29
+ *
30
+ * Predictor Tag Support (used by multiple codecs).
31
+ */
32
+ #include "tiffiop.h"
33
+ #include "tif_predict.h"
34
+
35
+ #define PredictorState(tif) ((TIFFPredictorState*) (tif)->tif_data)
36
+
37
+ static int horAcc8(TIFF* tif, uint8* cp0, tmsize_t cc);
38
+ static int horAcc16(TIFF* tif, uint8* cp0, tmsize_t cc);
39
+ static int horAcc32(TIFF* tif, uint8* cp0, tmsize_t cc);
40
+ static int swabHorAcc16(TIFF* tif, uint8* cp0, tmsize_t cc);
41
+ static int swabHorAcc32(TIFF* tif, uint8* cp0, tmsize_t cc);
42
+ static int horDiff8(TIFF* tif, uint8* cp0, tmsize_t cc);
43
+ static int horDiff16(TIFF* tif, uint8* cp0, tmsize_t cc);
44
+ static int horDiff32(TIFF* tif, uint8* cp0, tmsize_t cc);
45
+ static int swabHorDiff16(TIFF* tif, uint8* cp0, tmsize_t cc);
46
+ static int swabHorDiff32(TIFF* tif, uint8* cp0, tmsize_t cc);
47
+ static int fpAcc(TIFF* tif, uint8* cp0, tmsize_t cc);
48
+ static int fpDiff(TIFF* tif, uint8* cp0, tmsize_t cc);
49
+ static int PredictorDecodeRow(TIFF* tif, uint8* op0, tmsize_t occ0, uint16 s);
50
+ static int PredictorDecodeTile(TIFF* tif, uint8* op0, tmsize_t occ0, uint16 s);
51
+ static int PredictorEncodeRow(TIFF* tif, uint8* bp, tmsize_t cc, uint16 s);
52
+ static int PredictorEncodeTile(TIFF* tif, uint8* bp0, tmsize_t cc0, uint16 s);
53
+
54
+ static int
55
+ PredictorSetup(TIFF* tif)
56
+ {
57
+ static const char module[] = "PredictorSetup";
58
+
59
+ TIFFPredictorState* sp = PredictorState(tif);
60
+ TIFFDirectory* td = &tif->tif_dir;
61
+
62
+ switch (sp->predictor) /* no differencing */
63
+ {
64
+ case PREDICTOR_NONE:
65
+ return 1;
66
+ case PREDICTOR_HORIZONTAL:
67
+ if (td->td_bitspersample != 8
68
+ && td->td_bitspersample != 16
69
+ && td->td_bitspersample != 32) {
70
+ TIFFErrorExt(tif->tif_clientdata, module,
71
+ "Horizontal differencing \"Predictor\" not supported with %d-bit samples",
72
+ td->td_bitspersample);
73
+ return 0;
74
+ }
75
+ break;
76
+ case PREDICTOR_FLOATINGPOINT:
77
+ if (td->td_sampleformat != SAMPLEFORMAT_IEEEFP) {
78
+ TIFFErrorExt(tif->tif_clientdata, module,
79
+ "Floating point \"Predictor\" not supported with %d data format",
80
+ td->td_sampleformat);
81
+ return 0;
82
+ }
83
+ if (td->td_bitspersample != 16
84
+ && td->td_bitspersample != 24
85
+ && td->td_bitspersample != 32
86
+ && td->td_bitspersample != 64) { /* Should 64 be allowed? */
87
+ TIFFErrorExt(tif->tif_clientdata, module,
88
+ "Floating point \"Predictor\" not supported with %d-bit samples",
89
+ td->td_bitspersample);
90
+ return 0;
91
+ }
92
+ break;
93
+ default:
94
+ TIFFErrorExt(tif->tif_clientdata, module,
95
+ "\"Predictor\" value %d not supported",
96
+ sp->predictor);
97
+ return 0;
98
+ }
99
+ sp->stride = (td->td_planarconfig == PLANARCONFIG_CONTIG ?
100
+ td->td_samplesperpixel : 1);
101
+ /*
102
+ * Calculate the scanline/tile-width size in bytes.
103
+ */
104
+ if (isTiled(tif))
105
+ sp->rowsize = TIFFTileRowSize(tif);
106
+ else
107
+ sp->rowsize = TIFFScanlineSize(tif);
108
+ if (sp->rowsize == 0)
109
+ return 0;
110
+
111
+ return 1;
112
+ }
113
+
114
+ static int
115
+ PredictorSetupDecode(TIFF* tif)
116
+ {
117
+ TIFFPredictorState* sp = PredictorState(tif);
118
+ TIFFDirectory* td = &tif->tif_dir;
119
+
120
+ /* Note: when PredictorSetup() fails, the effets of setupdecode() */
121
+ /* will not be "cancelled" so setupdecode() might be robust to */
122
+ /* be called several times. */
123
+ if (!(*sp->setupdecode)(tif) || !PredictorSetup(tif))
124
+ return 0;
125
+
126
+ if (sp->predictor == 2) {
127
+ switch (td->td_bitspersample) {
128
+ case 8: sp->decodepfunc = horAcc8; break;
129
+ case 16: sp->decodepfunc = horAcc16; break;
130
+ case 32: sp->decodepfunc = horAcc32; break;
131
+ }
132
+ /*
133
+ * Override default decoding method with one that does the
134
+ * predictor stuff.
135
+ */
136
+ if( tif->tif_decoderow != PredictorDecodeRow )
137
+ {
138
+ sp->decoderow = tif->tif_decoderow;
139
+ tif->tif_decoderow = PredictorDecodeRow;
140
+ sp->decodestrip = tif->tif_decodestrip;
141
+ tif->tif_decodestrip = PredictorDecodeTile;
142
+ sp->decodetile = tif->tif_decodetile;
143
+ tif->tif_decodetile = PredictorDecodeTile;
144
+ }
145
+
146
+ /*
147
+ * If the data is horizontally differenced 16-bit data that
148
+ * requires byte-swapping, then it must be byte swapped before
149
+ * the accumulation step. We do this with a special-purpose
150
+ * routine and override the normal post decoding logic that
151
+ * the library setup when the directory was read.
152
+ */
153
+ if (tif->tif_flags & TIFF_SWAB) {
154
+ if (sp->decodepfunc == horAcc16) {
155
+ sp->decodepfunc = swabHorAcc16;
156
+ tif->tif_postdecode = _TIFFNoPostDecode;
157
+ } else if (sp->decodepfunc == horAcc32) {
158
+ sp->decodepfunc = swabHorAcc32;
159
+ tif->tif_postdecode = _TIFFNoPostDecode;
160
+ }
161
+ }
162
+ }
163
+
164
+ else if (sp->predictor == 3) {
165
+ sp->decodepfunc = fpAcc;
166
+ /*
167
+ * Override default decoding method with one that does the
168
+ * predictor stuff.
169
+ */
170
+ if( tif->tif_decoderow != PredictorDecodeRow )
171
+ {
172
+ sp->decoderow = tif->tif_decoderow;
173
+ tif->tif_decoderow = PredictorDecodeRow;
174
+ sp->decodestrip = tif->tif_decodestrip;
175
+ tif->tif_decodestrip = PredictorDecodeTile;
176
+ sp->decodetile = tif->tif_decodetile;
177
+ tif->tif_decodetile = PredictorDecodeTile;
178
+ }
179
+ /*
180
+ * The data should not be swapped outside of the floating
181
+ * point predictor, the accumulation routine should return
182
+ * byres in the native order.
183
+ */
184
+ if (tif->tif_flags & TIFF_SWAB) {
185
+ tif->tif_postdecode = _TIFFNoPostDecode;
186
+ }
187
+ /*
188
+ * Allocate buffer to keep the decoded bytes before
189
+ * rearranging in the right order
190
+ */
191
+ }
192
+
193
+ return 1;
194
+ }
195
+
196
+ static int
197
+ PredictorSetupEncode(TIFF* tif)
198
+ {
199
+ TIFFPredictorState* sp = PredictorState(tif);
200
+ TIFFDirectory* td = &tif->tif_dir;
201
+
202
+ if (!(*sp->setupencode)(tif) || !PredictorSetup(tif))
203
+ return 0;
204
+
205
+ if (sp->predictor == 2) {
206
+ switch (td->td_bitspersample) {
207
+ case 8: sp->encodepfunc = horDiff8; break;
208
+ case 16: sp->encodepfunc = horDiff16; break;
209
+ case 32: sp->encodepfunc = horDiff32; break;
210
+ }
211
+ /*
212
+ * Override default encoding method with one that does the
213
+ * predictor stuff.
214
+ */
215
+ if( tif->tif_encoderow != PredictorEncodeRow )
216
+ {
217
+ sp->encoderow = tif->tif_encoderow;
218
+ tif->tif_encoderow = PredictorEncodeRow;
219
+ sp->encodestrip = tif->tif_encodestrip;
220
+ tif->tif_encodestrip = PredictorEncodeTile;
221
+ sp->encodetile = tif->tif_encodetile;
222
+ tif->tif_encodetile = PredictorEncodeTile;
223
+ }
224
+
225
+ /*
226
+ * If the data is horizontally differenced 16-bit data that
227
+ * requires byte-swapping, then it must be byte swapped after
228
+ * the differentiation step. We do this with a special-purpose
229
+ * routine and override the normal post decoding logic that
230
+ * the library setup when the directory was read.
231
+ */
232
+ if (tif->tif_flags & TIFF_SWAB) {
233
+ if (sp->encodepfunc == horDiff16) {
234
+ sp->encodepfunc = swabHorDiff16;
235
+ tif->tif_postdecode = _TIFFNoPostDecode;
236
+ } else if (sp->encodepfunc == horDiff32) {
237
+ sp->encodepfunc = swabHorDiff32;
238
+ tif->tif_postdecode = _TIFFNoPostDecode;
239
+ }
240
+ }
241
+ }
242
+
243
+ else if (sp->predictor == 3) {
244
+ sp->encodepfunc = fpDiff;
245
+ /*
246
+ * Override default encoding method with one that does the
247
+ * predictor stuff.
248
+ */
249
+ if( tif->tif_encoderow != PredictorEncodeRow )
250
+ {
251
+ sp->encoderow = tif->tif_encoderow;
252
+ tif->tif_encoderow = PredictorEncodeRow;
253
+ sp->encodestrip = tif->tif_encodestrip;
254
+ tif->tif_encodestrip = PredictorEncodeTile;
255
+ sp->encodetile = tif->tif_encodetile;
256
+ tif->tif_encodetile = PredictorEncodeTile;
257
+ }
258
+ }
259
+
260
+ return 1;
261
+ }
262
+
263
+ #define REPEAT4(n, op) \
264
+ switch (n) { \
265
+ default: { \
266
+ tmsize_t i; for (i = n-4; i > 0; i--) { op; } } /*-fallthrough*/ \
267
+ case 4: op; /*-fallthrough*/ \
268
+ case 3: op; /*-fallthrough*/ \
269
+ case 2: op; /*-fallthrough*/ \
270
+ case 1: op; /*-fallthrough*/ \
271
+ case 0: ; \
272
+ }
273
+
274
+ /* Remarks related to C standard compliance in all below functions : */
275
+ /* - to avoid any undefined behaviour, we only operate on unsigned types */
276
+ /* since the behaviour of "overflows" is defined (wrap over) */
277
+ /* - when storing into the byte stream, we explicitly mask with 0xff so */
278
+ /* as to make icc -check=conversions happy (not necessary by the standard) */
279
+
280
+ TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW
281
+ static int
282
+ horAcc8(TIFF* tif, uint8* cp0, tmsize_t cc)
283
+ {
284
+ tmsize_t stride = PredictorState(tif)->stride;
285
+
286
+ unsigned char* cp = (unsigned char*) cp0;
287
+ if((cc%stride)!=0)
288
+ {
289
+ TIFFErrorExt(tif->tif_clientdata, "horAcc8",
290
+ "%s", "(cc%stride)!=0");
291
+ return 0;
292
+ }
293
+
294
+ if (cc > stride) {
295
+ /*
296
+ * Pipeline the most common cases.
297
+ */
298
+ if (stride == 3) {
299
+ unsigned int cr = cp[0];
300
+ unsigned int cg = cp[1];
301
+ unsigned int cb = cp[2];
302
+ cc -= 3;
303
+ cp += 3;
304
+ while (cc>0) {
305
+ cp[0] = (unsigned char) ((cr += cp[0]) & 0xff);
306
+ cp[1] = (unsigned char) ((cg += cp[1]) & 0xff);
307
+ cp[2] = (unsigned char) ((cb += cp[2]) & 0xff);
308
+ cc -= 3;
309
+ cp += 3;
310
+ }
311
+ } else if (stride == 4) {
312
+ unsigned int cr = cp[0];
313
+ unsigned int cg = cp[1];
314
+ unsigned int cb = cp[2];
315
+ unsigned int ca = cp[3];
316
+ cc -= 4;
317
+ cp += 4;
318
+ while (cc>0) {
319
+ cp[0] = (unsigned char) ((cr += cp[0]) & 0xff);
320
+ cp[1] = (unsigned char) ((cg += cp[1]) & 0xff);
321
+ cp[2] = (unsigned char) ((cb += cp[2]) & 0xff);
322
+ cp[3] = (unsigned char) ((ca += cp[3]) & 0xff);
323
+ cc -= 4;
324
+ cp += 4;
325
+ }
326
+ } else {
327
+ cc -= stride;
328
+ do {
329
+ REPEAT4(stride, cp[stride] =
330
+ (unsigned char) ((cp[stride] + *cp) & 0xff); cp++)
331
+ cc -= stride;
332
+ } while (cc>0);
333
+ }
334
+ }
335
+ return 1;
336
+ }
337
+
338
+ static int
339
+ swabHorAcc16(TIFF* tif, uint8* cp0, tmsize_t cc)
340
+ {
341
+ uint16* wp = (uint16*) cp0;
342
+ tmsize_t wc = cc / 2;
343
+
344
+ TIFFSwabArrayOfShort(wp, wc);
345
+ return horAcc16(tif, cp0, cc);
346
+ }
347
+
348
+ TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW
349
+ static int
350
+ horAcc16(TIFF* tif, uint8* cp0, tmsize_t cc)
351
+ {
352
+ tmsize_t stride = PredictorState(tif)->stride;
353
+ uint16* wp = (uint16*) cp0;
354
+ tmsize_t wc = cc / 2;
355
+
356
+ if((cc%(2*stride))!=0)
357
+ {
358
+ TIFFErrorExt(tif->tif_clientdata, "horAcc16",
359
+ "%s", "cc%(2*stride))!=0");
360
+ return 0;
361
+ }
362
+
363
+ if (wc > stride) {
364
+ wc -= stride;
365
+ do {
366
+ REPEAT4(stride, wp[stride] = (uint16)(((unsigned int)wp[stride] + (unsigned int)wp[0]) & 0xffff); wp++)
367
+ wc -= stride;
368
+ } while (wc > 0);
369
+ }
370
+ return 1;
371
+ }
372
+
373
+ static int
374
+ swabHorAcc32(TIFF* tif, uint8* cp0, tmsize_t cc)
375
+ {
376
+ uint32* wp = (uint32*) cp0;
377
+ tmsize_t wc = cc / 4;
378
+
379
+ TIFFSwabArrayOfLong(wp, wc);
380
+ return horAcc32(tif, cp0, cc);
381
+ }
382
+
383
+ TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW
384
+ static int
385
+ horAcc32(TIFF* tif, uint8* cp0, tmsize_t cc)
386
+ {
387
+ tmsize_t stride = PredictorState(tif)->stride;
388
+ uint32* wp = (uint32*) cp0;
389
+ tmsize_t wc = cc / 4;
390
+
391
+ if((cc%(4*stride))!=0)
392
+ {
393
+ TIFFErrorExt(tif->tif_clientdata, "horAcc32",
394
+ "%s", "cc%(4*stride))!=0");
395
+ return 0;
396
+ }
397
+
398
+ if (wc > stride) {
399
+ wc -= stride;
400
+ do {
401
+ REPEAT4(stride, wp[stride] += wp[0]; wp++)
402
+ wc -= stride;
403
+ } while (wc > 0);
404
+ }
405
+ return 1;
406
+ }
407
+
408
+ /*
409
+ * Floating point predictor accumulation routine.
410
+ */
411
+ static int
412
+ fpAcc(TIFF* tif, uint8* cp0, tmsize_t cc)
413
+ {
414
+ tmsize_t stride = PredictorState(tif)->stride;
415
+ uint32 bps = tif->tif_dir.td_bitspersample / 8;
416
+ tmsize_t wc = cc / bps;
417
+ tmsize_t count = cc;
418
+ uint8 *cp = (uint8 *) cp0;
419
+ uint8 *tmp;
420
+
421
+ if(cc%(bps*stride)!=0)
422
+ {
423
+ TIFFErrorExt(tif->tif_clientdata, "fpAcc",
424
+ "%s", "cc%(bps*stride))!=0");
425
+ return 0;
426
+ }
427
+
428
+ tmp = (uint8 *)_TIFFmalloc(cc);
429
+ if (!tmp)
430
+ return 0;
431
+
432
+ while (count > stride) {
433
+ REPEAT4(stride, cp[stride] =
434
+ (unsigned char) ((cp[stride] + cp[0]) & 0xff); cp++)
435
+ count -= stride;
436
+ }
437
+
438
+ _TIFFmemcpy(tmp, cp0, cc);
439
+ cp = (uint8 *) cp0;
440
+ for (count = 0; count < wc; count++) {
441
+ uint32 byte;
442
+ for (byte = 0; byte < bps; byte++) {
443
+ #if WORDS_BIGENDIAN
444
+ cp[bps * count + byte] = tmp[byte * wc + count];
445
+ #else
446
+ cp[bps * count + byte] =
447
+ tmp[(bps - byte - 1) * wc + count];
448
+ #endif
449
+ }
450
+ }
451
+ _TIFFfree(tmp);
452
+ return 1;
453
+ }
454
+
455
+ /*
456
+ * Decode a scanline and apply the predictor routine.
457
+ */
458
+ static int
459
+ PredictorDecodeRow(TIFF* tif, uint8* op0, tmsize_t occ0, uint16 s)
460
+ {
461
+ TIFFPredictorState *sp = PredictorState(tif);
462
+
463
+ assert(sp != NULL);
464
+ assert(sp->decoderow != NULL);
465
+ assert(sp->decodepfunc != NULL);
466
+
467
+ if ((*sp->decoderow)(tif, op0, occ0, s)) {
468
+ return (*sp->decodepfunc)(tif, op0, occ0);
469
+ } else
470
+ return 0;
471
+ }
472
+
473
+ /*
474
+ * Decode a tile/strip and apply the predictor routine.
475
+ * Note that horizontal differencing must be done on a
476
+ * row-by-row basis. The width of a "row" has already
477
+ * been calculated at pre-decode time according to the
478
+ * strip/tile dimensions.
479
+ */
480
+ static int
481
+ PredictorDecodeTile(TIFF* tif, uint8* op0, tmsize_t occ0, uint16 s)
482
+ {
483
+ TIFFPredictorState *sp = PredictorState(tif);
484
+
485
+ assert(sp != NULL);
486
+ assert(sp->decodetile != NULL);
487
+
488
+ if ((*sp->decodetile)(tif, op0, occ0, s)) {
489
+ tmsize_t rowsize = sp->rowsize;
490
+ assert(rowsize > 0);
491
+ if((occ0%rowsize) !=0)
492
+ {
493
+ TIFFErrorExt(tif->tif_clientdata, "PredictorDecodeTile",
494
+ "%s", "occ0%rowsize != 0");
495
+ return 0;
496
+ }
497
+ assert(sp->decodepfunc != NULL);
498
+ while (occ0 > 0) {
499
+ if( !(*sp->decodepfunc)(tif, op0, rowsize) )
500
+ return 0;
501
+ occ0 -= rowsize;
502
+ op0 += rowsize;
503
+ }
504
+ return 1;
505
+ } else
506
+ return 0;
507
+ }
508
+
509
+ TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW
510
+ static int
511
+ horDiff8(TIFF* tif, uint8* cp0, tmsize_t cc)
512
+ {
513
+ TIFFPredictorState* sp = PredictorState(tif);
514
+ tmsize_t stride = sp->stride;
515
+ unsigned char* cp = (unsigned char*) cp0;
516
+
517
+ if((cc%stride)!=0)
518
+ {
519
+ TIFFErrorExt(tif->tif_clientdata, "horDiff8",
520
+ "%s", "(cc%stride)!=0");
521
+ return 0;
522
+ }
523
+
524
+ if (cc > stride) {
525
+ cc -= stride;
526
+ /*
527
+ * Pipeline the most common cases.
528
+ */
529
+ if (stride == 3) {
530
+ unsigned int r1, g1, b1;
531
+ unsigned int r2 = cp[0];
532
+ unsigned int g2 = cp[1];
533
+ unsigned int b2 = cp[2];
534
+ do {
535
+ r1 = cp[3]; cp[3] = (unsigned char)((r1-r2)&0xff); r2 = r1;
536
+ g1 = cp[4]; cp[4] = (unsigned char)((g1-g2)&0xff); g2 = g1;
537
+ b1 = cp[5]; cp[5] = (unsigned char)((b1-b2)&0xff); b2 = b1;
538
+ cp += 3;
539
+ } while ((cc -= 3) > 0);
540
+ } else if (stride == 4) {
541
+ unsigned int r1, g1, b1, a1;
542
+ unsigned int r2 = cp[0];
543
+ unsigned int g2 = cp[1];
544
+ unsigned int b2 = cp[2];
545
+ unsigned int a2 = cp[3];
546
+ do {
547
+ r1 = cp[4]; cp[4] = (unsigned char)((r1-r2)&0xff); r2 = r1;
548
+ g1 = cp[5]; cp[5] = (unsigned char)((g1-g2)&0xff); g2 = g1;
549
+ b1 = cp[6]; cp[6] = (unsigned char)((b1-b2)&0xff); b2 = b1;
550
+ a1 = cp[7]; cp[7] = (unsigned char)((a1-a2)&0xff); a2 = a1;
551
+ cp += 4;
552
+ } while ((cc -= 4) > 0);
553
+ } else {
554
+ cp += cc - 1;
555
+ do {
556
+ REPEAT4(stride, cp[stride] = (unsigned char)((cp[stride] - cp[0])&0xff); cp--)
557
+ } while ((cc -= stride) > 0);
558
+ }
559
+ }
560
+ return 1;
561
+ }
562
+
563
+ TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW
564
+ static int
565
+ horDiff16(TIFF* tif, uint8* cp0, tmsize_t cc)
566
+ {
567
+ TIFFPredictorState* sp = PredictorState(tif);
568
+ tmsize_t stride = sp->stride;
569
+ uint16 *wp = (uint16*) cp0;
570
+ tmsize_t wc = cc/2;
571
+
572
+ if((cc%(2*stride))!=0)
573
+ {
574
+ TIFFErrorExt(tif->tif_clientdata, "horDiff8",
575
+ "%s", "(cc%(2*stride))!=0");
576
+ return 0;
577
+ }
578
+
579
+ if (wc > stride) {
580
+ wc -= stride;
581
+ wp += wc - 1;
582
+ do {
583
+ REPEAT4(stride, wp[stride] = (uint16)(((unsigned int)wp[stride] - (unsigned int)wp[0]) & 0xffff); wp--)
584
+ wc -= stride;
585
+ } while (wc > 0);
586
+ }
587
+ return 1;
588
+ }
589
+
590
+ static int
591
+ swabHorDiff16(TIFF* tif, uint8* cp0, tmsize_t cc)
592
+ {
593
+ uint16* wp = (uint16*) cp0;
594
+ tmsize_t wc = cc / 2;
595
+
596
+ if( !horDiff16(tif, cp0, cc) )
597
+ return 0;
598
+
599
+ TIFFSwabArrayOfShort(wp, wc);
600
+ return 1;
601
+ }
602
+
603
+ TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW
604
+ static int
605
+ horDiff32(TIFF* tif, uint8* cp0, tmsize_t cc)
606
+ {
607
+ TIFFPredictorState* sp = PredictorState(tif);
608
+ tmsize_t stride = sp->stride;
609
+ uint32 *wp = (uint32*) cp0;
610
+ tmsize_t wc = cc/4;
611
+
612
+ if((cc%(4*stride))!=0)
613
+ {
614
+ TIFFErrorExt(tif->tif_clientdata, "horDiff32",
615
+ "%s", "(cc%(4*stride))!=0");
616
+ return 0;
617
+ }
618
+
619
+ if (wc > stride) {
620
+ wc -= stride;
621
+ wp += wc - 1;
622
+ do {
623
+ REPEAT4(stride, wp[stride] -= wp[0]; wp--)
624
+ wc -= stride;
625
+ } while (wc > 0);
626
+ }
627
+ return 1;
628
+ }
629
+
630
+ static int
631
+ swabHorDiff32(TIFF* tif, uint8* cp0, tmsize_t cc)
632
+ {
633
+ uint32* wp = (uint32*) cp0;
634
+ tmsize_t wc = cc / 4;
635
+
636
+ if( !horDiff32(tif, cp0, cc) )
637
+ return 0;
638
+
639
+ TIFFSwabArrayOfLong(wp, wc);
640
+ return 1;
641
+ }
642
+
643
+ /*
644
+ * Floating point predictor differencing routine.
645
+ */
646
+ TIFF_NOSANITIZE_UNSIGNED_INT_OVERFLOW
647
+ static int
648
+ fpDiff(TIFF* tif, uint8* cp0, tmsize_t cc)
649
+ {
650
+ tmsize_t stride = PredictorState(tif)->stride;
651
+ uint32 bps = tif->tif_dir.td_bitspersample / 8;
652
+ tmsize_t wc = cc / bps;
653
+ tmsize_t count;
654
+ uint8 *cp = (uint8 *) cp0;
655
+ uint8 *tmp;
656
+
657
+ if((cc%(bps*stride))!=0)
658
+ {
659
+ TIFFErrorExt(tif->tif_clientdata, "fpDiff",
660
+ "%s", "(cc%(bps*stride))!=0");
661
+ return 0;
662
+ }
663
+
664
+ tmp = (uint8 *)_TIFFmalloc(cc);
665
+ if (!tmp)
666
+ return 0;
667
+
668
+ _TIFFmemcpy(tmp, cp0, cc);
669
+ for (count = 0; count < wc; count++) {
670
+ uint32 byte;
671
+ for (byte = 0; byte < bps; byte++) {
672
+ #if WORDS_BIGENDIAN
673
+ cp[byte * wc + count] = tmp[bps * count + byte];
674
+ #else
675
+ cp[(bps - byte - 1) * wc + count] =
676
+ tmp[bps * count + byte];
677
+ #endif
678
+ }
679
+ }
680
+ _TIFFfree(tmp);
681
+
682
+ cp = (uint8 *) cp0;
683
+ cp += cc - stride - 1;
684
+ for (count = cc; count > stride; count -= stride)
685
+ REPEAT4(stride, cp[stride] = (unsigned char)((cp[stride] - cp[0])&0xff); cp--)
686
+ return 1;
687
+ }
688
+
689
+ static int
690
+ PredictorEncodeRow(TIFF* tif, uint8* bp, tmsize_t cc, uint16 s)
691
+ {
692
+ TIFFPredictorState *sp = PredictorState(tif);
693
+
694
+ assert(sp != NULL);
695
+ assert(sp->encodepfunc != NULL);
696
+ assert(sp->encoderow != NULL);
697
+
698
+ /* XXX horizontal differencing alters user's data XXX */
699
+ if( !(*sp->encodepfunc)(tif, bp, cc) )
700
+ return 0;
701
+ return (*sp->encoderow)(tif, bp, cc, s);
702
+ }
703
+
704
+ static int
705
+ PredictorEncodeTile(TIFF* tif, uint8* bp0, tmsize_t cc0, uint16 s)
706
+ {
707
+ static const char module[] = "PredictorEncodeTile";
708
+ TIFFPredictorState *sp = PredictorState(tif);
709
+ uint8 *working_copy;
710
+ tmsize_t cc = cc0, rowsize;
711
+ unsigned char* bp;
712
+ int result_code;
713
+
714
+ assert(sp != NULL);
715
+ assert(sp->encodepfunc != NULL);
716
+ assert(sp->encodetile != NULL);
717
+
718
+ /*
719
+ * Do predictor manipulation in a working buffer to avoid altering
720
+ * the callers buffer. http://trac.osgeo.org/gdal/ticket/1965
721
+ */
722
+ working_copy = (uint8*) _TIFFmalloc(cc0);
723
+ if( working_copy == NULL )
724
+ {
725
+ TIFFErrorExt(tif->tif_clientdata, module,
726
+ "Out of memory allocating " TIFF_SSIZE_FORMAT " byte temp buffer.",
727
+ cc0 );
728
+ return 0;
729
+ }
730
+ memcpy( working_copy, bp0, cc0 );
731
+ bp = working_copy;
732
+
733
+ rowsize = sp->rowsize;
734
+ assert(rowsize > 0);
735
+ if((cc0%rowsize)!=0)
736
+ {
737
+ TIFFErrorExt(tif->tif_clientdata, "PredictorEncodeTile",
738
+ "%s", "(cc0%rowsize)!=0");
739
+ _TIFFfree( working_copy );
740
+ return 0;
741
+ }
742
+ while (cc > 0) {
743
+ (*sp->encodepfunc)(tif, bp, rowsize);
744
+ cc -= rowsize;
745
+ bp += rowsize;
746
+ }
747
+ result_code = (*sp->encodetile)(tif, working_copy, cc0, s);
748
+
749
+ _TIFFfree( working_copy );
750
+
751
+ return result_code;
752
+ }
753
+
754
+ #define FIELD_PREDICTOR (FIELD_CODEC+0) /* XXX */
755
+
756
+ static const TIFFField predictFields[] = {
757
+ { TIFFTAG_PREDICTOR, 1, 1, TIFF_SHORT, 0, TIFF_SETGET_UINT16, TIFF_SETGET_UINT16, FIELD_PREDICTOR, FALSE, FALSE, "Predictor", NULL },
758
+ };
759
+
760
+ static int
761
+ PredictorVSetField(TIFF* tif, uint32 tag, va_list ap)
762
+ {
763
+ TIFFPredictorState *sp = PredictorState(tif);
764
+
765
+ assert(sp != NULL);
766
+ assert(sp->vsetparent != NULL);
767
+
768
+ switch (tag) {
769
+ case TIFFTAG_PREDICTOR:
770
+ sp->predictor = (uint16) va_arg(ap, uint16_vap);
771
+ TIFFSetFieldBit(tif, FIELD_PREDICTOR);
772
+ break;
773
+ default:
774
+ return (*sp->vsetparent)(tif, tag, ap);
775
+ }
776
+ tif->tif_flags |= TIFF_DIRTYDIRECT;
777
+ return 1;
778
+ }
779
+
780
+ static int
781
+ PredictorVGetField(TIFF* tif, uint32 tag, va_list ap)
782
+ {
783
+ TIFFPredictorState *sp = PredictorState(tif);
784
+
785
+ assert(sp != NULL);
786
+ assert(sp->vgetparent != NULL);
787
+
788
+ switch (tag) {
789
+ case TIFFTAG_PREDICTOR:
790
+ *va_arg(ap, uint16*) = (uint16)sp->predictor;
791
+ break;
792
+ default:
793
+ return (*sp->vgetparent)(tif, tag, ap);
794
+ }
795
+ return 1;
796
+ }
797
+
798
+ static void
799
+ PredictorPrintDir(TIFF* tif, FILE* fd, long flags)
800
+ {
801
+ TIFFPredictorState* sp = PredictorState(tif);
802
+
803
+ (void) flags;
804
+ if (TIFFFieldSet(tif,FIELD_PREDICTOR)) {
805
+ fprintf(fd, " Predictor: ");
806
+ switch (sp->predictor) {
807
+ case 1: fprintf(fd, "none "); break;
808
+ case 2: fprintf(fd, "horizontal differencing "); break;
809
+ case 3: fprintf(fd, "floating point predictor "); break;
810
+ }
811
+ fprintf(fd, "%d (0x%x)\n", sp->predictor, sp->predictor);
812
+ }
813
+ if (sp->printdir)
814
+ (*sp->printdir)(tif, fd, flags);
815
+ }
816
+
817
+ int
818
+ TIFFPredictorInit(TIFF* tif)
819
+ {
820
+ TIFFPredictorState* sp = PredictorState(tif);
821
+
822
+ assert(sp != 0);
823
+
824
+ /*
825
+ * Merge codec-specific tag information.
826
+ */
827
+ if (!_TIFFMergeFields(tif, predictFields,
828
+ TIFFArrayCount(predictFields))) {
829
+ TIFFErrorExt(tif->tif_clientdata, "TIFFPredictorInit",
830
+ "Merging Predictor codec-specific tags failed");
831
+ return 0;
832
+ }
833
+
834
+ /*
835
+ * Override parent get/set field methods.
836
+ */
837
+ sp->vgetparent = tif->tif_tagmethods.vgetfield;
838
+ tif->tif_tagmethods.vgetfield =
839
+ PredictorVGetField;/* hook for predictor tag */
840
+ sp->vsetparent = tif->tif_tagmethods.vsetfield;
841
+ tif->tif_tagmethods.vsetfield =
842
+ PredictorVSetField;/* hook for predictor tag */
843
+ sp->printdir = tif->tif_tagmethods.printdir;
844
+ tif->tif_tagmethods.printdir =
845
+ PredictorPrintDir; /* hook for predictor tag */
846
+
847
+ sp->setupdecode = tif->tif_setupdecode;
848
+ tif->tif_setupdecode = PredictorSetupDecode;
849
+ sp->setupencode = tif->tif_setupencode;
850
+ tif->tif_setupencode = PredictorSetupEncode;
851
+
852
+ sp->predictor = 1; /* default value */
853
+ sp->encodepfunc = NULL; /* no predictor routine */
854
+ sp->decodepfunc = NULL; /* no predictor routine */
855
+ return 1;
856
+ }
857
+
858
+ int
859
+ TIFFPredictorCleanup(TIFF* tif)
860
+ {
861
+ TIFFPredictorState* sp = PredictorState(tif);
862
+
863
+ assert(sp != 0);
864
+
865
+ tif->tif_tagmethods.vgetfield = sp->vgetparent;
866
+ tif->tif_tagmethods.vsetfield = sp->vsetparent;
867
+ tif->tif_tagmethods.printdir = sp->printdir;
868
+ tif->tif_setupdecode = sp->setupdecode;
869
+ tif->tif_setupencode = sp->setupencode;
870
+
871
+ return 1;
872
+ }
873
+
874
+ /* vim: set ts=8 sts=8 sw=8 noet: */
875
+ /*
876
+ * Local Variables:
877
+ * mode: c
878
+ * c-basic-offset: 8
879
+ * fill-column: 78
880
+ * End:
881
+ */