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,853 @@
1
+ #include "libraw_wrapper.h"
2
+ #include <iostream>
3
+ #include <sstream>
4
+ #include <vector>
5
+
6
+ Napi::FunctionReference LibRawWrapper::constructor;
7
+
8
+ Napi::Object LibRawWrapper::Init(Napi::Env env, Napi::Object exports) {
9
+ Napi::HandleScope scope(env);
10
+
11
+ Napi::Function func = DefineClass(env, "LibRawWrapper", {
12
+ // File Operations
13
+ InstanceMethod("loadFile", &LibRawWrapper::LoadFile),
14
+ InstanceMethod("loadBuffer", &LibRawWrapper::LoadBuffer),
15
+ InstanceMethod("close", &LibRawWrapper::Close),
16
+
17
+ // Metadata & Information
18
+ InstanceMethod("getMetadata", &LibRawWrapper::GetMetadata),
19
+ InstanceMethod("getImageSize", &LibRawWrapper::GetImageSize),
20
+ InstanceMethod("getAdvancedMetadata", &LibRawWrapper::GetAdvancedMetadata),
21
+ InstanceMethod("getLensInfo", &LibRawWrapper::GetLensInfo),
22
+ InstanceMethod("getColorInfo", &LibRawWrapper::GetColorInfo),
23
+
24
+ // Image Processing
25
+ InstanceMethod("unpackThumbnail", &LibRawWrapper::UnpackThumbnail),
26
+ InstanceMethod("processImage", &LibRawWrapper::ProcessImage),
27
+ InstanceMethod("subtractBlack", &LibRawWrapper::SubtractBlack),
28
+ InstanceMethod("raw2Image", &LibRawWrapper::Raw2Image),
29
+ InstanceMethod("adjustMaximum", &LibRawWrapper::AdjustMaximum),
30
+
31
+ // Memory Image Creation
32
+ InstanceMethod("createMemoryImage", &LibRawWrapper::CreateMemoryImage),
33
+ InstanceMethod("createMemoryThumbnail", &LibRawWrapper::CreateMemoryThumbnail),
34
+
35
+ // File Writers
36
+ InstanceMethod("writePPM", &LibRawWrapper::WritePPM),
37
+ InstanceMethod("writeTIFF", &LibRawWrapper::WriteTIFF),
38
+ InstanceMethod("writeThumbnail", &LibRawWrapper::WriteThumbnail),
39
+
40
+ // Configuration & Settings
41
+ InstanceMethod("setOutputParams", &LibRawWrapper::SetOutputParams),
42
+ InstanceMethod("getOutputParams", &LibRawWrapper::GetOutputParams),
43
+
44
+ // Utility Functions
45
+ InstanceMethod("isFloatingPoint", &LibRawWrapper::IsFloatingPoint),
46
+ InstanceMethod("isFujiRotated", &LibRawWrapper::IsFujiRotated),
47
+ InstanceMethod("isSRAW", &LibRawWrapper::IsSRAW),
48
+ InstanceMethod("isJPEGThumb", &LibRawWrapper::IsJPEGThumb),
49
+ InstanceMethod("errorCount", &LibRawWrapper::ErrorCount),
50
+
51
+ // Static Methods
52
+ StaticMethod("getVersion", &LibRawWrapper::GetVersion),
53
+ StaticMethod("getCapabilities", &LibRawWrapper::GetCapabilities),
54
+ StaticMethod("getCameraList", &LibRawWrapper::GetCameraList),
55
+ StaticMethod("getCameraCount", &LibRawWrapper::GetCameraCount)
56
+ });
57
+
58
+ constructor = Napi::Persistent(func);
59
+ constructor.SuppressDestruct();
60
+
61
+ exports.Set("LibRawWrapper", func);
62
+ return exports;
63
+ }
64
+
65
+ LibRawWrapper::LibRawWrapper(const Napi::CallbackInfo& info)
66
+ : Napi::ObjectWrap<LibRawWrapper>(info), isLoaded(false), isUnpacked(false), isProcessed(false) {
67
+ Napi::Env env = info.Env();
68
+ Napi::HandleScope scope(env);
69
+
70
+ try {
71
+ processor = std::make_unique<LibRaw>();
72
+ } catch (const std::exception& e) {
73
+ Napi::TypeError::New(env, "Failed to initialize LibRaw").ThrowAsJavaScriptException();
74
+ }
75
+ }
76
+
77
+ LibRawWrapper::~LibRawWrapper() {
78
+ if (processor && isLoaded) {
79
+ processor->recycle();
80
+ }
81
+ }
82
+
83
+ void LibRawWrapper::CheckLoaded(Napi::Env env) {
84
+ if (!isLoaded) {
85
+ Napi::Error::New(env, "No file loaded. Call loadFile() first.").ThrowAsJavaScriptException();
86
+ }
87
+ }
88
+
89
+ // ============== FILE OPERATIONS ==============
90
+
91
+ Napi::Value LibRawWrapper::LoadFile(const Napi::CallbackInfo& info) {
92
+ Napi::Env env = info.Env();
93
+
94
+ if (info.Length() < 1 || !info[0].IsString()) {
95
+ Napi::TypeError::New(env, "Expected string filename").ThrowAsJavaScriptException();
96
+ return env.Null();
97
+ }
98
+
99
+ std::string filename = info[0].As<Napi::String>().Utf8Value();
100
+
101
+ try {
102
+ int ret = processor->open_file(filename.c_str());
103
+ if (ret != LIBRAW_SUCCESS) {
104
+ std::string error = "Failed to open file: ";
105
+ error += libraw_strerror(ret);
106
+ Napi::Error::New(env, error).ThrowAsJavaScriptException();
107
+ return env.Null();
108
+ }
109
+
110
+ ret = processor->unpack();
111
+ if (ret != LIBRAW_SUCCESS) {
112
+ std::string error = "Failed to unpack file: ";
113
+ error += libraw_strerror(ret);
114
+ Napi::Error::New(env, error).ThrowAsJavaScriptException();
115
+ return env.Null();
116
+ }
117
+
118
+ isLoaded = true;
119
+ isUnpacked = true;
120
+ isProcessed = false;
121
+ return Napi::Boolean::New(env, true);
122
+ } catch (const std::exception& e) {
123
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
124
+ return env.Null();
125
+ }
126
+ }
127
+
128
+ Napi::Value LibRawWrapper::LoadBuffer(const Napi::CallbackInfo& info) {
129
+ Napi::Env env = info.Env();
130
+
131
+ if (info.Length() < 1 || !info[0].IsBuffer()) {
132
+ Napi::TypeError::New(env, "Expected Buffer").ThrowAsJavaScriptException();
133
+ return env.Null();
134
+ }
135
+
136
+ Napi::Buffer<uint8_t> buffer = info[0].As<Napi::Buffer<uint8_t>>();
137
+
138
+ try {
139
+ int ret = processor->open_buffer(buffer.Data(), buffer.Length());
140
+ if (ret != LIBRAW_SUCCESS) {
141
+ std::string error = "Failed to open buffer: ";
142
+ error += libraw_strerror(ret);
143
+ Napi::Error::New(env, error).ThrowAsJavaScriptException();
144
+ return env.Null();
145
+ }
146
+
147
+ ret = processor->unpack();
148
+ if (ret != LIBRAW_SUCCESS) {
149
+ std::string error = "Failed to unpack buffer: ";
150
+ error += libraw_strerror(ret);
151
+ Napi::Error::New(env, error).ThrowAsJavaScriptException();
152
+ return env.Null();
153
+ }
154
+
155
+ isLoaded = true;
156
+ isUnpacked = true;
157
+ isProcessed = false;
158
+ return Napi::Boolean::New(env, true);
159
+ } catch (const std::exception& e) {
160
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
161
+ return env.Null();
162
+ }
163
+ }
164
+
165
+ Napi::Value LibRawWrapper::Close(const Napi::CallbackInfo& info) {
166
+ Napi::Env env = info.Env();
167
+
168
+ if (processor && isLoaded) {
169
+ processor->recycle();
170
+ isLoaded = false;
171
+ isUnpacked = false;
172
+ isProcessed = false;
173
+ }
174
+
175
+ return Napi::Boolean::New(env, true);
176
+ }
177
+
178
+ // ============== METADATA & INFORMATION ==============
179
+
180
+ Napi::Value LibRawWrapper::GetMetadata(const Napi::CallbackInfo& info) {
181
+ Napi::Env env = info.Env();
182
+ CheckLoaded(env);
183
+
184
+ Napi::Object metadata = Napi::Object::New(env);
185
+
186
+ try {
187
+ // Camera info
188
+ if (processor->imgdata.idata.make[0]) {
189
+ metadata.Set("make", Napi::String::New(env, processor->imgdata.idata.make));
190
+ }
191
+ if (processor->imgdata.idata.model[0]) {
192
+ metadata.Set("model", Napi::String::New(env, processor->imgdata.idata.model));
193
+ }
194
+ if (processor->imgdata.idata.software[0]) {
195
+ metadata.Set("software", Napi::String::New(env, processor->imgdata.idata.software));
196
+ }
197
+
198
+ // Image dimensions
199
+ metadata.Set("width", Napi::Number::New(env, processor->imgdata.sizes.width));
200
+ metadata.Set("height", Napi::Number::New(env, processor->imgdata.sizes.height));
201
+ metadata.Set("rawWidth", Napi::Number::New(env, processor->imgdata.sizes.raw_width));
202
+ metadata.Set("rawHeight", Napi::Number::New(env, processor->imgdata.sizes.raw_height));
203
+
204
+ // Color info
205
+ metadata.Set("colors", Napi::Number::New(env, processor->imgdata.idata.colors));
206
+ metadata.Set("filters", Napi::Number::New(env, processor->imgdata.idata.filters));
207
+
208
+ // ISO and exposure
209
+ if (processor->imgdata.other.iso_speed > 0) {
210
+ metadata.Set("iso", Napi::Number::New(env, processor->imgdata.other.iso_speed));
211
+ }
212
+ if (processor->imgdata.other.shutter > 0) {
213
+ metadata.Set("shutterSpeed", Napi::Number::New(env, processor->imgdata.other.shutter));
214
+ }
215
+ if (processor->imgdata.other.aperture > 0) {
216
+ metadata.Set("aperture", Napi::Number::New(env, processor->imgdata.other.aperture));
217
+ }
218
+ if (processor->imgdata.other.focal_len > 0) {
219
+ metadata.Set("focalLength", Napi::Number::New(env, processor->imgdata.other.focal_len));
220
+ }
221
+
222
+ // Timestamp
223
+ if (processor->imgdata.other.timestamp > 0) {
224
+ metadata.Set("timestamp", Napi::Number::New(env, processor->imgdata.other.timestamp));
225
+ }
226
+
227
+ return metadata;
228
+ } catch (const std::exception& e) {
229
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
230
+ return env.Null();
231
+ }
232
+ }
233
+
234
+ Napi::Value LibRawWrapper::GetImageSize(const Napi::CallbackInfo& info) {
235
+ Napi::Env env = info.Env();
236
+ CheckLoaded(env);
237
+
238
+ Napi::Object size = Napi::Object::New(env);
239
+ size.Set("width", Napi::Number::New(env, processor->imgdata.sizes.width));
240
+ size.Set("height", Napi::Number::New(env, processor->imgdata.sizes.height));
241
+ size.Set("rawWidth", Napi::Number::New(env, processor->imgdata.sizes.raw_width));
242
+ size.Set("rawHeight", Napi::Number::New(env, processor->imgdata.sizes.raw_height));
243
+ size.Set("topMargin", Napi::Number::New(env, processor->imgdata.sizes.top_margin));
244
+ size.Set("leftMargin", Napi::Number::New(env, processor->imgdata.sizes.left_margin));
245
+ size.Set("iWidth", Napi::Number::New(env, processor->imgdata.sizes.iwidth));
246
+ size.Set("iHeight", Napi::Number::New(env, processor->imgdata.sizes.iheight));
247
+
248
+ return size;
249
+ }
250
+
251
+ Napi::Value LibRawWrapper::GetAdvancedMetadata(const Napi::CallbackInfo& info) {
252
+ Napi::Env env = info.Env();
253
+ CheckLoaded(env);
254
+
255
+ Napi::Object metadata = Napi::Object::New(env);
256
+
257
+ try {
258
+ // Camera details
259
+ if (processor->imgdata.idata.normalized_make[0]) {
260
+ metadata.Set("normalizedMake", Napi::String::New(env, processor->imgdata.idata.normalized_make));
261
+ }
262
+ if (processor->imgdata.idata.normalized_model[0]) {
263
+ metadata.Set("normalizedModel", Napi::String::New(env, processor->imgdata.idata.normalized_model));
264
+ }
265
+
266
+ metadata.Set("rawCount", Napi::Number::New(env, processor->imgdata.idata.raw_count));
267
+ metadata.Set("dngVersion", Napi::Number::New(env, processor->imgdata.idata.dng_version));
268
+ metadata.Set("is_foveon", Napi::Number::New(env, processor->imgdata.idata.is_foveon));
269
+
270
+ // Color matrix and calibration
271
+ Napi::Array colorMatrix = Napi::Array::New(env);
272
+ for (int i = 0; i < 4; i++) {
273
+ Napi::Array row = Napi::Array::New(env);
274
+ for (int j = 0; j < 3; j++) {
275
+ row.Set(j, Napi::Number::New(env, processor->imgdata.color.cmatrix[i][j]));
276
+ }
277
+ colorMatrix.Set(i, row);
278
+ }
279
+ metadata.Set("colorMatrix", colorMatrix);
280
+
281
+ // White balance
282
+ Napi::Array camMul = Napi::Array::New(env);
283
+ for (int i = 0; i < 4; i++) {
284
+ camMul.Set(i, Napi::Number::New(env, processor->imgdata.color.cam_mul[i]));
285
+ }
286
+ metadata.Set("camMul", camMul);
287
+
288
+ Napi::Array preMul = Napi::Array::New(env);
289
+ for (int i = 0; i < 4; i++) {
290
+ preMul.Set(i, Napi::Number::New(env, processor->imgdata.color.pre_mul[i]));
291
+ }
292
+ metadata.Set("preMul", preMul);
293
+
294
+ // Additional sensor info
295
+ metadata.Set("blackLevel", Napi::Number::New(env, processor->imgdata.color.black));
296
+ metadata.Set("dataMaximum", Napi::Number::New(env, processor->imgdata.color.data_maximum));
297
+ metadata.Set("whiteLevel", Napi::Number::New(env, processor->imgdata.color.maximum));
298
+
299
+ return metadata;
300
+ } catch (const std::exception& e) {
301
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
302
+ return env.Null();
303
+ }
304
+ }
305
+
306
+ Napi::Value LibRawWrapper::GetLensInfo(const Napi::CallbackInfo& info) {
307
+ Napi::Env env = info.Env();
308
+ CheckLoaded(env);
309
+
310
+ Napi::Object lensInfo = Napi::Object::New(env);
311
+
312
+ try {
313
+ if (processor->imgdata.lens.LensID) {
314
+ lensInfo.Set("lensID", Napi::Number::New(env, processor->imgdata.lens.LensID));
315
+ }
316
+ if (processor->imgdata.lens.Lens[0]) {
317
+ lensInfo.Set("lensName", Napi::String::New(env, processor->imgdata.lens.Lens));
318
+ }
319
+ if (processor->imgdata.lens.LensFormat) {
320
+ lensInfo.Set("lensFormat", Napi::Number::New(env, processor->imgdata.lens.LensFormat));
321
+ }
322
+ if (processor->imgdata.lens.LensMount) {
323
+ lensInfo.Set("lensMount", Napi::Number::New(env, processor->imgdata.lens.LensMount));
324
+ }
325
+ if (processor->imgdata.lens.CamID) {
326
+ lensInfo.Set("camID", Napi::Number::New(env, processor->imgdata.lens.CamID));
327
+ }
328
+ if (processor->imgdata.lens.LensFeatures_pre && processor->imgdata.lens.LensFeatures_suf) {
329
+ lensInfo.Set("lensFeaturesPre", Napi::String::New(env, processor->imgdata.lens.LensFeatures_pre));
330
+ lensInfo.Set("lensFeaturesSuf", Napi::String::New(env, processor->imgdata.lens.LensFeatures_suf));
331
+ }
332
+
333
+ // Focal length info
334
+ if (processor->imgdata.lens.MinFocal > 0) {
335
+ lensInfo.Set("minFocal", Napi::Number::New(env, processor->imgdata.lens.MinFocal));
336
+ }
337
+ if (processor->imgdata.lens.MaxFocal > 0) {
338
+ lensInfo.Set("maxFocal", Napi::Number::New(env, processor->imgdata.lens.MaxFocal));
339
+ }
340
+ if (processor->imgdata.lens.MaxAp4MinFocal > 0) {
341
+ lensInfo.Set("maxAp4MinFocal", Napi::Number::New(env, processor->imgdata.lens.MaxAp4MinFocal));
342
+ }
343
+ if (processor->imgdata.lens.MaxAp4MaxFocal > 0) {
344
+ lensInfo.Set("maxAp4MaxFocal", Napi::Number::New(env, processor->imgdata.lens.MaxAp4MaxFocal));
345
+ }
346
+
347
+ return lensInfo;
348
+ } catch (const std::exception& e) {
349
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
350
+ return env.Null();
351
+ }
352
+ }
353
+
354
+ Napi::Value LibRawWrapper::GetColorInfo(const Napi::CallbackInfo& info) {
355
+ Napi::Env env = info.Env();
356
+ CheckLoaded(env);
357
+
358
+ Napi::Object colorInfo = Napi::Object::New(env);
359
+
360
+ try {
361
+ // Basic color info
362
+ colorInfo.Set("colors", Napi::Number::New(env, processor->imgdata.idata.colors));
363
+ colorInfo.Set("filters", Napi::Number::New(env, processor->imgdata.idata.filters));
364
+
365
+ // Color data
366
+ colorInfo.Set("blackLevel", Napi::Number::New(env, processor->imgdata.color.black));
367
+ colorInfo.Set("dataMaximum", Napi::Number::New(env, processor->imgdata.color.data_maximum));
368
+ colorInfo.Set("whiteLevel", Napi::Number::New(env, processor->imgdata.color.maximum));
369
+
370
+ // Color profile
371
+ if (processor->imgdata.color.profile_length > 0) {
372
+ colorInfo.Set("profileLength", Napi::Number::New(env, processor->imgdata.color.profile_length));
373
+ }
374
+
375
+ // Color matrices
376
+ Napi::Array rgbCam = Napi::Array::New(env);
377
+ for (int i = 0; i < 3; i++) {
378
+ Napi::Array row = Napi::Array::New(env);
379
+ for (int j = 0; j < 4; j++) {
380
+ row.Set(j, Napi::Number::New(env, processor->imgdata.color.rgb_cam[i][j]));
381
+ }
382
+ rgbCam.Set(i, row);
383
+ }
384
+ colorInfo.Set("rgbCam", rgbCam);
385
+
386
+ // Camera multipliers
387
+ Napi::Array camMul = Napi::Array::New(env);
388
+ for (int i = 0; i < 4; i++) {
389
+ camMul.Set(i, Napi::Number::New(env, processor->imgdata.color.cam_mul[i]));
390
+ }
391
+ colorInfo.Set("camMul", camMul);
392
+
393
+ return colorInfo;
394
+ } catch (const std::exception& e) {
395
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
396
+ return env.Null();
397
+ }
398
+ }
399
+
400
+ // ============== IMAGE PROCESSING ==============
401
+
402
+ Napi::Value LibRawWrapper::UnpackThumbnail(const Napi::CallbackInfo& info) {
403
+ Napi::Env env = info.Env();
404
+ CheckLoaded(env);
405
+
406
+ try {
407
+ int ret = processor->unpack_thumb();
408
+ if (ret != LIBRAW_SUCCESS) {
409
+ std::string error = "Failed to unpack thumbnail: ";
410
+ error += libraw_strerror(ret);
411
+ Napi::Error::New(env, error).ThrowAsJavaScriptException();
412
+ return env.Null();
413
+ }
414
+
415
+ return Napi::Boolean::New(env, true);
416
+ } catch (const std::exception& e) {
417
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
418
+ return env.Null();
419
+ }
420
+ }
421
+
422
+ Napi::Value LibRawWrapper::ProcessImage(const Napi::CallbackInfo& info) {
423
+ Napi::Env env = info.Env();
424
+ CheckLoaded(env);
425
+
426
+ try {
427
+ int ret = processor->dcraw_process();
428
+ if (ret != LIBRAW_SUCCESS) {
429
+ std::string error = "Failed to process image: ";
430
+ error += libraw_strerror(ret);
431
+ Napi::Error::New(env, error).ThrowAsJavaScriptException();
432
+ return env.Null();
433
+ }
434
+
435
+ isProcessed = true;
436
+ return Napi::Boolean::New(env, true);
437
+ } catch (const std::exception& e) {
438
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
439
+ return env.Null();
440
+ }
441
+ }
442
+
443
+ Napi::Value LibRawWrapper::SubtractBlack(const Napi::CallbackInfo& info) {
444
+ Napi::Env env = info.Env();
445
+ CheckLoaded(env);
446
+
447
+ try {
448
+ int ret = processor->subtract_black();
449
+ if (ret != LIBRAW_SUCCESS) {
450
+ std::string error = "Failed to subtract black: ";
451
+ error += libraw_strerror(ret);
452
+ Napi::Error::New(env, error).ThrowAsJavaScriptException();
453
+ return env.Null();
454
+ }
455
+
456
+ return Napi::Boolean::New(env, true);
457
+ } catch (const std::exception& e) {
458
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
459
+ return env.Null();
460
+ }
461
+ }
462
+
463
+ Napi::Value LibRawWrapper::Raw2Image(const Napi::CallbackInfo& info) {
464
+ Napi::Env env = info.Env();
465
+ CheckLoaded(env);
466
+
467
+ try {
468
+ int ret = processor->raw2image();
469
+ if (ret != LIBRAW_SUCCESS) {
470
+ std::string error = "Failed to convert raw to image: ";
471
+ error += libraw_strerror(ret);
472
+ Napi::Error::New(env, error).ThrowAsJavaScriptException();
473
+ return env.Null();
474
+ }
475
+
476
+ return Napi::Boolean::New(env, true);
477
+ } catch (const std::exception& e) {
478
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
479
+ return env.Null();
480
+ }
481
+ }
482
+
483
+ Napi::Value LibRawWrapper::AdjustMaximum(const Napi::CallbackInfo& info) {
484
+ Napi::Env env = info.Env();
485
+ CheckLoaded(env);
486
+
487
+ try {
488
+ int ret = processor->adjust_maximum();
489
+ if (ret != LIBRAW_SUCCESS) {
490
+ std::string error = "Failed to adjust maximum: ";
491
+ error += libraw_strerror(ret);
492
+ Napi::Error::New(env, error).ThrowAsJavaScriptException();
493
+ return env.Null();
494
+ }
495
+
496
+ return Napi::Boolean::New(env, true);
497
+ } catch (const std::exception& e) {
498
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
499
+ return env.Null();
500
+ }
501
+ }
502
+
503
+ // ============== MEMORY IMAGE CREATION ==============
504
+
505
+ Napi::Object LibRawWrapper::CreateImageDataObject(Napi::Env env, libraw_processed_image_t* img) {
506
+ Napi::Object result = Napi::Object::New(env);
507
+
508
+ if (!img) {
509
+ return result;
510
+ }
511
+
512
+ result.Set("type", Napi::Number::New(env, img->type));
513
+ result.Set("height", Napi::Number::New(env, img->height));
514
+ result.Set("width", Napi::Number::New(env, img->width));
515
+ result.Set("colors", Napi::Number::New(env, img->colors));
516
+ result.Set("bits", Napi::Number::New(env, img->bits));
517
+ result.Set("dataSize", Napi::Number::New(env, img->data_size));
518
+
519
+ // Create buffer with the image data
520
+ Napi::Buffer<uint8_t> buffer = Napi::Buffer<uint8_t>::Copy(env, img->data, img->data_size);
521
+ result.Set("data", buffer);
522
+
523
+ return result;
524
+ }
525
+
526
+ Napi::Value LibRawWrapper::CreateMemoryImage(const Napi::CallbackInfo& info) {
527
+ Napi::Env env = info.Env();
528
+ CheckLoaded(env);
529
+
530
+ try {
531
+ int errcode = 0;
532
+ libraw_processed_image_t* img = processor->dcraw_make_mem_image(&errcode);
533
+
534
+ if (!img || errcode != LIBRAW_SUCCESS) {
535
+ std::string error = "Failed to create memory image: ";
536
+ if (errcode != LIBRAW_SUCCESS) {
537
+ error += libraw_strerror(errcode);
538
+ } else {
539
+ error += "Unknown error";
540
+ }
541
+ Napi::Error::New(env, error).ThrowAsJavaScriptException();
542
+ return env.Null();
543
+ }
544
+
545
+ Napi::Object result = CreateImageDataObject(env, img);
546
+ LibRaw::dcraw_clear_mem(img);
547
+
548
+ return result;
549
+ } catch (const std::exception& e) {
550
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
551
+ return env.Null();
552
+ }
553
+ }
554
+
555
+ Napi::Value LibRawWrapper::CreateMemoryThumbnail(const Napi::CallbackInfo& info) {
556
+ Napi::Env env = info.Env();
557
+ CheckLoaded(env);
558
+
559
+ try {
560
+ int errcode = 0;
561
+ libraw_processed_image_t* img = processor->dcraw_make_mem_thumb(&errcode);
562
+
563
+ if (!img || errcode != LIBRAW_SUCCESS) {
564
+ std::string error = "Failed to create memory thumbnail: ";
565
+ if (errcode != LIBRAW_SUCCESS) {
566
+ error += libraw_strerror(errcode);
567
+ } else {
568
+ error += "Unknown error";
569
+ }
570
+ Napi::Error::New(env, error).ThrowAsJavaScriptException();
571
+ return env.Null();
572
+ }
573
+
574
+ Napi::Object result = CreateImageDataObject(env, img);
575
+ LibRaw::dcraw_clear_mem(img);
576
+
577
+ return result;
578
+ } catch (const std::exception& e) {
579
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
580
+ return env.Null();
581
+ }
582
+ }
583
+
584
+ // ============== FILE WRITERS ==============
585
+
586
+ Napi::Value LibRawWrapper::WritePPM(const Napi::CallbackInfo& info) {
587
+ Napi::Env env = info.Env();
588
+ CheckLoaded(env);
589
+
590
+ if (info.Length() < 1 || !info[0].IsString()) {
591
+ Napi::TypeError::New(env, "Expected string filename").ThrowAsJavaScriptException();
592
+ return env.Null();
593
+ }
594
+
595
+ std::string filename = info[0].As<Napi::String>().Utf8Value();
596
+
597
+ try {
598
+ int ret = processor->dcraw_ppm_tiff_writer(filename.c_str());
599
+ if (ret != LIBRAW_SUCCESS) {
600
+ std::string error = "Failed to write PPM file: ";
601
+ error += libraw_strerror(ret);
602
+ Napi::Error::New(env, error).ThrowAsJavaScriptException();
603
+ return env.Null();
604
+ }
605
+
606
+ return Napi::Boolean::New(env, true);
607
+ } catch (const std::exception& e) {
608
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
609
+ return env.Null();
610
+ }
611
+ }
612
+
613
+ Napi::Value LibRawWrapper::WriteTIFF(const Napi::CallbackInfo& info) {
614
+ Napi::Env env = info.Env();
615
+ CheckLoaded(env);
616
+
617
+ if (info.Length() < 1 || !info[0].IsString()) {
618
+ Napi::TypeError::New(env, "Expected string filename").ThrowAsJavaScriptException();
619
+ return env.Null();
620
+ }
621
+
622
+ std::string filename = info[0].As<Napi::String>().Utf8Value();
623
+
624
+ try {
625
+ // Set output format to TIFF
626
+ processor->imgdata.params.output_tiff = 1;
627
+
628
+ int ret = processor->dcraw_ppm_tiff_writer(filename.c_str());
629
+ if (ret != LIBRAW_SUCCESS) {
630
+ std::string error = "Failed to write TIFF file: ";
631
+ error += libraw_strerror(ret);
632
+ Napi::Error::New(env, error).ThrowAsJavaScriptException();
633
+ return env.Null();
634
+ }
635
+
636
+ return Napi::Boolean::New(env, true);
637
+ } catch (const std::exception& e) {
638
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
639
+ return env.Null();
640
+ }
641
+ }
642
+
643
+ Napi::Value LibRawWrapper::WriteThumbnail(const Napi::CallbackInfo& info) {
644
+ Napi::Env env = info.Env();
645
+ CheckLoaded(env);
646
+
647
+ if (info.Length() < 1 || !info[0].IsString()) {
648
+ Napi::TypeError::New(env, "Expected string filename").ThrowAsJavaScriptException();
649
+ return env.Null();
650
+ }
651
+
652
+ std::string filename = info[0].As<Napi::String>().Utf8Value();
653
+
654
+ try {
655
+ int ret = processor->dcraw_thumb_writer(filename.c_str());
656
+ if (ret != LIBRAW_SUCCESS) {
657
+ std::string error = "Failed to write thumbnail: ";
658
+ error += libraw_strerror(ret);
659
+ Napi::Error::New(env, error).ThrowAsJavaScriptException();
660
+ return env.Null();
661
+ }
662
+
663
+ return Napi::Boolean::New(env, true);
664
+ } catch (const std::exception& e) {
665
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
666
+ return env.Null();
667
+ }
668
+ }
669
+
670
+ // ============== CONFIGURATION & SETTINGS ==============
671
+
672
+ Napi::Value LibRawWrapper::SetOutputParams(const Napi::CallbackInfo& info) {
673
+ Napi::Env env = info.Env();
674
+ CheckLoaded(env);
675
+
676
+ if (info.Length() < 1 || !info[0].IsObject()) {
677
+ Napi::TypeError::New(env, "Expected object with output parameters").ThrowAsJavaScriptException();
678
+ return env.Null();
679
+ }
680
+
681
+ Napi::Object params = info[0].As<Napi::Object>();
682
+
683
+ try {
684
+ // Gamma settings
685
+ if (params.Has("gamma") && params.Get("gamma").IsArray()) {
686
+ Napi::Array gamma = params.Get("gamma").As<Napi::Array>();
687
+ if (gamma.Length() >= 2) {
688
+ processor->imgdata.params.gamm[0] = gamma.Get(0u).As<Napi::Number>().DoubleValue();
689
+ processor->imgdata.params.gamm[1] = gamma.Get(1u).As<Napi::Number>().DoubleValue();
690
+ }
691
+ }
692
+
693
+ // Brightness
694
+ if (params.Has("bright") && params.Get("bright").IsNumber()) {
695
+ processor->imgdata.params.bright = params.Get("bright").As<Napi::Number>().FloatValue();
696
+ }
697
+
698
+ // Output color space
699
+ if (params.Has("output_color") && params.Get("output_color").IsNumber()) {
700
+ processor->imgdata.params.output_color = params.Get("output_color").As<Napi::Number>().Int32Value();
701
+ }
702
+
703
+ // Output bits per sample
704
+ if (params.Has("output_bps") && params.Get("output_bps").IsNumber()) {
705
+ processor->imgdata.params.output_bps = params.Get("output_bps").As<Napi::Number>().Int32Value();
706
+ }
707
+
708
+ // User multipliers
709
+ if (params.Has("user_mul") && params.Get("user_mul").IsArray()) {
710
+ Napi::Array userMul = params.Get("user_mul").As<Napi::Array>();
711
+ for (uint32_t i = 0; i < 4 && i < userMul.Length(); i++) {
712
+ processor->imgdata.params.user_mul[i] = userMul.Get(i).As<Napi::Number>().FloatValue();
713
+ }
714
+ }
715
+
716
+ // Auto bright
717
+ if (params.Has("no_auto_bright") && params.Get("no_auto_bright").IsBoolean()) {
718
+ processor->imgdata.params.no_auto_bright = params.Get("no_auto_bright").As<Napi::Boolean>().Value() ? 1 : 0;
719
+ }
720
+
721
+ // Highlight mode
722
+ if (params.Has("highlight") && params.Get("highlight").IsNumber()) {
723
+ processor->imgdata.params.highlight = params.Get("highlight").As<Napi::Number>().Int32Value();
724
+ }
725
+
726
+ // Output TIFF
727
+ if (params.Has("output_tiff") && params.Get("output_tiff").IsBoolean()) {
728
+ processor->imgdata.params.output_tiff = params.Get("output_tiff").As<Napi::Boolean>().Value() ? 1 : 0;
729
+ }
730
+
731
+ return Napi::Boolean::New(env, true);
732
+ } catch (const std::exception& e) {
733
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
734
+ return env.Null();
735
+ }
736
+ }
737
+
738
+ Napi::Value LibRawWrapper::GetOutputParams(const Napi::CallbackInfo& info) {
739
+ Napi::Env env = info.Env();
740
+ CheckLoaded(env);
741
+
742
+ Napi::Object params = Napi::Object::New(env);
743
+
744
+ try {
745
+ // Gamma
746
+ Napi::Array gamma = Napi::Array::New(env);
747
+ gamma.Set(0u, Napi::Number::New(env, processor->imgdata.params.gamm[0]));
748
+ gamma.Set(1u, Napi::Number::New(env, processor->imgdata.params.gamm[1]));
749
+ params.Set("gamma", gamma);
750
+
751
+ // Other parameters
752
+ params.Set("bright", Napi::Number::New(env, processor->imgdata.params.bright));
753
+ params.Set("output_color", Napi::Number::New(env, processor->imgdata.params.output_color));
754
+ params.Set("output_bps", Napi::Number::New(env, processor->imgdata.params.output_bps));
755
+ params.Set("no_auto_bright", Napi::Boolean::New(env, processor->imgdata.params.no_auto_bright));
756
+ params.Set("highlight", Napi::Number::New(env, processor->imgdata.params.highlight));
757
+ params.Set("output_tiff", Napi::Boolean::New(env, processor->imgdata.params.output_tiff));
758
+
759
+ // User multipliers
760
+ Napi::Array userMul = Napi::Array::New(env);
761
+ for (int i = 0; i < 4; i++) {
762
+ userMul.Set(i, Napi::Number::New(env, processor->imgdata.params.user_mul[i]));
763
+ }
764
+ params.Set("user_mul", userMul);
765
+
766
+ return params;
767
+ } catch (const std::exception& e) {
768
+ Napi::Error::New(env, e.what()).ThrowAsJavaScriptException();
769
+ return env.Null();
770
+ }
771
+ }
772
+
773
+ // ============== UTILITY FUNCTIONS ==============
774
+
775
+ Napi::Value LibRawWrapper::IsFloatingPoint(const Napi::CallbackInfo& info) {
776
+ Napi::Env env = info.Env();
777
+ CheckLoaded(env);
778
+
779
+ bool isFloating = processor->is_floating_point();
780
+ return Napi::Boolean::New(env, isFloating);
781
+ }
782
+
783
+ Napi::Value LibRawWrapper::IsFujiRotated(const Napi::CallbackInfo& info) {
784
+ Napi::Env env = info.Env();
785
+ CheckLoaded(env);
786
+
787
+ bool isFuji = processor->is_fuji_rotated();
788
+ return Napi::Boolean::New(env, isFuji);
789
+ }
790
+
791
+ Napi::Value LibRawWrapper::IsSRAW(const Napi::CallbackInfo& info) {
792
+ Napi::Env env = info.Env();
793
+ CheckLoaded(env);
794
+
795
+ bool isSraw = processor->is_sraw();
796
+ return Napi::Boolean::New(env, isSraw);
797
+ }
798
+
799
+ Napi::Value LibRawWrapper::IsJPEGThumb(const Napi::CallbackInfo& info) {
800
+ Napi::Env env = info.Env();
801
+ CheckLoaded(env);
802
+
803
+ bool isJpeg = processor->is_jpeg_thumb();
804
+ return Napi::Boolean::New(env, isJpeg);
805
+ }
806
+
807
+ Napi::Value LibRawWrapper::ErrorCount(const Napi::CallbackInfo& info) {
808
+ Napi::Env env = info.Env();
809
+ CheckLoaded(env);
810
+
811
+ int errors = processor->error_count();
812
+ return Napi::Number::New(env, errors);
813
+ }
814
+
815
+ // ============== STATIC METHODS ==============
816
+
817
+ Napi::Value LibRawWrapper::GetVersion(const Napi::CallbackInfo& info) {
818
+ Napi::Env env = info.Env();
819
+
820
+ const char* version = LibRaw::version();
821
+ return Napi::String::New(env, version ? version : "Unknown");
822
+ }
823
+
824
+ Napi::Value LibRawWrapper::GetCapabilities(const Napi::CallbackInfo& info) {
825
+ Napi::Env env = info.Env();
826
+
827
+ unsigned int caps = LibRaw::capabilities();
828
+ return Napi::Number::New(env, caps);
829
+ }
830
+
831
+ Napi::Value LibRawWrapper::GetCameraList(const Napi::CallbackInfo& info) {
832
+ Napi::Env env = info.Env();
833
+
834
+ const char** cameras = LibRaw::cameraList();
835
+ Napi::Array result = Napi::Array::New(env);
836
+
837
+ if (cameras) {
838
+ uint32_t index = 0;
839
+ while (cameras[index] != nullptr) {
840
+ result.Set(index, Napi::String::New(env, cameras[index]));
841
+ index++;
842
+ }
843
+ }
844
+
845
+ return result;
846
+ }
847
+
848
+ Napi::Value LibRawWrapper::GetCameraCount(const Napi::CallbackInfo& info) {
849
+ Napi::Env env = info.Env();
850
+
851
+ int count = LibRaw::cameraCount();
852
+ return Napi::Number::New(env, count);
853
+ }