rfreeimage 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (860) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +1 -0
  4. data/Rakefile +34 -0
  5. data/ext/rfreeimage/extconf.rb +35 -0
  6. data/ext/rfreeimage/rfi_main.c +389 -0
  7. data/lib/rfreeimage/image.rb +26 -0
  8. data/lib/rfreeimage/version.rb +3 -0
  9. data/lib/rfreeimage.rb +3 -0
  10. data/rfreeimage.gemspec +32 -0
  11. data/vendor/FreeImage/Makefile +34 -0
  12. data/vendor/FreeImage/Makefile.cygwin +74 -0
  13. data/vendor/FreeImage/Makefile.fip +84 -0
  14. data/vendor/FreeImage/Makefile.gnu +83 -0
  15. data/vendor/FreeImage/Makefile.iphone +96 -0
  16. data/vendor/FreeImage/Makefile.mingw +136 -0
  17. data/vendor/FreeImage/Makefile.osx +115 -0
  18. data/vendor/FreeImage/Makefile.solaris +66 -0
  19. data/vendor/FreeImage/Makefile.srcs +6 -0
  20. data/vendor/FreeImage/README.iphone +19 -0
  21. data/vendor/FreeImage/README.linux +50 -0
  22. data/vendor/FreeImage/README.minGW +236 -0
  23. data/vendor/FreeImage/README.osx +44 -0
  24. data/vendor/FreeImage/README.solaris +67 -0
  25. data/vendor/FreeImage/Source/CacheFile.h +92 -0
  26. data/vendor/FreeImage/Source/DeprecationManager/Deprecated.cpp +36 -0
  27. data/vendor/FreeImage/Source/DeprecationManager/DeprecationMgr.cpp +103 -0
  28. data/vendor/FreeImage/Source/DeprecationManager/DeprecationMgr.h +83 -0
  29. data/vendor/FreeImage/Source/FreeImage/BitmapAccess.cpp +1573 -0
  30. data/vendor/FreeImage/Source/FreeImage/CacheFile.cpp +271 -0
  31. data/vendor/FreeImage/Source/FreeImage/ColorLookup.cpp +785 -0
  32. data/vendor/FreeImage/Source/FreeImage/Conversion.cpp +551 -0
  33. data/vendor/FreeImage/Source/FreeImage/Conversion16_555.cpp +209 -0
  34. data/vendor/FreeImage/Source/FreeImage/Conversion16_565.cpp +204 -0
  35. data/vendor/FreeImage/Source/FreeImage/Conversion24.cpp +252 -0
  36. data/vendor/FreeImage/Source/FreeImage/Conversion32.cpp +345 -0
  37. data/vendor/FreeImage/Source/FreeImage/Conversion4.cpp +246 -0
  38. data/vendor/FreeImage/Source/FreeImage/Conversion8.cpp +305 -0
  39. data/vendor/FreeImage/Source/FreeImage/ConversionFloat.cpp +194 -0
  40. data/vendor/FreeImage/Source/FreeImage/ConversionRGB16.cpp +144 -0
  41. data/vendor/FreeImage/Source/FreeImage/ConversionRGBA16.cpp +147 -0
  42. data/vendor/FreeImage/Source/FreeImage/ConversionRGBAF.cpp +250 -0
  43. data/vendor/FreeImage/Source/FreeImage/ConversionRGBF.cpp +243 -0
  44. data/vendor/FreeImage/Source/FreeImage/ConversionType.cpp +699 -0
  45. data/vendor/FreeImage/Source/FreeImage/ConversionUINT16.cpp +134 -0
  46. data/vendor/FreeImage/Source/FreeImage/FreeImage.cpp +226 -0
  47. data/vendor/FreeImage/Source/FreeImage/FreeImageC.c +22 -0
  48. data/vendor/FreeImage/Source/FreeImage/FreeImageIO.cpp +175 -0
  49. data/vendor/FreeImage/Source/FreeImage/GetType.cpp +92 -0
  50. data/vendor/FreeImage/Source/FreeImage/Halftoning.cpp +474 -0
  51. data/vendor/FreeImage/Source/FreeImage/J2KHelper.cpp +591 -0
  52. data/vendor/FreeImage/Source/FreeImage/J2KHelper.h +36 -0
  53. data/vendor/FreeImage/Source/FreeImage/LFPQuantizer.cpp +208 -0
  54. data/vendor/FreeImage/Source/FreeImage/MNGHelper.cpp +1320 -0
  55. data/vendor/FreeImage/Source/FreeImage/MemoryIO.cpp +237 -0
  56. data/vendor/FreeImage/Source/FreeImage/MultiPage.cpp +974 -0
  57. data/vendor/FreeImage/Source/FreeImage/NNQuantizer.cpp +507 -0
  58. data/vendor/FreeImage/Source/FreeImage/PSDParser.cpp +1057 -0
  59. data/vendor/FreeImage/Source/FreeImage/PSDParser.h +271 -0
  60. data/vendor/FreeImage/Source/FreeImage/PixelAccess.cpp +197 -0
  61. data/vendor/FreeImage/Source/FreeImage/Plugin.cpp +822 -0
  62. data/vendor/FreeImage/Source/FreeImage/PluginBMP.cpp +1494 -0
  63. data/vendor/FreeImage/Source/FreeImage/PluginCUT.cpp +240 -0
  64. data/vendor/FreeImage/Source/FreeImage/PluginDDS.cpp +655 -0
  65. data/vendor/FreeImage/Source/FreeImage/PluginEXR.cpp +773 -0
  66. data/vendor/FreeImage/Source/FreeImage/PluginG3.cpp +433 -0
  67. data/vendor/FreeImage/Source/FreeImage/PluginGIF.cpp +1407 -0
  68. data/vendor/FreeImage/Source/FreeImage/PluginHDR.cpp +722 -0
  69. data/vendor/FreeImage/Source/FreeImage/PluginICO.cpp +824 -0
  70. data/vendor/FreeImage/Source/FreeImage/PluginIFF.cpp +459 -0
  71. data/vendor/FreeImage/Source/FreeImage/PluginJ2K.cpp +328 -0
  72. data/vendor/FreeImage/Source/FreeImage/PluginJNG.cpp +162 -0
  73. data/vendor/FreeImage/Source/FreeImage/PluginJP2.cpp +328 -0
  74. data/vendor/FreeImage/Source/FreeImage/PluginJPEG.cpp +1706 -0
  75. data/vendor/FreeImage/Source/FreeImage/PluginJXR.cpp +1475 -0
  76. data/vendor/FreeImage/Source/FreeImage/PluginKOALA.cpp +243 -0
  77. data/vendor/FreeImage/Source/FreeImage/PluginMNG.cpp +153 -0
  78. data/vendor/FreeImage/Source/FreeImage/PluginPCD.cpp +251 -0
  79. data/vendor/FreeImage/Source/FreeImage/PluginPCX.cpp +659 -0
  80. data/vendor/FreeImage/Source/FreeImage/PluginPFM.cpp +409 -0
  81. data/vendor/FreeImage/Source/FreeImage/PluginPICT.cpp +1343 -0
  82. data/vendor/FreeImage/Source/FreeImage/PluginPNG.cpp +1115 -0
  83. data/vendor/FreeImage/Source/FreeImage/PluginPNM.cpp +838 -0
  84. data/vendor/FreeImage/Source/FreeImage/PluginPSD.cpp +131 -0
  85. data/vendor/FreeImage/Source/FreeImage/PluginRAS.cpp +512 -0
  86. data/vendor/FreeImage/Source/FreeImage/PluginRAW.cpp +793 -0
  87. data/vendor/FreeImage/Source/FreeImage/PluginSGI.cpp +425 -0
  88. data/vendor/FreeImage/Source/FreeImage/PluginTARGA.cpp +1591 -0
  89. data/vendor/FreeImage/Source/FreeImage/PluginTIFF.cpp +2631 -0
  90. data/vendor/FreeImage/Source/FreeImage/PluginWBMP.cpp +372 -0
  91. data/vendor/FreeImage/Source/FreeImage/PluginWebP.cpp +698 -0
  92. data/vendor/FreeImage/Source/FreeImage/PluginXBM.cpp +399 -0
  93. data/vendor/FreeImage/Source/FreeImage/PluginXPM.cpp +487 -0
  94. data/vendor/FreeImage/Source/FreeImage/TIFFLogLuv.cpp +65 -0
  95. data/vendor/FreeImage/Source/FreeImage/ToneMapping.cpp +75 -0
  96. data/vendor/FreeImage/Source/FreeImage/WuQuantizer.cpp +559 -0
  97. data/vendor/FreeImage/Source/FreeImage/ZLibInterface.cpp +223 -0
  98. data/vendor/FreeImage/Source/FreeImage/tmoColorConvert.cpp +479 -0
  99. data/vendor/FreeImage/Source/FreeImage/tmoDrago03.cpp +295 -0
  100. data/vendor/FreeImage/Source/FreeImage/tmoFattal02.cpp +689 -0
  101. data/vendor/FreeImage/Source/FreeImage/tmoReinhard05.cpp +260 -0
  102. data/vendor/FreeImage/Source/FreeImage.h +1153 -0
  103. data/vendor/FreeImage/Source/FreeImageIO.h +63 -0
  104. data/vendor/FreeImage/Source/FreeImageToolkit/BSplineRotate.cpp +730 -0
  105. data/vendor/FreeImage/Source/FreeImageToolkit/Background.cpp +895 -0
  106. data/vendor/FreeImage/Source/FreeImageToolkit/Channels.cpp +488 -0
  107. data/vendor/FreeImage/Source/FreeImageToolkit/ClassicRotate.cpp +917 -0
  108. data/vendor/FreeImage/Source/FreeImageToolkit/Colors.cpp +967 -0
  109. data/vendor/FreeImage/Source/FreeImageToolkit/CopyPaste.cpp +861 -0
  110. data/vendor/FreeImage/Source/FreeImageToolkit/Display.cpp +230 -0
  111. data/vendor/FreeImage/Source/FreeImageToolkit/Filters.h +287 -0
  112. data/vendor/FreeImage/Source/FreeImageToolkit/Flip.cpp +166 -0
  113. data/vendor/FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp +623 -0
  114. data/vendor/FreeImage/Source/FreeImageToolkit/MultigridPoissonSolver.cpp +505 -0
  115. data/vendor/FreeImage/Source/FreeImageToolkit/Rescale.cpp +192 -0
  116. data/vendor/FreeImage/Source/FreeImageToolkit/Resize.cpp +2116 -0
  117. data/vendor/FreeImage/Source/FreeImageToolkit/Resize.h +196 -0
  118. data/vendor/FreeImage/Source/LibJPEG/ansi2knr.c +739 -0
  119. data/vendor/FreeImage/Source/LibJPEG/cderror.h +134 -0
  120. data/vendor/FreeImage/Source/LibJPEG/cdjpeg.c +181 -0
  121. data/vendor/FreeImage/Source/LibJPEG/cdjpeg.h +187 -0
  122. data/vendor/FreeImage/Source/LibJPEG/cjpeg.c +664 -0
  123. data/vendor/FreeImage/Source/LibJPEG/ckconfig.c +402 -0
  124. data/vendor/FreeImage/Source/LibJPEG/djpeg.c +617 -0
  125. data/vendor/FreeImage/Source/LibJPEG/example.c +433 -0
  126. data/vendor/FreeImage/Source/LibJPEG/jaricom.c +153 -0
  127. data/vendor/FreeImage/Source/LibJPEG/jcapimin.c +288 -0
  128. data/vendor/FreeImage/Source/LibJPEG/jcapistd.c +162 -0
  129. data/vendor/FreeImage/Source/LibJPEG/jcarith.c +944 -0
  130. data/vendor/FreeImage/Source/LibJPEG/jccoefct.c +454 -0
  131. data/vendor/FreeImage/Source/LibJPEG/jccolor.c +604 -0
  132. data/vendor/FreeImage/Source/LibJPEG/jcdctmgr.c +477 -0
  133. data/vendor/FreeImage/Source/LibJPEG/jchuff.c +1573 -0
  134. data/vendor/FreeImage/Source/LibJPEG/jcinit.c +84 -0
  135. data/vendor/FreeImage/Source/LibJPEG/jcmainct.c +297 -0
  136. data/vendor/FreeImage/Source/LibJPEG/jcmarker.c +719 -0
  137. data/vendor/FreeImage/Source/LibJPEG/jcmaster.c +856 -0
  138. data/vendor/FreeImage/Source/LibJPEG/jcomapi.c +106 -0
  139. data/vendor/FreeImage/Source/LibJPEG/jconfig.h +161 -0
  140. data/vendor/FreeImage/Source/LibJPEG/jcparam.c +675 -0
  141. data/vendor/FreeImage/Source/LibJPEG/jcprepct.c +358 -0
  142. data/vendor/FreeImage/Source/LibJPEG/jcsample.c +545 -0
  143. data/vendor/FreeImage/Source/LibJPEG/jctrans.c +385 -0
  144. data/vendor/FreeImage/Source/LibJPEG/jdapimin.c +399 -0
  145. data/vendor/FreeImage/Source/LibJPEG/jdapistd.c +276 -0
  146. data/vendor/FreeImage/Source/LibJPEG/jdarith.c +796 -0
  147. data/vendor/FreeImage/Source/LibJPEG/jdatadst.c +270 -0
  148. data/vendor/FreeImage/Source/LibJPEG/jdatasrc.c +275 -0
  149. data/vendor/FreeImage/Source/LibJPEG/jdcoefct.c +741 -0
  150. data/vendor/FreeImage/Source/LibJPEG/jdcolor.c +748 -0
  151. data/vendor/FreeImage/Source/LibJPEG/jdct.h +393 -0
  152. data/vendor/FreeImage/Source/LibJPEG/jddctmgr.c +384 -0
  153. data/vendor/FreeImage/Source/LibJPEG/jdhuff.c +1554 -0
  154. data/vendor/FreeImage/Source/LibJPEG/jdinput.c +662 -0
  155. data/vendor/FreeImage/Source/LibJPEG/jdmainct.c +513 -0
  156. data/vendor/FreeImage/Source/LibJPEG/jdmarker.c +1511 -0
  157. data/vendor/FreeImage/Source/LibJPEG/jdmaster.c +543 -0
  158. data/vendor/FreeImage/Source/LibJPEG/jdmerge.c +401 -0
  159. data/vendor/FreeImage/Source/LibJPEG/jdpostct.c +290 -0
  160. data/vendor/FreeImage/Source/LibJPEG/jdsample.c +361 -0
  161. data/vendor/FreeImage/Source/LibJPEG/jdtrans.c +140 -0
  162. data/vendor/FreeImage/Source/LibJPEG/jerror.c +253 -0
  163. data/vendor/FreeImage/Source/LibJPEG/jerror.h +304 -0
  164. data/vendor/FreeImage/Source/LibJPEG/jfdctflt.c +174 -0
  165. data/vendor/FreeImage/Source/LibJPEG/jfdctfst.c +230 -0
  166. data/vendor/FreeImage/Source/LibJPEG/jfdctint.c +4406 -0
  167. data/vendor/FreeImage/Source/LibJPEG/jidctflt.c +235 -0
  168. data/vendor/FreeImage/Source/LibJPEG/jidctfst.c +368 -0
  169. data/vendor/FreeImage/Source/LibJPEG/jidctint.c +5179 -0
  170. data/vendor/FreeImage/Source/LibJPEG/jinclude.h +91 -0
  171. data/vendor/FreeImage/Source/LibJPEG/jmemansi.c +167 -0
  172. data/vendor/FreeImage/Source/LibJPEG/jmemdos.c +638 -0
  173. data/vendor/FreeImage/Source/LibJPEG/jmemmac.c +289 -0
  174. data/vendor/FreeImage/Source/LibJPEG/jmemmgr.c +1119 -0
  175. data/vendor/FreeImage/Source/LibJPEG/jmemname.c +276 -0
  176. data/vendor/FreeImage/Source/LibJPEG/jmemnobs.c +109 -0
  177. data/vendor/FreeImage/Source/LibJPEG/jmemsys.h +198 -0
  178. data/vendor/FreeImage/Source/LibJPEG/jmorecfg.h +442 -0
  179. data/vendor/FreeImage/Source/LibJPEG/jpegint.h +426 -0
  180. data/vendor/FreeImage/Source/LibJPEG/jpeglib.h +1180 -0
  181. data/vendor/FreeImage/Source/LibJPEG/jpegtran.c +577 -0
  182. data/vendor/FreeImage/Source/LibJPEG/jquant1.c +857 -0
  183. data/vendor/FreeImage/Source/LibJPEG/jquant2.c +1311 -0
  184. data/vendor/FreeImage/Source/LibJPEG/jutils.c +227 -0
  185. data/vendor/FreeImage/Source/LibJPEG/jversion.h +14 -0
  186. data/vendor/FreeImage/Source/LibJPEG/rdbmp.c +480 -0
  187. data/vendor/FreeImage/Source/LibJPEG/rdcolmap.c +253 -0
  188. data/vendor/FreeImage/Source/LibJPEG/rdgif.c +38 -0
  189. data/vendor/FreeImage/Source/LibJPEG/rdjpgcom.c +515 -0
  190. data/vendor/FreeImage/Source/LibJPEG/rdppm.c +459 -0
  191. data/vendor/FreeImage/Source/LibJPEG/rdrle.c +387 -0
  192. data/vendor/FreeImage/Source/LibJPEG/rdswitch.c +365 -0
  193. data/vendor/FreeImage/Source/LibJPEG/rdtarga.c +500 -0
  194. data/vendor/FreeImage/Source/LibJPEG/transupp.c +1763 -0
  195. data/vendor/FreeImage/Source/LibJPEG/transupp.h +219 -0
  196. data/vendor/FreeImage/Source/LibJPEG/wrbmp.c +442 -0
  197. data/vendor/FreeImage/Source/LibJPEG/wrgif.c +399 -0
  198. data/vendor/FreeImage/Source/LibJPEG/wrjpgcom.c +583 -0
  199. data/vendor/FreeImage/Source/LibJPEG/wrppm.c +269 -0
  200. data/vendor/FreeImage/Source/LibJPEG/wrrle.c +305 -0
  201. data/vendor/FreeImage/Source/LibJPEG/wrtarga.c +253 -0
  202. data/vendor/FreeImage/Source/LibJXR/common/include/guiddef.h +230 -0
  203. data/vendor/FreeImage/Source/LibJXR/common/include/wmsal.h +757 -0
  204. data/vendor/FreeImage/Source/LibJXR/common/include/wmspecstring.h +342 -0
  205. data/vendor/FreeImage/Source/LibJXR/common/include/wmspecstrings_adt.h +71 -0
  206. data/vendor/FreeImage/Source/LibJXR/common/include/wmspecstrings_strict.h +1096 -0
  207. data/vendor/FreeImage/Source/LibJXR/common/include/wmspecstrings_undef.h +406 -0
  208. data/vendor/FreeImage/Source/LibJXR/image/decode/JXRTranscode.c +987 -0
  209. data/vendor/FreeImage/Source/LibJXR/image/decode/decode.c +200 -0
  210. data/vendor/FreeImage/Source/LibJXR/image/decode/decode.h +143 -0
  211. data/vendor/FreeImage/Source/LibJXR/image/decode/postprocess.c +288 -0
  212. data/vendor/FreeImage/Source/LibJXR/image/decode/segdec.c +1205 -0
  213. data/vendor/FreeImage/Source/LibJXR/image/decode/strInvTransform.c +1888 -0
  214. data/vendor/FreeImage/Source/LibJXR/image/decode/strPredQuantDec.c +539 -0
  215. data/vendor/FreeImage/Source/LibJXR/image/decode/strdec.c +3628 -0
  216. data/vendor/FreeImage/Source/LibJXR/image/decode/strdec_x86.c +1640 -0
  217. data/vendor/FreeImage/Source/LibJXR/image/encode/encode.c +144 -0
  218. data/vendor/FreeImage/Source/LibJXR/image/encode/encode.h +113 -0
  219. data/vendor/FreeImage/Source/LibJXR/image/encode/segenc.c +1186 -0
  220. data/vendor/FreeImage/Source/LibJXR/image/encode/strFwdTransform.c +1111 -0
  221. data/vendor/FreeImage/Source/LibJXR/image/encode/strPredQuantEnc.c +511 -0
  222. data/vendor/FreeImage/Source/LibJXR/image/encode/strenc.c +2370 -0
  223. data/vendor/FreeImage/Source/LibJXR/image/encode/strenc_x86.c +409 -0
  224. data/vendor/FreeImage/Source/LibJXR/image/sys/adapthuff.c +511 -0
  225. data/vendor/FreeImage/Source/LibJXR/image/sys/ansi.h +61 -0
  226. data/vendor/FreeImage/Source/LibJXR/image/sys/common.h +131 -0
  227. data/vendor/FreeImage/Source/LibJXR/image/sys/image.c +183 -0
  228. data/vendor/FreeImage/Source/LibJXR/image/sys/perfTimer.h +115 -0
  229. data/vendor/FreeImage/Source/LibJXR/image/sys/perfTimerANSI.c +274 -0
  230. data/vendor/FreeImage/Source/LibJXR/image/sys/strPredQuant.c +306 -0
  231. data/vendor/FreeImage/Source/LibJXR/image/sys/strTransform.c +85 -0
  232. data/vendor/FreeImage/Source/LibJXR/image/sys/strTransform.h +50 -0
  233. data/vendor/FreeImage/Source/LibJXR/image/sys/strcodec.c +1251 -0
  234. data/vendor/FreeImage/Source/LibJXR/image/sys/strcodec.h +681 -0
  235. data/vendor/FreeImage/Source/LibJXR/image/sys/windowsmediaphoto.h +515 -0
  236. data/vendor/FreeImage/Source/LibJXR/image/sys/xplatform_image.h +84 -0
  237. data/vendor/FreeImage/Source/LibJXR/image/x86/x86.h +58 -0
  238. data/vendor/FreeImage/Source/LibJXR/jxrgluelib/JXRGlue.c +930 -0
  239. data/vendor/FreeImage/Source/LibJXR/jxrgluelib/JXRGlue.h +636 -0
  240. data/vendor/FreeImage/Source/LibJXR/jxrgluelib/JXRGlueJxr.c +2246 -0
  241. data/vendor/FreeImage/Source/LibJXR/jxrgluelib/JXRGluePFC.c +2338 -0
  242. data/vendor/FreeImage/Source/LibJXR/jxrgluelib/JXRMeta.c +905 -0
  243. data/vendor/FreeImage/Source/LibJXR/jxrgluelib/JXRMeta.h +258 -0
  244. data/vendor/FreeImage/Source/LibOpenJPEG/bio.c +188 -0
  245. data/vendor/FreeImage/Source/LibOpenJPEG/bio.h +128 -0
  246. data/vendor/FreeImage/Source/LibOpenJPEG/cidx_manager.c +239 -0
  247. data/vendor/FreeImage/Source/LibOpenJPEG/cidx_manager.h +68 -0
  248. data/vendor/FreeImage/Source/LibOpenJPEG/cio.c +644 -0
  249. data/vendor/FreeImage/Source/LibOpenJPEG/cio.h +393 -0
  250. data/vendor/FreeImage/Source/LibOpenJPEG/dwt.c +919 -0
  251. data/vendor/FreeImage/Source/LibOpenJPEG/dwt.h +116 -0
  252. data/vendor/FreeImage/Source/LibOpenJPEG/event.c +141 -0
  253. data/vendor/FreeImage/Source/LibOpenJPEG/event.h +97 -0
  254. data/vendor/FreeImage/Source/LibOpenJPEG/function_list.c +114 -0
  255. data/vendor/FreeImage/Source/LibOpenJPEG/function_list.h +126 -0
  256. data/vendor/FreeImage/Source/LibOpenJPEG/image.c +235 -0
  257. data/vendor/FreeImage/Source/LibOpenJPEG/image.h +63 -0
  258. data/vendor/FreeImage/Source/LibOpenJPEG/indexbox_manager.h +148 -0
  259. data/vendor/FreeImage/Source/LibOpenJPEG/invert.c +289 -0
  260. data/vendor/FreeImage/Source/LibOpenJPEG/invert.h +59 -0
  261. data/vendor/FreeImage/Source/LibOpenJPEG/j2k.c +10238 -0
  262. data/vendor/FreeImage/Source/LibOpenJPEG/j2k.h +838 -0
  263. data/vendor/FreeImage/Source/LibOpenJPEG/jp2.c +2776 -0
  264. data/vendor/FreeImage/Source/LibOpenJPEG/jp2.h +490 -0
  265. data/vendor/FreeImage/Source/LibOpenJPEG/mct.c +319 -0
  266. data/vendor/FreeImage/Source/LibOpenJPEG/mct.h +149 -0
  267. data/vendor/FreeImage/Source/LibOpenJPEG/mqc.c +604 -0
  268. data/vendor/FreeImage/Source/LibOpenJPEG/mqc.h +201 -0
  269. data/vendor/FreeImage/Source/LibOpenJPEG/openjpeg.c +955 -0
  270. data/vendor/FreeImage/Source/LibOpenJPEG/openjpeg.h +1475 -0
  271. data/vendor/FreeImage/Source/LibOpenJPEG/opj_clock.c +59 -0
  272. data/vendor/FreeImage/Source/LibOpenJPEG/opj_clock.h +54 -0
  273. data/vendor/FreeImage/Source/LibOpenJPEG/opj_codec.h +160 -0
  274. data/vendor/FreeImage/Source/LibOpenJPEG/opj_config.h +9 -0
  275. data/vendor/FreeImage/Source/LibOpenJPEG/opj_config_private.h +16 -0
  276. data/vendor/FreeImage/Source/LibOpenJPEG/opj_includes.h +175 -0
  277. data/vendor/FreeImage/Source/LibOpenJPEG/opj_intmath.h +172 -0
  278. data/vendor/FreeImage/Source/LibOpenJPEG/opj_inttypes.h +43 -0
  279. data/vendor/FreeImage/Source/LibOpenJPEG/opj_malloc.h +180 -0
  280. data/vendor/FreeImage/Source/LibOpenJPEG/opj_stdint.h +47 -0
  281. data/vendor/FreeImage/Source/LibOpenJPEG/phix_manager.c +191 -0
  282. data/vendor/FreeImage/Source/LibOpenJPEG/pi.c +1870 -0
  283. data/vendor/FreeImage/Source/LibOpenJPEG/pi.h +182 -0
  284. data/vendor/FreeImage/Source/LibOpenJPEG/ppix_manager.c +194 -0
  285. data/vendor/FreeImage/Source/LibOpenJPEG/raw.c +89 -0
  286. data/vendor/FreeImage/Source/LibOpenJPEG/raw.h +100 -0
  287. data/vendor/FreeImage/Source/LibOpenJPEG/t1.c +1751 -0
  288. data/vendor/FreeImage/Source/LibOpenJPEG/t1.h +157 -0
  289. data/vendor/FreeImage/Source/LibOpenJPEG/t1_generate_luts.c +276 -0
  290. data/vendor/FreeImage/Source/LibOpenJPEG/t1_luts.h +143 -0
  291. data/vendor/FreeImage/Source/LibOpenJPEG/t2.c +1334 -0
  292. data/vendor/FreeImage/Source/LibOpenJPEG/t2.h +127 -0
  293. data/vendor/FreeImage/Source/LibOpenJPEG/tcd.c +2123 -0
  294. data/vendor/FreeImage/Source/LibOpenJPEG/tcd.h +348 -0
  295. data/vendor/FreeImage/Source/LibOpenJPEG/tgt.c +331 -0
  296. data/vendor/FreeImage/Source/LibOpenJPEG/tgt.h +140 -0
  297. data/vendor/FreeImage/Source/LibOpenJPEG/thix_manager.c +134 -0
  298. data/vendor/FreeImage/Source/LibOpenJPEG/tpix_manager.c +185 -0
  299. data/vendor/FreeImage/Source/LibPNG/example.c +1061 -0
  300. data/vendor/FreeImage/Source/LibPNG/png.c +4493 -0
  301. data/vendor/FreeImage/Source/LibPNG/png.h +3282 -0
  302. data/vendor/FreeImage/Source/LibPNG/pngconf.h +644 -0
  303. data/vendor/FreeImage/Source/LibPNG/pngdebug.h +154 -0
  304. data/vendor/FreeImage/Source/LibPNG/pngerror.c +963 -0
  305. data/vendor/FreeImage/Source/LibPNG/pngget.c +1213 -0
  306. data/vendor/FreeImage/Source/LibPNG/pnginfo.h +260 -0
  307. data/vendor/FreeImage/Source/LibPNG/pnglibconf.h +218 -0
  308. data/vendor/FreeImage/Source/LibPNG/pngmem.c +281 -0
  309. data/vendor/FreeImage/Source/LibPNG/pngpread.c +1168 -0
  310. data/vendor/FreeImage/Source/LibPNG/pngpriv.h +1944 -0
  311. data/vendor/FreeImage/Source/LibPNG/pngread.c +4121 -0
  312. data/vendor/FreeImage/Source/LibPNG/pngrio.c +120 -0
  313. data/vendor/FreeImage/Source/LibPNG/pngrtran.c +4994 -0
  314. data/vendor/FreeImage/Source/LibPNG/pngrutil.c +4474 -0
  315. data/vendor/FreeImage/Source/LibPNG/pngset.c +1611 -0
  316. data/vendor/FreeImage/Source/LibPNG/pngstruct.h +489 -0
  317. data/vendor/FreeImage/Source/LibPNG/pngtest.c +2011 -0
  318. data/vendor/FreeImage/Source/LibPNG/pngtrans.c +849 -0
  319. data/vendor/FreeImage/Source/LibPNG/pngwio.c +168 -0
  320. data/vendor/FreeImage/Source/LibPNG/pngwrite.c +2455 -0
  321. data/vendor/FreeImage/Source/LibPNG/pngwtran.c +574 -0
  322. data/vendor/FreeImage/Source/LibPNG/pngwutil.c +3029 -0
  323. data/vendor/FreeImage/Source/LibRawLite/dcraw/dcraw.c +15462 -0
  324. data/vendor/FreeImage/Source/LibRawLite/internal/aahd_demosaic.cpp +706 -0
  325. data/vendor/FreeImage/Source/LibRawLite/internal/dcb_demosaicing.c +710 -0
  326. data/vendor/FreeImage/Source/LibRawLite/internal/dcraw_common.cpp +13593 -0
  327. data/vendor/FreeImage/Source/LibRawLite/internal/dcraw_fileio.cpp +240 -0
  328. data/vendor/FreeImage/Source/LibRawLite/internal/defines.h +167 -0
  329. data/vendor/FreeImage/Source/LibRawLite/internal/demosaic_packs.cpp +99 -0
  330. data/vendor/FreeImage/Source/LibRawLite/internal/dht_demosaic.cpp +873 -0
  331. data/vendor/FreeImage/Source/LibRawLite/internal/libraw_internal_funcs.h +282 -0
  332. data/vendor/FreeImage/Source/LibRawLite/internal/libraw_x3f.cpp +1919 -0
  333. data/vendor/FreeImage/Source/LibRawLite/internal/var_defines.h +216 -0
  334. data/vendor/FreeImage/Source/LibRawLite/internal/wf_filtering.cpp +1950 -0
  335. data/vendor/FreeImage/Source/LibRawLite/libraw/libraw.h +338 -0
  336. data/vendor/FreeImage/Source/LibRawLite/libraw/libraw_alloc.h +99 -0
  337. data/vendor/FreeImage/Source/LibRawLite/libraw/libraw_const.h +233 -0
  338. data/vendor/FreeImage/Source/LibRawLite/libraw/libraw_datastream.h +238 -0
  339. data/vendor/FreeImage/Source/LibRawLite/libraw/libraw_internal.h +225 -0
  340. data/vendor/FreeImage/Source/LibRawLite/libraw/libraw_types.h +442 -0
  341. data/vendor/FreeImage/Source/LibRawLite/libraw/libraw_version.h +62 -0
  342. data/vendor/FreeImage/Source/LibRawLite/src/libraw_c_api.cpp +230 -0
  343. data/vendor/FreeImage/Source/LibRawLite/src/libraw_cxx.cpp +4533 -0
  344. data/vendor/FreeImage/Source/LibRawLite/src/libraw_datastream.cpp +703 -0
  345. data/vendor/FreeImage/Source/LibTIFF4/mkg3states.c +451 -0
  346. data/vendor/FreeImage/Source/LibTIFF4/mkspans.c +82 -0
  347. data/vendor/FreeImage/Source/LibTIFF4/t4.h +292 -0
  348. data/vendor/FreeImage/Source/LibTIFF4/tif_aux.c +358 -0
  349. data/vendor/FreeImage/Source/LibTIFF4/tif_close.c +140 -0
  350. data/vendor/FreeImage/Source/LibTIFF4/tif_codec.c +166 -0
  351. data/vendor/FreeImage/Source/LibTIFF4/tif_color.c +287 -0
  352. data/vendor/FreeImage/Source/LibTIFF4/tif_compress.c +304 -0
  353. data/vendor/FreeImage/Source/LibTIFF4/tif_config.h +97 -0
  354. data/vendor/FreeImage/Source/LibTIFF4/tif_config.vc.h +74 -0
  355. data/vendor/FreeImage/Source/LibTIFF4/tif_config.wince.h +71 -0
  356. data/vendor/FreeImage/Source/LibTIFF4/tif_dir.c +1700 -0
  357. data/vendor/FreeImage/Source/LibTIFF4/tif_dir.h +308 -0
  358. data/vendor/FreeImage/Source/LibTIFF4/tif_dirinfo.c +959 -0
  359. data/vendor/FreeImage/Source/LibTIFF4/tif_dirread.c +5640 -0
  360. data/vendor/FreeImage/Source/LibTIFF4/tif_dirwrite.c +2910 -0
  361. data/vendor/FreeImage/Source/LibTIFF4/tif_dumpmode.c +143 -0
  362. data/vendor/FreeImage/Source/LibTIFF4/tif_error.c +80 -0
  363. data/vendor/FreeImage/Source/LibTIFF4/tif_extension.c +118 -0
  364. data/vendor/FreeImage/Source/LibTIFF4/tif_fax3.c +1595 -0
  365. data/vendor/FreeImage/Source/LibTIFF4/tif_fax3.h +538 -0
  366. data/vendor/FreeImage/Source/LibTIFF4/tif_fax3sm.c +1260 -0
  367. data/vendor/FreeImage/Source/LibTIFF4/tif_flush.c +118 -0
  368. data/vendor/FreeImage/Source/LibTIFF4/tif_getimage.c +2890 -0
  369. data/vendor/FreeImage/Source/LibTIFF4/tif_jbig.c +213 -0
  370. data/vendor/FreeImage/Source/LibTIFF4/tif_jpeg.c +2354 -0
  371. data/vendor/FreeImage/Source/LibTIFF4/tif_jpeg_12.c +65 -0
  372. data/vendor/FreeImage/Source/LibTIFF4/tif_luv.c +1683 -0
  373. data/vendor/FreeImage/Source/LibTIFF4/tif_lzma.c +495 -0
  374. data/vendor/FreeImage/Source/LibTIFF4/tif_lzw.c +1169 -0
  375. data/vendor/FreeImage/Source/LibTIFF4/tif_next.c +181 -0
  376. data/vendor/FreeImage/Source/LibTIFF4/tif_ojpeg.c +2501 -0
  377. data/vendor/FreeImage/Source/LibTIFF4/tif_open.c +725 -0
  378. data/vendor/FreeImage/Source/LibTIFF4/tif_packbits.c +300 -0
  379. data/vendor/FreeImage/Source/LibTIFF4/tif_pixarlog.c +1442 -0
  380. data/vendor/FreeImage/Source/LibTIFF4/tif_predict.c +764 -0
  381. data/vendor/FreeImage/Source/LibTIFF4/tif_predict.h +77 -0
  382. data/vendor/FreeImage/Source/LibTIFF4/tif_print.c +716 -0
  383. data/vendor/FreeImage/Source/LibTIFF4/tif_read.c +1086 -0
  384. data/vendor/FreeImage/Source/LibTIFF4/tif_strip.c +383 -0
  385. data/vendor/FreeImage/Source/LibTIFF4/tif_swab.c +310 -0
  386. data/vendor/FreeImage/Source/LibTIFF4/tif_thunder.c +207 -0
  387. data/vendor/FreeImage/Source/LibTIFF4/tif_tile.c +299 -0
  388. data/vendor/FreeImage/Source/LibTIFF4/tif_unix.c +325 -0
  389. data/vendor/FreeImage/Source/LibTIFF4/tif_version.c +40 -0
  390. data/vendor/FreeImage/Source/LibTIFF4/tif_vms.c +603 -0
  391. data/vendor/FreeImage/Source/LibTIFF4/tif_warning.c +81 -0
  392. data/vendor/FreeImage/Source/LibTIFF4/tif_win32.c +443 -0
  393. data/vendor/FreeImage/Source/LibTIFF4/tif_wince.c +293 -0
  394. data/vendor/FreeImage/Source/LibTIFF4/tif_write.c +771 -0
  395. data/vendor/FreeImage/Source/LibTIFF4/tif_zip.c +472 -0
  396. data/vendor/FreeImage/Source/LibTIFF4/tiff.h +681 -0
  397. data/vendor/FreeImage/Source/LibTIFF4/tiffconf.h +170 -0
  398. data/vendor/FreeImage/Source/LibTIFF4/tiffconf.vc.h +160 -0
  399. data/vendor/FreeImage/Source/LibTIFF4/tiffconf.wince.h +121 -0
  400. data/vendor/FreeImage/Source/LibTIFF4/tiffio.h +557 -0
  401. data/vendor/FreeImage/Source/LibTIFF4/tiffiop.h +367 -0
  402. data/vendor/FreeImage/Source/LibTIFF4/tiffvers.h +9 -0
  403. data/vendor/FreeImage/Source/LibTIFF4/uvcode.h +180 -0
  404. data/vendor/FreeImage/Source/LibWebP/src/dec/alphai.h +55 -0
  405. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.alpha.c +167 -0
  406. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.buffer.c +249 -0
  407. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.frame.c +827 -0
  408. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.idec.c +857 -0
  409. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.io.c +640 -0
  410. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.quant.c +110 -0
  411. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.tree.c +525 -0
  412. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.vp8.c +663 -0
  413. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.vp8l.c +1584 -0
  414. data/vendor/FreeImage/Source/LibWebP/src/dec/dec.webp.c +834 -0
  415. data/vendor/FreeImage/Source/LibWebP/src/dec/decode_vp8.h +185 -0
  416. data/vendor/FreeImage/Source/LibWebP/src/dec/vp8i.h +353 -0
  417. data/vendor/FreeImage/Source/LibWebP/src/dec/vp8li.h +136 -0
  418. data/vendor/FreeImage/Source/LibWebP/src/dec/webpi.h +120 -0
  419. data/vendor/FreeImage/Source/LibWebP/src/demux/demux.demux.c +957 -0
  420. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.alpha_processing.c +377 -0
  421. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.alpha_processing_mips_dsp_r2.c +139 -0
  422. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.alpha_processing_sse2.c +296 -0
  423. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.argb.c +68 -0
  424. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.argb_mips_dsp_r2.c +108 -0
  425. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.argb_sse2.c +62 -0
  426. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.cost.c +412 -0
  427. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.cost_mips32.c +154 -0
  428. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.cost_mips_dsp_r2.c +107 -0
  429. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.cost_sse2.c +121 -0
  430. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.cpu.c +138 -0
  431. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.dec.c +760 -0
  432. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.dec_clip_tables.c +366 -0
  433. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.dec_mips32.c +585 -0
  434. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.dec_mips_dsp_r2.c +992 -0
  435. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.dec_neon.c +1489 -0
  436. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.dec_sse2.c +1284 -0
  437. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.enc.c +788 -0
  438. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.enc_avx2.c +24 -0
  439. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.enc_mips32.c +670 -0
  440. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.enc_mips_dsp_r2.c +1510 -0
  441. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.enc_neon.c +932 -0
  442. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.enc_sse2.c +940 -0
  443. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.filters.c +240 -0
  444. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.filters_mips_dsp_r2.c +404 -0
  445. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.filters_sse2.c +349 -0
  446. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.h +434 -0
  447. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.lossless.c +1838 -0
  448. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.lossless_mips32.c +416 -0
  449. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.lossless_mips_dsp_r2.c +921 -0
  450. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.lossless_neon.c +357 -0
  451. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.lossless_sse2.c +535 -0
  452. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.rescaler.c +115 -0
  453. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.rescaler_mips32.c +192 -0
  454. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.rescaler_mips_dsp_r2.c +210 -0
  455. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.upsampling.c +252 -0
  456. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.upsampling_mips_dsp_r2.c +280 -0
  457. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.upsampling_neon.c +267 -0
  458. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.upsampling_sse2.c +214 -0
  459. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.yuv.c +166 -0
  460. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.yuv_mips32.c +100 -0
  461. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.yuv_mips_dsp_r2.c +131 -0
  462. data/vendor/FreeImage/Source/LibWebP/src/dsp/dsp.yuv_sse2.c +322 -0
  463. data/vendor/FreeImage/Source/LibWebP/src/dsp/lossless.h +313 -0
  464. data/vendor/FreeImage/Source/LibWebP/src/dsp/mips_macro.h +200 -0
  465. data/vendor/FreeImage/Source/LibWebP/src/dsp/neon.h +82 -0
  466. data/vendor/FreeImage/Source/LibWebP/src/dsp/yuv.h +321 -0
  467. data/vendor/FreeImage/Source/LibWebP/src/dsp/yuv_tables_sse2.h +536 -0
  468. data/vendor/FreeImage/Source/LibWebP/src/enc/backward_references.h +202 -0
  469. data/vendor/FreeImage/Source/LibWebP/src/enc/cost.h +69 -0
  470. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.alpha.c +440 -0
  471. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.analysis.c +501 -0
  472. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.backward_references.c +1076 -0
  473. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.config.c +163 -0
  474. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.cost.c +355 -0
  475. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.filter.c +296 -0
  476. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.frame.c +850 -0
  477. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.histogram.c +897 -0
  478. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.iterator.c +456 -0
  479. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.near_lossless.c +160 -0
  480. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.picture.c +290 -0
  481. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.picture_csp.c +1100 -0
  482. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.picture_psnr.c +150 -0
  483. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.picture_rescale.c +285 -0
  484. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.picture_tools.c +206 -0
  485. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.quant.c +1191 -0
  486. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.syntax.c +383 -0
  487. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.token.c +285 -0
  488. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.tree.c +504 -0
  489. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.vp8l.c +1437 -0
  490. data/vendor/FreeImage/Source/LibWebP/src/enc/enc.webpenc.c +379 -0
  491. data/vendor/FreeImage/Source/LibWebP/src/enc/histogram.h +114 -0
  492. data/vendor/FreeImage/Source/LibWebP/src/enc/vp8enci.h +551 -0
  493. data/vendor/FreeImage/Source/LibWebP/src/enc/vp8li.h +78 -0
  494. data/vendor/FreeImage/Source/LibWebP/src/mux/mux.anim_encode.c +1241 -0
  495. data/vendor/FreeImage/Source/LibWebP/src/mux/mux.muxedit.c +696 -0
  496. data/vendor/FreeImage/Source/LibWebP/src/mux/mux.muxinternal.c +551 -0
  497. data/vendor/FreeImage/Source/LibWebP/src/mux/mux.muxread.c +544 -0
  498. data/vendor/FreeImage/Source/LibWebP/src/mux/muxi.h +232 -0
  499. data/vendor/FreeImage/Source/LibWebP/src/utils/bit_reader.h +168 -0
  500. data/vendor/FreeImage/Source/LibWebP/src/utils/bit_reader_inl.h +172 -0
  501. data/vendor/FreeImage/Source/LibWebP/src/utils/bit_writer.h +120 -0
  502. data/vendor/FreeImage/Source/LibWebP/src/utils/color_cache.h +74 -0
  503. data/vendor/FreeImage/Source/LibWebP/src/utils/endian_inl.h +100 -0
  504. data/vendor/FreeImage/Source/LibWebP/src/utils/filters.h +32 -0
  505. data/vendor/FreeImage/Source/LibWebP/src/utils/huffman.h +67 -0
  506. data/vendor/FreeImage/Source/LibWebP/src/utils/huffman_encode.h +60 -0
  507. data/vendor/FreeImage/Source/LibWebP/src/utils/quant_levels.h +36 -0
  508. data/vendor/FreeImage/Source/LibWebP/src/utils/quant_levels_dec.h +35 -0
  509. data/vendor/FreeImage/Source/LibWebP/src/utils/random.h +63 -0
  510. data/vendor/FreeImage/Source/LibWebP/src/utils/rescaler.h +78 -0
  511. data/vendor/FreeImage/Source/LibWebP/src/utils/thread.h +93 -0
  512. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.bit_reader.c +208 -0
  513. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.bit_writer.c +308 -0
  514. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.color_cache.c +49 -0
  515. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.filters.c +76 -0
  516. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.h +121 -0
  517. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.huffman.c +205 -0
  518. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.huffman_encode.c +417 -0
  519. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.quant_levels.c +140 -0
  520. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.quant_levels_dec.c +279 -0
  521. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.random.c +43 -0
  522. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.rescaler.c +82 -0
  523. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.thread.c +309 -0
  524. data/vendor/FreeImage/Source/LibWebP/src/utils/utils.utils.c +211 -0
  525. data/vendor/FreeImage/Source/LibWebP/src/webp/decode.h +493 -0
  526. data/vendor/FreeImage/Source/LibWebP/src/webp/demux.h +224 -0
  527. data/vendor/FreeImage/Source/LibWebP/src/webp/encode.h +515 -0
  528. data/vendor/FreeImage/Source/LibWebP/src/webp/format_constants.h +88 -0
  529. data/vendor/FreeImage/Source/LibWebP/src/webp/mux.h +507 -0
  530. data/vendor/FreeImage/Source/LibWebP/src/webp/mux_types.h +97 -0
  531. data/vendor/FreeImage/Source/LibWebP/src/webp/types.h +52 -0
  532. data/vendor/FreeImage/Source/MapIntrospector.h +212 -0
  533. data/vendor/FreeImage/Source/Metadata/Exif.cpp +1253 -0
  534. data/vendor/FreeImage/Source/Metadata/FIRational.cpp +176 -0
  535. data/vendor/FreeImage/Source/Metadata/FIRational.h +108 -0
  536. data/vendor/FreeImage/Source/Metadata/FreeImageTag.cpp +353 -0
  537. data/vendor/FreeImage/Source/Metadata/FreeImageTag.h +500 -0
  538. data/vendor/FreeImage/Source/Metadata/IPTC.cpp +342 -0
  539. data/vendor/FreeImage/Source/Metadata/TagConversion.cpp +1094 -0
  540. data/vendor/FreeImage/Source/Metadata/TagLib.cpp +1618 -0
  541. data/vendor/FreeImage/Source/Metadata/XTIFF.cpp +766 -0
  542. data/vendor/FreeImage/Source/OpenEXR/Half/eLut.cpp +114 -0
  543. data/vendor/FreeImage/Source/OpenEXR/Half/eLut.h +71 -0
  544. data/vendor/FreeImage/Source/OpenEXR/Half/half.cpp +310 -0
  545. data/vendor/FreeImage/Source/OpenEXR/Half/half.h +757 -0
  546. data/vendor/FreeImage/Source/OpenEXR/Half/halfExport.h +27 -0
  547. data/vendor/FreeImage/Source/OpenEXR/Half/halfFunction.h +179 -0
  548. data/vendor/FreeImage/Source/OpenEXR/Half/halfLimits.h +102 -0
  549. data/vendor/FreeImage/Source/OpenEXR/Half/toFloat.cpp +164 -0
  550. data/vendor/FreeImage/Source/OpenEXR/Half/toFloat.h +16391 -0
  551. data/vendor/FreeImage/Source/OpenEXR/Iex/Iex.h +60 -0
  552. data/vendor/FreeImage/Source/OpenEXR/Iex/IexBaseExc.cpp +156 -0
  553. data/vendor/FreeImage/Source/OpenEXR/Iex/IexBaseExc.h +264 -0
  554. data/vendor/FreeImage/Source/OpenEXR/Iex/IexErrnoExc.h +208 -0
  555. data/vendor/FreeImage/Source/OpenEXR/Iex/IexExport.h +51 -0
  556. data/vendor/FreeImage/Source/OpenEXR/Iex/IexForward.h +229 -0
  557. data/vendor/FreeImage/Source/OpenEXR/Iex/IexMacros.h +170 -0
  558. data/vendor/FreeImage/Source/OpenEXR/Iex/IexMathExc.h +57 -0
  559. data/vendor/FreeImage/Source/OpenEXR/Iex/IexNamespace.h +112 -0
  560. data/vendor/FreeImage/Source/OpenEXR/Iex/IexThrowErrnoExc.cpp +873 -0
  561. data/vendor/FreeImage/Source/OpenEXR/Iex/IexThrowErrnoExc.h +97 -0
  562. data/vendor/FreeImage/Source/OpenEXR/IexMath/IexMathFloatExc.cpp +113 -0
  563. data/vendor/FreeImage/Source/OpenEXR/IexMath/IexMathFloatExc.h +146 -0
  564. data/vendor/FreeImage/Source/OpenEXR/IexMath/IexMathFpu.cpp +530 -0
  565. data/vendor/FreeImage/Source/OpenEXR/IexMath/IexMathFpu.h +91 -0
  566. data/vendor/FreeImage/Source/OpenEXR/IexMath/IexMathIeeeExc.h +62 -0
  567. data/vendor/FreeImage/Source/OpenEXR/IlmBaseConfig.h +61 -0
  568. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfAcesFile.cpp +633 -0
  569. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfAcesFile.h +324 -0
  570. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfArray.h +285 -0
  571. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfAttribute.cpp +158 -0
  572. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfAttribute.h +407 -0
  573. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfAutoArray.h +95 -0
  574. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfB44Compressor.cpp +1072 -0
  575. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfB44Compressor.h +118 -0
  576. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfBoxAttribute.cpp +111 -0
  577. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfBoxAttribute.h +87 -0
  578. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCRgbaFile.cpp +1438 -0
  579. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCRgbaFile.h +555 -0
  580. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfChannelList.cpp +322 -0
  581. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfChannelList.h +436 -0
  582. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfChannelListAttribute.cpp +150 -0
  583. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfChannelListAttribute.h +74 -0
  584. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCheckedArithmetic.h +163 -0
  585. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfChromaticities.cpp +151 -0
  586. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfChromaticities.h +131 -0
  587. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfChromaticitiesAttribute.cpp +87 -0
  588. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfChromaticitiesAttribute.h +73 -0
  589. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCompositeDeepScanLine.cpp +591 -0
  590. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCompositeDeepScanLine.h +142 -0
  591. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCompression.h +84 -0
  592. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCompressionAttribute.cpp +78 -0
  593. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCompressionAttribute.h +64 -0
  594. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCompressor.cpp +226 -0
  595. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfCompressor.h +265 -0
  596. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfConvert.cpp +143 -0
  597. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfConvert.h +107 -0
  598. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepCompositing.cpp +110 -0
  599. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepCompositing.h +132 -0
  600. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepFrameBuffer.cpp +230 -0
  601. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepFrameBuffer.h +339 -0
  602. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepImageState.h +96 -0
  603. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepImageStateAttribute.cpp +78 -0
  604. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepImageStateAttribute.h +68 -0
  605. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepScanLineInputFile.cpp +2025 -0
  606. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepScanLineInputFile.h +276 -0
  607. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepScanLineInputPart.cpp +149 -0
  608. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepScanLineInputPart.h +181 -0
  609. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepScanLineOutputFile.cpp +1552 -0
  610. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepScanLineOutputFile.h +244 -0
  611. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepScanLineOutputPart.cpp +107 -0
  612. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepScanLineOutputPart.h +168 -0
  613. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepTiledInputFile.cpp +1979 -0
  614. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepTiledInputFile.h +437 -0
  615. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepTiledInputPart.cpp +273 -0
  616. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepTiledInputPart.h +362 -0
  617. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepTiledOutputFile.cpp +2055 -0
  618. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepTiledOutputFile.h +475 -0
  619. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepTiledOutputPart.cpp +250 -0
  620. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDeepTiledOutputPart.h +394 -0
  621. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDoubleAttribute.cpp +57 -0
  622. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDoubleAttribute.h +59 -0
  623. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDwaCompressor.cpp +3424 -0
  624. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDwaCompressor.h +210 -0
  625. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfDwaCompressorSimd.h +2145 -0
  626. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfEnvmap.cpp +335 -0
  627. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfEnvmap.h +336 -0
  628. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfEnvmapAttribute.cpp +76 -0
  629. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfEnvmapAttribute.h +68 -0
  630. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfExport.h +46 -0
  631. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFastHuf.cpp +768 -0
  632. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFastHuf.h +148 -0
  633. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFloatAttribute.cpp +57 -0
  634. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFloatAttribute.h +58 -0
  635. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFloatVectorAttribute.cpp +84 -0
  636. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFloatVectorAttribute.h +76 -0
  637. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfForward.h +127 -0
  638. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFrameBuffer.cpp +228 -0
  639. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFrameBuffer.h +386 -0
  640. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFramesPerSecond.cpp +76 -0
  641. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfFramesPerSecond.h +94 -0
  642. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfGenericInputFile.cpp +76 -0
  643. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfGenericInputFile.h +58 -0
  644. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfGenericOutputFile.cpp +112 -0
  645. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfGenericOutputFile.h +62 -0
  646. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfHeader.cpp +1283 -0
  647. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfHeader.h +699 -0
  648. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfHuf.cpp +1114 -0
  649. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfHuf.h +82 -0
  650. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfIO.cpp +110 -0
  651. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfIO.h +255 -0
  652. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfInputFile.cpp +895 -0
  653. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfInputFile.h +240 -0
  654. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfInputPart.cpp +114 -0
  655. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfInputPart.h +84 -0
  656. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfInputPartData.cpp +51 -0
  657. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfInputPartData.h +69 -0
  658. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfInputStreamMutex.h +68 -0
  659. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfInt64.h +56 -0
  660. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfIntAttribute.cpp +57 -0
  661. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfIntAttribute.h +58 -0
  662. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfKeyCode.cpp +217 -0
  663. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfKeyCode.h +167 -0
  664. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfKeyCodeAttribute.cpp +99 -0
  665. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfKeyCodeAttribute.h +73 -0
  666. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfLineOrder.h +69 -0
  667. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfLineOrderAttribute.cpp +78 -0
  668. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfLineOrderAttribute.h +72 -0
  669. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfLut.cpp +178 -0
  670. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfLut.h +188 -0
  671. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMatrixAttribute.cpp +263 -0
  672. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMatrixAttribute.h +83 -0
  673. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMisc.cpp +1872 -0
  674. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMisc.h +466 -0
  675. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMultiPartInputFile.cpp +783 -0
  676. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMultiPartInputFile.h +128 -0
  677. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMultiPartOutputFile.cpp +519 -0
  678. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMultiPartOutputFile.h +118 -0
  679. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMultiView.cpp +435 -0
  680. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfMultiView.h +187 -0
  681. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfName.h +150 -0
  682. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfNamespace.h +115 -0
  683. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOpaqueAttribute.cpp +126 -0
  684. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOpaqueAttribute.h +110 -0
  685. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOptimizedPixelReading.h +646 -0
  686. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOutputFile.cpp +1378 -0
  687. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOutputFile.h +263 -0
  688. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOutputPart.cpp +105 -0
  689. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOutputPart.h +77 -0
  690. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOutputPartData.cpp +52 -0
  691. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOutputPartData.h +62 -0
  692. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfOutputStreamMutex.h +70 -0
  693. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPartHelper.h +262 -0
  694. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPartType.cpp +63 -0
  695. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPartType.h +62 -0
  696. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPixelType.h +67 -0
  697. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPizCompressor.cpp +667 -0
  698. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPizCompressor.h +117 -0
  699. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPreviewImage.cpp +104 -0
  700. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPreviewImage.h +135 -0
  701. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPreviewImageAttribute.cpp +103 -0
  702. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPreviewImageAttribute.h +70 -0
  703. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPxr24Compressor.cpp +553 -0
  704. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfPxr24Compressor.h +109 -0
  705. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRational.cpp +127 -0
  706. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRational.h +98 -0
  707. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRationalAttribute.cpp +74 -0
  708. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRationalAttribute.h +69 -0
  709. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRgba.h +109 -0
  710. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRgbaFile.cpp +1405 -0
  711. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRgbaFile.h +346 -0
  712. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRgbaYca.cpp +497 -0
  713. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRgbaYca.h +259 -0
  714. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRle.cpp +157 -0
  715. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRle.h +63 -0
  716. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRleCompressor.cpp +220 -0
  717. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfRleCompressor.h +80 -0
  718. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfScanLineInputFile.cpp +1702 -0
  719. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfScanLineInputFile.h +210 -0
  720. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfSimd.h +59 -0
  721. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfStandardAttributes.cpp +125 -0
  722. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfStandardAttributes.h +382 -0
  723. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfStdIO.cpp +242 -0
  724. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfStdIO.h +160 -0
  725. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfStringAttribute.cpp +80 -0
  726. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfStringAttribute.h +71 -0
  727. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfStringVectorAttribute.cpp +100 -0
  728. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfStringVectorAttribute.h +74 -0
  729. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfSystemSpecific.cpp +129 -0
  730. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfSystemSpecific.h +172 -0
  731. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTestFile.cpp +216 -0
  732. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTestFile.h +97 -0
  733. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfThreading.cpp +62 -0
  734. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfThreading.h +95 -0
  735. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTileDescription.h +107 -0
  736. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTileDescriptionAttribute.cpp +86 -0
  737. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTileDescriptionAttribute.h +72 -0
  738. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTileOffsets.cpp +552 -0
  739. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTileOffsets.h +125 -0
  740. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledInputFile.cpp +1533 -0
  741. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledInputFile.h +401 -0
  742. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledInputPart.cpp +208 -0
  743. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledInputPart.h +100 -0
  744. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledMisc.cpp +389 -0
  745. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledMisc.h +106 -0
  746. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledOutputFile.cpp +1841 -0
  747. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledOutputFile.h +495 -0
  748. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledOutputPart.cpp +228 -0
  749. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledOutputPart.h +105 -0
  750. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledRgbaFile.cpp +1163 -0
  751. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTiledRgbaFile.h +482 -0
  752. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTimeCode.cpp +431 -0
  753. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTimeCode.h +242 -0
  754. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTimeCodeAttribute.cpp +79 -0
  755. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfTimeCodeAttribute.h +74 -0
  756. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfVecAttribute.cpp +217 -0
  757. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfVecAttribute.h +100 -0
  758. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfVersion.cpp +60 -0
  759. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfVersion.h +136 -0
  760. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfWav.cpp +391 -0
  761. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfWav.h +78 -0
  762. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfXdr.h +927 -0
  763. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfZip.cpp +196 -0
  764. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfZip.h +78 -0
  765. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfZipCompressor.cpp +127 -0
  766. data/vendor/FreeImage/Source/OpenEXR/IlmImf/ImfZipCompressor.h +89 -0
  767. data/vendor/FreeImage/Source/OpenEXR/IlmImf/b44ExpLogTable.cpp +136 -0
  768. data/vendor/FreeImage/Source/OpenEXR/IlmImf/b44ExpLogTable.h +16396 -0
  769. data/vendor/FreeImage/Source/OpenEXR/IlmImf/dwaLookups.cpp +573 -0
  770. data/vendor/FreeImage/Source/OpenEXR/IlmImf/dwaLookups.h +98334 -0
  771. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThread.cpp +80 -0
  772. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThread.h +143 -0
  773. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadExport.h +46 -0
  774. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadForward.h +52 -0
  775. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadMutex.cpp +59 -0
  776. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadMutex.h +160 -0
  777. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadMutexPosix.cpp +85 -0
  778. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadMutexWin32.cpp +79 -0
  779. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadNamespace.h +114 -0
  780. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadPool.cpp +483 -0
  781. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadPool.h +160 -0
  782. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadPosix.cpp +98 -0
  783. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadSemaphore.cpp +60 -0
  784. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadSemaphore.h +112 -0
  785. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadSemaphorePosix.cpp +106 -0
  786. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadSemaphorePosixCompat.cpp +155 -0
  787. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadSemaphoreWin32.cpp +153 -0
  788. data/vendor/FreeImage/Source/OpenEXR/IlmThread/IlmThreadWin32.cpp +100 -0
  789. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathBox.cpp +37 -0
  790. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathBox.h +849 -0
  791. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathBoxAlgo.h +1016 -0
  792. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathColor.h +736 -0
  793. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathColorAlgo.cpp +178 -0
  794. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathColorAlgo.h +257 -0
  795. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathEuler.h +926 -0
  796. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathExc.h +73 -0
  797. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathExport.h +46 -0
  798. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathForward.h +72 -0
  799. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathFrame.h +192 -0
  800. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathFrustum.h +741 -0
  801. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathFrustumTest.h +417 -0
  802. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathFun.cpp +181 -0
  803. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathFun.h +269 -0
  804. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathGL.h +166 -0
  805. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathGLU.h +54 -0
  806. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathHalfLimits.h +68 -0
  807. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathInt64.h +62 -0
  808. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathInterval.h +226 -0
  809. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathLimits.h +268 -0
  810. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathLine.h +185 -0
  811. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathLineAlgo.h +288 -0
  812. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathMath.h +208 -0
  813. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathMatrix.h +3441 -0
  814. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathMatrixAlgo.cpp +1252 -0
  815. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathMatrixAlgo.h +1425 -0
  816. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathNamespace.h +115 -0
  817. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathPlane.h +257 -0
  818. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathPlatform.h +112 -0
  819. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathQuat.h +964 -0
  820. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathRandom.cpp +194 -0
  821. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathRandom.h +401 -0
  822. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathRoots.h +219 -0
  823. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathShear.cpp +54 -0
  824. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathShear.h +656 -0
  825. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathSphere.h +177 -0
  826. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathVec.cpp +583 -0
  827. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathVec.h +2227 -0
  828. data/vendor/FreeImage/Source/OpenEXR/Imath/ImathVecAlgo.h +147 -0
  829. data/vendor/FreeImage/Source/OpenEXR/OpenEXRConfig.h +72 -0
  830. data/vendor/FreeImage/Source/Plugin.h +144 -0
  831. data/vendor/FreeImage/Source/Quantizers.h +354 -0
  832. data/vendor/FreeImage/Source/ToneMapping.h +44 -0
  833. data/vendor/FreeImage/Source/Utilities.h +516 -0
  834. data/vendor/FreeImage/Source/ZLib/adler32.c +179 -0
  835. data/vendor/FreeImage/Source/ZLib/compress.c +80 -0
  836. data/vendor/FreeImage/Source/ZLib/crc32.c +425 -0
  837. data/vendor/FreeImage/Source/ZLib/crc32.h +441 -0
  838. data/vendor/FreeImage/Source/ZLib/deflate.c +1967 -0
  839. data/vendor/FreeImage/Source/ZLib/deflate.h +346 -0
  840. data/vendor/FreeImage/Source/ZLib/gzclose.c +25 -0
  841. data/vendor/FreeImage/Source/ZLib/gzguts.h +209 -0
  842. data/vendor/FreeImage/Source/ZLib/gzlib.c +634 -0
  843. data/vendor/FreeImage/Source/ZLib/gzread.c +594 -0
  844. data/vendor/FreeImage/Source/ZLib/gzwrite.c +577 -0
  845. data/vendor/FreeImage/Source/ZLib/infback.c +640 -0
  846. data/vendor/FreeImage/Source/ZLib/inffast.c +340 -0
  847. data/vendor/FreeImage/Source/ZLib/inffast.h +11 -0
  848. data/vendor/FreeImage/Source/ZLib/inffixed.h +94 -0
  849. data/vendor/FreeImage/Source/ZLib/inflate.c +1512 -0
  850. data/vendor/FreeImage/Source/ZLib/inflate.h +122 -0
  851. data/vendor/FreeImage/Source/ZLib/inftrees.c +306 -0
  852. data/vendor/FreeImage/Source/ZLib/inftrees.h +62 -0
  853. data/vendor/FreeImage/Source/ZLib/trees.c +1226 -0
  854. data/vendor/FreeImage/Source/ZLib/trees.h +128 -0
  855. data/vendor/FreeImage/Source/ZLib/uncompr.c +59 -0
  856. data/vendor/FreeImage/Source/ZLib/zconf.h +511 -0
  857. data/vendor/FreeImage/Source/ZLib/zlib.h +1768 -0
  858. data/vendor/FreeImage/Source/ZLib/zutil.c +324 -0
  859. data/vendor/FreeImage/Source/ZLib/zutil.h +253 -0
  860. metadata +931 -0
