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,708 @@
1
+ /* -*- C++ -*-
2
+ * Copyright 2019-2021 LibRaw LLC (info@libraw.org)
3
+ *
4
+
5
+ LibRaw is free software; you can redistribute it and/or modify
6
+ it under the terms of the one of two licenses as you choose:
7
+
8
+ 1. GNU LESSER GENERAL PUBLIC LICENSE version 2.1
9
+ (See file LICENSE.LGPL provided in LibRaw distribution archive for details).
10
+
11
+ 2. COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
12
+ (See file LICENSE.CDDL provided in LibRaw distribution archive for details).
13
+ */
14
+
15
+ /* Library for accessing X3F Files
16
+ ----------------------------------------------------------------
17
+ BSD-style License
18
+ ----------------------------------------------------------------
19
+
20
+ * Copyright (c) 2010, Roland Karlsson (roland@proxel.se)
21
+ * All rights reserved.
22
+ *
23
+ * Redistribution and use in source and binary forms, with or without
24
+ * modification, are permitted provided that the following conditions are met:
25
+ * * Redistributions of source code must retain the above copyright
26
+ * notice, this list of conditions and the following disclaimer.
27
+ * * Redistributions in binary form must reproduce the above copyright
28
+ * notice, this list of conditions and the following disclaimer in the
29
+ * documentation and/or other materials provided with the distribution.
30
+ * * Neither the name of the organization nor the
31
+ * names of its contributors may be used to endorse or promote products
32
+ * derived from this software without specific prior written permission.
33
+ *
34
+ * THIS SOFTWARE IS PROVIDED BY ROLAND KARLSSON ''AS IS'' AND ANY
35
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
36
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
37
+ * DISCLAIMED. IN NO EVENT SHALL ROLAND KARLSSON BE LIABLE FOR ANY
38
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
39
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
40
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
41
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
42
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
43
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
44
+
45
+ */
46
+
47
+ #ifdef USE_X3FTOOLS
48
+
49
+ #include "../../internal/libraw_cxx_defs.h"
50
+
51
+ #if defined __sun && defined DS
52
+ #undef DS
53
+ #endif
54
+ #ifdef ID
55
+ #undef ID /* used in x3f utils */
56
+ #endif
57
+
58
+ #include "../../internal/x3f_tools.h"
59
+
60
+ #define Sigma_X3F 22
61
+
62
+ void x3f_clear(void *p) { x3f_delete((x3f_t *)p); }
63
+
64
+ static void utf2char(utf16_t *str, char *buffer, unsigned bufsz)
65
+ {
66
+ if (bufsz < 1)
67
+ return;
68
+ buffer[bufsz - 1] = 0;
69
+ char *b = buffer;
70
+
71
+ while (*str != 0x00 && --bufsz > 0)
72
+ {
73
+ char *chr = (char *)str;
74
+ *b++ = *chr;
75
+ str++;
76
+ }
77
+ *b = 0;
78
+ }
79
+
80
+ static void *lr_memmem(const void *l, size_t l_len, const void *s, size_t s_len)
81
+ {
82
+ char *cur, *last;
83
+ const char *cl = (const char *)l;
84
+ const char *cs = (const char *)s;
85
+
86
+ /* we need something to compare */
87
+ if (l_len == 0 || s_len == 0)
88
+ return NULL;
89
+
90
+ /* "s" must be smaller or equal to "l" */
91
+ if (l_len < s_len)
92
+ return NULL;
93
+
94
+ /* special case where s_len == 1 */
95
+ if (s_len == 1)
96
+ return (void *)memchr(l, (int)*cs, l_len);
97
+
98
+ /* the last position where its possible to find "s" in "l" */
99
+ last = (char *)cl + l_len - s_len;
100
+
101
+ for (cur = (char *)cl; cur <= last; cur++)
102
+ if (cur[0] == cs[0] && memcmp(cur, cs, s_len) == 0)
103
+ return cur;
104
+ return NULL;
105
+ }
106
+
107
+ void LibRaw::parse_x3f()
108
+ {
109
+ x3f_t *x3f = x3f_new_from_file(libraw_internal_data.internal_data.input);
110
+ if (!x3f)
111
+ return;
112
+ _x3f_data = x3f;
113
+
114
+ x3f_header_t *H = NULL;
115
+
116
+ H = &x3f->header;
117
+ // Parse RAW size from RAW section
118
+ x3f_directory_entry_t *DE = x3f_get_raw(x3f);
119
+ if (!DE)
120
+ return;
121
+ imgdata.sizes.flip = H->rotation;
122
+ x3f_directory_entry_header_t *DEH = &DE->header;
123
+ x3f_image_data_t *ID = &DEH->data_subsection.image_data;
124
+ imgdata.sizes.raw_width = ID->columns;
125
+ imgdata.sizes.raw_height = ID->rows;
126
+ // Parse other params from property section
127
+
128
+ DE = x3f_get_prop(x3f);
129
+ if ((x3f_load_data(x3f, DE) == X3F_OK))
130
+ {
131
+ // Parse property list
132
+ DEH = &DE->header;
133
+ x3f_property_list_t *PL = &DEH->data_subsection.property_list;
134
+ utf16_t *datap = (utf16_t *)PL->data;
135
+ uint32_t maxitems = PL->data_size / sizeof(utf16_t);
136
+ if (PL->property_table.size != 0)
137
+ {
138
+ int i;
139
+ x3f_property_t *P = PL->property_table.element;
140
+ for (i = 0; i < (int)PL->num_properties; i++)
141
+ {
142
+ char name[100], value[100];
143
+ int noffset = (P[i].name - datap);
144
+ int voffset = (P[i].value - datap);
145
+ if (noffset < 0 || noffset > (int)maxitems || voffset < 0 ||
146
+ voffset > (int)maxitems)
147
+ throw LIBRAW_EXCEPTION_IO_CORRUPT;
148
+ int maxnsize = maxitems - (P[i].name - datap);
149
+ int maxvsize = maxitems - (P[i].value - datap);
150
+ utf2char(P[i].name, name, MIN(maxnsize, ((int)sizeof(name))));
151
+ utf2char(P[i].value, value, MIN(maxvsize, ((int)sizeof(value))));
152
+ if (!strcmp(name, "ISO"))
153
+ imgdata.other.iso_speed = atoi(value);
154
+ if (!strcmp(name, "CAMMANUF"))
155
+ strcpy(imgdata.idata.make, value);
156
+ if (!strcmp(name, "CAMMODEL"))
157
+ strcpy(imgdata.idata.model, value);
158
+ if (!strcmp(name, "CAMSERIAL"))
159
+ strcpy(imgdata.shootinginfo.BodySerial, value);
160
+ if (!strcmp(name, "WB_DESC"))
161
+ strcpy(imgdata.color.model2, value);
162
+ if (!strcmp(name, "TIME"))
163
+ imgdata.other.timestamp = atoi(value);
164
+ if (!strcmp(name, "SHUTTER"))
165
+ imgdata.other.shutter = atof(value);
166
+ if (!strcmp(name, "APERTURE"))
167
+ imgdata.other.aperture = atof(value);
168
+ if (!strcmp(name, "FLENGTH"))
169
+ imgdata.other.focal_len = atof(value);
170
+ if (!strcmp(name, "FLEQ35MM"))
171
+ imgdata.lens.makernotes.FocalLengthIn35mmFormat = atof(value);
172
+ if (!strcmp(name, "IMAGERTEMP"))
173
+ MN.common.SensorTemperature = atof(value);
174
+ if (!strcmp(name, "LENSARANGE"))
175
+ {
176
+ char *sp;
177
+ imgdata.lens.makernotes.MaxAp4CurFocal =
178
+ imgdata.lens.makernotes.MinAp4CurFocal = atof(value);
179
+ sp = strrchr(value, ' ');
180
+ if (sp)
181
+ {
182
+ imgdata.lens.makernotes.MinAp4CurFocal = atof(sp);
183
+ if (imgdata.lens.makernotes.MaxAp4CurFocal >
184
+ imgdata.lens.makernotes.MinAp4CurFocal)
185
+ my_swap(float, imgdata.lens.makernotes.MaxAp4CurFocal,
186
+ imgdata.lens.makernotes.MinAp4CurFocal);
187
+ }
188
+ }
189
+ if (!strcmp(name, "LENSFRANGE"))
190
+ {
191
+ char *sp;
192
+ imgdata.lens.makernotes.MinFocal = imgdata.lens.makernotes.MaxFocal =
193
+ atof(value);
194
+ sp = strrchr(value, ' ');
195
+ if (sp)
196
+ {
197
+ imgdata.lens.makernotes.MaxFocal = atof(sp);
198
+ if ((imgdata.lens.makernotes.MaxFocal + 0.17f) <
199
+ imgdata.lens.makernotes.MinFocal)
200
+ my_swap(float, imgdata.lens.makernotes.MaxFocal,
201
+ imgdata.lens.makernotes.MinFocal);
202
+ }
203
+ }
204
+ if (!strcmp(name, "LENSMODEL"))
205
+ {
206
+ char *sp;
207
+ imgdata.lens.makernotes.LensID =
208
+ strtol(value, &sp, 16); // atoi(value);
209
+ if (imgdata.lens.makernotes.LensID)
210
+ imgdata.lens.makernotes.LensMount = Sigma_X3F;
211
+ }
212
+ }
213
+ imgdata.idata.raw_count = 1;
214
+ load_raw = &LibRaw::x3f_load_raw;
215
+ imgdata.sizes.raw_pitch = imgdata.sizes.raw_width * 6;
216
+ imgdata.idata.is_foveon = 1;
217
+ libraw_internal_data.internal_output_params.raw_color =
218
+ 1; // Force adobe coeff
219
+ imgdata.color.maximum = 0x3fff; // To be reset by color table
220
+ libraw_internal_data.unpacker_data.order = 0x4949;
221
+ }
222
+ }
223
+ else
224
+ {
225
+ // No property list
226
+ if (imgdata.sizes.raw_width == 5888 || imgdata.sizes.raw_width == 2944 ||
227
+ imgdata.sizes.raw_width == 6656 || imgdata.sizes.raw_width == 3328 ||
228
+ imgdata.sizes.raw_width == 5504 ||
229
+ imgdata.sizes.raw_width == 2752) // Quattro
230
+ {
231
+ imgdata.idata.raw_count = 1;
232
+ load_raw = &LibRaw::x3f_load_raw;
233
+ imgdata.sizes.raw_pitch = imgdata.sizes.raw_width * 6;
234
+ imgdata.idata.is_foveon = 1;
235
+ libraw_internal_data.internal_output_params.raw_color =
236
+ 1; // Force adobe coeff
237
+ libraw_internal_data.unpacker_data.order = 0x4949;
238
+ strcpy(imgdata.idata.make, "SIGMA");
239
+ #if 1
240
+ // Try to find model number in first 2048 bytes;
241
+ int pos = libraw_internal_data.internal_data.input->tell();
242
+ libraw_internal_data.internal_data.input->seek(0, SEEK_SET);
243
+ unsigned char buf[2048];
244
+ libraw_internal_data.internal_data.input->read(buf, 2048, 1);
245
+ libraw_internal_data.internal_data.input->seek(pos, SEEK_SET);
246
+ unsigned char *fnd = (unsigned char *)lr_memmem(buf, 2048, "SIGMA dp", 8);
247
+ unsigned char *fndsd =
248
+ (unsigned char *)lr_memmem(buf, 2048, "sd Quatt", 8);
249
+ if (fnd)
250
+ {
251
+ unsigned char *nm = fnd + 8;
252
+ snprintf(imgdata.idata.model, 64, "dp%c Quattro",
253
+ *nm <= '9' && *nm >= '0' ? *nm : '2');
254
+ }
255
+ else if (fndsd)
256
+ {
257
+ snprintf(imgdata.idata.model, 64, "%s", fndsd);
258
+ }
259
+ else
260
+ #endif
261
+ if (imgdata.sizes.raw_width == 6656 ||
262
+ imgdata.sizes.raw_width == 3328)
263
+ strcpy(imgdata.idata.model, "sd Quattro H");
264
+ else
265
+ strcpy(imgdata.idata.model, "dp2 Quattro");
266
+ }
267
+ // else
268
+ }
269
+ // Try to get thumbnail data
270
+ LibRaw_thumbnail_formats format = LIBRAW_THUMBNAIL_UNKNOWN;
271
+ if ((DE = x3f_get_thumb_jpeg(x3f)))
272
+ {
273
+ format = LIBRAW_THUMBNAIL_JPEG;
274
+ }
275
+ else if ((DE = x3f_get_thumb_plain(x3f)))
276
+ {
277
+ format = LIBRAW_THUMBNAIL_BITMAP;
278
+ }
279
+ if (DE)
280
+ {
281
+ x3f_directory_entry_header_t *_DEH = &DE->header;
282
+ x3f_image_data_t *_ID = &_DEH->data_subsection.image_data;
283
+ imgdata.thumbnail.twidth = _ID->columns;
284
+ imgdata.thumbnail.theight = _ID->rows;
285
+ imgdata.thumbnail.tcolors = 3;
286
+ imgdata.thumbnail.tformat = format;
287
+ libraw_internal_data.internal_data.toffset = DE->input.offset;
288
+ libraw_internal_data.unpacker_data.thumb_format = LIBRAW_INTERNAL_THUMBNAIL_X3F;
289
+ }
290
+ DE = x3f_get_camf(x3f);
291
+ if (DE && DE->input.size > 28)
292
+ {
293
+ libraw_internal_data.unpacker_data.meta_offset = DE->input.offset + 8;
294
+ libraw_internal_data.unpacker_data.meta_length = DE->input.size - 28;
295
+ }
296
+ }
297
+
298
+ INT64 LibRaw::x3f_thumb_size()
299
+ {
300
+ try
301
+ {
302
+ x3f_t *x3f = (x3f_t *)_x3f_data;
303
+ if (!x3f)
304
+ return -1; // No data pointer set
305
+ x3f_directory_entry_t *DE = x3f_get_thumb_jpeg(x3f);
306
+ if (!DE)
307
+ DE = x3f_get_thumb_plain(x3f);
308
+ if (!DE)
309
+ return -1;
310
+ int64_t p = x3f_load_data_size(x3f, DE);
311
+ if (p < 0 || p > 0xffffffff)
312
+ return -1;
313
+ return p;
314
+ }
315
+ catch (...)
316
+ {
317
+ return -1;
318
+ }
319
+ }
320
+
321
+ void LibRaw::x3f_thumb_loader()
322
+ {
323
+ try
324
+ {
325
+ x3f_t *x3f = (x3f_t *)_x3f_data;
326
+ if (!x3f)
327
+ return; // No data pointer set
328
+ x3f_directory_entry_t *DE = x3f_get_thumb_jpeg(x3f);
329
+ if (!DE)
330
+ DE = x3f_get_thumb_plain(x3f);
331
+ if (!DE)
332
+ return;
333
+ if (X3F_OK != x3f_load_data(x3f, DE))
334
+ throw LIBRAW_EXCEPTION_IO_CORRUPT;
335
+ x3f_directory_entry_header_t *DEH = &DE->header;
336
+ x3f_image_data_t *ID = &DEH->data_subsection.image_data;
337
+ imgdata.thumbnail.twidth = ID->columns;
338
+ imgdata.thumbnail.theight = ID->rows;
339
+ imgdata.thumbnail.tcolors = 3;
340
+ if (imgdata.thumbnail.tformat == LIBRAW_THUMBNAIL_JPEG)
341
+ {
342
+ imgdata.thumbnail.thumb = (char *)malloc(ID->data_size);
343
+ memmove(imgdata.thumbnail.thumb, ID->data, ID->data_size);
344
+ imgdata.thumbnail.tlength = ID->data_size;
345
+ }
346
+ else if (imgdata.thumbnail.tformat == LIBRAW_THUMBNAIL_BITMAP)
347
+ {
348
+ imgdata.thumbnail.tlength = ID->columns * ID->rows * 3;
349
+ imgdata.thumbnail.thumb = (char *)malloc(ID->columns * ID->rows * 3);
350
+ char *src0 = (char *)ID->data;
351
+ for (int row = 0; row < (int)ID->rows; row++)
352
+ {
353
+ int offset = row * ID->row_stride;
354
+ if (offset + ID->columns * 3 > ID->data_size)
355
+ break;
356
+ char *dest = &imgdata.thumbnail.thumb[row * ID->columns * 3];
357
+ char *src = &src0[offset];
358
+ memmove(dest, src, ID->columns * 3);
359
+ }
360
+ }
361
+ }
362
+ catch (...)
363
+ {
364
+ // do nothing
365
+ }
366
+ }
367
+
368
+ void LibRaw::x3f_dpq_interpolate_rg()
369
+ {
370
+ int w = imgdata.sizes.raw_width / 2;
371
+ int h = imgdata.sizes.raw_height / 2;
372
+ unsigned short *image = (ushort *)imgdata.rawdata.color3_image;
373
+
374
+ for (int color = 0; color < 2; color++)
375
+ {
376
+ for (int y = 2; y < (h - 2); y++)
377
+ {
378
+ uint16_t *row0 =
379
+ &image[imgdata.sizes.raw_width * 3 * (y * 2) + color]; // dst[1]
380
+ uint16_t *row1 =
381
+ &image[imgdata.sizes.raw_width * 3 * (y * 2 + 1) + color]; // dst1[1]
382
+ for (int x = 2; x < (w - 2); x++)
383
+ {
384
+ row1[0] = row1[3] = row0[3] = row0[0];
385
+ row0 += 6;
386
+ row1 += 6;
387
+ }
388
+ }
389
+ }
390
+ }
391
+
392
+ #ifdef _ABS
393
+ #undef _ABS
394
+ #endif
395
+ #define _ABS(a) ((a) < 0 ? -(a) : (a))
396
+
397
+ #undef CLIP
398
+ #define CLIP(value, high) ((value) > (high) ? (high) : (value))
399
+
400
+ void LibRaw::x3f_dpq_interpolate_af(int xstep, int ystep, int scale)
401
+ {
402
+ unsigned short *image = (ushort *)imgdata.rawdata.color3_image;
403
+ for (int y = 0;
404
+ y < imgdata.rawdata.sizes.height + imgdata.rawdata.sizes.top_margin;
405
+ y += ystep)
406
+ {
407
+ if (y < imgdata.rawdata.sizes.top_margin)
408
+ continue;
409
+ if (y < scale)
410
+ continue;
411
+ if (y > imgdata.rawdata.sizes.raw_height - scale)
412
+ break;
413
+ uint16_t *row0 = &image[imgdata.sizes.raw_width * 3 * y]; // Наша строка
414
+ uint16_t *row_minus =
415
+ &image[imgdata.sizes.raw_width * 3 * (y - scale)]; // Строка выше
416
+ uint16_t *row_plus =
417
+ &image[imgdata.sizes.raw_width * 3 * (y + scale)]; // Строка ниже
418
+ for (int x = 0;
419
+ x < imgdata.rawdata.sizes.width + imgdata.rawdata.sizes.left_margin;
420
+ x += xstep)
421
+ {
422
+ if (x < imgdata.rawdata.sizes.left_margin)
423
+ continue;
424
+ if (x < scale)
425
+ continue;
426
+ if (x > imgdata.rawdata.sizes.raw_width - scale)
427
+ break;
428
+ uint16_t *pixel0 = &row0[x * 3];
429
+ uint16_t *pixel_top = &row_minus[x * 3];
430
+ uint16_t *pixel_bottom = &row_plus[x * 3];
431
+ uint16_t *pixel_left = &row0[(x - scale) * 3];
432
+ uint16_t *pixel_right = &row0[(x + scale) * 3];
433
+ uint16_t *pixf = pixel_top;
434
+ if (_ABS(pixf[2] - pixel0[2]) > _ABS(pixel_bottom[2] - pixel0[2]))
435
+ pixf = pixel_bottom;
436
+ if (_ABS(pixf[2] - pixel0[2]) > _ABS(pixel_left[2] - pixel0[2]))
437
+ pixf = pixel_left;
438
+ if (_ABS(pixf[2] - pixel0[2]) > _ABS(pixel_right[2] - pixel0[2]))
439
+ pixf = pixel_right;
440
+ int blocal = pixel0[2], bnear = pixf[2];
441
+ if (blocal < (int)imgdata.color.black + 16 || bnear < (int)imgdata.color.black + 16)
442
+ {
443
+ if (pixel0[0] < imgdata.color.black)
444
+ pixel0[0] = imgdata.color.black;
445
+ if (pixel0[1] < imgdata.color.black)
446
+ pixel0[1] = imgdata.color.black;
447
+ pixel0[0] = CLIP(
448
+ (pixel0[0] - imgdata.color.black) * 4 + imgdata.color.black, 16383);
449
+ pixel0[1] = CLIP(
450
+ (pixel0[1] - imgdata.color.black) * 4 + imgdata.color.black, 16383);
451
+ }
452
+ else
453
+ {
454
+ float multip = float(bnear - imgdata.color.black) /
455
+ float(blocal - imgdata.color.black);
456
+ if (pixel0[0] < imgdata.color.black)
457
+ pixel0[0] = imgdata.color.black;
458
+ if (pixel0[1] < imgdata.color.black)
459
+ pixel0[1] = imgdata.color.black;
460
+ float pixf0 = pixf[0];
461
+ if (pixf0 < imgdata.color.black)
462
+ pixf0 = imgdata.color.black;
463
+ float pixf1 = pixf[1];
464
+ if (pixf1 < imgdata.color.black)
465
+ pixf1 = imgdata.color.black;
466
+
467
+ pixel0[0] = CLIP(
468
+ ((float(pixf0 - imgdata.color.black) * multip +
469
+ imgdata.color.black) +
470
+ ((pixel0[0] - imgdata.color.black) * 3.75 + imgdata.color.black)) /
471
+ 2,
472
+ 16383);
473
+ pixel0[1] = CLIP(
474
+ ((float(pixf1 - imgdata.color.black) * multip +
475
+ imgdata.color.black) +
476
+ ((pixel0[1] - imgdata.color.black) * 3.75 + imgdata.color.black)) /
477
+ 2,
478
+ 16383);
479
+ // pixel0[1] = float(pixf[1]-imgdata.color.black)*multip +
480
+ // imgdata.color.black;
481
+ }
482
+ }
483
+ }
484
+ }
485
+
486
+ void LibRaw::x3f_dpq_interpolate_af_sd(int xstart, int ystart, int xend,
487
+ int yend, int xstep, int ystep,
488
+ int scale)
489
+ {
490
+ unsigned short *image = (ushort *)imgdata.rawdata.color3_image;
491
+ for (int y = ystart; y <= yend && y < imgdata.rawdata.sizes.height +
492
+ imgdata.rawdata.sizes.top_margin;
493
+ y += ystep)
494
+ {
495
+ uint16_t *row0 = &image[imgdata.sizes.raw_width * 3 * y]; // Наша строка
496
+ uint16_t *row1 =
497
+ &image[imgdata.sizes.raw_width * 3 * (y + 1)]; // Следующая строка
498
+ uint16_t *row_minus =
499
+ &image[imgdata.sizes.raw_width * 3 * (y - scale)]; // Строка выше
500
+ uint16_t *row_plus =
501
+ &image[imgdata.sizes.raw_width * 3 *
502
+ (y + scale)]; // Строка ниже AF-point (scale=2 -> ниже row1
503
+ uint16_t *row_minus1 = &image[imgdata.sizes.raw_width * 3 * (y - 1)];
504
+ for (int x = xstart; x < xend && x < imgdata.rawdata.sizes.width +
505
+ imgdata.rawdata.sizes.left_margin;
506
+ x += xstep)
507
+ {
508
+ uint16_t *pixel00 = &row0[x * 3]; // Current pixel
509
+ float sumR = 0.f, sumG = 0.f;
510
+ float cnt = 0.f;
511
+ for (int xx = -scale; xx <= scale; xx += scale)
512
+ {
513
+ sumR += row_minus[(x + xx) * 3];
514
+ sumR += row_plus[(x + xx) * 3];
515
+ sumG += row_minus[(x + xx) * 3 + 1];
516
+ sumG += row_plus[(x + xx) * 3 + 1];
517
+ cnt += 1.f;
518
+ if (xx)
519
+ {
520
+ cnt += 1.f;
521
+ sumR += row0[(x + xx) * 3];
522
+ sumG += row0[(x + xx) * 3 + 1];
523
+ }
524
+ }
525
+ pixel00[0] = sumR / 8.f;
526
+ pixel00[1] = sumG / 8.f;
527
+
528
+ if (scale == 2)
529
+ {
530
+ uint16_t *pixel0B = &row0[x * 3 + 3]; // right pixel
531
+ uint16_t *pixel1B = &row1[x * 3 + 3]; // right pixel
532
+ float sumG0 = 0, sumG1 = 0.f;
533
+ float _cnt = 0.f;
534
+ for (int xx = -scale; xx <= scale; xx += scale)
535
+ {
536
+ sumG0 += row_minus1[(x + xx) * 3 + 2];
537
+ sumG1 += row_plus[(x + xx) * 3 + 2];
538
+ _cnt += 1.f;
539
+ if (xx)
540
+ {
541
+ sumG0 += row0[(x + xx) * 3 + 2];
542
+ sumG1 += row1[(x + xx) * 3 + 2];
543
+ _cnt += 1.f;
544
+ }
545
+ }
546
+ if (_cnt > 1.0)
547
+ {
548
+ pixel0B[2] = sumG0 / _cnt;
549
+ pixel1B[2] = sumG1 / _cnt;
550
+ }
551
+ }
552
+
553
+ // uint16_t* pixel10 = &row1[x*3]; // Pixel below current
554
+ // uint16_t* pixel_bottom = &row_plus[x*3];
555
+ }
556
+ }
557
+ }
558
+
559
+ void LibRaw::x3f_load_raw()
560
+ {
561
+ // already in try/catch
562
+ int raise_error = 0;
563
+ x3f_t *x3f = (x3f_t *)_x3f_data;
564
+ if (!x3f)
565
+ return; // No data pointer set
566
+ if (X3F_OK == x3f_load_data(x3f, x3f_get_raw(x3f)))
567
+ {
568
+ x3f_directory_entry_t *DE = x3f_get_raw(x3f);
569
+ x3f_directory_entry_header_t *DEH = &DE->header;
570
+ x3f_image_data_t *ID = &DEH->data_subsection.image_data;
571
+ if (!ID)
572
+ throw LIBRAW_EXCEPTION_IO_CORRUPT;
573
+ x3f_quattro_t *Q = ID->quattro;
574
+ x3f_huffman_t *HUF = ID->huffman;
575
+ x3f_true_t *TRU = ID->tru;
576
+ uint16_t *data = NULL;
577
+ if (ID->rows != S.raw_height || ID->columns != S.raw_width)
578
+ {
579
+ raise_error = 1;
580
+ goto end;
581
+ }
582
+ if (HUF != NULL)
583
+ data = HUF->x3rgb16.data;
584
+ if (TRU != NULL)
585
+ data = TRU->x3rgb16.data;
586
+ if (data == NULL)
587
+ {
588
+ raise_error = 1;
589
+ goto end;
590
+ }
591
+
592
+ size_t datasize = S.raw_height * S.raw_width * 3 * sizeof(unsigned short);
593
+ S.raw_pitch = S.raw_width * 3 * sizeof(unsigned short);
594
+ if (!(imgdata.rawdata.raw_alloc = malloc(datasize)))
595
+ throw LIBRAW_EXCEPTION_ALLOC;
596
+
597
+ imgdata.rawdata.color3_image = (ushort(*)[3])imgdata.rawdata.raw_alloc;
598
+ // swap R/B channels for known old cameras
599
+ if (!strcasecmp(P1.make, "Polaroid") && !strcasecmp(P1.model, "x530"))
600
+ {
601
+ ushort(*src)[3] = (ushort(*)[3])data;
602
+ for (int p = 0; p < S.raw_height * S.raw_width; p++)
603
+ {
604
+ imgdata.rawdata.color3_image[p][0] = src[p][2];
605
+ imgdata.rawdata.color3_image[p][1] = src[p][1];
606
+ imgdata.rawdata.color3_image[p][2] = src[p][0];
607
+ }
608
+ }
609
+ else if (HUF)
610
+ memmove(imgdata.rawdata.raw_alloc, data, datasize);
611
+ else if (TRU && (!Q || !Q->quattro_layout))
612
+ memmove(imgdata.rawdata.raw_alloc, data, datasize);
613
+ else if (TRU && Q)
614
+ {
615
+ // Move quattro data in place
616
+ // R/B plane
617
+ for (int prow = 0; prow < (int)TRU->x3rgb16.rows && prow < S.raw_height / 2;
618
+ prow++)
619
+ {
620
+ ushort(*destrow)[3] =
621
+ (unsigned short(*)[3]) &
622
+ imgdata.rawdata
623
+ .color3_image[prow * 2 * S.raw_pitch / 3 / sizeof(ushort)][0];
624
+ ushort(*srcrow)[3] =
625
+ (unsigned short(*)[3]) & data[prow * TRU->x3rgb16.row_stride];
626
+ for (int pcol = 0;
627
+ pcol < (int)TRU->x3rgb16.columns && pcol < S.raw_width / 2; pcol++)
628
+ {
629
+ destrow[pcol * 2][0] = srcrow[pcol][0];
630
+ destrow[pcol * 2][1] = srcrow[pcol][1];
631
+ }
632
+ }
633
+ for (int row = 0; row < (int)Q->top16.rows && row < S.raw_height; row++)
634
+ {
635
+ ushort(*destrow)[3] =
636
+ (unsigned short(*)[3]) &
637
+ imgdata.rawdata
638
+ .color3_image[row * S.raw_pitch / 3 / sizeof(ushort)][0];
639
+ ushort *srcrow =
640
+ (unsigned short *)&Q->top16.data[row * Q->top16.columns];
641
+ for (int col = 0; col < (int)Q->top16.columns && col < S.raw_width; col++)
642
+ destrow[col][2] = srcrow[col];
643
+ }
644
+ }
645
+
646
+ #if 1
647
+ if (TRU && Q &&
648
+ !(imgdata.rawparams.specials & LIBRAW_RAWSPECIAL_NODP2Q_INTERPOLATEAF))
649
+ {
650
+ if (imgdata.sizes.raw_width == 5888 &&
651
+ imgdata.sizes.raw_height == 3672) // dpN Quattro normal
652
+ {
653
+ x3f_dpq_interpolate_af(32, 8, 2);
654
+ }
655
+ else if (imgdata.sizes.raw_width == 5888 &&
656
+ imgdata.sizes.raw_height == 3776) // sd Quattro normal raw
657
+ {
658
+ x3f_dpq_interpolate_af_sd(216, 464, imgdata.sizes.raw_width - 1, 3312,
659
+ 16, 32, 2);
660
+ }
661
+ else if (imgdata.sizes.raw_width == 6656 &&
662
+ imgdata.sizes.raw_height == 4480) // sd Quattro H normal raw
663
+ {
664
+ x3f_dpq_interpolate_af_sd(232, 592, imgdata.sizes.raw_width - 1, 3920,
665
+ 16, 32, 2);
666
+ }
667
+ else if (imgdata.sizes.raw_width == 3328 &&
668
+ imgdata.sizes.raw_height == 2240) // sd Quattro H half size
669
+ {
670
+ x3f_dpq_interpolate_af_sd(116, 296, imgdata.sizes.raw_width - 1, 2200,
671
+ 8, 16, 1);
672
+ }
673
+ else if (imgdata.sizes.raw_width == 5504 &&
674
+ imgdata.sizes.raw_height == 3680) // sd Quattro H APS-C raw
675
+ {
676
+ x3f_dpq_interpolate_af_sd(8, 192, imgdata.sizes.raw_width - 1, 3185, 16,
677
+ 32, 2);
678
+ }
679
+ else if (imgdata.sizes.raw_width == 2752 &&
680
+ imgdata.sizes.raw_height == 1840) // sd Quattro H APS-C half size
681
+ {
682
+ x3f_dpq_interpolate_af_sd(4, 96, imgdata.sizes.raw_width - 1, 1800, 8,
683
+ 16, 1);
684
+ }
685
+ else if (imgdata.sizes.raw_width == 2944 &&
686
+ imgdata.sizes.raw_height == 1836) // dpN Quattro small raw
687
+ {
688
+ x3f_dpq_interpolate_af(16, 4, 1);
689
+ }
690
+ else if (imgdata.sizes.raw_width == 2944 &&
691
+ imgdata.sizes.raw_height == 1888) // sd Quattro small
692
+ {
693
+ x3f_dpq_interpolate_af_sd(108, 232, imgdata.sizes.raw_width - 1, 1656,
694
+ 8, 16, 1);
695
+ }
696
+ }
697
+ #endif
698
+ if (TRU && Q && Q->quattro_layout &&
699
+ !(imgdata.rawparams.specials & LIBRAW_RAWSPECIAL_NODP2Q_INTERPOLATERG))
700
+ x3f_dpq_interpolate_rg();
701
+ }
702
+ else
703
+ raise_error = 1;
704
+ end:
705
+ if (raise_error)
706
+ throw LIBRAW_EXCEPTION_IO_CORRUPT;
707
+ }
708
+ #endif