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,1051 @@
1
+ /* -*- C++ -*-
2
+ * Copyright 2019-2021 LibRaw LLC (info@libraw.org)
3
+ *
4
+ LibRaw is free software; you can redistribute it and/or modify
5
+ it under the terms of the one of two licenses as you choose:
6
+
7
+ 1. GNU LESSER GENERAL PUBLIC LICENSE version 2.1
8
+ (See file LICENSE.LGPL provided in LibRaw distribution archive for details).
9
+
10
+ 2. COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
11
+ (See file LICENSE.CDDL provided in LibRaw distribution archive for details).
12
+
13
+ */
14
+
15
+ #include "../../internal/dcraw_defs.h"
16
+
17
+ // void hexDump(char *title, void *addr, int len);
18
+
19
+ unsigned sget4_order (short _order, uchar *s);
20
+ double sget_fixed32u (short _order, uchar *s);
21
+ double AngleConversion_a (short _order, uchar *s);
22
+ double AngleConversion (short _order, uchar *s);
23
+
24
+ static const uchar xlat[2][256] = {
25
+ {0xc1, 0xbf, 0x6d, 0x0d, 0x59, 0xc5, 0x13, 0x9d, 0x83, 0x61, 0x6b, 0x4f,
26
+ 0xc7, 0x7f, 0x3d, 0x3d, 0x53, 0x59, 0xe3, 0xc7, 0xe9, 0x2f, 0x95, 0xa7,
27
+ 0x95, 0x1f, 0xdf, 0x7f, 0x2b, 0x29, 0xc7, 0x0d, 0xdf, 0x07, 0xef, 0x71,
28
+ 0x89, 0x3d, 0x13, 0x3d, 0x3b, 0x13, 0xfb, 0x0d, 0x89, 0xc1, 0x65, 0x1f,
29
+ 0xb3, 0x0d, 0x6b, 0x29, 0xe3, 0xfb, 0xef, 0xa3, 0x6b, 0x47, 0x7f, 0x95,
30
+ 0x35, 0xa7, 0x47, 0x4f, 0xc7, 0xf1, 0x59, 0x95, 0x35, 0x11, 0x29, 0x61,
31
+ 0xf1, 0x3d, 0xb3, 0x2b, 0x0d, 0x43, 0x89, 0xc1, 0x9d, 0x9d, 0x89, 0x65,
32
+ 0xf1, 0xe9, 0xdf, 0xbf, 0x3d, 0x7f, 0x53, 0x97, 0xe5, 0xe9, 0x95, 0x17,
33
+ 0x1d, 0x3d, 0x8b, 0xfb, 0xc7, 0xe3, 0x67, 0xa7, 0x07, 0xf1, 0x71, 0xa7,
34
+ 0x53, 0xb5, 0x29, 0x89, 0xe5, 0x2b, 0xa7, 0x17, 0x29, 0xe9, 0x4f, 0xc5,
35
+ 0x65, 0x6d, 0x6b, 0xef, 0x0d, 0x89, 0x49, 0x2f, 0xb3, 0x43, 0x53, 0x65,
36
+ 0x1d, 0x49, 0xa3, 0x13, 0x89, 0x59, 0xef, 0x6b, 0xef, 0x65, 0x1d, 0x0b,
37
+ 0x59, 0x13, 0xe3, 0x4f, 0x9d, 0xb3, 0x29, 0x43, 0x2b, 0x07, 0x1d, 0x95,
38
+ 0x59, 0x59, 0x47, 0xfb, 0xe5, 0xe9, 0x61, 0x47, 0x2f, 0x35, 0x7f, 0x17,
39
+ 0x7f, 0xef, 0x7f, 0x95, 0x95, 0x71, 0xd3, 0xa3, 0x0b, 0x71, 0xa3, 0xad,
40
+ 0x0b, 0x3b, 0xb5, 0xfb, 0xa3, 0xbf, 0x4f, 0x83, 0x1d, 0xad, 0xe9, 0x2f,
41
+ 0x71, 0x65, 0xa3, 0xe5, 0x07, 0x35, 0x3d, 0x0d, 0xb5, 0xe9, 0xe5, 0x47,
42
+ 0x3b, 0x9d, 0xef, 0x35, 0xa3, 0xbf, 0xb3, 0xdf, 0x53, 0xd3, 0x97, 0x53,
43
+ 0x49, 0x71, 0x07, 0x35, 0x61, 0x71, 0x2f, 0x43, 0x2f, 0x11, 0xdf, 0x17,
44
+ 0x97, 0xfb, 0x95, 0x3b, 0x7f, 0x6b, 0xd3, 0x25, 0xbf, 0xad, 0xc7, 0xc5,
45
+ 0xc5, 0xb5, 0x8b, 0xef, 0x2f, 0xd3, 0x07, 0x6b, 0x25, 0x49, 0x95, 0x25,
46
+ 0x49, 0x6d, 0x71, 0xc7},
47
+ {0xa7, 0xbc, 0xc9, 0xad, 0x91, 0xdf, 0x85, 0xe5, 0xd4, 0x78, 0xd5, 0x17,
48
+ 0x46, 0x7c, 0x29, 0x4c, 0x4d, 0x03, 0xe9, 0x25, 0x68, 0x11, 0x86, 0xb3,
49
+ 0xbd, 0xf7, 0x6f, 0x61, 0x22, 0xa2, 0x26, 0x34, 0x2a, 0xbe, 0x1e, 0x46,
50
+ 0x14, 0x68, 0x9d, 0x44, 0x18, 0xc2, 0x40, 0xf4, 0x7e, 0x5f, 0x1b, 0xad,
51
+ 0x0b, 0x94, 0xb6, 0x67, 0xb4, 0x0b, 0xe1, 0xea, 0x95, 0x9c, 0x66, 0xdc,
52
+ 0xe7, 0x5d, 0x6c, 0x05, 0xda, 0xd5, 0xdf, 0x7a, 0xef, 0xf6, 0xdb, 0x1f,
53
+ 0x82, 0x4c, 0xc0, 0x68, 0x47, 0xa1, 0xbd, 0xee, 0x39, 0x50, 0x56, 0x4a,
54
+ 0xdd, 0xdf, 0xa5, 0xf8, 0xc6, 0xda, 0xca, 0x90, 0xca, 0x01, 0x42, 0x9d,
55
+ 0x8b, 0x0c, 0x73, 0x43, 0x75, 0x05, 0x94, 0xde, 0x24, 0xb3, 0x80, 0x34,
56
+ 0xe5, 0x2c, 0xdc, 0x9b, 0x3f, 0xca, 0x33, 0x45, 0xd0, 0xdb, 0x5f, 0xf5,
57
+ 0x52, 0xc3, 0x21, 0xda, 0xe2, 0x22, 0x72, 0x6b, 0x3e, 0xd0, 0x5b, 0xa8,
58
+ 0x87, 0x8c, 0x06, 0x5d, 0x0f, 0xdd, 0x09, 0x19, 0x93, 0xd0, 0xb9, 0xfc,
59
+ 0x8b, 0x0f, 0x84, 0x60, 0x33, 0x1c, 0x9b, 0x45, 0xf1, 0xf0, 0xa3, 0x94,
60
+ 0x3a, 0x12, 0x77, 0x33, 0x4d, 0x44, 0x78, 0x28, 0x3c, 0x9e, 0xfd, 0x65,
61
+ 0x57, 0x16, 0x94, 0x6b, 0xfb, 0x59, 0xd0, 0xc8, 0x22, 0x36, 0xdb, 0xd2,
62
+ 0x63, 0x98, 0x43, 0xa1, 0x04, 0x87, 0x86, 0xf7, 0xa6, 0x26, 0xbb, 0xd6,
63
+ 0x59, 0x4d, 0xbf, 0x6a, 0x2e, 0xaa, 0x2b, 0xef, 0xe6, 0x78, 0xb6, 0x4e,
64
+ 0xe0, 0x2f, 0xdc, 0x7c, 0xbe, 0x57, 0x19, 0x32, 0x7e, 0x2a, 0xd0, 0xb8,
65
+ 0xba, 0x29, 0x00, 0x3c, 0x52, 0x7d, 0xa8, 0x49, 0x3b, 0x2d, 0xeb, 0x25,
66
+ 0x49, 0xfa, 0xa3, 0xaa, 0x39, 0xa7, 0xc5, 0xa7, 0x50, 0x11, 0x36, 0xfb,
67
+ 0xc6, 0x67, 0x4a, 0xf5, 0xa5, 0x12, 0x65, 0x7e, 0xb0, 0xdf, 0xaf, 0x4e,
68
+ 0xb3, 0x61, 0x7f, 0x2f} };
69
+
70
+ void LibRaw::processNikonLensData(uchar *LensData, unsigned len)
71
+ {
72
+
73
+ ushort i=0;
74
+ if (imgdata.lens.nikon.LensType & 0x80) {
75
+ strcpy (ilm.LensFeatures_pre, "AF-P");
76
+ } else if (!(imgdata.lens.nikon.LensType & 0x01)) {
77
+ ilm.LensFeatures_pre[0] = 'A';
78
+ ilm.LensFeatures_pre[1] = 'F';
79
+ } else {
80
+ ilm.LensFeatures_pre[0] = 'M';
81
+ ilm.LensFeatures_pre[1] = 'F';
82
+ }
83
+
84
+ if (imgdata.lens.nikon.LensType & 0x40) {
85
+ ilm.LensFeatures_suf[0] = 'E';
86
+ } else if (imgdata.lens.nikon.LensType & 0x04) {
87
+ ilm.LensFeatures_suf[0] = 'G';
88
+ } else if (imgdata.lens.nikon.LensType & 0x02) {
89
+ ilm.LensFeatures_suf[0] = 'D';
90
+ }
91
+
92
+ if (imgdata.lens.nikon.LensType & 0x08)
93
+ {
94
+ ilm.LensFeatures_suf[1] = ' ';
95
+ ilm.LensFeatures_suf[2] = 'V';
96
+ ilm.LensFeatures_suf[3] = 'R';
97
+ }
98
+
99
+ if (imgdata.lens.nikon.LensType & 0x10)
100
+ {
101
+ ilm.LensMount = ilm.CameraMount = LIBRAW_MOUNT_Nikon_CX;
102
+ ilm.CameraFormat = ilm.LensFormat = LIBRAW_FORMAT_1INCH;
103
+ }
104
+ else
105
+ ilm.LensMount = ilm.CameraMount = LIBRAW_MOUNT_Nikon_F;
106
+
107
+ if (imgdata.lens.nikon.LensType & 0x20)
108
+ {
109
+ strcpy(ilm.Adapter, "FT-1");
110
+ ilm.LensMount = LIBRAW_MOUNT_Nikon_F;
111
+ ilm.CameraMount = LIBRAW_MOUNT_Nikon_CX;
112
+ ilm.CameraFormat = LIBRAW_FORMAT_1INCH;
113
+ }
114
+
115
+ imgdata.lens.nikon.LensType = imgdata.lens.nikon.LensType & 0xdf;
116
+
117
+ if ((len < 20) || (len == 58) || (len == 108))
118
+ {
119
+ switch (len)
120
+ {
121
+ case 9:
122
+ i = 2;
123
+ break;
124
+ case 15:
125
+ i = 7;
126
+ break;
127
+ case 16:
128
+ i = 8;
129
+ break;
130
+ case 58: // "Z 6", "Z 6 II", "Z 7", "Z 7 II", "Z 50", D780, "Z 5", "Z fc"
131
+ case 108: // "Z 9"
132
+ if (model[6] == 'Z')
133
+ ilm.CameraMount = LIBRAW_MOUNT_Nikon_Z;
134
+ if (imNikon.HighSpeedCropFormat != 12)
135
+ ilm.CameraFormat = LIBRAW_FORMAT_FF;
136
+ i = 1;
137
+ while ((LensData[i] == LensData[0]) && (i < 17))
138
+ i++;
139
+ if (i == 17)
140
+ {
141
+ ilm.LensMount = LIBRAW_MOUNT_Nikon_Z;
142
+ ilm.LensID = sget2(LensData + 0x2c);
143
+ if (
144
+ (ilm.LensID == 11)
145
+ || (ilm.LensID == 12)
146
+ || (ilm.LensID == 26)
147
+ ) ilm.LensFormat = LIBRAW_FORMAT_APSC;
148
+ else ilm.LensFormat = LIBRAW_FORMAT_FF;
149
+ if (ilm.MaxAp4CurFocal < 0.7f)
150
+ ilm.MaxAp4CurFocal = libraw_powf64l(
151
+ 2.0f, (float)sget2(LensData + 0x32) / 384.0f - 1.0f);
152
+ if (ilm.CurAp < 0.7f)
153
+ ilm.CurAp = libraw_powf64l(
154
+ 2.0f, (float)sget2(LensData + 0x34) / 384.0f - 1.0f);
155
+ if (fabsf(ilm.CurFocal) < 1.1f)
156
+ ilm.CurFocal = sget2(LensData + 0x38);
157
+ return;
158
+ }
159
+ i = 9;
160
+ ilm.LensMount = LIBRAW_MOUNT_Nikon_F;
161
+ if (ilm.CameraMount == LIBRAW_MOUNT_Nikon_Z)
162
+ strcpy(ilm.Adapter, "FTZ");
163
+ break;
164
+ }
165
+ imgdata.lens.nikon.LensIDNumber = LensData[i];
166
+ imgdata.lens.nikon.LensFStops = LensData[i + 1];
167
+ ilm.LensFStops = (float)imgdata.lens.nikon.LensFStops / 12.0f;
168
+ if (fabsf(ilm.MinFocal) < 1.1f)
169
+ {
170
+ if ((imgdata.lens.nikon.LensType ^ (uchar)0x01) || LensData[i + 2])
171
+ ilm.MinFocal =
172
+ 5.0f * libraw_powf64l(2.0f, (float)LensData[i + 2] / 24.0f);
173
+ if ((imgdata.lens.nikon.LensType ^ (uchar)0x01) || LensData[i + 3])
174
+ ilm.MaxFocal =
175
+ 5.0f * libraw_powf64l(2.0f, (float)LensData[i + 3] / 24.0f);
176
+ if ((imgdata.lens.nikon.LensType ^ (uchar)0x01) || LensData[i + 4])
177
+ ilm.MaxAp4MinFocal =
178
+ libraw_powf64l(2.0f, (float)LensData[i + 4] / 24.0f);
179
+ if ((imgdata.lens.nikon.LensType ^ (uchar)0x01) || LensData[i + 5])
180
+ ilm.MaxAp4MaxFocal =
181
+ libraw_powf64l(2.0f, (float)LensData[i + 5] / 24.0f);
182
+ }
183
+ imgdata.lens.nikon.MCUVersion = LensData[i + 6];
184
+ if (i != 2)
185
+ {
186
+ if ((LensData[i - 1]) && (fabsf(ilm.CurFocal) < 1.1f))
187
+ ilm.CurFocal =
188
+ 5.0f * libraw_powf64l(2.0f, (float)LensData[i - 1] / 24.0f);
189
+ if (LensData[i + 7])
190
+ imgdata.lens.nikon.EffectiveMaxAp =
191
+ libraw_powf64l(2.0f, (float)LensData[i + 7] / 24.0f);
192
+ }
193
+ ilm.LensID = (unsigned long long)LensData[i] << 56 |
194
+ (unsigned long long)LensData[i + 1] << 48 |
195
+ (unsigned long long)LensData[i + 2] << 40 |
196
+ (unsigned long long)LensData[i + 3] << 32 |
197
+ (unsigned long long)LensData[i + 4] << 24 |
198
+ (unsigned long long)LensData[i + 5] << 16 |
199
+ (unsigned long long)LensData[i + 6] << 8 |
200
+ (unsigned long long)imgdata.lens.nikon.LensType;
201
+ }
202
+ else if ((len == 459) || (len == 590))
203
+ {
204
+ memcpy(ilm.Lens, LensData + 390, 64);
205
+ }
206
+ else if (len == 509)
207
+ {
208
+ memcpy(ilm.Lens, LensData + 391, 64);
209
+ }
210
+ else if (len == 879)
211
+ {
212
+ memcpy(ilm.Lens, LensData + 680, 64);
213
+ }
214
+
215
+ return;
216
+ }
217
+
218
+ void LibRaw::Nikon_NRW_WBtag(int wb, int skip)
219
+ {
220
+
221
+ int r, g0, g1, b;
222
+ if (skip)
223
+ get4(); // skip wb "CCT", it is not unique
224
+ r = get4();
225
+ g0 = get4();
226
+ g1 = get4();
227
+ b = get4();
228
+ if (r && g0 && g1 && b)
229
+ {
230
+ icWBC[wb][0] = r << 1;
231
+ icWBC[wb][1] = g0;
232
+ icWBC[wb][2] = b << 1;
233
+ icWBC[wb][3] = g1;
234
+ }
235
+ return;
236
+ }
237
+
238
+ void LibRaw::parseNikonMakernote(int base, int uptag, unsigned /*dng_writer */)
239
+ {
240
+
241
+ unsigned offset = 0, entries, tag, type, len, save;
242
+
243
+ unsigned c, i;
244
+ unsigned LensData_len = 0;
245
+ uchar *LensData_buf=0;
246
+ uchar ColorBalanceData_buf[324];
247
+ int ColorBalanceData_ready = 0;
248
+ uchar ci, cj, ck;
249
+ unsigned serial = 0;
250
+ unsigned custom_serial = 0;
251
+
252
+ unsigned ShotInfo_len = 0;
253
+ uchar *ShotInfo_buf=0;
254
+
255
+ /* for dump:
256
+ uchar *cj_block, *ck_block;
257
+ */
258
+
259
+ short morder, sorder = order;
260
+ char buf[10];
261
+ INT64 fsize = ifp->size();
262
+
263
+ fread(buf, 1, 10, ifp);
264
+
265
+ if (!strcmp(buf, "Nikon"))
266
+ {
267
+ if (buf[6] != '\2')
268
+ return;
269
+ base = ftell(ifp);
270
+ order = get2();
271
+ if (get2() != 42)
272
+ goto quit;
273
+ offset = get4();
274
+ fseek(ifp, INT64(offset) - 8LL, SEEK_CUR);
275
+ }
276
+ else
277
+ {
278
+ fseek(ifp, -10, SEEK_CUR);
279
+ }
280
+
281
+ entries = get2();
282
+ if (entries > 1000)
283
+ return;
284
+ morder = order;
285
+
286
+ while (entries--)
287
+ {
288
+ order = morder;
289
+ tiff_get(base, &tag, &type, &len, &save);
290
+
291
+ INT64 pos = ifp->tell();
292
+ if (len > 8 && pos + len > 2 * fsize)
293
+ {
294
+ fseek(ifp, save, SEEK_SET); // Recover tiff-read position!!
295
+ continue;
296
+ }
297
+ tag |= uptag << 16;
298
+ if (len > 100 * 1024 * 1024)
299
+ goto next; // 100Mb tag? No!
300
+
301
+ if (tag == 0x0002)
302
+ {
303
+ if (!iso_speed)
304
+ iso_speed = (get2(), get2());
305
+ }
306
+ else if (tag == 0x000a)
307
+ {
308
+ ilm.LensMount = ilm.CameraMount = LIBRAW_MOUNT_FixedLens;
309
+ ilm.FocalType = LIBRAW_FT_ZOOM_LENS;
310
+ }
311
+ else if ((tag == 0x000c) && (len == 4) && tagtypeIs(LIBRAW_EXIFTAG_TYPE_RATIONAL))
312
+ {
313
+ cam_mul[0] = getreal(type);
314
+ cam_mul[2] = getreal(type);
315
+ cam_mul[1] = getreal(type);
316
+ cam_mul[3] = getreal(type);
317
+ }
318
+ else if (tag == 0x0011)
319
+ {
320
+ if (is_raw)
321
+ {
322
+ fseek(ifp, get4() + base, SEEK_SET);
323
+ parse_tiff_ifd(base);
324
+ }
325
+ }
326
+ else if (tag == 0x0012)
327
+ {
328
+ uchar uc1 = fgetc(ifp);
329
+ uchar uc2 = fgetc(ifp);
330
+ uchar uc3 = fgetc(ifp);
331
+ if (uc3)
332
+ imCommon.FlashEC = (float)(uc1 * uc2) / (float)uc3;
333
+ }
334
+ else if (tag == 0x0014)
335
+ {
336
+ if (tagtypeIs(LIBRAW_EXIFTOOLTAGTYPE_binary))
337
+ {
338
+ if (len == 2560)
339
+ { // E5400, E8400, E8700, E8800
340
+ fseek(ifp, 0x4e0L, SEEK_CUR);
341
+ order = 0x4d4d;
342
+ cam_mul[0] = get2() / 256.0;
343
+ cam_mul[2] = get2() / 256.0;
344
+ cam_mul[1] = cam_mul[3] = 1.0;
345
+ icWBC[LIBRAW_WBI_Auto][0] = get2();
346
+ icWBC[LIBRAW_WBI_Auto][2] = get2();
347
+ icWBC[LIBRAW_WBI_Daylight][0] = get2();
348
+ icWBC[LIBRAW_WBI_Daylight][2] = get2();
349
+ fseek(ifp, 0x18L, SEEK_CUR);
350
+ icWBC[LIBRAW_WBI_Tungsten][0] = get2();
351
+ icWBC[LIBRAW_WBI_Tungsten][2] = get2();
352
+ fseek(ifp, 0x18L, SEEK_CUR);
353
+ icWBC[LIBRAW_WBI_FL_W][0] = get2();
354
+ icWBC[LIBRAW_WBI_FL_W][2] = get2();
355
+ icWBC[LIBRAW_WBI_FL_N][0] = get2();
356
+ icWBC[LIBRAW_WBI_FL_N][2] = get2();
357
+ icWBC[LIBRAW_WBI_FL_D][0] = get2();
358
+ icWBC[LIBRAW_WBI_FL_D][2] = get2();
359
+ icWBC[LIBRAW_WBI_Cloudy][0] = get2();
360
+ icWBC[LIBRAW_WBI_Cloudy][2] = get2();
361
+ fseek(ifp, 0x18L, SEEK_CUR);
362
+ icWBC[LIBRAW_WBI_Flash][0] = get2();
363
+ icWBC[LIBRAW_WBI_Flash][2] = get2();
364
+
365
+ icWBC[LIBRAW_WBI_Auto][1] = icWBC[LIBRAW_WBI_Auto][3] =
366
+ icWBC[LIBRAW_WBI_Daylight][1] = icWBC[LIBRAW_WBI_Daylight][3] =
367
+ icWBC[LIBRAW_WBI_Tungsten][1] = icWBC[LIBRAW_WBI_Tungsten][3] =
368
+ icWBC[LIBRAW_WBI_FL_W][1] = icWBC[LIBRAW_WBI_FL_W][3] =
369
+ icWBC[LIBRAW_WBI_FL_N][1] = icWBC[LIBRAW_WBI_FL_N][3] =
370
+ icWBC[LIBRAW_WBI_FL_D][1] = icWBC[LIBRAW_WBI_FL_D][3] =
371
+ icWBC[LIBRAW_WBI_Cloudy][1] = icWBC[LIBRAW_WBI_Cloudy][3] =
372
+ icWBC[LIBRAW_WBI_Flash][1] = icWBC[LIBRAW_WBI_Flash][3] = 256;
373
+
374
+ if (strncmp(model, "E8700", 5))
375
+ {
376
+ fseek(ifp, 0x18L, SEEK_CUR);
377
+ icWBC[LIBRAW_WBI_Shade][0] = get2();
378
+ icWBC[LIBRAW_WBI_Shade][2] = get2();
379
+ icWBC[LIBRAW_WBI_Shade][1] = icWBC[LIBRAW_WBI_Shade][3] = 256;
380
+ }
381
+ }
382
+ else if (len == 1280)
383
+ { // E5000, E5700
384
+ cam_mul[0] = cam_mul[1] = cam_mul[2] = cam_mul[3] = 1.0;
385
+ }
386
+ else
387
+ {
388
+ fread(buf, 1, 10, ifp);
389
+ if (!strncmp(buf, "NRW ", 4))
390
+ { // P6000, P7000, P7100, B700, P1000
391
+ if (!strcmp(buf + 4, "0100"))
392
+ { // P6000
393
+ fseek(ifp, 0x13deL, SEEK_CUR);
394
+ cam_mul[0] = get4() << 1;
395
+ cam_mul[1] = get4();
396
+ cam_mul[3] = get4();
397
+ cam_mul[2] = get4() << 1;
398
+ Nikon_NRW_WBtag(LIBRAW_WBI_Daylight, 0);
399
+ Nikon_NRW_WBtag(LIBRAW_WBI_Cloudy, 0);
400
+ fseek(ifp, 0x10L, SEEK_CUR);
401
+ Nikon_NRW_WBtag(LIBRAW_WBI_Tungsten, 0);
402
+ Nikon_NRW_WBtag(LIBRAW_WBI_FL_W, 0);
403
+ Nikon_NRW_WBtag(LIBRAW_WBI_Flash, 0);
404
+ fseek(ifp, 0x10L, SEEK_CUR);
405
+ Nikon_NRW_WBtag(LIBRAW_WBI_Custom, 0);
406
+ Nikon_NRW_WBtag(LIBRAW_WBI_Auto, 0);
407
+ }
408
+ else
409
+ { // P7000, P7100, B700, P1000
410
+ fseek(ifp, 0x16L, SEEK_CUR);
411
+ black = get2();
412
+ if (cam_mul[0] < 0.1f)
413
+ {
414
+ fseek(ifp, 0x16L, SEEK_CUR);
415
+ cam_mul[0] = get4() << 1;
416
+ cam_mul[1] = get4();
417
+ cam_mul[3] = get4();
418
+ cam_mul[2] = get4() << 1;
419
+ }
420
+ else
421
+ {
422
+ fseek(ifp, 0x26L, SEEK_CUR);
423
+ }
424
+ if (len != 332)
425
+ { // not A1000
426
+ Nikon_NRW_WBtag(LIBRAW_WBI_Daylight, 1);
427
+ Nikon_NRW_WBtag(LIBRAW_WBI_Cloudy, 1);
428
+ Nikon_NRW_WBtag(LIBRAW_WBI_Shade, 1);
429
+ Nikon_NRW_WBtag(LIBRAW_WBI_Tungsten, 1);
430
+ Nikon_NRW_WBtag(LIBRAW_WBI_FL_W, 1);
431
+ Nikon_NRW_WBtag(LIBRAW_WBI_FL_N, 1);
432
+ Nikon_NRW_WBtag(LIBRAW_WBI_FL_D, 1);
433
+ Nikon_NRW_WBtag(LIBRAW_WBI_HT_Mercury, 1);
434
+ fseek(ifp, 0x14L, SEEK_CUR);
435
+ Nikon_NRW_WBtag(LIBRAW_WBI_Custom, 1);
436
+ Nikon_NRW_WBtag(LIBRAW_WBI_Auto, 1);
437
+ }
438
+ else
439
+ {
440
+ fseek(ifp, 0xc8L, SEEK_CUR);
441
+ Nikon_NRW_WBtag(LIBRAW_WBI_Auto, 1);
442
+ }
443
+ }
444
+ }
445
+ }
446
+ }
447
+ }
448
+ else if (tag == 0x001b)
449
+ {
450
+ imNikon.HighSpeedCropFormat = get2();
451
+ imNikon.SensorHighSpeedCrop.cwidth = get2();
452
+ imNikon.SensorHighSpeedCrop.cheight = get2();
453
+ imNikon.SensorWidth = get2();
454
+ imNikon.SensorHeight = get2();
455
+ imNikon.SensorHighSpeedCrop.cleft = get2();
456
+ imNikon.SensorHighSpeedCrop.ctop = get2();
457
+ switch (imNikon.HighSpeedCropFormat)
458
+ {
459
+ case 0:
460
+ case 1:
461
+ case 2:
462
+ case 4:
463
+ imgdata.sizes.raw_aspect = LIBRAW_IMAGE_ASPECT_3to2;
464
+ break;
465
+ case 11:
466
+ ilm.CameraFormat = LIBRAW_FORMAT_FF;
467
+ imgdata.sizes.raw_aspect = LIBRAW_IMAGE_ASPECT_3to2;
468
+ break;
469
+ case 12:
470
+ ilm.CameraFormat = LIBRAW_FORMAT_APSC;
471
+ imgdata.sizes.raw_aspect = LIBRAW_IMAGE_ASPECT_3to2;
472
+ break;
473
+ case 3:
474
+ imgdata.sizes.raw_aspect = LIBRAW_IMAGE_ASPECT_5to4;
475
+ break;
476
+ case 6:
477
+ imgdata.sizes.raw_aspect = LIBRAW_IMAGE_ASPECT_16to9;
478
+ break;
479
+ case 17:
480
+ imgdata.sizes.raw_aspect = LIBRAW_IMAGE_ASPECT_1to1;
481
+ break;
482
+ default:
483
+ imgdata.sizes.raw_aspect = LIBRAW_IMAGE_ASPECT_OTHER;
484
+ break;
485
+ }
486
+ }
487
+ else if (tag == 0x001d)
488
+ { // serial number
489
+ if (len > 0)
490
+ {
491
+ int model_len = (int)strbuflen(model);
492
+ while ((c = fgetc(ifp)) && (len-- > 0) && (c != (unsigned)EOF))
493
+ {
494
+ if ((!custom_serial) && (!isdigit(c)))
495
+ {
496
+ if (((model_len == 3) && !strcmp(model, "D50")) ||
497
+ ((model_len >= 4) && !isalnum(model[model_len - 4]) &&
498
+ !strncmp(&model[model_len - 3], "D50", 3)))
499
+ {
500
+ custom_serial = 34;
501
+ }
502
+ else
503
+ {
504
+ custom_serial = 96;
505
+ }
506
+ break;
507
+ }
508
+ serial = serial * 10 + (isdigit(c) ? c - '0' : c % 10);
509
+ }
510
+ if (!imgdata.shootinginfo.BodySerial[0])
511
+ sprintf(imgdata.shootinginfo.BodySerial, "%d", serial);
512
+ }
513
+ }
514
+ else if (tag == 0x001e) {
515
+ switch (get2()) {
516
+ case 1:
517
+ imCommon.ColorSpace = LIBRAW_COLORSPACE_sRGB;
518
+ break;
519
+ case 2:
520
+ imCommon.ColorSpace = LIBRAW_COLORSPACE_AdobeRGB;
521
+ break;
522
+ default:
523
+ imCommon.ColorSpace = LIBRAW_COLORSPACE_Unknown;
524
+ break;
525
+ }
526
+ } else if (tag == 0x0025)
527
+ {
528
+ imCommon.real_ISO = int(100.0 * libraw_powf64l(2.0, double((uchar)fgetc(ifp)) / 12.0 - 5.0));
529
+ if (!iso_speed || (iso_speed == 65535))
530
+ {
531
+ iso_speed = imCommon.real_ISO;
532
+ }
533
+ }
534
+ else if (tag == 0x0022)
535
+ {
536
+ imNikon.Active_D_Lighting = get2();
537
+ }
538
+ else if (tag == 0x003b)
539
+ { // WB for multi-exposure (ME); all 1s for regular exposures
540
+ imNikon.ME_WB[0] = getreal(type);
541
+ imNikon.ME_WB[2] = getreal(type);
542
+ imNikon.ME_WB[1] = getreal(type);
543
+ imNikon.ME_WB[3] = getreal(type);
544
+ }
545
+ else if (tag == 0x003d)
546
+ { // not corrected for file bitcount, to be patched in open_datastream
547
+ FORC4 cblack[RGGB_2_RGBG(c)] = get2();
548
+ i = cblack[3];
549
+ FORC3 if (i > cblack[c]) i = cblack[c];
550
+ FORC4 cblack[c] -= i;
551
+ black += i;
552
+ }
553
+ else if (tag == 0x0045)
554
+ { /* upper left pixel (x,y), size (width,height) */
555
+ imgdata.sizes.raw_inset_crops[0].cleft = get2();
556
+ imgdata.sizes.raw_inset_crops[0].ctop = get2();
557
+ imgdata.sizes.raw_inset_crops[0].cwidth = get2();
558
+ imgdata.sizes.raw_inset_crops[0].cheight = get2();
559
+ }
560
+ else if (tag == 0x0051)
561
+ {
562
+ fseek(ifp, 10LL, SEEK_CUR);
563
+ imNikon.NEFCompression = get2();
564
+ }
565
+ else if (tag == 0x0082)
566
+ { // lens attachment
567
+ stmread(ilm.Attachment, len, ifp);
568
+ }
569
+ else if (tag == 0x0083)
570
+ { // lens type
571
+ imgdata.lens.nikon.LensType = fgetc(ifp);
572
+ }
573
+ else if (tag == 0x0084)
574
+ { // lens
575
+ ilm.MinFocal = getreal(type);
576
+ ilm.MaxFocal = getreal(type);
577
+ ilm.MaxAp4MinFocal = getreal(type);
578
+ ilm.MaxAp4MaxFocal = getreal(type);
579
+ }
580
+ else if (tag == 0x0088) // AFInfo
581
+ {
582
+ if (!imCommon.afcount)
583
+ {
584
+ imCommon.afdata[imCommon.afcount].AFInfoData_tag = tag;
585
+ imCommon.afdata[imCommon.afcount].AFInfoData_order = order;
586
+ imCommon.afdata[imCommon.afcount].AFInfoData_length = len;
587
+ imCommon.afdata[imCommon.afcount].AFInfoData = (uchar *)calloc(imCommon.afdata[imCommon.afcount].AFInfoData_length,1);
588
+ fread(imCommon.afdata[imCommon.afcount].AFInfoData, imCommon.afdata[imCommon.afcount].AFInfoData_length, 1, ifp);
589
+ imCommon.afcount = 1;
590
+ }
591
+ }
592
+ else if (tag == 0x008b) // lens f-stops
593
+ {
594
+ uchar uc1 = fgetc(ifp);
595
+ uchar uc2 = fgetc(ifp);
596
+ uchar uc3 = fgetc(ifp);
597
+ if (uc3)
598
+ {
599
+ imgdata.lens.nikon.LensFStops = uc1 * uc2 * (12 / uc3);
600
+ ilm.LensFStops = (float)imgdata.lens.nikon.LensFStops / 12.0f;
601
+ }
602
+ }
603
+ else if ((tag == 0x008c) || (tag == 0x0096))
604
+ {
605
+ meta_offset = ftell(ifp);
606
+ }
607
+ else if ((tag == 0x0091) && (len > 4))
608
+ {
609
+ ShotInfo_len = len;
610
+ ShotInfo_buf = (uchar *)calloc(ShotInfo_len,1);
611
+
612
+ /* for dump:
613
+ cj_block = (uchar *)malloc(ShotInfo_len);
614
+ ck_block = (uchar *)malloc(ShotInfo_len);
615
+ */
616
+
617
+ fread(ShotInfo_buf, ShotInfo_len, 1, ifp);
618
+ FORC4 imNikon.ShotInfoVersion =
619
+ imNikon.ShotInfoVersion * 10 + ShotInfo_buf[c] - '0';
620
+ }
621
+ else if (tag == 0x0093)
622
+ {
623
+ imNikon.NEFCompression = i = get2();
624
+ if ((i == 7) || (i == 9))
625
+ {
626
+ ilm.LensMount = LIBRAW_MOUNT_FixedLens;
627
+ ilm.CameraMount = LIBRAW_MOUNT_FixedLens;
628
+ }
629
+ }
630
+ else if (tag == 0x0097)
631
+ { // ver97
632
+ FORC4 imNikon.ColorBalanceVersion =
633
+ imNikon.ColorBalanceVersion * 10 + fgetc(ifp) - '0';
634
+ switch (imNikon.ColorBalanceVersion)
635
+ {
636
+ case 100: // NIKON D100
637
+ fseek(ifp, 0x44L, SEEK_CUR);
638
+ FORC4 cam_mul[RBGG_2_RGBG(c)] = get2();
639
+ break;
640
+ case 102: // NIKON D2H
641
+ fseek(ifp, 0x6L, SEEK_CUR);
642
+ FORC4 cam_mul[RGGB_2_RGBG(c)] = get2();
643
+ break;
644
+ case 103: // NIKON D70, D70s
645
+ fseek(ifp, 0x10L, SEEK_CUR);
646
+ FORC4 cam_mul[c] = get2();
647
+ }
648
+ if (imNikon.ColorBalanceVersion >= 200)
649
+ {
650
+ /*
651
+ 204: NIKON D2X, D2Xs
652
+ 205: NIKON D50
653
+ 206: NIKON D2Hs
654
+ 207: NIKON D200
655
+ 208: NIKON D40, D40X, D80
656
+ 209: NIKON D3, D3X, D300, D700
657
+ 210: NIKON D60
658
+ 211: NIKON D90, D5000
659
+ 212: NIKON D300S
660
+ 213: NIKON D3000
661
+ 214: NIKON D3S
662
+ 215: NIKON D3100
663
+ 216: NIKON D5100, D7000
664
+ 217: NIKON D4, D600, D800, D800E, D3200
665
+ -= unknown =-
666
+ 218: NIKON D5200, D7100
667
+ 219: NIKON D5300
668
+ 220: NIKON D610, Df
669
+ 221: NIKON D3300
670
+ 222: NIKON D4S
671
+ 223: NIKON D750, D810
672
+ 224: NIKON D3400, D3500, D5500, D5600, D7200
673
+ 225: NIKON D5, D500
674
+ 226: NIKON D7500
675
+ 227: NIKON D850
676
+ */
677
+ if (imNikon.ColorBalanceVersion != 205)
678
+ {
679
+ fseek(ifp, 0x118L, SEEK_CUR);
680
+ }
681
+ ColorBalanceData_ready =
682
+ (fread(ColorBalanceData_buf, 324, 1, ifp) == 1);
683
+ }
684
+ if ((imNikon.ColorBalanceVersion >= 400) &&
685
+ (imNikon.ColorBalanceVersion <= 405))
686
+ { // 1 J1, 1 V1, 1 J2, 1 V2, 1 J3, 1 S1, 1 AW1, 1 S2, 1 J4, 1 V3, 1 J5
687
+ ilm.CameraFormat = LIBRAW_FORMAT_1INCH;
688
+ ilm.CameraMount = LIBRAW_MOUNT_Nikon_CX;
689
+ }
690
+ else if ((imNikon.ColorBalanceVersion >= 500) &&
691
+ (imNikon.ColorBalanceVersion <= 502))
692
+ { // P7700, P7800, P330, P340
693
+ ilm.CameraMount = ilm.LensMount = LIBRAW_MOUNT_FixedLens;
694
+ ilm.FocalType = LIBRAW_FT_ZOOM_LENS;
695
+ }
696
+ else if (imNikon.ColorBalanceVersion == 601)
697
+ { // Coolpix A
698
+ ilm.CameraFormat = ilm.LensFormat = LIBRAW_FORMAT_APSC;
699
+ ilm.CameraMount = ilm.LensMount = LIBRAW_MOUNT_FixedLens;
700
+ ilm.FocalType = LIBRAW_FT_PRIME_LENS;
701
+ }
702
+ }
703
+ else if (tag == 0x0098) // contains lens data
704
+ {
705
+ FORC4 imNikon.LensDataVersion =
706
+ imNikon.LensDataVersion * 10 + fgetc(ifp) - '0';
707
+ switch (imNikon.LensDataVersion)
708
+ {
709
+ case 100:
710
+ LensData_len = 9;
711
+ break;
712
+ case 101:
713
+ case 201: // encrypted, starting from v.201
714
+ case 202:
715
+ case 203:
716
+ LensData_len = 15;
717
+ break;
718
+ case 204:
719
+ LensData_len = 16;
720
+ break;
721
+ case 400:
722
+ LensData_len = 459;
723
+ break;
724
+ case 401:
725
+ LensData_len = 590;
726
+ break;
727
+ case 402:
728
+ LensData_len = 509;
729
+ break;
730
+ case 403:
731
+ LensData_len = 879;
732
+ break;
733
+ case 800:
734
+ case 801:
735
+ LensData_len = 58;
736
+ break;
737
+ case 802:
738
+ LensData_len = 108;
739
+ break;
740
+ }
741
+ if (LensData_len)
742
+ {
743
+ LensData_buf = (uchar *)calloc(LensData_len,1);
744
+ fread(LensData_buf, LensData_len, 1, ifp);
745
+ }
746
+ }
747
+ else if (tag == 0x00a0)
748
+ {
749
+ stmread(imgdata.shootinginfo.BodySerial, len, ifp);
750
+ }
751
+ else if (tag == 0x00a7) // shutter count
752
+ {
753
+ imNikon.key = fgetc(ifp) ^ fgetc(ifp) ^ fgetc(ifp) ^ fgetc(ifp);
754
+ if (custom_serial)
755
+ {
756
+ ci = xlat[0][custom_serial];
757
+ }
758
+ else
759
+ {
760
+ ci = xlat[0][serial & 0xff];
761
+ }
762
+ cj = xlat[1][imNikon.key];
763
+ ck = 0x60;
764
+ if (((unsigned)(imNikon.ColorBalanceVersion - 200) < 18) &&
765
+ ColorBalanceData_ready)
766
+ {
767
+ for (i = 0; i < 324; i++)
768
+ ColorBalanceData_buf[i] ^= (cj += ci * ck++);
769
+ i = "66666>666;6A;:;555"[imNikon.ColorBalanceVersion - 200] - '0';
770
+ FORC4 cam_mul[c ^ (c >> 1) ^ (i & 1)] =
771
+ sget2(ColorBalanceData_buf + (i & -2) + c * 2);
772
+ }
773
+
774
+ if (LensData_len)
775
+ {
776
+ if (imNikon.LensDataVersion > 200)
777
+ {
778
+ cj = xlat[1][imNikon.key];
779
+ ck = 0x60;
780
+ for (i = 0; i < LensData_len; i++)
781
+ {
782
+ LensData_buf[i] ^= (cj += ci * ck++);
783
+ }
784
+ }
785
+ processNikonLensData(LensData_buf, LensData_len);
786
+ LensData_len = 0;
787
+ free(LensData_buf);
788
+ }
789
+ if (ShotInfo_len && (imNikon.ShotInfoVersion >= 208)) {
790
+ unsigned RotationOffset = 0,
791
+ OrientationOffset = 0;
792
+
793
+ cj = xlat[1][imNikon.key];
794
+ ck = 0x60;
795
+ for (i = 4; i < ShotInfo_len; i++) {
796
+ ShotInfo_buf[i] ^= (cj += ci * ck++);
797
+
798
+ /* for dump:
799
+ cj_block[i-4] = cj;
800
+ ck_block[i-4] = ck-1;
801
+ */
802
+ }
803
+ /* for dump:
804
+ printf ("==>> ci: 0x%02x, cj at start: 0x%02x\n",
805
+ ci, xlat[1][imNikon.key]);
806
+ hexDump("ck array:", ck_block, ShotInfo_len-4);
807
+ hexDump("cj array:", cj_block, ShotInfo_len-4);
808
+ free(cj_block);
809
+ free(ck_block);
810
+ */
811
+
812
+ switch (imNikon.ShotInfoVersion) {
813
+ case 208: // ShotInfoD80, Rotation
814
+ RotationOffset = 590;
815
+ if (RotationOffset<ShotInfo_len) {
816
+ imNikon.MakernotesFlip = *(ShotInfo_buf+RotationOffset) & 0x07;
817
+ }
818
+ break;
819
+
820
+ case 231: // ShotInfoD4S, Rotation, Roll/Pitch/Yaw
821
+ OrientationOffset = 0x350b;
822
+ RotationOffset = 0x3693;
823
+ if (RotationOffset<ShotInfo_len) {
824
+ imNikon.MakernotesFlip = (*(ShotInfo_buf+RotationOffset)>>4) & 0x03;
825
+ }
826
+ break;
827
+
828
+ case 233: // ShotInfoD810, Roll/Pitch/Yaw
829
+ OrientationOffset = sget4_order(morder, ShotInfo_buf+0x84);
830
+ break;
831
+
832
+ case 238: // D5, ShotInfoD500, Rotation, Roll/Pitch/Yaw
833
+ case 239: // D500, ShotInfoD500, Rotation, Roll/Pitch/Yaw
834
+ RotationOffset = sget4_order(morder, ShotInfo_buf+0x10) + 0xca;
835
+ if (RotationOffset > 0xca) {
836
+ RotationOffset -= 0xb0;
837
+ }
838
+ if (RotationOffset<ShotInfo_len) {
839
+ imNikon.MakernotesFlip = *(ShotInfo_buf+RotationOffset) & 0x03;
840
+ }
841
+ OrientationOffset = sget4_order(morder, ShotInfo_buf+0xa0);
842
+ break;
843
+
844
+ case 243: // ShotInfoD850, Roll/Pitch/Yaw
845
+ OrientationOffset = sget4_order(morder, ShotInfo_buf+0xa0);
846
+ break;
847
+
848
+ case 246: // ShotInfoD6, Roll/Pitch/Yaw
849
+ OrientationOffset = sget4_order(morder, ShotInfo_buf+0x9c);
850
+ break;
851
+
852
+ case 800: // Z 6, Z 7, ShotInfoZ7II, Roll/Pitch/Yaw
853
+ case 801: // Z 50, ShotInfoZ7II, Roll/Pitch/Yaw
854
+ case 802: // Z 5, ShotInfoZ7II, Roll/Pitch/Yaw
855
+ case 803: // Z 6_2, Z 7_2, ShotInfoZ7II, Roll/Pitch/Yaw
856
+ case 804: // Z fc ShotInfoZ7II, Roll/Pitch/Yaw
857
+ OrientationOffset = sget4_order(morder, ShotInfo_buf+0x98);
858
+ break;
859
+
860
+ case 805: // Z 9, ShotInfoZ9, Roll/Pitch/Yaw
861
+ OrientationOffset = sget4_order(morder, ShotInfo_buf+0x84);
862
+ break;
863
+ }
864
+
865
+ if (OrientationOffset && ((OrientationOffset+12)<ShotInfo_len) && OrientationOffset < 0xffff) {
866
+ if (imNikon.ShotInfoVersion == 231) // ShotInfoD4S
867
+ imNikon.RollAngle = AngleConversion_a(morder, ShotInfo_buf+OrientationOffset);
868
+ else
869
+ imNikon.RollAngle = AngleConversion(morder, ShotInfo_buf+OrientationOffset);
870
+ imNikon.PitchAngle = AngleConversion (morder, ShotInfo_buf+OrientationOffset+4);
871
+ imNikon.YawAngle = AngleConversion (morder, ShotInfo_buf+OrientationOffset+8);
872
+ }
873
+ if ((RotationOffset) && (imNikon.MakernotesFlip < 4) && (imNikon.MakernotesFlip >= 0))
874
+ imNikon.MakernotesFlip = "0863"[imNikon.MakernotesFlip] - '0';
875
+ ShotInfo_len = 0;
876
+ free(ShotInfo_buf);
877
+ }
878
+ }
879
+ else if (tag == 0x00a8)
880
+ { // contains flash data
881
+ FORC4 imNikon.FlashInfoVersion =
882
+ imNikon.FlashInfoVersion * 10 + fgetc(ifp) - '0';
883
+ }
884
+ else if (tag == 0x00b0)
885
+ {
886
+ get4(); // ME (multi-exposure) tag version, 4 symbols
887
+ imNikon.ExposureMode = get4();
888
+ imNikon.nMEshots = get4();
889
+ imNikon.MEgainOn = get4();
890
+ }
891
+ else if (tag == 0x00b7) // AFInfo2
892
+ {
893
+ if (!imCommon.afcount && len > 4)
894
+ {
895
+ imCommon.afdata[imCommon.afcount].AFInfoData_tag = tag;
896
+ imCommon.afdata[imCommon.afcount].AFInfoData_order = order;
897
+ int ver = 0;
898
+ FORC4 ver = ver * 10 + (fgetc(ifp) - '0');
899
+ imCommon.afdata[imCommon.afcount].AFInfoData_version = ver;
900
+ imCommon.afdata[imCommon.afcount].AFInfoData_length = len-4;
901
+ imCommon.afdata[imCommon.afcount].AFInfoData = (uchar *)calloc(imCommon.afdata[imCommon.afcount].AFInfoData_length,1);
902
+ fread(imCommon.afdata[imCommon.afcount].AFInfoData, imCommon.afdata[imCommon.afcount].AFInfoData_length, 1, ifp);
903
+ imCommon.afcount = 1;
904
+ }
905
+ }
906
+ else if (tag == 0x00b9)
907
+ {
908
+ imNikon.AFFineTune = fgetc(ifp);
909
+ imNikon.AFFineTuneIndex = fgetc(ifp);
910
+ imNikon.AFFineTuneAdj = (int8_t)fgetc(ifp);
911
+ }
912
+ else if ((tag == 0x0100) && tagtypeIs(LIBRAW_EXIFTAG_TYPE_UNDEFINED))
913
+ {
914
+ thumb_offset = ftell(ifp);
915
+ thumb_length = len;
916
+ }
917
+ else if (tag == 0x0e01)
918
+ { /* Nikon Software / in-camera edit Note */
919
+ int loopc = 0;
920
+ int WhiteBalanceAdj_active = 0;
921
+ order = 0x4949;
922
+ fseek(ifp, 22, SEEK_CUR);
923
+ for (offset = 22; offset + 22 < len; offset += 22 + i)
924
+ {
925
+ if (loopc++ > 1024)
926
+ throw LIBRAW_EXCEPTION_IO_CORRUPT;
927
+ tag = get4();
928
+ fseek(ifp, 14, SEEK_CUR);
929
+ i = get4() - 4;
930
+
931
+ if (tag == 0x76a43204)
932
+ {
933
+ WhiteBalanceAdj_active = fgetc(ifp);
934
+ }
935
+ else if (tag == 0xbf3c6c20)
936
+ {
937
+ if (WhiteBalanceAdj_active)
938
+ {
939
+ union {
940
+ double dbl;
941
+ unsigned long long lng;
942
+ } un;
943
+ un.dbl = getreal(LIBRAW_EXIFTAG_TYPE_DOUBLE);
944
+ if ((un.lng != 0x3FF0000000000000ULL) &&
945
+ (un.lng != 0x000000000000F03FULL))
946
+ {
947
+ cam_mul[0] = un.dbl;
948
+ cam_mul[2] = getreal(LIBRAW_EXIFTAG_TYPE_DOUBLE);
949
+ cam_mul[1] = cam_mul[3] = 1.0;
950
+ i -= 16;
951
+ }
952
+ else
953
+ i -= 8;
954
+ }
955
+ fseek(ifp, i, SEEK_CUR);
956
+ }
957
+ else if (tag == 0x76a43207)
958
+ {
959
+ flip = get2();
960
+ }
961
+ else
962
+ {
963
+ fseek(ifp, i, SEEK_CUR);
964
+ }
965
+ }
966
+ }
967
+ else if (tag == 0x0e22)
968
+ {
969
+ FORC4 imNikon.NEFBitDepth[c] = get2();
970
+ }
971
+ next:
972
+ fseek(ifp, save, SEEK_SET);
973
+ }
974
+ quit:
975
+ order = sorder;
976
+ }
977
+
978
+ unsigned sget4_order (short _order, uchar *s) {
979
+ unsigned v;
980
+ if (_order == 0x4949)
981
+ v= s[0] | s[1] << 8 | s[2] << 16 | s[3] << 24;
982
+ else
983
+ v= s[0] << 24 | s[1] << 16 | s[2] << 8 | s[3];
984
+ return v;
985
+ }
986
+
987
+ double sget_fixed32u (short _order, uchar *s) {
988
+ unsigned v = sget4_order (_order, s);
989
+ return ((double)v / 6.5536 + 0.5) / 10000.0;
990
+ }
991
+
992
+ double AngleConversion_a (short _order, uchar *s) {
993
+ double v = sget_fixed32u(_order, s);
994
+ if (v < 180.0) return -v;
995
+ return 360.0-v;
996
+ }
997
+
998
+ double AngleConversion (short _order, uchar *s) {
999
+ double v = sget_fixed32u(_order, s);
1000
+ if (v <= 180.0) return v;
1001
+ return v-360.0;
1002
+ }
1003
+
1004
+ /* ========= */
1005
+ /*
1006
+ void hexDump(char *title, void *addr, int len)
1007
+ {
1008
+ int i;
1009
+ unsigned char buff[17];
1010
+ unsigned char *pc = (unsigned char*)addr;
1011
+
1012
+ // Output description if given.
1013
+ if (title != NULL)
1014
+ printf ("%s:\n", title);
1015
+
1016
+ // Process every byte in the data.
1017
+ for (i = 0; i < len; i++) {
1018
+ // Multiple of 16 means new line (with line offset).
1019
+
1020
+ if ((i % 16) == 0) {
1021
+ // Just don't print ASCII for the zeroth line.
1022
+ if (i != 0)
1023
+ printf(" %s\n", buff);
1024
+
1025
+ // Output the offset.
1026
+ printf(" %04x ", i);
1027
+ }
1028
+
1029
+ // Now the hex code for the specific character.
1030
+ printf(" %02x", pc[i]);
1031
+
1032
+ // And store a printable ASCII character for later.
1033
+ if ((pc[i] < 0x20) || (pc[i] > 0x7e)) {
1034
+ buff[i % 16] = '.';
1035
+ } else {
1036
+ buff[i % 16] = pc[i];
1037
+ }
1038
+
1039
+ buff[(i % 16) + 1] = '\0';
1040
+ }
1041
+
1042
+ // Pad out last line if not exactly 16 characters.
1043
+ while ((i % 16) != 0) {
1044
+ printf(" ");
1045
+ i++;
1046
+ }
1047
+
1048
+ // And print the final ASCII bit.
1049
+ printf(" %s\n", buff);
1050
+ }
1051
+ */