lightdrift-libraw 1.0.0-alpha.1

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 (487) hide show
  1. package/CHANGELOG.md +374 -0
  2. package/LICENSE +21 -0
  3. package/README.md +757 -0
  4. package/binding.gyp +38 -0
  5. package/deps/LibRaw-Source/LibRaw-0.21.4/.clang-format +4 -0
  6. package/deps/LibRaw-Source/LibRaw-0.21.4/COPYRIGHT +27 -0
  7. package/deps/LibRaw-Source/LibRaw-0.21.4/Changelog.txt +2802 -0
  8. package/deps/LibRaw-Source/LibRaw-0.21.4/DEVELOPER-NOTES +20 -0
  9. package/deps/LibRaw-Source/LibRaw-0.21.4/GoPro/dng-sdk-1_4-allow-VC5-validate.diff +21 -0
  10. package/deps/LibRaw-Source/LibRaw-0.21.4/GoPro/dng-sdk-1_6-hide-ccVc5-definitiion.diff +15 -0
  11. package/deps/LibRaw-Source/LibRaw-0.21.4/GoPro/dng-sdk-allow-VC5-validate.diff +21 -0
  12. package/deps/LibRaw-Source/LibRaw-0.21.4/GoPro/gpr_read_image.cpp.diff +29 -0
  13. package/deps/LibRaw-Source/LibRaw-0.21.4/GoPro/gpr_read_image.h.diff +12 -0
  14. package/deps/LibRaw-Source/LibRaw-0.21.4/INSTALL +51 -0
  15. package/deps/LibRaw-Source/LibRaw-0.21.4/LICENSE.CDDL +340 -0
  16. package/deps/LibRaw-Source/LibRaw-0.21.4/LICENSE.LGPL +458 -0
  17. package/deps/LibRaw-Source/LibRaw-0.21.4/LibRaw.pro +19 -0
  18. package/deps/LibRaw-Source/LibRaw-0.21.4/LibRaw.sln +123 -0
  19. package/deps/LibRaw-Source/LibRaw-0.21.4/Makefile.am +140 -0
  20. package/deps/LibRaw-Source/LibRaw-0.21.4/Makefile.devel.nopp +230 -0
  21. package/deps/LibRaw-Source/LibRaw-0.21.4/Makefile.devel.noppr2i +227 -0
  22. package/deps/LibRaw-Source/LibRaw-0.21.4/Makefile.dist +501 -0
  23. package/deps/LibRaw-Source/LibRaw-0.21.4/Makefile.in +1849 -0
  24. package/deps/LibRaw-Source/LibRaw-0.21.4/Makefile.mingw +297 -0
  25. package/deps/LibRaw-Source/LibRaw-0.21.4/Makefile.msvc +628 -0
  26. package/deps/LibRaw-Source/LibRaw-0.21.4/README.DNGSDK.txt +43 -0
  27. package/deps/LibRaw-Source/LibRaw-0.21.4/README.GoPro.txt +112 -0
  28. package/deps/LibRaw-Source/LibRaw-0.21.4/README.RawSpeed.txt +62 -0
  29. package/deps/LibRaw-Source/LibRaw-0.21.4/README.cmake +9 -0
  30. package/deps/LibRaw-Source/LibRaw-0.21.4/README.demosaic-packs +17 -0
  31. package/deps/LibRaw-Source/LibRaw-0.21.4/README.md +106 -0
  32. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed/rawspeed.cpucount-unix.patch +15 -0
  33. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed/rawspeed.qmake-pro-files.patch +84 -0
  34. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed/rawspeed.samsung-decoder.patch +39 -0
  35. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed/rawspeed.uncompressed-color-dng.patch +13 -0
  36. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed/rawspeed.win32-dll.patch +186 -0
  37. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed/rawspeed_xmldata.cpp +4115 -0
  38. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/README.md +69 -0
  39. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/patches/01.CameraMeta-extensibility.patch +13 -0
  40. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/patches/02.Makernotes-processing.patch +36 -0
  41. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/patches/03.remove-limits-and-logging.patch +245 -0
  42. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/patches/04.clang-cl-compatibility.patch +37 -0
  43. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/rawspeed3_c_api/rawspeed3_capi.cpp +251 -0
  44. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/rawspeed3_c_api/rawspeed3_capi.h +83 -0
  45. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/rawspeed3_c_api/rawspeed3_capi_test.cpp +71 -0
  46. package/deps/LibRaw-Source/LibRaw-0.21.4/RawSpeed3/rawspeed3_c_api/rsxml2c.sh +5 -0
  47. package/deps/LibRaw-Source/LibRaw-0.21.4/aclocal.m4 +1446 -0
  48. package/deps/LibRaw-Source/LibRaw-0.21.4/autom4te.cache/output.0 +19332 -0
  49. package/deps/LibRaw-Source/LibRaw-0.21.4/autom4te.cache/output.1 +19332 -0
  50. package/deps/LibRaw-Source/LibRaw-0.21.4/autom4te.cache/output.2 +19332 -0
  51. package/deps/LibRaw-Source/LibRaw-0.21.4/autom4te.cache/requests +544 -0
  52. package/deps/LibRaw-Source/LibRaw-0.21.4/autom4te.cache/traces.0 +3028 -0
  53. package/deps/LibRaw-Source/LibRaw-0.21.4/autom4te.cache/traces.1 +665 -0
  54. package/deps/LibRaw-Source/LibRaw-0.21.4/autom4te.cache/traces.2 +3028 -0
  55. package/deps/LibRaw-Source/LibRaw-0.21.4/bin/.keep_me +2 -0
  56. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/4channels.pro +5 -0
  57. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/4channels.vcxproj +145 -0
  58. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/4channels.vcxproj.filters +18 -0
  59. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/dcraw_emu.pro +6 -0
  60. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/dcraw_emu.vcxproj +145 -0
  61. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/dcraw_emu.vcxproj.filters +18 -0
  62. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/dcraw_half.pro +6 -0
  63. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/dcraw_half.vcxproj +145 -0
  64. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/dcraw_half.vcxproj.filters +18 -0
  65. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/half_mt.pro +10 -0
  66. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/libraw-common-lib.pro +28 -0
  67. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/libraw-common.pro +8 -0
  68. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/libraw.pro +70 -0
  69. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/libraw.vcxproj +234 -0
  70. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/libraw.vcxproj.filters +295 -0
  71. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/mem_image.pro +6 -0
  72. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/mem_image.vcxproj +145 -0
  73. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/mem_image.vcxproj.filters +18 -0
  74. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/multirender_test.pro +6 -0
  75. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/multirender_test.vcxproj +145 -0
  76. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/multirender_test.vcxproj.filters +18 -0
  77. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/openbayer_sample.pro +6 -0
  78. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/openbayer_sample.vcxproj +145 -0
  79. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/openbayer_sample.vcxproj.filters +18 -0
  80. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/postprocessing_benchmark.pro +4 -0
  81. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/postprocessing_benchmark.vcxproj +145 -0
  82. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/postprocessing_benchmark.vcxproj.filters +18 -0
  83. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/raw-identify.pro +6 -0
  84. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/raw-identify.vcxproj +145 -0
  85. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/raw-identify.vcxproj.filters +18 -0
  86. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/rawtextdump.pro +6 -0
  87. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/rawtextdump.vcxproj +145 -0
  88. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/rawtextdump.vcxproj.filters +18 -0
  89. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/simple_dcraw.pro +6 -0
  90. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/simple_dcraw.vcxproj +145 -0
  91. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/simple_dcraw.vcxproj.filters +18 -0
  92. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/unprocessed_raw.pro +6 -0
  93. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/unprocessed_raw.vcxproj +145 -0
  94. package/deps/LibRaw-Source/LibRaw-0.21.4/buildfiles/unprocessed_raw.vcxproj.filters +18 -0
  95. package/deps/LibRaw-Source/LibRaw-0.21.4/compile +347 -0
  96. package/deps/LibRaw-Source/LibRaw-0.21.4/config.guess +1433 -0
  97. package/deps/LibRaw-Source/LibRaw-0.21.4/config.sub +1804 -0
  98. package/deps/LibRaw-Source/LibRaw-0.21.4/configure +19332 -0
  99. package/deps/LibRaw-Source/LibRaw-0.21.4/configure.ac +153 -0
  100. package/deps/LibRaw-Source/LibRaw-0.21.4/depcomp +791 -0
  101. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/API-C.html +187 -0
  102. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/API-CXX.html +881 -0
  103. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/API-datastruct.html +1341 -0
  104. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/API-notes.html +305 -0
  105. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/API-overview.html +66 -0
  106. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/Install-LibRaw.html +124 -0
  107. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/Samples-LibRaw.html +213 -0
  108. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/Why-LibRaw.html +65 -0
  109. package/deps/LibRaw-Source/LibRaw-0.21.4/doc/index.html +38 -0
  110. package/deps/LibRaw-Source/LibRaw-0.21.4/install-sh +501 -0
  111. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/dcraw_defs.h +66 -0
  112. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/dcraw_fileio_defs.h +25 -0
  113. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/defines.h +193 -0
  114. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/dmp_include.h +27 -0
  115. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/libraw_cameraids.h +320 -0
  116. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/libraw_cxx_defs.h +133 -0
  117. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/libraw_internal_funcs.h +412 -0
  118. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/var_defines.h +215 -0
  119. package/deps/LibRaw-Source/LibRaw-0.21.4/internal/x3f_tools.h +539 -0
  120. package/deps/LibRaw-Source/LibRaw-0.21.4/lib/Makefile +3 -0
  121. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw/libraw.h +534 -0
  122. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw/libraw_alloc.h +148 -0
  123. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw/libraw_const.h +814 -0
  124. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw/libraw_datastream.h +410 -0
  125. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw/libraw_internal.h +341 -0
  126. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw/libraw_types.h +1175 -0
  127. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw/libraw_version.h +63 -0
  128. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw.pc.in +12 -0
  129. package/deps/LibRaw-Source/LibRaw-0.21.4/libraw_r.pc.in +12 -0
  130. package/deps/LibRaw-Source/LibRaw-0.21.4/ltmain.sh +11147 -0
  131. package/deps/LibRaw-Source/LibRaw-0.21.4/m4/ax_openmp.m4 +99 -0
  132. package/deps/LibRaw-Source/LibRaw-0.21.4/m4/libtool.m4 +8369 -0
  133. package/deps/LibRaw-Source/LibRaw-0.21.4/m4/ltoptions.m4 +437 -0
  134. package/deps/LibRaw-Source/LibRaw-0.21.4/m4/ltsugar.m4 +124 -0
  135. package/deps/LibRaw-Source/LibRaw-0.21.4/m4/ltversion.m4 +23 -0
  136. package/deps/LibRaw-Source/LibRaw-0.21.4/m4/lt~obsolete.m4 +99 -0
  137. package/deps/LibRaw-Source/LibRaw-0.21.4/missing +215 -0
  138. package/deps/LibRaw-Source/LibRaw-0.21.4/object/.keep_me +0 -0
  139. package/deps/LibRaw-Source/LibRaw-0.21.4/rsxml2c.sh +6 -0
  140. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/4channels.cpp +174 -0
  141. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/Makefile +2 -0
  142. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/dcraw_emu.cpp +670 -0
  143. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/dcraw_half.c +78 -0
  144. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/half_mt.c +178 -0
  145. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/half_mt_win32.c +212 -0
  146. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/mem_image_sample.cpp +282 -0
  147. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/multirender_test.cpp +107 -0
  148. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/openbayer_sample.cpp +65 -0
  149. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/postprocessing_benchmark.cpp +223 -0
  150. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/raw-identify.cpp +743 -0
  151. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/rawtextdump.cpp +144 -0
  152. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/simple_dcraw.cpp +217 -0
  153. package/deps/LibRaw-Source/LibRaw-0.21.4/samples/unprocessed_raw.cpp +319 -0
  154. package/deps/LibRaw-Source/LibRaw-0.21.4/shlib-version.sh +11 -0
  155. package/deps/LibRaw-Source/LibRaw-0.21.4/src/Makefile +2 -0
  156. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/canon_600.cpp +225 -0
  157. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/crx.cpp +2781 -0
  158. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/decoders_dcraw.cpp +1816 -0
  159. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/decoders_libraw.cpp +873 -0
  160. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/decoders_libraw_dcrdefs.cpp +411 -0
  161. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/dng.cpp +284 -0
  162. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/fp_dng.cpp +689 -0
  163. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/fuji_compressed.cpp +1210 -0
  164. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/generic.cpp +101 -0
  165. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/kodak_decoders.cpp +524 -0
  166. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/load_mfbacks.cpp +936 -0
  167. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/smal.cpp +181 -0
  168. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/unpack.cpp +508 -0
  169. package/deps/LibRaw-Source/LibRaw-0.21.4/src/decoders/unpack_thumb.cpp +405 -0
  170. package/deps/LibRaw-Source/LibRaw-0.21.4/src/demosaic/aahd_demosaic.cpp +781 -0
  171. package/deps/LibRaw-Source/LibRaw-0.21.4/src/demosaic/ahd_demosaic.cpp +355 -0
  172. package/deps/LibRaw-Source/LibRaw-0.21.4/src/demosaic/dcb_demosaic.cpp +900 -0
  173. package/deps/LibRaw-Source/LibRaw-0.21.4/src/demosaic/dht_demosaic.cpp +1033 -0
  174. package/deps/LibRaw-Source/LibRaw-0.21.4/src/demosaic/misc_demosaic.cpp +420 -0
  175. package/deps/LibRaw-Source/LibRaw-0.21.4/src/demosaic/xtrans_demosaic.cpp +434 -0
  176. package/deps/LibRaw-Source/LibRaw-0.21.4/src/integration/dngsdk_glue.cpp +416 -0
  177. package/deps/LibRaw-Source/LibRaw-0.21.4/src/integration/rawspeed_glue.cpp +286 -0
  178. package/deps/LibRaw-Source/LibRaw-0.21.4/src/libraw_c_api.cpp +457 -0
  179. package/deps/LibRaw-Source/LibRaw-0.21.4/src/libraw_datastream.cpp +1046 -0
  180. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/adobepano.cpp +154 -0
  181. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/canon.cpp +1335 -0
  182. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/ciff.cpp +411 -0
  183. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/cr3_parser.cpp +896 -0
  184. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/epson.cpp +96 -0
  185. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/exif_gps.cpp +430 -0
  186. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/fuji.cpp +1427 -0
  187. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/hasselblad_model.cpp +538 -0
  188. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/identify.cpp +3167 -0
  189. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/identify_tools.cpp +140 -0
  190. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/kodak.cpp +363 -0
  191. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/leica.cpp +375 -0
  192. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/makernotes.cpp +786 -0
  193. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/mediumformat.cpp +521 -0
  194. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/minolta.cpp +110 -0
  195. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/misc_parsers.cpp +694 -0
  196. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/nikon.cpp +1051 -0
  197. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/normalize_model.cpp +1451 -0
  198. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/olympus.cpp +685 -0
  199. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/p1.cpp +192 -0
  200. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/pentax.cpp +675 -0
  201. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/samsung.cpp +182 -0
  202. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/sony.cpp +2320 -0
  203. package/deps/LibRaw-Source/LibRaw-0.21.4/src/metadata/tiff.cpp +2198 -0
  204. package/deps/LibRaw-Source/LibRaw-0.21.4/src/postprocessing/aspect_ratio.cpp +113 -0
  205. package/deps/LibRaw-Source/LibRaw-0.21.4/src/postprocessing/dcraw_process.cpp +259 -0
  206. package/deps/LibRaw-Source/LibRaw-0.21.4/src/postprocessing/mem_image.cpp +292 -0
  207. package/deps/LibRaw-Source/LibRaw-0.21.4/src/postprocessing/postprocessing_aux.cpp +413 -0
  208. package/deps/LibRaw-Source/LibRaw-0.21.4/src/postprocessing/postprocessing_ph.cpp +31 -0
  209. package/deps/LibRaw-Source/LibRaw-0.21.4/src/postprocessing/postprocessing_utils.cpp +190 -0
  210. package/deps/LibRaw-Source/LibRaw-0.21.4/src/postprocessing/postprocessing_utils_dcrdefs.cpp +308 -0
  211. package/deps/LibRaw-Source/LibRaw-0.21.4/src/preprocessing/ext_preprocess.cpp +127 -0
  212. package/deps/LibRaw-Source/LibRaw-0.21.4/src/preprocessing/preprocessing_ph.cpp +24 -0
  213. package/deps/LibRaw-Source/LibRaw-0.21.4/src/preprocessing/raw2image.cpp +560 -0
  214. package/deps/LibRaw-Source/LibRaw-0.21.4/src/preprocessing/subtract_black.cpp +91 -0
  215. package/deps/LibRaw-Source/LibRaw-0.21.4/src/tables/cameralist.cpp +1268 -0
  216. package/deps/LibRaw-Source/LibRaw-0.21.4/src/tables/colorconst.cpp +57 -0
  217. package/deps/LibRaw-Source/LibRaw-0.21.4/src/tables/colordata.cpp +1841 -0
  218. package/deps/LibRaw-Source/LibRaw-0.21.4/src/tables/wblists.cpp +217 -0
  219. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/curves.cpp +154 -0
  220. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/decoder_info.cpp +413 -0
  221. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/init_close_utils.cpp +340 -0
  222. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/open.cpp +1269 -0
  223. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/phaseone_processing.cpp +101 -0
  224. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/read_utils.cpp +176 -0
  225. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/thumb_utils.cpp +338 -0
  226. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/utils_dcraw.cpp +330 -0
  227. package/deps/LibRaw-Source/LibRaw-0.21.4/src/utils/utils_libraw.cpp +673 -0
  228. package/deps/LibRaw-Source/LibRaw-0.21.4/src/write/apply_profile.cpp +76 -0
  229. package/deps/LibRaw-Source/LibRaw-0.21.4/src/write/file_write.cpp +338 -0
  230. package/deps/LibRaw-Source/LibRaw-0.21.4/src/write/tiff_writer.cpp +73 -0
  231. package/deps/LibRaw-Source/LibRaw-0.21.4/src/write/write_ph.cpp +39 -0
  232. package/deps/LibRaw-Source/LibRaw-0.21.4/src/x3f/x3f_parse_process.cpp +708 -0
  233. package/deps/LibRaw-Source/LibRaw-0.21.4/src/x3f/x3f_utils_patched.cpp +2119 -0
  234. package/deps/LibRaw-Source/LibRaw-0.21.4/version.sh +16 -0
  235. package/deps/LibRaw-Win64/LibRaw-0.21.4/.clang-format +4 -0
  236. package/deps/LibRaw-Win64/LibRaw-0.21.4/COPYRIGHT +27 -0
  237. package/deps/LibRaw-Win64/LibRaw-0.21.4/Changelog.txt +2802 -0
  238. package/deps/LibRaw-Win64/LibRaw-0.21.4/DEVELOPER-NOTES +20 -0
  239. package/deps/LibRaw-Win64/LibRaw-0.21.4/GoPro/dng-sdk-1_4-allow-VC5-validate.diff +21 -0
  240. package/deps/LibRaw-Win64/LibRaw-0.21.4/GoPro/dng-sdk-1_6-hide-ccVc5-definitiion.diff +15 -0
  241. package/deps/LibRaw-Win64/LibRaw-0.21.4/GoPro/dng-sdk-allow-VC5-validate.diff +21 -0
  242. package/deps/LibRaw-Win64/LibRaw-0.21.4/GoPro/gpr_read_image.cpp.diff +29 -0
  243. package/deps/LibRaw-Win64/LibRaw-0.21.4/GoPro/gpr_read_image.h.diff +12 -0
  244. package/deps/LibRaw-Win64/LibRaw-0.21.4/INSTALL +51 -0
  245. package/deps/LibRaw-Win64/LibRaw-0.21.4/LICENSE.CDDL +340 -0
  246. package/deps/LibRaw-Win64/LibRaw-0.21.4/LICENSE.LGPL +458 -0
  247. package/deps/LibRaw-Win64/LibRaw-0.21.4/LibRaw.pro +19 -0
  248. package/deps/LibRaw-Win64/LibRaw-0.21.4/LibRaw.sln +123 -0
  249. package/deps/LibRaw-Win64/LibRaw-0.21.4/Makefile.am +140 -0
  250. package/deps/LibRaw-Win64/LibRaw-0.21.4/Makefile.devel.nopp +230 -0
  251. package/deps/LibRaw-Win64/LibRaw-0.21.4/Makefile.devel.noppr2i +227 -0
  252. package/deps/LibRaw-Win64/LibRaw-0.21.4/Makefile.dist +501 -0
  253. package/deps/LibRaw-Win64/LibRaw-0.21.4/Makefile.in +1849 -0
  254. package/deps/LibRaw-Win64/LibRaw-0.21.4/Makefile.mingw +297 -0
  255. package/deps/LibRaw-Win64/LibRaw-0.21.4/Makefile.msvc +628 -0
  256. package/deps/LibRaw-Win64/LibRaw-0.21.4/README.DNGSDK.txt +43 -0
  257. package/deps/LibRaw-Win64/LibRaw-0.21.4/README.GoPro.txt +112 -0
  258. package/deps/LibRaw-Win64/LibRaw-0.21.4/README.RawSpeed.txt +62 -0
  259. package/deps/LibRaw-Win64/LibRaw-0.21.4/README.cmake +9 -0
  260. package/deps/LibRaw-Win64/LibRaw-0.21.4/README.demosaic-packs +17 -0
  261. package/deps/LibRaw-Win64/LibRaw-0.21.4/README.md +106 -0
  262. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed/rawspeed.cpucount-unix.patch +15 -0
  263. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed/rawspeed.qmake-pro-files.patch +84 -0
  264. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed/rawspeed.samsung-decoder.patch +39 -0
  265. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed/rawspeed.uncompressed-color-dng.patch +13 -0
  266. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed/rawspeed.win32-dll.patch +186 -0
  267. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed/rawspeed_xmldata.cpp +4115 -0
  268. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/README.md +69 -0
  269. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/patches/01.CameraMeta-extensibility.patch +13 -0
  270. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/patches/02.Makernotes-processing.patch +36 -0
  271. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/patches/03.remove-limits-and-logging.patch +245 -0
  272. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/patches/04.clang-cl-compatibility.patch +37 -0
  273. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/rawspeed3_c_api/rawspeed3_capi.cpp +251 -0
  274. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/rawspeed3_c_api/rawspeed3_capi.h +83 -0
  275. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/rawspeed3_c_api/rawspeed3_capi_test.cpp +71 -0
  276. package/deps/LibRaw-Win64/LibRaw-0.21.4/RawSpeed3/rawspeed3_c_api/rsxml2c.sh +5 -0
  277. package/deps/LibRaw-Win64/LibRaw-0.21.4/aclocal.m4 +1446 -0
  278. package/deps/LibRaw-Win64/LibRaw-0.21.4/autom4te.cache/output.0 +19332 -0
  279. package/deps/LibRaw-Win64/LibRaw-0.21.4/autom4te.cache/output.1 +19332 -0
  280. package/deps/LibRaw-Win64/LibRaw-0.21.4/autom4te.cache/output.2 +19332 -0
  281. package/deps/LibRaw-Win64/LibRaw-0.21.4/autom4te.cache/requests +544 -0
  282. package/deps/LibRaw-Win64/LibRaw-0.21.4/autom4te.cache/traces.0 +3028 -0
  283. package/deps/LibRaw-Win64/LibRaw-0.21.4/autom4te.cache/traces.1 +665 -0
  284. package/deps/LibRaw-Win64/LibRaw-0.21.4/autom4te.cache/traces.2 +3028 -0
  285. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/.keep_me +2 -0
  286. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/4channels.exe +0 -0
  287. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/dcraw_emu.exe +0 -0
  288. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/dcraw_half.exe +0 -0
  289. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/half_mt.exe +0 -0
  290. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/libraw.dll +0 -0
  291. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/mem_image.exe +0 -0
  292. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/multirender_test.exe +0 -0
  293. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/openbayer_sample.exe +0 -0
  294. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/postprocessing_benchmark.exe +0 -0
  295. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/raw-identify.exe +0 -0
  296. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/rawtextdump.exe +0 -0
  297. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/simple_dcraw.exe +0 -0
  298. package/deps/LibRaw-Win64/LibRaw-0.21.4/bin/unprocessed_raw.exe +0 -0
  299. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/4channels.pro +5 -0
  300. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/4channels.vcxproj +145 -0
  301. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/4channels.vcxproj.filters +18 -0
  302. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/dcraw_emu.pro +6 -0
  303. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/dcraw_emu.vcxproj +145 -0
  304. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/dcraw_emu.vcxproj.filters +18 -0
  305. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/dcraw_half.pro +6 -0
  306. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/dcraw_half.vcxproj +145 -0
  307. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/dcraw_half.vcxproj.filters +18 -0
  308. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/half_mt.pro +10 -0
  309. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/libraw-common-lib.pro +28 -0
  310. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/libraw-common.pro +8 -0
  311. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/libraw.pro +70 -0
  312. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/libraw.vcxproj +234 -0
  313. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/libraw.vcxproj.filters +295 -0
  314. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/mem_image.pro +6 -0
  315. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/mem_image.vcxproj +145 -0
  316. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/mem_image.vcxproj.filters +18 -0
  317. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/multirender_test.pro +6 -0
  318. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/multirender_test.vcxproj +145 -0
  319. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/multirender_test.vcxproj.filters +18 -0
  320. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/openbayer_sample.pro +6 -0
  321. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/openbayer_sample.vcxproj +145 -0
  322. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/openbayer_sample.vcxproj.filters +18 -0
  323. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/postprocessing_benchmark.pro +4 -0
  324. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/postprocessing_benchmark.vcxproj +145 -0
  325. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/postprocessing_benchmark.vcxproj.filters +18 -0
  326. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/raw-identify.pro +6 -0
  327. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/raw-identify.vcxproj +145 -0
  328. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/raw-identify.vcxproj.filters +18 -0
  329. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/rawtextdump.pro +6 -0
  330. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/rawtextdump.vcxproj +145 -0
  331. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/rawtextdump.vcxproj.filters +18 -0
  332. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/simple_dcraw.pro +6 -0
  333. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/simple_dcraw.vcxproj +145 -0
  334. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/simple_dcraw.vcxproj.filters +18 -0
  335. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/unprocessed_raw.pro +6 -0
  336. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/unprocessed_raw.vcxproj +145 -0
  337. package/deps/LibRaw-Win64/LibRaw-0.21.4/buildfiles/unprocessed_raw.vcxproj.filters +18 -0
  338. package/deps/LibRaw-Win64/LibRaw-0.21.4/compile +347 -0
  339. package/deps/LibRaw-Win64/LibRaw-0.21.4/config.guess +1433 -0
  340. package/deps/LibRaw-Win64/LibRaw-0.21.4/config.sub +1804 -0
  341. package/deps/LibRaw-Win64/LibRaw-0.21.4/configure +19332 -0
  342. package/deps/LibRaw-Win64/LibRaw-0.21.4/configure.ac +153 -0
  343. package/deps/LibRaw-Win64/LibRaw-0.21.4/depcomp +791 -0
  344. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/API-C.html +187 -0
  345. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/API-CXX.html +881 -0
  346. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/API-datastruct.html +1341 -0
  347. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/API-notes.html +305 -0
  348. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/API-overview.html +66 -0
  349. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/Install-LibRaw.html +124 -0
  350. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/Samples-LibRaw.html +213 -0
  351. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/Why-LibRaw.html +65 -0
  352. package/deps/LibRaw-Win64/LibRaw-0.21.4/doc/index.html +38 -0
  353. package/deps/LibRaw-Win64/LibRaw-0.21.4/install-sh +501 -0
  354. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/dcraw_defs.h +66 -0
  355. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/dcraw_fileio_defs.h +25 -0
  356. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/defines.h +193 -0
  357. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/dmp_include.h +27 -0
  358. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/libraw_cameraids.h +320 -0
  359. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/libraw_cxx_defs.h +133 -0
  360. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/libraw_internal_funcs.h +412 -0
  361. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/var_defines.h +215 -0
  362. package/deps/LibRaw-Win64/LibRaw-0.21.4/internal/x3f_tools.h +539 -0
  363. package/deps/LibRaw-Win64/LibRaw-0.21.4/lib/Makefile +3 -0
  364. package/deps/LibRaw-Win64/LibRaw-0.21.4/lib/libraw.exp +0 -0
  365. package/deps/LibRaw-Win64/LibRaw-0.21.4/lib/libraw.lib +0 -0
  366. package/deps/LibRaw-Win64/LibRaw-0.21.4/lib/libraw_static.lib +0 -0
  367. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw/libraw.h +534 -0
  368. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw/libraw_alloc.h +148 -0
  369. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw/libraw_const.h +814 -0
  370. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw/libraw_datastream.h +410 -0
  371. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw/libraw_internal.h +341 -0
  372. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw/libraw_types.h +1175 -0
  373. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw/libraw_version.h +63 -0
  374. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw.pc.in +12 -0
  375. package/deps/LibRaw-Win64/LibRaw-0.21.4/libraw_r.pc.in +12 -0
  376. package/deps/LibRaw-Win64/LibRaw-0.21.4/ltmain.sh +11147 -0
  377. package/deps/LibRaw-Win64/LibRaw-0.21.4/m4/ax_openmp.m4 +99 -0
  378. package/deps/LibRaw-Win64/LibRaw-0.21.4/m4/libtool.m4 +8369 -0
  379. package/deps/LibRaw-Win64/LibRaw-0.21.4/m4/ltoptions.m4 +437 -0
  380. package/deps/LibRaw-Win64/LibRaw-0.21.4/m4/ltsugar.m4 +124 -0
  381. package/deps/LibRaw-Win64/LibRaw-0.21.4/m4/ltversion.m4 +23 -0
  382. package/deps/LibRaw-Win64/LibRaw-0.21.4/m4/lt~obsolete.m4 +99 -0
  383. package/deps/LibRaw-Win64/LibRaw-0.21.4/missing +215 -0
  384. package/deps/LibRaw-Win64/LibRaw-0.21.4/object/.keep_me +0 -0
  385. package/deps/LibRaw-Win64/LibRaw-0.21.4/rsxml2c.sh +6 -0
  386. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/4channels.cpp +174 -0
  387. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/Makefile +2 -0
  388. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/dcraw_emu.cpp +670 -0
  389. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/dcraw_half.c +78 -0
  390. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/half_mt.c +178 -0
  391. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/half_mt_win32.c +212 -0
  392. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/mem_image_sample.cpp +282 -0
  393. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/multirender_test.cpp +107 -0
  394. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/openbayer_sample.cpp +65 -0
  395. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/postprocessing_benchmark.cpp +223 -0
  396. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/raw-identify.cpp +743 -0
  397. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/rawtextdump.cpp +144 -0
  398. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/simple_dcraw.cpp +217 -0
  399. package/deps/LibRaw-Win64/LibRaw-0.21.4/samples/unprocessed_raw.cpp +319 -0
  400. package/deps/LibRaw-Win64/LibRaw-0.21.4/shlib-version.sh +11 -0
  401. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/Makefile +2 -0
  402. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/canon_600.cpp +225 -0
  403. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/crx.cpp +2781 -0
  404. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/decoders_dcraw.cpp +1816 -0
  405. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/decoders_libraw.cpp +873 -0
  406. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/decoders_libraw_dcrdefs.cpp +411 -0
  407. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/dng.cpp +284 -0
  408. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/fp_dng.cpp +689 -0
  409. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/fuji_compressed.cpp +1210 -0
  410. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/generic.cpp +101 -0
  411. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/kodak_decoders.cpp +524 -0
  412. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/load_mfbacks.cpp +936 -0
  413. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/smal.cpp +181 -0
  414. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/unpack.cpp +508 -0
  415. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/decoders/unpack_thumb.cpp +405 -0
  416. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/demosaic/aahd_demosaic.cpp +781 -0
  417. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/demosaic/ahd_demosaic.cpp +355 -0
  418. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/demosaic/dcb_demosaic.cpp +900 -0
  419. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/demosaic/dht_demosaic.cpp +1033 -0
  420. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/demosaic/misc_demosaic.cpp +420 -0
  421. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/demosaic/xtrans_demosaic.cpp +434 -0
  422. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/integration/dngsdk_glue.cpp +416 -0
  423. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/integration/rawspeed_glue.cpp +286 -0
  424. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/libraw_c_api.cpp +457 -0
  425. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/libraw_datastream.cpp +1046 -0
  426. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/adobepano.cpp +154 -0
  427. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/canon.cpp +1335 -0
  428. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/ciff.cpp +411 -0
  429. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/cr3_parser.cpp +896 -0
  430. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/epson.cpp +96 -0
  431. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/exif_gps.cpp +430 -0
  432. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/fuji.cpp +1427 -0
  433. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/hasselblad_model.cpp +538 -0
  434. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/identify.cpp +3167 -0
  435. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/identify_tools.cpp +140 -0
  436. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/kodak.cpp +363 -0
  437. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/leica.cpp +375 -0
  438. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/makernotes.cpp +786 -0
  439. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/mediumformat.cpp +521 -0
  440. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/minolta.cpp +110 -0
  441. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/misc_parsers.cpp +694 -0
  442. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/nikon.cpp +1051 -0
  443. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/normalize_model.cpp +1451 -0
  444. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/olympus.cpp +685 -0
  445. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/p1.cpp +192 -0
  446. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/pentax.cpp +675 -0
  447. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/samsung.cpp +182 -0
  448. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/sony.cpp +2320 -0
  449. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/metadata/tiff.cpp +2198 -0
  450. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/postprocessing/aspect_ratio.cpp +113 -0
  451. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/postprocessing/dcraw_process.cpp +259 -0
  452. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/postprocessing/mem_image.cpp +292 -0
  453. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/postprocessing/postprocessing_aux.cpp +413 -0
  454. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/postprocessing/postprocessing_ph.cpp +31 -0
  455. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/postprocessing/postprocessing_utils.cpp +190 -0
  456. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/postprocessing/postprocessing_utils_dcrdefs.cpp +308 -0
  457. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/preprocessing/ext_preprocess.cpp +127 -0
  458. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/preprocessing/preprocessing_ph.cpp +24 -0
  459. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/preprocessing/raw2image.cpp +560 -0
  460. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/preprocessing/subtract_black.cpp +91 -0
  461. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/tables/cameralist.cpp +1268 -0
  462. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/tables/colorconst.cpp +57 -0
  463. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/tables/colordata.cpp +1841 -0
  464. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/tables/wblists.cpp +217 -0
  465. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/curves.cpp +154 -0
  466. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/decoder_info.cpp +413 -0
  467. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/init_close_utils.cpp +340 -0
  468. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/open.cpp +1269 -0
  469. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/phaseone_processing.cpp +101 -0
  470. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/read_utils.cpp +176 -0
  471. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/thumb_utils.cpp +338 -0
  472. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/utils_dcraw.cpp +330 -0
  473. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/utils/utils_libraw.cpp +673 -0
  474. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/write/apply_profile.cpp +76 -0
  475. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/write/file_write.cpp +338 -0
  476. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/write/tiff_writer.cpp +73 -0
  477. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/write/write_ph.cpp +39 -0
  478. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/x3f/x3f_parse_process.cpp +708 -0
  479. package/deps/LibRaw-Win64/LibRaw-0.21.4/src/x3f/x3f_utils_patched.cpp +2119 -0
  480. package/deps/LibRaw-Win64/LibRaw-0.21.4/version.sh +16 -0
  481. package/lib/index.d.ts +324 -0
  482. package/lib/index.js +761 -0
  483. package/package.json +97 -0
  484. package/src/addon.cpp +8 -0
  485. package/src/libraw_wrapper.cpp +1223 -0
  486. package/src/libraw_wrapper.h +109 -0
  487. package/src/libraw_wrapper_new.cpp +853 -0