@@ -0,0 +1,1168 @@
1
+
2
+ /* pngpread.c - read a png file in push mode
3
+ *
4
+ * Last changed in libpng 1.6.15 [November 20, 2014]
5
+ * Copyright (c) 1998-2014 Glenn Randers-Pehrson
6
+ * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
7
+ * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
8
+ *
9
+ * This code is released under the libpng license.
10
+ * For conditions of distribution and use, see the disclaimer
11
+ * and license in png.h
12
+ */
13
+
14
+ #include "pngpriv.h"
15
+
16
+ #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
17
+
18
+ /* Push model modes */
19
+ #define PNG_READ_SIG_MODE 0
20
+ #define PNG_READ_CHUNK_MODE 1
21
+ #define PNG_READ_IDAT_MODE 2
22
+ #define PNG_SKIP_MODE 3
23
+ #define PNG_READ_tEXt_MODE 4
24
+ #define PNG_READ_zTXt_MODE 5
25
+ #define PNG_READ_DONE_MODE 6
26
+ #define PNG_READ_iTXt_MODE 7
27
+ #define PNG_ERROR_MODE 8
28
+
29
+ #define PNG_PUSH_SAVE_BUFFER_IF_FULL \
30
+ if (png_ptr->push_length + 4 > png_ptr->buffer_size) \
31
+ { png_push_save_buffer(png_ptr); return; }
32
+ #define PNG_PUSH_SAVE_BUFFER_IF_LT(N) \
33
+ if (png_ptr->buffer_size < N) \
34
+ { png_push_save_buffer(png_ptr); return; }
35
+
36
+ void PNGAPI
37
+ png_process_data(png_structrp png_ptr, png_inforp info_ptr,
38
+ png_bytep buffer, png_size_t buffer_size)
39
+ {
40
+ if (png_ptr == NULL || info_ptr == NULL)
41
+ return;
42
+
43
+ png_push_restore_buffer(png_ptr, buffer, buffer_size);
44
+
45
+ while (png_ptr->buffer_size)
46
+ {
47
+ png_process_some_data(png_ptr, info_ptr);
48
+ }
49
+ }
50
+
51
+ png_size_t PNGAPI
52
+ png_process_data_pause(png_structrp png_ptr, int save)
53
+ {
54
+ if (png_ptr != NULL)
55
+ {
56
+ /* It's easiest for the caller if we do the save; then the caller doesn't
57
+ * have to supply the same data again:
58
+ */
59
+ if (save != 0)
60
+ png_push_save_buffer(png_ptr);
61
+ else
62
+ {
63
+ /* This includes any pending saved bytes: */
64
+ png_size_t remaining = png_ptr->buffer_size;
65
+ png_ptr->buffer_size = 0;
66
+
67
+ /* So subtract the saved buffer size, unless all the data
68
+ * is actually 'saved', in which case we just return 0
69
+ */
70
+ if (png_ptr->save_buffer_size < remaining)
71
+ return remaining - png_ptr->save_buffer_size;
72
+ }
73
+ }
74
+
75
+ return 0;
76
+ }
77
+
78
+ png_uint_32 PNGAPI
79
+ png_process_data_skip(png_structrp png_ptr)
80
+ {
81
+ png_uint_32 remaining = 0;
82
+
83
+ if (png_ptr != NULL && png_ptr->process_mode == PNG_SKIP_MODE &&
84
+ png_ptr->skip_length > 0)
85
+ {
86
+ /* At the end of png_process_data the buffer size must be 0 (see the loop
87
+ * above) so we can detect a broken call here:
88
+ */
89
+ if (png_ptr->buffer_size != 0)
90
+ png_error(png_ptr,
91
+ "png_process_data_skip called inside png_process_data");
92
+
93
+ /* If is impossible for there to be a saved buffer at this point -
94
+ * otherwise we could not be in SKIP mode. This will also happen if
95
+ * png_process_skip is called inside png_process_data (but only very
96
+ * rarely.)
97
+ */
98
+ if (png_ptr->save_buffer_size != 0)
99
+ png_error(png_ptr, "png_process_data_skip called with saved data");
100
+
101
+ remaining = png_ptr->skip_length;
102
+ png_ptr->skip_length = 0;
103
+ png_ptr->process_mode = PNG_READ_CHUNK_MODE;
104
+ }
105
+
106
+ return remaining;
107
+ }
108
+
109
+ /* What we do with the incoming data depends on what we were previously
110
+ * doing before we ran out of data...
111
+ */
112
+ void /* PRIVATE */
113
+ png_process_some_data(png_structrp png_ptr, png_inforp info_ptr)
114
+ {
115
+ if (png_ptr == NULL)
116
+ return;
117
+
118
+ switch (png_ptr->process_mode)
119
+ {
120
+ case PNG_READ_SIG_MODE:
121
+ {
122
+ png_push_read_sig(png_ptr, info_ptr);
123
+ break;
124
+ }
125
+
126
+ case PNG_READ_CHUNK_MODE:
127
+ {
128
+ png_push_read_chunk(png_ptr, info_ptr);
129
+ break;
130
+ }
131
+
132
+ case PNG_READ_IDAT_MODE:
133
+ {
134
+ png_push_read_IDAT(png_ptr);
135
+ break;
136
+ }
137
+
138
+ case PNG_SKIP_MODE:
139
+ {
140
+ png_push_crc_finish(png_ptr);
141
+ break;
142
+ }
143
+
144
+ default:
145
+ {
146
+ png_ptr->buffer_size = 0;
147
+ break;
148
+ }
149
+ }
150
+ }
151
+
152
+ /* Read any remaining signature bytes from the stream and compare them with
153
+ * the correct PNG signature. It is possible that this routine is called
154
+ * with bytes already read from the signature, either because they have been
155
+ * checked by the calling application, or because of multiple calls to this
156
+ * routine.
157
+ */
158
+ void /* PRIVATE */
159
+ png_push_read_sig(png_structrp png_ptr, png_inforp info_ptr)
160
+ {
161
+ png_size_t num_checked = png_ptr->sig_bytes, /* SAFE, does not exceed 8 */
162
+ num_to_check = 8 - num_checked;
163
+
164
+ if (png_ptr->buffer_size < num_to_check)
165
+ {
166
+ num_to_check = png_ptr->buffer_size;
167
+ }
168
+
169
+ png_push_fill_buffer(png_ptr, &(info_ptr->signature[num_checked]),
170
+ num_to_check);
171
+ png_ptr->sig_bytes = (png_byte)(png_ptr->sig_bytes + num_to_check);
172
+
173
+ if (png_sig_cmp(info_ptr->signature, num_checked, num_to_check))
174
+ {
175
+ if (num_checked < 4 &&
176
+ png_sig_cmp(info_ptr->signature, num_checked, num_to_check - 4))
177
+ png_error(png_ptr, "Not a PNG file");
178
+
179
+ else
180
+ png_error(png_ptr, "PNG file corrupted by ASCII conversion");
181
+ }
182
+ else
183
+ {
184
+ if (png_ptr->sig_bytes >= 8)
185
+ {
186
+ png_ptr->process_mode = PNG_READ_CHUNK_MODE;
187
+ }
188
+ }
189
+ }
190
+
191
+ void /* PRIVATE */
192
+ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
193
+ {
194
+ png_uint_32 chunk_name;
195
+ #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
196
+ int keep; /* unknown handling method */
197
+ #endif
198
+
199
+ /* First we make sure we have enough data for the 4-byte chunk name
200
+ * and the 4-byte chunk length before proceeding with decoding the
201
+ * chunk data. To fully decode each of these chunks, we also make
202
+ * sure we have enough data in the buffer for the 4-byte CRC at the
203
+ * end of every chunk (except IDAT, which is handled separately).
204
+ */
205
+ if ((png_ptr->mode & PNG_HAVE_CHUNK_HEADER) == 0)
206
+ {
207
+ png_byte chunk_length[4];
208
+ png_byte chunk_tag[4];
209
+
210
+ PNG_PUSH_SAVE_BUFFER_IF_LT(8)
211
+ png_push_fill_buffer(png_ptr, chunk_length, 4);
212
+ png_ptr->push_length = png_get_uint_31(png_ptr, chunk_length);
213
+ png_reset_crc(png_ptr);
214
+ png_crc_read(png_ptr, chunk_tag, 4);
215
+ png_ptr->chunk_name = PNG_CHUNK_FROM_STRING(chunk_tag);
216
+ png_check_chunk_name(png_ptr, png_ptr->chunk_name);
217
+ png_ptr->mode |= PNG_HAVE_CHUNK_HEADER;
218
+ }
219
+
220
+ chunk_name = png_ptr->chunk_name;
221
+
222
+ if (chunk_name == png_IDAT)
223
+ {
224
+ if ((png_ptr->mode & PNG_AFTER_IDAT) != 0)
225
+ png_ptr->mode |= PNG_HAVE_CHUNK_AFTER_IDAT;
226
+
227
+ /* If we reach an IDAT chunk, this means we have read all of the
228
+ * header chunks, and we can start reading the image (or if this
229
+ * is called after the image has been read - we have an error).
230
+ */
231
+ if ((png_ptr->mode & PNG_HAVE_IHDR) == 0)
232
+ png_error(png_ptr, "Missing IHDR before IDAT");
233
+
234
+ else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE &&
235
+ (png_ptr->mode & PNG_HAVE_PLTE) == 0)
236
+ png_error(png_ptr, "Missing PLTE before IDAT");
237
+
238
+ png_ptr->mode |= PNG_HAVE_IDAT;
239
+ png_ptr->process_mode = PNG_READ_IDAT_MODE;
240
+
241
+ if ((png_ptr->mode & PNG_HAVE_CHUNK_AFTER_IDAT) == 0)
242
+ if (png_ptr->push_length == 0)
243
+ return;
244
+
245
+ if ((png_ptr->mode & PNG_AFTER_IDAT) != 0)
246
+ png_benign_error(png_ptr, "Too many IDATs found");
247
+ }
248
+
249
+ if (chunk_name == png_IHDR)
250
+ {
251
+ if (png_ptr->push_length != 13)
252
+ png_error(png_ptr, "Invalid IHDR length");
253
+
254
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
255
+ png_handle_IHDR(png_ptr, info_ptr, png_ptr->push_length);
256
+ }
257
+
258
+ else if (chunk_name == png_IEND)
259
+ {
260
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
261
+ png_handle_IEND(png_ptr, info_ptr, png_ptr->push_length);
262
+
263
+ png_ptr->process_mode = PNG_READ_DONE_MODE;
264
+ png_push_have_end(png_ptr, info_ptr);
265
+ }
266
+
267
+ #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
268
+ else if ((keep = png_chunk_unknown_handling(png_ptr, chunk_name)) != 0)
269
+ {
270
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
271
+ png_handle_unknown(png_ptr, info_ptr, png_ptr->push_length, keep);
272
+
273
+ if (chunk_name == png_PLTE)
274
+ png_ptr->mode |= PNG_HAVE_PLTE;
275
+ }
276
+ #endif
277
+
278
+ else if (chunk_name == png_PLTE)
279
+ {
280
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
281
+ png_handle_PLTE(png_ptr, info_ptr, png_ptr->push_length);
282
+ }
283
+
284
+ else if (chunk_name == png_IDAT)
285
+ {
286
+ png_ptr->idat_size = png_ptr->push_length;
287
+ png_ptr->process_mode = PNG_READ_IDAT_MODE;
288
+ png_push_have_info(png_ptr, info_ptr);
289
+ png_ptr->zstream.avail_out =
290
+ (uInt) PNG_ROWBYTES(png_ptr->pixel_depth,
291
+ png_ptr->iwidth) + 1;
292
+ png_ptr->zstream.next_out = png_ptr->row_buf;
293
+ return;
294
+ }
295
+
296
+ #ifdef PNG_READ_gAMA_SUPPORTED
297
+ else if (png_ptr->chunk_name == png_gAMA)
298
+ {
299
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
300
+ png_handle_gAMA(png_ptr, info_ptr, png_ptr->push_length);
301
+ }
302
+
303
+ #endif
304
+ #ifdef PNG_READ_sBIT_SUPPORTED
305
+ else if (png_ptr->chunk_name == png_sBIT)
306
+ {
307
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
308
+ png_handle_sBIT(png_ptr, info_ptr, png_ptr->push_length);
309
+ }
310
+
311
+ #endif
312
+ #ifdef PNG_READ_cHRM_SUPPORTED
313
+ else if (png_ptr->chunk_name == png_cHRM)
314
+ {
315
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
316
+ png_handle_cHRM(png_ptr, info_ptr, png_ptr->push_length);
317
+ }
318
+
319
+ #endif
320
+ #ifdef PNG_READ_sRGB_SUPPORTED
321
+ else if (chunk_name == png_sRGB)
322
+ {
323
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
324
+ png_handle_sRGB(png_ptr, info_ptr, png_ptr->push_length);
325
+ }
326
+
327
+ #endif
328
+ #ifdef PNG_READ_iCCP_SUPPORTED
329
+ else if (png_ptr->chunk_name == png_iCCP)
330
+ {
331
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
332
+ png_handle_iCCP(png_ptr, info_ptr, png_ptr->push_length);
333
+ }
334
+
335
+ #endif
336
+ #ifdef PNG_READ_sPLT_SUPPORTED
337
+ else if (chunk_name == png_sPLT)
338
+ {
339
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
340
+ png_handle_sPLT(png_ptr, info_ptr, png_ptr->push_length);
341
+ }
342
+
343
+ #endif
344
+ #ifdef PNG_READ_tRNS_SUPPORTED
345
+ else if (chunk_name == png_tRNS)
346
+ {
347
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
348
+ png_handle_tRNS(png_ptr, info_ptr, png_ptr->push_length);
349
+ }
350
+
351
+ #endif
352
+ #ifdef PNG_READ_bKGD_SUPPORTED
353
+ else if (chunk_name == png_bKGD)
354
+ {
355
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
356
+ png_handle_bKGD(png_ptr, info_ptr, png_ptr->push_length);
357
+ }
358
+
359
+ #endif
360
+ #ifdef PNG_READ_hIST_SUPPORTED
361
+ else if (chunk_name == png_hIST)
362
+ {
363
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
364
+ png_handle_hIST(png_ptr, info_ptr, png_ptr->push_length);
365
+ }
366
+
367
+ #endif
368
+ #ifdef PNG_READ_pHYs_SUPPORTED
369
+ else if (chunk_name == png_pHYs)
370
+ {
371
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
372
+ png_handle_pHYs(png_ptr, info_ptr, png_ptr->push_length);
373
+ }
374
+
375
+ #endif
376
+ #ifdef PNG_READ_oFFs_SUPPORTED
377
+ else if (chunk_name == png_oFFs)
378
+ {
379
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
380
+ png_handle_oFFs(png_ptr, info_ptr, png_ptr->push_length);
381
+ }
382
+ #endif
383
+
384
+ #ifdef PNG_READ_pCAL_SUPPORTED
385
+ else if (chunk_name == png_pCAL)
386
+ {
387
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
388
+ png_handle_pCAL(png_ptr, info_ptr, png_ptr->push_length);
389
+ }
390
+
391
+ #endif
392
+ #ifdef PNG_READ_sCAL_SUPPORTED
393
+ else if (chunk_name == png_sCAL)
394
+ {
395
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
396
+ png_handle_sCAL(png_ptr, info_ptr, png_ptr->push_length);
397
+ }
398
+
399
+ #endif
400
+ #ifdef PNG_READ_tIME_SUPPORTED
401
+ else if (chunk_name == png_tIME)
402
+ {
403
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
404
+ png_handle_tIME(png_ptr, info_ptr, png_ptr->push_length);
405
+ }
406
+
407
+ #endif
408
+ #ifdef PNG_READ_tEXt_SUPPORTED
409
+ else if (chunk_name == png_tEXt)
410
+ {
411
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
412
+ png_handle_tEXt(png_ptr, info_ptr, png_ptr->push_length);
413
+ }
414
+
415
+ #endif
416
+ #ifdef PNG_READ_zTXt_SUPPORTED
417
+ else if (chunk_name == png_zTXt)
418
+ {
419
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
420
+ png_handle_zTXt(png_ptr, info_ptr, png_ptr->push_length);
421
+ }
422
+
423
+ #endif
424
+ #ifdef PNG_READ_iTXt_SUPPORTED
425
+ else if (chunk_name == png_iTXt)
426
+ {
427
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
428
+ png_handle_iTXt(png_ptr, info_ptr, png_ptr->push_length);
429
+ }
430
+ #endif
431
+
432
+ else
433
+ {
434
+ PNG_PUSH_SAVE_BUFFER_IF_FULL
435
+ png_handle_unknown(png_ptr, info_ptr, png_ptr->push_length,
436
+ PNG_HANDLE_CHUNK_AS_DEFAULT);
437
+ }
438
+
439
+ png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER;
440
+ }
441
+
442
+ void /* PRIVATE */
443
+ png_push_crc_skip(png_structrp png_ptr, png_uint_32 skip)
444
+ {
445
+ png_ptr->process_mode = PNG_SKIP_MODE;
446
+ png_ptr->skip_length = skip;
447
+ }
448
+
449
+ void /* PRIVATE */
450
+ png_push_crc_finish(png_structrp png_ptr)
451
+ {
452
+ if (png_ptr->skip_length != 0 && png_ptr->save_buffer_size != 0)
453
+ {
454
+ png_size_t save_size = png_ptr->save_buffer_size;
455
+ png_uint_32 skip_length = png_ptr->skip_length;
456
+
457
+ /* We want the smaller of 'skip_length' and 'save_buffer_size', but
458
+ * they are of different types and we don't know which variable has the
459
+ * fewest bits. Carefully select the smaller and cast it to the type of
460
+ * the larger - this cannot overflow. Do not cast in the following test
461
+ * - it will break on either 16 or 64 bit platforms.
462
+ */
463
+ if (skip_length < save_size)
464
+ save_size = (png_size_t)skip_length;
465
+
466
+ else
467
+ skip_length = (png_uint_32)save_size;
468
+
469
+ png_calculate_crc(png_ptr, png_ptr->save_buffer_ptr, save_size);
470
+
471
+ png_ptr->skip_length -= skip_length;
472
+ png_ptr->buffer_size -= save_size;
473
+ png_ptr->save_buffer_size -= save_size;
474
+ png_ptr->save_buffer_ptr += save_size;
475
+ }
476
+ if (png_ptr->skip_length != 0 && png_ptr->current_buffer_size != 0)
477
+ {
478
+ png_size_t save_size = png_ptr->current_buffer_size;
479
+ png_uint_32 skip_length = png_ptr->skip_length;
480
+
481
+ /* We want the smaller of 'skip_length' and 'current_buffer_size', here,
482
+ * the same problem exists as above and the same solution.
483
+ */
484
+ if (skip_length < save_size)
485
+ save_size = (png_size_t)skip_length;
486
+
487
+ else
488
+ skip_length = (png_uint_32)save_size;
489
+
490
+ png_calculate_crc(png_ptr, png_ptr->current_buffer_ptr, save_size);
491
+
492
+ png_ptr->skip_length -= skip_length;
493
+ png_ptr->buffer_size -= save_size;
494
+ png_ptr->current_buffer_size -= save_size;
495
+ png_ptr->current_buffer_ptr += save_size;
496
+ }
497
+ if (png_ptr->skip_length == 0)
498
+ {
499
+ PNG_PUSH_SAVE_BUFFER_IF_LT(4)
500
+ png_crc_finish(png_ptr, 0);
501
+ png_ptr->process_mode = PNG_READ_CHUNK_MODE;
502
+ }
503
+ }
504
+
505
+ void PNGCBAPI
506
+ png_push_fill_buffer(png_structp png_ptr, png_bytep buffer, png_size_t length)
507
+ {
508
+ png_bytep ptr;
509
+
510
+ if (png_ptr == NULL)
511
+ return;
512
+
513
+ ptr = buffer;
514
+ if (png_ptr->save_buffer_size != 0)
515
+ {
516
+ png_size_t save_size;
517
+
518
+ if (length < png_ptr->save_buffer_size)
519
+ save_size = length;
520
+
521
+ else
522
+ save_size = png_ptr->save_buffer_size;
523
+
524
+ memcpy(ptr, png_ptr->save_buffer_ptr, save_size);
525
+ length -= save_size;
526
+ ptr += save_size;
527
+ png_ptr->buffer_size -= save_size;
528
+ png_ptr->save_buffer_size -= save_size;
529
+ png_ptr->save_buffer_ptr += save_size;
530
+ }
531
+ if (length != 0 && png_ptr->current_buffer_size != 0)
532
+ {
533
+ png_size_t save_size;
534
+
535
+ if (length < png_ptr->current_buffer_size)
536
+ save_size = length;
537
+
538
+ else
539
+ save_size = png_ptr->current_buffer_size;
540
+
541
+ memcpy(ptr, png_ptr->current_buffer_ptr, save_size);
542
+ png_ptr->buffer_size -= save_size;
543
+ png_ptr->current_buffer_size -= save_size;
544
+ png_ptr->current_buffer_ptr += save_size;
545
+ }
546
+ }
547
+
548
+ void /* PRIVATE */
549
+ png_push_save_buffer(png_structrp png_ptr)
550
+ {
551
+ if (png_ptr->save_buffer_size != 0)
552
+ {
553
+ if (png_ptr->save_buffer_ptr != png_ptr->save_buffer)
554
+ {
555
+ png_size_t i, istop;
556
+ png_bytep sp;
557
+ png_bytep dp;
558
+
559
+ istop = png_ptr->save_buffer_size;
560
+ for (i = 0, sp = png_ptr->save_buffer_ptr, dp = png_ptr->save_buffer;
561
+ i < istop; i++, sp++, dp++)
562
+ {
563
+ *dp = *sp;
564
+ }
565
+ }
566
+ }
567
+ if (png_ptr->save_buffer_size + png_ptr->current_buffer_size >
568
+ png_ptr->save_buffer_max)
569
+ {
570
+ png_size_t new_max;
571
+ png_bytep old_buffer;
572
+
573
+ if (png_ptr->save_buffer_size > PNG_SIZE_MAX -
574
+ (png_ptr->current_buffer_size + 256))
575
+ {
576
+ png_error(png_ptr, "Potential overflow of save_buffer");
577
+ }
578
+
579
+ new_max = png_ptr->save_buffer_size + png_ptr->current_buffer_size + 256;
580
+ old_buffer = png_ptr->save_buffer;
581
+ png_ptr->save_buffer = (png_bytep)png_malloc_warn(png_ptr,
582
+ (png_size_t)new_max);
583
+
584
+ if (png_ptr->save_buffer == NULL)
585
+ {
586
+ png_free(png_ptr, old_buffer);
587
+ old_buffer = NULL;
588
+ png_error(png_ptr, "Insufficient memory for save_buffer");
589
+ }
590
+
591
+ memcpy(png_ptr->save_buffer, old_buffer, png_ptr->save_buffer_size);
592
+ png_free(png_ptr, old_buffer);
593
+ old_buffer = NULL;
594
+ png_ptr->save_buffer_max = new_max;
595
+ }
596
+ if (png_ptr->current_buffer_size)
597
+ {
598
+ memcpy(png_ptr->save_buffer + png_ptr->save_buffer_size,
599
+ png_ptr->current_buffer_ptr, png_ptr->current_buffer_size);
600
+ png_ptr->save_buffer_size += png_ptr->current_buffer_size;
601
+ png_ptr->current_buffer_size = 0;
602
+ }
603
+ png_ptr->save_buffer_ptr = png_ptr->save_buffer;
604
+ png_ptr->buffer_size = 0;
605
+ }
606
+
607
+ void /* PRIVATE */
608
+ png_push_restore_buffer(png_structrp png_ptr, png_bytep buffer,
609
+ png_size_t buffer_length)
610
+ {
611
+ png_ptr->current_buffer = buffer;
612
+ png_ptr->current_buffer_size = buffer_length;
613
+ png_ptr->buffer_size = buffer_length + png_ptr->save_buffer_size;
614
+ png_ptr->current_buffer_ptr = png_ptr->current_buffer;
615
+ }
616
+
617
+ void /* PRIVATE */
618
+ png_push_read_IDAT(png_structrp png_ptr)
619
+ {
620
+ if ((png_ptr->mode & PNG_HAVE_CHUNK_HEADER) == 0)
621
+ {
622
+ png_byte chunk_length[4];
623
+ png_byte chunk_tag[4];
624
+
625
+ /* TODO: this code can be commoned up with the same code in push_read */
626
+ PNG_PUSH_SAVE_BUFFER_IF_LT(8)
627
+ png_push_fill_buffer(png_ptr, chunk_length, 4);
628
+ png_ptr->push_length = png_get_uint_31(png_ptr, chunk_length);
629
+ png_reset_crc(png_ptr);
630
+ png_crc_read(png_ptr, chunk_tag, 4);
631
+ png_ptr->chunk_name = PNG_CHUNK_FROM_STRING(chunk_tag);
632
+ png_ptr->mode |= PNG_HAVE_CHUNK_HEADER;
633
+
634
+ if (png_ptr->chunk_name != png_IDAT)
635
+ {
636
+ png_ptr->process_mode = PNG_READ_CHUNK_MODE;
637
+
638
+ if ((png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED) == 0)
639
+ png_error(png_ptr, "Not enough compressed data");
640
+
641
+ return;
642
+ }
643
+
644
+ png_ptr->idat_size = png_ptr->push_length;
645
+ }
646
+
647
+ if (png_ptr->idat_size != 0 && png_ptr->save_buffer_size != 0)
648
+ {
649
+ png_size_t save_size = png_ptr->save_buffer_size;
650
+ png_uint_32 idat_size = png_ptr->idat_size;
651
+
652
+ /* We want the smaller of 'idat_size' and 'current_buffer_size', but they
653
+ * are of different types and we don't know which variable has the fewest
654
+ * bits. Carefully select the smaller and cast it to the type of the
655
+ * larger - this cannot overflow. Do not cast in the following test - it
656
+ * will break on either 16 or 64 bit platforms.
657
+ */
658
+ if (idat_size < save_size)
659
+ save_size = (png_size_t)idat_size;
660
+
661
+ else
662
+ idat_size = (png_uint_32)save_size;
663
+
664
+ png_calculate_crc(png_ptr, png_ptr->save_buffer_ptr, save_size);
665
+
666
+ png_process_IDAT_data(png_ptr, png_ptr->save_buffer_ptr, save_size);
667
+
668
+ png_ptr->idat_size -= idat_size;
669
+ png_ptr->buffer_size -= save_size;
670
+ png_ptr->save_buffer_size -= save_size;
671
+ png_ptr->save_buffer_ptr += save_size;
672
+ }
673
+
674
+ if (png_ptr->idat_size != 0 && png_ptr->current_buffer_size != 0)
675
+ {
676
+ png_size_t save_size = png_ptr->current_buffer_size;
677
+ png_uint_32 idat_size = png_ptr->idat_size;
678
+
679
+ /* We want the smaller of 'idat_size' and 'current_buffer_size', but they
680
+ * are of different types and we don't know which variable has the fewest
681
+ * bits. Carefully select the smaller and cast it to the type of the
682
+ * larger - this cannot overflow.
683
+ */
684
+ if (idat_size < save_size)
685
+ save_size = (png_size_t)idat_size;
686
+
687
+ else
688
+ idat_size = (png_uint_32)save_size;
689
+
690
+ png_calculate_crc(png_ptr, png_ptr->current_buffer_ptr, save_size);
691
+
692
+ png_process_IDAT_data(png_ptr, png_ptr->current_buffer_ptr, save_size);
693
+
694
+ png_ptr->idat_size -= idat_size;
695
+ png_ptr->buffer_size -= save_size;
696
+ png_ptr->current_buffer_size -= save_size;
697
+ png_ptr->current_buffer_ptr += save_size;
698
+ }
699
+ if (png_ptr->idat_size == 0)
700
+ {
701
+ PNG_PUSH_SAVE_BUFFER_IF_LT(4)
702
+ png_crc_finish(png_ptr, 0);
703
+ png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER;
704
+ png_ptr->mode |= PNG_AFTER_IDAT;
705
+ png_ptr->zowner = 0;
706
+ }
707
+ }
708
+
709
+ void /* PRIVATE */
710
+ png_process_IDAT_data(png_structrp png_ptr, png_bytep buffer,
711
+ png_size_t buffer_length)
712
+ {
713
+ /* The caller checks for a non-zero buffer length. */
714
+ if (!(buffer_length > 0) || buffer == NULL)
715
+ png_error(png_ptr, "No IDAT data (internal error)");
716
+
717
+ /* This routine must process all the data it has been given
718
+ * before returning, calling the row callback as required to
719
+ * handle the uncompressed results.
720
+ */
721
+ png_ptr->zstream.next_in = buffer;
722
+ /* TODO: WARNING: TRUNCATION ERROR: DANGER WILL ROBINSON: */
723
+ png_ptr->zstream.avail_in = (uInt)buffer_length;
724
+
725
+ /* Keep going until the decompressed data is all processed
726
+ * or the stream marked as finished.
727
+ */
728
+ while (png_ptr->zstream.avail_in > 0 &&
729
+ !(png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED))
730
+ {
731
+ int ret;
732
+
733
+ /* We have data for zlib, but we must check that zlib
734
+ * has someplace to put the results. It doesn't matter
735
+ * if we don't expect any results -- it may be the input
736
+ * data is just the LZ end code.
737
+ */
738
+ if (!(png_ptr->zstream.avail_out > 0))
739
+ {
740
+ /* TODO: WARNING: TRUNCATION ERROR: DANGER WILL ROBINSON: */
741
+ png_ptr->zstream.avail_out = (uInt)(PNG_ROWBYTES(png_ptr->pixel_depth,
742
+ png_ptr->iwidth) + 1);
743
+
744
+ png_ptr->zstream.next_out = png_ptr->row_buf;
745
+ }
746
+
747
+ /* Using Z_SYNC_FLUSH here means that an unterminated
748
+ * LZ stream (a stream with a missing end code) can still
749
+ * be handled, otherwise (Z_NO_FLUSH) a future zlib
750
+ * implementation might defer output and therefore
751
+ * change the current behavior (see comments in inflate.c
752
+ * for why this doesn't happen at present with zlib 1.2.5).
753
+ */
754
+ ret = inflate(&png_ptr->zstream, Z_SYNC_FLUSH);
755
+
756
+ /* Check for any failure before proceeding. */
757
+ if (ret != Z_OK && ret != Z_STREAM_END)
758
+ {
759
+ /* Terminate the decompression. */
760
+ png_ptr->flags |= PNG_FLAG_ZSTREAM_ENDED;
761
+ png_ptr->zowner = 0;
762
+
763
+ /* This may be a truncated stream (missing or
764
+ * damaged end code). Treat that as a warning.
765
+ */
766
+ if (png_ptr->row_number >= png_ptr->num_rows ||
767
+ png_ptr->pass > 6)
768
+ png_warning(png_ptr, "Truncated compressed data in IDAT");
769
+
770
+ else
771
+ png_error(png_ptr, "Decompression error in IDAT");
772
+
773
+ /* Skip the check on unprocessed input */
774
+ return;
775
+ }
776
+
777
+ /* Did inflate output any data? */
778
+ if (png_ptr->zstream.next_out != png_ptr->row_buf)
779
+ {
780
+ /* Is this unexpected data after the last row?
781
+ * If it is, artificially terminate the LZ output
782
+ * here.
783
+ */
784
+ if (png_ptr->row_number >= png_ptr->num_rows ||
785
+ png_ptr->pass > 6)
786
+ {
787
+ /* Extra data. */
788
+ png_warning(png_ptr, "Extra compressed data in IDAT");
789
+ png_ptr->flags |= PNG_FLAG_ZSTREAM_ENDED;
790
+ png_ptr->zowner = 0;
791
+
792
+ /* Do no more processing; skip the unprocessed
793
+ * input check below.
794
+ */
795
+ return;
796
+ }
797
+
798
+ /* Do we have a complete row? */
799
+ if (png_ptr->zstream.avail_out == 0)
800
+ png_push_process_row(png_ptr);
801
+ }
802
+
803
+ /* And check for the end of the stream. */
804
+ if (ret == Z_STREAM_END)
805
+ png_ptr->flags |= PNG_FLAG_ZSTREAM_ENDED;
806
+ }
807
+
808
+ /* All the data should have been processed, if anything
809
+ * is left at this point we have bytes of IDAT data
810
+ * after the zlib end code.
811
+ */
812
+ if (png_ptr->zstream.avail_in > 0)
813
+ png_warning(png_ptr, "Extra compression data in IDAT");
814
+ }
815
+
816
+ void /* PRIVATE */
817
+ png_push_process_row(png_structrp png_ptr)
818
+ {
819
+ /* 1.5.6: row_info moved out of png_struct to a local here. */
820
+ png_row_info row_info;
821
+
822
+ row_info.width = png_ptr->iwidth; /* NOTE: width of current interlaced row */
823
+ row_info.color_type = png_ptr->color_type;
824
+ row_info.bit_depth = png_ptr->bit_depth;
825
+ row_info.channels = png_ptr->channels;
826
+ row_info.pixel_depth = png_ptr->pixel_depth;
827
+ row_info.rowbytes = PNG_ROWBYTES(row_info.pixel_depth, row_info.width);
828
+
829
+ if (png_ptr->row_buf[0] > PNG_FILTER_VALUE_NONE)
830
+ {
831
+ if (png_ptr->row_buf[0] < PNG_FILTER_VALUE_LAST)
832
+ png_read_filter_row(png_ptr, &row_info, png_ptr->row_buf + 1,
833
+ png_ptr->prev_row + 1, png_ptr->row_buf[0]);
834
+ else
835
+ png_error(png_ptr, "bad adaptive filter value");
836
+ }
837
+
838
+ /* libpng 1.5.6: the following line was copying png_ptr->rowbytes before
839
+ * 1.5.6, while the buffer really is this big in current versions of libpng
840
+ * it may not be in the future, so this was changed just to copy the
841
+ * interlaced row count:
842
+ */
843
+ memcpy(png_ptr->prev_row, png_ptr->row_buf, row_info.rowbytes + 1);
844
+
845
+ #ifdef PNG_READ_TRANSFORMS_SUPPORTED
846
+ if (png_ptr->transformations != 0)
847
+ png_do_read_transformations(png_ptr, &row_info);
848
+ #endif
849
+
850
+ /* The transformed pixel depth should match the depth now in row_info. */
851
+ if (png_ptr->transformed_pixel_depth == 0)
852
+ {
853
+ png_ptr->transformed_pixel_depth = row_info.pixel_depth;
854
+ if (row_info.pixel_depth > png_ptr->maximum_pixel_depth)
855
+ png_error(png_ptr, "progressive row overflow");
856
+ }
857
+
858
+ else if (png_ptr->transformed_pixel_depth != row_info.pixel_depth)
859
+ png_error(png_ptr, "internal progressive row size calculation error");
860
+
861
+
862
+ #ifdef PNG_READ_INTERLACING_SUPPORTED
863
+ /* Expand interlaced rows to full size */
864
+ if (png_ptr->interlaced != 0 &&
865
+ (png_ptr->transformations & PNG_INTERLACE) != 0)
866
+ {
867
+ if (png_ptr->pass < 6)
868
+ png_do_read_interlace(&row_info, png_ptr->row_buf + 1, png_ptr->pass,
869
+ png_ptr->transformations);
870
+
871
+ switch (png_ptr->pass)
872
+ {
873
+ case 0:
874
+ {
875
+ int i;
876
+ for (i = 0; i < 8 && png_ptr->pass == 0; i++)
877
+ {
878
+ png_push_have_row(png_ptr, png_ptr->row_buf + 1);
879
+ png_read_push_finish_row(png_ptr); /* Updates png_ptr->pass */
880
+ }
881
+
882
+ if (png_ptr->pass == 2) /* Pass 1 might be empty */
883
+ {
884
+ for (i = 0; i < 4 && png_ptr->pass == 2; i++)
885
+ {
886
+ png_push_have_row(png_ptr, NULL);
887
+ png_read_push_finish_row(png_ptr);
888
+ }
889
+ }
890
+
891
+ if (png_ptr->pass == 4 && png_ptr->height <= 4)
892
+ {
893
+ for (i = 0; i < 2 && png_ptr->pass == 4; i++)
894
+ {
895
+ png_push_have_row(png_ptr, NULL);
896
+ png_read_push_finish_row(png_ptr);
897
+ }
898
+ }
899
+
900
+ if (png_ptr->pass == 6 && png_ptr->height <= 4)
901
+ {
902
+ png_push_have_row(png_ptr, NULL);
903
+ png_read_push_finish_row(png_ptr);
904
+ }
905
+
906
+ break;
907
+ }
908
+
909
+ case 1:
910
+ {
911
+ int i;
912
+ for (i = 0; i < 8 && png_ptr->pass == 1; i++)
913
+ {
914
+ png_push_have_row(png_ptr, png_ptr->row_buf + 1);
915
+ png_read_push_finish_row(png_ptr);
916
+ }
917
+
918
+ if (png_ptr->pass == 2) /* Skip top 4 generated rows */
919
+ {
920
+ for (i = 0; i < 4 && png_ptr->pass == 2; i++)
921
+ {
922
+ png_push_have_row(png_ptr, NULL);
923
+ png_read_push_finish_row(png_ptr);
924
+ }
925
+ }
926
+
927
+ break;
928
+ }
929
+
930
+ case 2:
931
+ {
932
+ int i;
933
+
934
+ for (i = 0; i < 4 && png_ptr->pass == 2; i++)
935
+ {
936
+ png_push_have_row(png_ptr, png_ptr->row_buf + 1);
937
+ png_read_push_finish_row(png_ptr);
938
+ }
939
+
940
+ for (i = 0; i < 4 && png_ptr->pass == 2; i++)
941
+ {
942
+ png_push_have_row(png_ptr, NULL);
943
+ png_read_push_finish_row(png_ptr);
944
+ }
945
+
946
+ if (png_ptr->pass == 4) /* Pass 3 might be empty */
947
+ {
948
+ for (i = 0; i < 2 && png_ptr->pass == 4; i++)
949
+ {
950
+ png_push_have_row(png_ptr, NULL);
951
+ png_read_push_finish_row(png_ptr);
952
+ }
953
+ }
954
+
955
+ break;
956
+ }
957
+
958
+ case 3:
959
+ {
960
+ int i;
961
+
962
+ for (i = 0; i < 4 && png_ptr->pass == 3; i++)
963
+ {
964
+ png_push_have_row(png_ptr, png_ptr->row_buf + 1);
965
+ png_read_push_finish_row(png_ptr);
966
+ }
967
+
968
+ if (png_ptr->pass == 4) /* Skip top two generated rows */
969
+ {
970
+ for (i = 0; i < 2 && png_ptr->pass == 4; i++)
971
+ {
972
+ png_push_have_row(png_ptr, NULL);
973
+ png_read_push_finish_row(png_ptr);
974
+ }
975
+ }
976
+
977
+ break;
978
+ }
979
+
980
+ case 4:
981
+ {
982
+ int i;
983
+
984
+ for (i = 0; i < 2 && png_ptr->pass == 4; i++)
985
+ {
986
+ png_push_have_row(png_ptr, png_ptr->row_buf + 1);
987
+ png_read_push_finish_row(png_ptr);
988
+ }
989
+
990
+ for (i = 0; i < 2 && png_ptr->pass == 4; i++)
991
+ {
992
+ png_push_have_row(png_ptr, NULL);
993
+ png_read_push_finish_row(png_ptr);
994
+ }
995
+
996
+ if (png_ptr->pass == 6) /* Pass 5 might be empty */
997
+ {
998
+ png_push_have_row(png_ptr, NULL);
999
+ png_read_push_finish_row(png_ptr);
1000
+ }
1001
+
1002
+ break;
1003
+ }
1004
+
1005
+ case 5:
1006
+ {
1007
+ int i;
1008
+
1009
+ for (i = 0; i < 2 && png_ptr->pass == 5; i++)
1010
+ {
1011
+ png_push_have_row(png_ptr, png_ptr->row_buf + 1);
1012
+ png_read_push_finish_row(png_ptr);
1013
+ }
1014
+
1015
+ if (png_ptr->pass == 6) /* Skip top generated row */
1016
+ {
1017
+ png_push_have_row(png_ptr, NULL);
1018
+ png_read_push_finish_row(png_ptr);
1019
+ }
1020
+
1021
+ break;
1022
+ }
1023
+
1024
+ default:
1025
+ case 6:
1026
+ {
1027
+ png_push_have_row(png_ptr, png_ptr->row_buf + 1);
1028
+ png_read_push_finish_row(png_ptr);
1029
+
1030
+ if (png_ptr->pass != 6)
1031
+ break;
1032
+
1033
+ png_push_have_row(png_ptr, NULL);
1034
+ png_read_push_finish_row(png_ptr);
1035
+ }
1036
+ }
1037
+ }
1038
+ else
1039
+ {
1040
+ png_push_have_row(png_ptr, png_ptr->row_buf + 1);
1041
+ png_read_push_finish_row(png_ptr);
1042
+ }
1043
+ }
1044
+
1045
+ void /* PRIVATE */
1046
+ png_read_push_finish_row(png_structrp png_ptr)
1047
+ {
1048
+ /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */
1049
+
1050
+ /* Start of interlace block */
1051
+ static PNG_CONST png_byte png_pass_start[] = {0, 4, 0, 2, 0, 1, 0};
1052
+
1053
+ /* Offset to next interlace block */
1054
+ static PNG_CONST png_byte png_pass_inc[] = {8, 8, 4, 4, 2, 2, 1};
1055
+
1056
+ /* Start of interlace block in the y direction */
1057
+ static PNG_CONST png_byte png_pass_ystart[] = {0, 0, 4, 0, 2, 0, 1};
1058
+
1059
+ /* Offset to next interlace block in the y direction */
1060
+ static PNG_CONST png_byte png_pass_yinc[] = {8, 8, 8, 4, 4, 2, 2};
1061
+
1062
+ /* Height of interlace block. This is not currently used - if you need
1063
+ * it, uncomment it here and in png.h
1064
+ static PNG_CONST png_byte png_pass_height[] = {8, 8, 4, 4, 2, 2, 1};
1065
+ */
1066
+ #endif
1067
+
1068
+ png_ptr->row_number++;
1069
+ if (png_ptr->row_number < png_ptr->num_rows)
1070
+ return;
1071
+
1072
+ if (png_ptr->interlaced != 0)
1073
+ {
1074
+ png_ptr->row_number = 0;
1075
+ memset(png_ptr->prev_row, 0, png_ptr->rowbytes + 1);
1076
+
1077
+ do
1078
+ {
1079
+ png_ptr->pass++;
1080
+ if ((png_ptr->pass == 1 && png_ptr->width < 5) ||
1081
+ (png_ptr->pass == 3 && png_ptr->width < 3) ||
1082
+ (png_ptr->pass == 5 && png_ptr->width < 2))
1083
+ png_ptr->pass++;
1084
+
1085
+ if (png_ptr->pass > 7)
1086
+ png_ptr->pass--;
1087
+
1088
+ if (png_ptr->pass >= 7)
1089
+ break;
1090
+
1091
+ png_ptr->iwidth = (png_ptr->width +
1092
+ png_pass_inc[png_ptr->pass] - 1 -
1093
+ png_pass_start[png_ptr->pass]) /
1094
+ png_pass_inc[png_ptr->pass];
1095
+
1096
+ if ((png_ptr->transformations & PNG_INTERLACE) != 0)
1097
+ break;
1098
+
1099
+ png_ptr->num_rows = (png_ptr->height +
1100
+ png_pass_yinc[png_ptr->pass] - 1 -
1101
+ png_pass_ystart[png_ptr->pass]) /
1102
+ png_pass_yinc[png_ptr->pass];
1103
+
1104
+ } while (png_ptr->iwidth == 0 || png_ptr->num_rows == 0);
1105
+ }
1106
+ }
1107
+
1108
+ void /* PRIVATE */
1109
+ png_push_have_info(png_structrp png_ptr, png_inforp info_ptr)
1110
+ {
1111
+ if (png_ptr->info_fn != NULL)
1112
+ (*(png_ptr->info_fn))(png_ptr, info_ptr);
1113
+ }
1114
+
1115
+ void /* PRIVATE */
1116
+ png_push_have_end(png_structrp png_ptr, png_inforp info_ptr)
1117
+ {
1118
+ if (png_ptr->end_fn != NULL)
1119
+ (*(png_ptr->end_fn))(png_ptr, info_ptr);
1120
+ }
1121
+
1122
+ void /* PRIVATE */
1123
+ png_push_have_row(png_structrp png_ptr, png_bytep row)
1124
+ {
1125
+ if (png_ptr->row_fn != NULL)
1126
+ (*(png_ptr->row_fn))(png_ptr, row, png_ptr->row_number,
1127
+ (int)png_ptr->pass);
1128
+ }
1129
+
1130
+ void PNGAPI
1131
+ png_progressive_combine_row(png_const_structrp png_ptr, png_bytep old_row,
1132
+ png_const_bytep new_row)
1133
+ {
1134
+ if (png_ptr == NULL)
1135
+ return;
1136
+
1137
+ /* new_row is a flag here - if it is NULL then the app callback was called
1138
+ * from an empty row (see the calls to png_struct::row_fn below), otherwise
1139
+ * it must be png_ptr->row_buf+1
1140
+ */
1141
+ if (new_row != NULL)
1142
+ png_combine_row(png_ptr, old_row, 1/*blocky display*/);
1143
+ }
1144
+
1145
+ void PNGAPI
1146
+ png_set_progressive_read_fn(png_structrp png_ptr, png_voidp progressive_ptr,
1147
+ png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn,
1148
+ png_progressive_end_ptr end_fn)
1149
+ {
1150
+ if (png_ptr == NULL)
1151
+ return;
1152
+
1153
+ png_ptr->info_fn = info_fn;
1154
+ png_ptr->row_fn = row_fn;
1155
+ png_ptr->end_fn = end_fn;
1156
+
1157
+ png_set_read_fn(png_ptr, progressive_ptr, png_push_fill_buffer);
1158
+ }
1159
+
1160
+ png_voidp PNGAPI
1161
+ png_get_progressive_ptr(png_const_structrp png_ptr)
1162
+ {
1163
+ if (png_ptr == NULL)
1164
+ return (NULL);
1165
+
1166
+ return png_ptr->io_ptr;
1167
+ }
1168
+ #endif /* PROGRESSIVE_READ */