@@ -0,0 +1,689 @@
1
+ /* -*- C++ -*-
2
+ * Copyright 2019-2021 LibRaw LLC (info@libraw.org)
3
+ *
4
+ LibRaw is free software; you can redistribute it and/or modify
5
+ it under the terms of the one of two licenses as you choose:
6
+
7
+ 1. GNU LESSER GENERAL PUBLIC LICENSE version 2.1
8
+ (See file LICENSE.LGPL provided in LibRaw distribution archive for details).
9
+
10
+ 2. COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
11
+ (See file LICENSE.CDDL provided in LibRaw distribution archive for details).
12
+
13
+ */
14
+
15
+ #include "../../internal/libraw_cxx_defs.h"
16
+
17
+ inline unsigned int __DNG_HalfToFloat(ushort halfValue)
18
+ {
19
+ int sign = (halfValue >> 15) & 0x00000001;
20
+ int exponent = (halfValue >> 10) & 0x0000001f;
21
+ int mantissa = halfValue & 0x000003ff;
22
+ if (exponent == 0)
23
+ {
24
+ if (mantissa == 0)
25
+ {
26
+ return (unsigned int)(sign << 31);
27
+ }
28
+ else
29
+ {
30
+ while (!(mantissa & 0x00000400))
31
+ {
32
+ mantissa <<= 1;
33
+ exponent -= 1;
34
+ }
35
+ exponent += 1;
36
+ mantissa &= ~0x00000400;
37
+ }
38
+ }
39
+ else if (exponent == 31)
40
+ {
41
+ if (mantissa == 0)
42
+ {
43
+ return (unsigned int)((sign << 31) | ((0x1eL + 127 - 15) << 23) |
44
+ (0x3ffL << 13));
45
+ }
46
+ else
47
+ {
48
+ return 0;
49
+ }
50
+ }
51
+ exponent += (127 - 15);
52
+ mantissa <<= 13;
53
+ return (unsigned int)((sign << 31) | (exponent << 23) | mantissa);
54
+ }
55
+
56
+ inline unsigned int __DNG_FP24ToFloat(const unsigned char *input)
57
+ {
58
+ int sign = (input[0] >> 7) & 0x01;
59
+ int exponent = (input[0]) & 0x7F;
60
+ int mantissa = (((int)input[1]) << 8) | input[2];
61
+ if (exponent == 0)
62
+ {
63
+ if (mantissa == 0)
64
+ {
65
+ return (unsigned int)(sign << 31);
66
+ }
67
+ else
68
+ {
69
+ while (!(mantissa & 0x00010000))
70
+ {
71
+ mantissa <<= 1;
72
+ exponent -= 1;
73
+ }
74
+ exponent += 1;
75
+ mantissa &= ~0x00010000;
76
+ }
77
+ }
78
+ else if (exponent == 127)
79
+ {
80
+ if (mantissa == 0)
81
+ {
82
+ return (unsigned int)((sign << 31) | ((0x7eL + 128 - 64) << 23) |
83
+ (0xffffL << 7));
84
+ }
85
+ else
86
+ {
87
+ // Nan -- Just set to zero.
88
+ return 0;
89
+ }
90
+ }
91
+ exponent += (128 - 64);
92
+ mantissa <<= 7;
93
+ return (uint32_t)((sign << 31) | (exponent << 23) | mantissa);
94
+ }
95
+
96
+ inline void DecodeDeltaBytes(unsigned char *bytePtr, int cols, int channels)
97
+ {
98
+ if (channels == 1)
99
+ {
100
+ unsigned char b0 = bytePtr[0];
101
+ bytePtr += 1;
102
+ for (int col = 1; col < cols; ++col)
103
+ {
104
+ b0 += bytePtr[0];
105
+ bytePtr[0] = b0;
106
+ bytePtr += 1;
107
+ }
108
+ }
109
+ else if (channels == 3)
110
+ {
111
+ unsigned char b0 = bytePtr[0];
112
+ unsigned char b1 = bytePtr[1];
113
+ unsigned char b2 = bytePtr[2];
114
+ bytePtr += 3;
115
+ for (int col = 1; col < cols; ++col)
116
+ {
117
+ b0 += bytePtr[0];
118
+ b1 += bytePtr[1];
119
+ b2 += bytePtr[2];
120
+ bytePtr[0] = b0;
121
+ bytePtr[1] = b1;
122
+ bytePtr[2] = b2;
123
+ bytePtr += 3;
124
+ }
125
+ }
126
+ else if (channels == 4)
127
+ {
128
+ unsigned char b0 = bytePtr[0];
129
+ unsigned char b1 = bytePtr[1];
130
+ unsigned char b2 = bytePtr[2];
131
+ unsigned char b3 = bytePtr[3];
132
+ bytePtr += 4;
133
+ for (int col = 1; col < cols; ++col)
134
+ {
135
+ b0 += bytePtr[0];
136
+ b1 += bytePtr[1];
137
+ b2 += bytePtr[2];
138
+ b3 += bytePtr[3];
139
+ bytePtr[0] = b0;
140
+ bytePtr[1] = b1;
141
+ bytePtr[2] = b2;
142
+ bytePtr[3] = b3;
143
+ bytePtr += 4;
144
+ }
145
+ }
146
+ else
147
+ {
148
+ for (int col = 1; col < cols; ++col)
149
+ {
150
+ for (int chan = 0; chan < channels; ++chan)
151
+ {
152
+ bytePtr[chan + channels] += bytePtr[chan];
153
+ }
154
+ bytePtr += channels;
155
+ }
156
+ }
157
+ }
158
+
159
+ #ifdef USE_ZLIB
160
+ static void DecodeFPDelta(unsigned char *input, unsigned char *output, int cols,
161
+ int channels, int bytesPerSample)
162
+ {
163
+ DecodeDeltaBytes(input, cols * bytesPerSample, channels);
164
+ int32_t rowIncrement = cols * channels;
165
+
166
+ if (bytesPerSample == 2)
167
+ {
168
+
169
+ #if LibRawBigEndian
170
+ const unsigned char *input0 = input;
171
+ const unsigned char *input1 = input + rowIncrement;
172
+ #else
173
+ const unsigned char *input1 = input;
174
+ const unsigned char *input0 = input + rowIncrement;
175
+ #endif
176
+ for (int col = 0; col < rowIncrement; ++col)
177
+ {
178
+ output[0] = input0[col];
179
+ output[1] = input1[col];
180
+ output += 2;
181
+ }
182
+ }
183
+ else if (bytesPerSample == 3)
184
+ {
185
+ const unsigned char *input0 = input;
186
+ const unsigned char *input1 = input + rowIncrement;
187
+ const unsigned char *input2 = input + rowIncrement * 2;
188
+ for (int col = 0; col < rowIncrement; ++col)
189
+ {
190
+ output[0] = input0[col];
191
+ output[1] = input1[col];
192
+ output[2] = input2[col];
193
+ output += 3;
194
+ }
195
+ }
196
+ else
197
+ {
198
+ #if LibRawBigEndian
199
+ const unsigned char *input0 = input;
200
+ const unsigned char *input1 = input + rowIncrement;
201
+ const unsigned char *input2 = input + rowIncrement * 2;
202
+ const unsigned char *input3 = input + rowIncrement * 3;
203
+ #else
204
+ const unsigned char *input3 = input;
205
+ const unsigned char *input2 = input + rowIncrement;
206
+ const unsigned char *input1 = input + rowIncrement * 2;
207
+ const unsigned char *input0 = input + rowIncrement * 3;
208
+ #endif
209
+ for (int col = 0; col < rowIncrement; ++col)
210
+ {
211
+ output[0] = input0[col];
212
+ output[1] = input1[col];
213
+ output[2] = input2[col];
214
+ output[3] = input3[col];
215
+ output += 4;
216
+ }
217
+ }
218
+ }
219
+ #endif
220
+
221
+ static float expandFloats(unsigned char *dst, int tileWidth, int bytesps)
222
+ {
223
+ float max = 0.f;
224
+ if (bytesps == 2)
225
+ {
226
+ uint16_t *dst16 = (ushort *)dst;
227
+ uint32_t *dst32 = (unsigned int *)dst;
228
+ float *f32 = (float *)dst;
229
+ for (int index = tileWidth - 1; index >= 0; --index)
230
+ {
231
+ dst32[index] = __DNG_HalfToFloat(dst16[index]);
232
+ max = MAX(max, f32[index]);
233
+ }
234
+ }
235
+ else if (bytesps == 3)
236
+ {
237
+ uint8_t *dst8 = ((unsigned char *)dst) + (tileWidth - 1) * 3;
238
+ uint32_t *dst32 = (unsigned int *)dst;
239
+ float *f32 = (float *)dst;
240
+ for (int index = tileWidth - 1; index >= 0; --index, dst8 -= 3)
241
+ {
242
+ dst32[index] = __DNG_FP24ToFloat(dst8);
243
+ max = MAX(max, f32[index]);
244
+ }
245
+ }
246
+ else if (bytesps == 4)
247
+ {
248
+ float *f32 = (float *)dst;
249
+ for (int index = 0; index < tileWidth; index++)
250
+ max = MAX(max, f32[index]);
251
+ }
252
+ return max;
253
+ }
254
+
255
+ struct tile_stripe_data_t
256
+ {
257
+ bool tiled, striped;
258
+ int tileCnt;
259
+ unsigned tileWidth, tileHeight, tilesH, tilesV;
260
+ size_t maxBytesInTile;
261
+ std::vector<size_t> tOffsets, tBytes;
262
+ tile_stripe_data_t() : tiled(false), striped(false),tileCnt(0),
263
+ tileWidth(0),tileHeight(0),tilesH(0),tilesV(0),
264
+ maxBytesInTile(0){}
265
+ void init(tiff_ifd_t *ifd, const libraw_image_sizes_t&, const unpacker_data_t&,
266
+ short _order,
267
+ LibRaw_abstract_datastream *stream);
268
+ };
269
+
270
+ static unsigned static_get4(LibRaw_abstract_datastream *stream, short _order)
271
+ {
272
+ uchar str[4] = { 0xff, 0xff, 0xff, 0xff };
273
+ stream->read(str, 1, 4);
274
+ return libraw_sget4_static(_order, str);
275
+ }
276
+
277
+
278
+ void tile_stripe_data_t::init(tiff_ifd_t *ifd, const libraw_image_sizes_t& sizes,
279
+ const unpacker_data_t& unpacker_data, short _order, LibRaw_abstract_datastream *stream)
280
+ {
281
+ tiled = (unpacker_data.tile_width <= sizes.raw_width) && (unpacker_data.tile_length <= sizes.raw_height);
282
+ striped = (ifd->rows_per_strip > 0 && ifd->rows_per_strip < sizes.raw_height) && ifd->strip_byte_counts_count > 0;
283
+
284
+ tileWidth = tiled ? unpacker_data.tile_width : sizes.raw_width;
285
+ tileHeight = tiled ? unpacker_data.tile_length :(striped ? ifd->rows_per_strip : sizes.raw_height);
286
+ tilesH = tiled ? (sizes.raw_width + tileWidth - 1) / tileWidth : 1;
287
+ tilesV = tiled ? (sizes.raw_height + tileHeight - 1) / tileHeight :
288
+ (striped ? ((sizes.raw_height + ifd->rows_per_strip - 1) / ifd->rows_per_strip) : 1);
289
+ tileCnt = tilesH * tilesV;
290
+
291
+ if (tileCnt < 1 || tileCnt > 1000000)
292
+ throw LIBRAW_EXCEPTION_DECODE_RAW;
293
+
294
+ tOffsets = std::vector<size_t>(tileCnt,0);
295
+ tBytes = std::vector <size_t>(tileCnt,0);
296
+
297
+ if (tiled)
298
+ for (int t = 0; t < tileCnt; ++t)
299
+ tOffsets[t] = static_get4(stream, _order);
300
+ else if (striped)
301
+ for (int t = 0; t < tileCnt && t < ifd->strip_offsets_count; ++t)
302
+ tOffsets[t] = ifd->strip_offsets[t];
303
+ else
304
+ tOffsets[0] = ifd->offset;
305
+
306
+ maxBytesInTile = 0;
307
+
308
+ if (tileCnt == 1 || (!tiled && !striped))
309
+ tBytes[0] = maxBytesInTile = ifd->bytes;
310
+ else if (tiled)
311
+ {
312
+ // ifd->bytes points to tile size table if more than 1 tile exists
313
+ stream->seek(ifd->bytes, SEEK_SET);
314
+ for (int t = 0; t < tileCnt; ++t)
315
+ {
316
+ tBytes[t] = static_get4(stream, _order); ;
317
+ maxBytesInTile = MAX(maxBytesInTile, tBytes[t]);
318
+ }
319
+ }
320
+ else if (striped)
321
+ for (int t = 0; t < tileCnt && t < ifd->strip_byte_counts_count; ++t)
322
+ {
323
+ tBytes[t] = ifd->strip_byte_counts[t];
324
+ maxBytesInTile = MAX(maxBytesInTile, tBytes[t]);
325
+ }
326
+ }
327
+
328
+ #ifdef USE_ZLIB
329
+ void LibRaw::deflate_dng_load_raw()
330
+ {
331
+ int iifd = find_ifd_by_offset(libraw_internal_data.unpacker_data.data_offset);
332
+ if(iifd < 0 || iifd > (int)libraw_internal_data.identify_data.tiff_nifds)
333
+ throw LIBRAW_EXCEPTION_DECODE_RAW;
334
+ struct tiff_ifd_t *ifd = &tiff_ifd[iifd];
335
+
336
+ float *float_raw_image = 0;
337
+ float max = 0.f;
338
+
339
+ if (ifd->samples != 1 && ifd->samples != 3 && ifd->samples != 4)
340
+ throw LIBRAW_EXCEPTION_DECODE_RAW;
341
+
342
+ if (libraw_internal_data.unpacker_data.tiff_samples != (unsigned)ifd->samples)
343
+ throw LIBRAW_EXCEPTION_DECODE_RAW; // Wrong IFD
344
+
345
+ if (imgdata.idata.filters && ifd->samples > 1)
346
+ throw LIBRAW_EXCEPTION_DECODE_RAW;
347
+
348
+ tile_stripe_data_t tiles;
349
+ tiles.init(ifd, imgdata.sizes, libraw_internal_data.unpacker_data, libraw_internal_data.unpacker_data.order,
350
+ libraw_internal_data.internal_data.input);
351
+
352
+ if (ifd->sample_format == 3)
353
+ float_raw_image = (float *)calloc(tiles.tileCnt * tiles.tileWidth * tiles.tileHeight *ifd->samples, sizeof(float));
354
+ else
355
+ throw LIBRAW_EXCEPTION_DECODE_RAW; // Only float deflated supported
356
+
357
+ int xFactor;
358
+ switch (ifd->predictor)
359
+ {
360
+ case 3:
361
+ default:
362
+ xFactor = 1;
363
+ break;
364
+ case 34894:
365
+ xFactor = 2;
366
+ break;
367
+ case 34895:
368
+ xFactor = 4;
369
+ break;
370
+ }
371
+
372
+ unsigned tilePixels = tiles.tileWidth * tiles.tileHeight;
373
+ unsigned pixelSize = sizeof(float) * ifd->samples;
374
+ unsigned tileBytes = tilePixels * pixelSize;
375
+ unsigned tileRowBytes = tiles.tileWidth * pixelSize;
376
+
377
+ if(INT64(tiles.maxBytesInTile) > INT64(imgdata.rawparams.max_raw_memory_mb) * INT64(1024 * 1024) )
378
+ throw LIBRAW_EXCEPTION_TOOBIG;
379
+
380
+ std::vector<uchar> cBuffer(tiles.maxBytesInTile,0);
381
+ std::vector<uchar> uBuffer(tileBytes + tileRowBytes,0); // extra row for decoding
382
+
383
+ for (size_t y = 0, t = 0; y < imgdata.sizes.raw_height; y += tiles.tileHeight)
384
+ {
385
+ for (size_t x = 0; x < imgdata.sizes.raw_width; x += tiles.tileWidth, ++t)
386
+ {
387
+ libraw_internal_data.internal_data.input->seek(tiles.tOffsets[t], SEEK_SET);
388
+ libraw_internal_data.internal_data.input->read(cBuffer.data(), 1, tiles.tBytes[t]);
389
+ unsigned long dstLen = tileBytes;
390
+ int err =
391
+ uncompress(uBuffer.data() + tileRowBytes, &dstLen, cBuffer.data(), (unsigned long)tiles.tBytes[t]);
392
+ if (err != Z_OK)
393
+ {
394
+ throw LIBRAW_EXCEPTION_DECODE_RAW;
395
+ return;
396
+ }
397
+ else
398
+ {
399
+ int bytesps = ifd->bps >> 3;
400
+ size_t rowsInTile = y + tiles.tileHeight > imgdata.sizes.raw_height ? imgdata.sizes.raw_height - y : tiles.tileHeight;
401
+ size_t colsInTile = x + tiles.tileWidth > imgdata.sizes.raw_width ? imgdata.sizes.raw_width - x : tiles.tileWidth;
402
+
403
+ for (size_t row = 0; row < rowsInTile; ++row) // do not process full tile if not needed
404
+ {
405
+ unsigned char *dst = uBuffer.data() + row * tiles.tileWidth * bytesps * ifd->samples;
406
+ unsigned char *src = dst + tileRowBytes;
407
+ DecodeFPDelta(src, dst, tiles.tileWidth / xFactor, ifd->samples * xFactor, bytesps);
408
+ float lmax = expandFloats(dst, tiles.tileWidth * ifd->samples, bytesps);
409
+ max = MAX(max, lmax);
410
+ unsigned char *dst2 = (unsigned char *)&float_raw_image
411
+ [((y + row) * imgdata.sizes.raw_width + x) * ifd->samples];
412
+ memmove(dst2, dst, colsInTile * ifd->samples * sizeof(float));
413
+ }
414
+ }
415
+ }
416
+ }
417
+
418
+ imgdata.color.fmaximum = max;
419
+
420
+ // Set fields according to data format
421
+
422
+ imgdata.rawdata.raw_alloc = float_raw_image;
423
+ if (ifd->samples == 1)
424
+ {
425
+ imgdata.rawdata.float_image = float_raw_image;
426
+ imgdata.rawdata.sizes.raw_pitch = imgdata.sizes.raw_pitch =
427
+ imgdata.sizes.raw_width * 4;
428
+ }
429
+ else if (ifd->samples == 3)
430
+ {
431
+ imgdata.rawdata.float3_image = (float(*)[3])float_raw_image;
432
+ imgdata.rawdata.sizes.raw_pitch = imgdata.sizes.raw_pitch =
433
+ imgdata.sizes.raw_width * 12;
434
+ }
435
+ else if (ifd->samples == 4)
436
+ {
437
+ imgdata.rawdata.float4_image = (float(*)[4])float_raw_image;
438
+ imgdata.rawdata.sizes.raw_pitch = imgdata.sizes.raw_pitch =
439
+ imgdata.sizes.raw_width * 16;
440
+ }
441
+
442
+ if (imgdata.rawparams.options & LIBRAW_RAWOPTIONS_CONVERTFLOAT_TO_INT)
443
+ convertFloatToInt(); // with default settings
444
+ }
445
+ #else
446
+ void LibRaw::deflate_dng_load_raw() { throw LIBRAW_EXCEPTION_DECODE_RAW; }
447
+ #endif
448
+
449
+ int LibRaw::is_floating_point()
450
+ {
451
+ struct tiff_ifd_t *ifd = &tiff_ifd[0];
452
+ while (ifd < &tiff_ifd[libraw_internal_data.identify_data.tiff_nifds] &&
453
+ ifd->offset != libraw_internal_data.unpacker_data.data_offset)
454
+ ++ifd;
455
+ if (ifd == &tiff_ifd[libraw_internal_data.identify_data.tiff_nifds])
456
+ return 0;
457
+
458
+ return ifd->sample_format == 3;
459
+ }
460
+
461
+ int LibRaw::have_fpdata()
462
+ {
463
+ return imgdata.rawdata.float_image || imgdata.rawdata.float3_image ||
464
+ imgdata.rawdata.float4_image;
465
+ }
466
+
467
+ void LibRaw::convertFloatToInt(float dmin /* =4096.f */,
468
+ float dmax /* =32767.f */,
469
+ float dtarget /*= 16383.f */)
470
+ {
471
+ int samples = 0;
472
+ float *data = 0;
473
+ void *orawalloc = imgdata.rawdata.raw_alloc;
474
+ if (imgdata.rawdata.float_image)
475
+ {
476
+ samples = 1;
477
+ data = imgdata.rawdata.float_image;
478
+ }
479
+ else if (imgdata.rawdata.float3_image)
480
+ {
481
+ samples = 3;
482
+ data = (float *)imgdata.rawdata.float3_image;
483
+ }
484
+ else if (imgdata.rawdata.float4_image)
485
+ {
486
+ samples = 4;
487
+ data = (float *)imgdata.rawdata.float4_image;
488
+ }
489
+ else
490
+ return;
491
+
492
+ ushort *raw_alloc = (ushort *)malloc(
493
+ imgdata.sizes.raw_height * imgdata.sizes.raw_width *
494
+ libraw_internal_data.unpacker_data.tiff_samples * sizeof(ushort));
495
+ float tmax = MAX(imgdata.color.maximum, 1);
496
+ float datamax = imgdata.color.fmaximum;
497
+
498
+ tmax = MAX(tmax, datamax);
499
+ tmax = MAX(tmax, 1.f);
500
+
501
+ float multip = 1.f;
502
+ if (tmax < dmin || tmax > dmax)
503
+ {
504
+ imgdata.rawdata.color.fnorm = imgdata.color.fnorm = multip = dtarget / tmax;
505
+ imgdata.rawdata.color.maximum = imgdata.color.maximum = dtarget;
506
+ imgdata.rawdata.color.black = imgdata.color.black =
507
+ (float)imgdata.color.black * multip;
508
+ for (int i = 0;
509
+ i < int(sizeof(imgdata.color.cblack)/sizeof(imgdata.color.cblack[0]));
510
+ i++)
511
+ if (i != 4 && i != 5)
512
+ imgdata.rawdata.color.cblack[i] = imgdata.color.cblack[i] =
513
+ (float)imgdata.color.cblack[i] * multip;
514
+ }
515
+ else
516
+ imgdata.rawdata.color.fnorm = imgdata.color.fnorm = 0.f;
517
+
518
+ for (size_t i = 0; i < imgdata.sizes.raw_height * imgdata.sizes.raw_width *
519
+ libraw_internal_data.unpacker_data.tiff_samples;
520
+ ++i)
521
+ {
522
+ float val = MAX(data[i], 0.f);
523
+ raw_alloc[i] = (ushort)(val * multip);
524
+ }
525
+
526
+ if (samples == 1)
527
+ {
528
+ imgdata.rawdata.raw_alloc = imgdata.rawdata.raw_image = raw_alloc;
529
+ imgdata.rawdata.sizes.raw_pitch = imgdata.sizes.raw_pitch =
530
+ imgdata.sizes.raw_width * 2;
531
+ }
532
+ else if (samples == 3)
533
+ {
534
+ imgdata.rawdata.raw_alloc = imgdata.rawdata.color3_image =
535
+ (ushort(*)[3])raw_alloc;
536
+ imgdata.rawdata.sizes.raw_pitch = imgdata.sizes.raw_pitch =
537
+ imgdata.sizes.raw_width * 6;
538
+ }
539
+ else if (samples == 4)
540
+ {
541
+ imgdata.rawdata.raw_alloc = imgdata.rawdata.color4_image =
542
+ (ushort(*)[4])raw_alloc;
543
+ imgdata.rawdata.sizes.raw_pitch = imgdata.sizes.raw_pitch =
544
+ imgdata.sizes.raw_width * 8;
545
+ }
546
+ if(orawalloc)
547
+ free(orawalloc); // remove old allocation
548
+ imgdata.rawdata.float_image = 0;
549
+ imgdata.rawdata.float3_image = 0;
550
+ imgdata.rawdata.float4_image = 0;
551
+ }
552
+
553
+ static
554
+ #if (defined(_MSC_VER) && !defined(__clang__))
555
+ _forceinline
556
+ #else
557
+ inline
558
+ #endif
559
+ void libraw_swap24(uchar *data, int len)
560
+ {
561
+ for (int i = 0; i < len - 2; i += 3)
562
+ {
563
+ uchar t = data[i];
564
+ data[i] = data[i + 2];
565
+ data[i + 2] = t;
566
+ }
567
+ }
568
+
569
+ static
570
+ #if (defined(_MSC_VER) && !defined(__clang__))
571
+ _forceinline
572
+ #else
573
+ inline
574
+ #endif
575
+ void libraw_swap32(uchar *data, int len)
576
+ {
577
+ unsigned *d = (unsigned*)data;
578
+ for (int i = 0; i < len / 4; i++)
579
+ {
580
+ unsigned x = d[i];
581
+ d[i] = (x << 24) + ((x << 8) & 0x00FF0000) +
582
+ ((x >> 8) & 0x0000FF00) + (x >> 24);
583
+ }
584
+ }
585
+
586
+
587
+ void LibRaw::uncompressed_fp_dng_load_raw()
588
+ {
589
+ int iifd = find_ifd_by_offset(libraw_internal_data.unpacker_data.data_offset);
590
+ if (iifd < 0 || iifd > (int)libraw_internal_data.identify_data.tiff_nifds)
591
+ throw LIBRAW_EXCEPTION_DECODE_RAW;
592
+ struct tiff_ifd_t *ifd = &tiff_ifd[iifd];
593
+
594
+ float *float_raw_image = 0;
595
+
596
+ if (ifd->samples != 1 && ifd->samples != 3 && ifd->samples != 4)
597
+ throw LIBRAW_EXCEPTION_DECODE_RAW;
598
+
599
+ if(imgdata.idata.filters && ifd->samples > 1)
600
+ throw LIBRAW_EXCEPTION_DECODE_RAW;
601
+
602
+ if ((int)libraw_internal_data.unpacker_data.tiff_samples != ifd->samples)
603
+ throw LIBRAW_EXCEPTION_DECODE_RAW; // Wrong IFD
604
+
605
+ int bytesps = (ifd->bps + 7) >> 3; // round to upper value
606
+
607
+ if(bytesps < 1 || bytesps > 4)
608
+ throw LIBRAW_EXCEPTION_DECODE_RAW;
609
+
610
+ tile_stripe_data_t tiles;
611
+ tiles.init(ifd, imgdata.sizes, libraw_internal_data.unpacker_data, libraw_internal_data.unpacker_data.order,
612
+ libraw_internal_data.internal_data.input);
613
+
614
+ INT64 allocsz = INT64(tiles.tileCnt) * INT64(tiles.tileWidth) * INT64(tiles.tileHeight) * INT64(ifd->samples) * INT64(sizeof(float));
615
+ if (allocsz > INT64(imgdata.rawparams.max_raw_memory_mb) * INT64(1024 * 1024))
616
+ throw LIBRAW_EXCEPTION_TOOBIG;
617
+
618
+ if (ifd->sample_format == 3)
619
+ float_raw_image = (float *)calloc(tiles.tileCnt * tiles.tileWidth * tiles.tileHeight *ifd->samples, sizeof(float));
620
+ else
621
+ throw LIBRAW_EXCEPTION_DECODE_RAW; // Only float supported
622
+
623
+ bool difford = (libraw_internal_data.unpacker_data.order == 0x4949) == (ntohs(0x1234) == 0x1234);
624
+ float max = 0.f;
625
+
626
+ std::vector<uchar> rowbuf(tiles.tileWidth *sizeof(float) * ifd->samples,0); // line buffer for last tile in tile row
627
+
628
+ for (size_t y = 0, t = 0; y < imgdata.sizes.raw_height; y += tiles.tileHeight)
629
+ {
630
+ for (unsigned x = 0; x < imgdata.sizes.raw_width && t < (unsigned)tiles.tileCnt; x += tiles.tileWidth, ++t)
631
+ {
632
+ libraw_internal_data.internal_data.input->seek(tiles.tOffsets[t], SEEK_SET);
633
+ size_t rowsInTile = y + tiles.tileHeight > imgdata.sizes.raw_height ? imgdata.sizes.raw_height - y : tiles.tileHeight;
634
+ size_t colsInTile = x + tiles.tileWidth > imgdata.sizes.raw_width ? imgdata.sizes.raw_width - x : tiles.tileWidth;
635
+
636
+ size_t inrowbytes = colsInTile * bytesps * ifd->samples;
637
+ int fullrowbytes = tiles.tileWidth *bytesps * ifd->samples;
638
+ size_t outrowbytes = colsInTile * sizeof(float) * ifd->samples;
639
+
640
+ for (size_t row = 0; row < rowsInTile; ++row) // do not process full tile if not needed
641
+ {
642
+ unsigned char *dst = fullrowbytes > inrowbytes ? rowbuf.data(): // last tile in row, use buffer
643
+ (unsigned char *)&float_raw_image
644
+ [((y + row) * imgdata.sizes.raw_width + x) * ifd->samples];
645
+ libraw_internal_data.internal_data.input->read(dst, 1, fullrowbytes);
646
+ if (bytesps == 2 && difford)
647
+ libraw_swab(dst, fullrowbytes);
648
+ else if (bytesps == 3 && (libraw_internal_data.unpacker_data.order == 0x4949)) // II-16bit
649
+ libraw_swap24(dst, fullrowbytes);
650
+ if (bytesps == 4 && difford)
651
+ libraw_swap32(dst, fullrowbytes);
652
+
653
+ float lmax = expandFloats(
654
+ dst,
655
+ tiles.tileWidth * ifd->samples,
656
+ bytesps);
657
+ if (fullrowbytes > inrowbytes) // last tile in row: copy buffer to destination
658
+ memmove(&float_raw_image[((y + row) * imgdata.sizes.raw_width + x) * ifd->samples], dst, outrowbytes);
659
+ max = MAX(max, lmax);
660
+ }
661
+ }
662
+ }
663
+
664
+ imgdata.color.fmaximum = max;
665
+
666
+ // setup outpuf fields
667
+ imgdata.rawdata.raw_alloc = float_raw_image;
668
+ if (ifd->samples == 1)
669
+ {
670
+ imgdata.rawdata.float_image = float_raw_image;
671
+ imgdata.rawdata.sizes.raw_pitch = imgdata.sizes.raw_pitch =
672
+ imgdata.sizes.raw_width * 4;
673
+ }
674
+ else if (ifd->samples == 3)
675
+ {
676
+ imgdata.rawdata.float3_image = (float(*)[3])float_raw_image;
677
+ imgdata.rawdata.sizes.raw_pitch = imgdata.sizes.raw_pitch =
678
+ imgdata.sizes.raw_width * 12;
679
+ }
680
+ else if (ifd->samples == 4)
681
+ {
682
+ imgdata.rawdata.float4_image = (float(*)[4])float_raw_image;
683
+ imgdata.rawdata.sizes.raw_pitch = imgdata.sizes.raw_pitch =
684
+ imgdata.sizes.raw_width * 16;
685
+ }
686
+
687
+ if (imgdata.rawparams.options & LIBRAW_RAWOPTIONS_CONVERTFLOAT_TO_INT)
688
+ convertFloatToInt();
689
+ }