exiftool_vendored 12.13.0 → 12.17.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of exiftool_vendored might be problematic. Click here for more details.

Files changed (196) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +61 -4
  3. data/bin/MANIFEST +3 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +3 -3
  7. data/bin/exiftool +63 -43
  8. data/bin/lib/File/RandomAccess.pm +1 -1
  9. data/bin/lib/File/RandomAccess.pod +2 -2
  10. data/bin/lib/Image/ExifTool.pm +36 -3
  11. data/bin/lib/Image/ExifTool.pod +9 -7
  12. data/bin/lib/Image/ExifTool/AES.pm +1 -1
  13. data/bin/lib/Image/ExifTool/AFCP.pm +1 -1
  14. data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  15. data/bin/lib/Image/ExifTool/APE.pm +1 -1
  16. data/bin/lib/Image/ExifTool/APP12.pm +1 -1
  17. data/bin/lib/Image/ExifTool/ASF.pm +1 -1
  18. data/bin/lib/Image/ExifTool/Apple.pm +1 -1
  19. data/bin/lib/Image/ExifTool/Audible.pm +1 -1
  20. data/bin/lib/Image/ExifTool/BMP.pm +1 -1
  21. data/bin/lib/Image/ExifTool/BPG.pm +1 -1
  22. data/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  23. data/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  24. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +9 -7
  25. data/bin/lib/Image/ExifTool/Canon.pm +3 -2
  26. data/bin/lib/Image/ExifTool/CanonCustom.pm +20 -2
  27. data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  28. data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  29. data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  30. data/bin/lib/Image/ExifTool/Casio.pm +1 -1
  31. data/bin/lib/Image/ExifTool/Charset.pm +1 -1
  32. data/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  33. data/bin/lib/Image/ExifTool/DJI.pm +28 -2
  34. data/bin/lib/Image/ExifTool/DNG.pm +1 -1
  35. data/bin/lib/Image/ExifTool/DPX.pm +4 -4
  36. data/bin/lib/Image/ExifTool/DV.pm +1 -1
  37. data/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
  38. data/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  39. data/bin/lib/Image/ExifTool/EXE.pm +1 -1
  40. data/bin/lib/Image/ExifTool/Exif.pm +45 -16
  41. data/bin/lib/Image/ExifTool/FITS.pm +1 -1
  42. data/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  43. data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  44. data/bin/lib/Image/ExifTool/FLIR.pm +1 -1
  45. data/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  46. data/bin/lib/Image/ExifTool/Flash.pm +1 -1
  47. data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  48. data/bin/lib/Image/ExifTool/Font.pm +1 -1
  49. data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  50. data/bin/lib/Image/ExifTool/FujiFilm.pm +3 -2
  51. data/bin/lib/Image/ExifTool/GE.pm +1 -1
  52. data/bin/lib/Image/ExifTool/GIF.pm +1 -1
  53. data/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  54. data/bin/lib/Image/ExifTool/GPS.pm +6 -6
  55. data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  56. data/bin/lib/Image/ExifTool/Geotag.pm +1 -1
  57. data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  58. data/bin/lib/Image/ExifTool/H264.pm +21 -6
  59. data/bin/lib/Image/ExifTool/HP.pm +1 -1
  60. data/bin/lib/Image/ExifTool/HTML.pm +1 -1
  61. data/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  62. data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  63. data/bin/lib/Image/ExifTool/ID3.pm +1 -1
  64. data/bin/lib/Image/ExifTool/IPTC.pm +1 -1
  65. data/bin/lib/Image/ExifTool/ISO.pm +1 -1
  66. data/bin/lib/Image/ExifTool/ITC.pm +1 -1
  67. data/bin/lib/Image/ExifTool/Import.pm +1 -1
  68. data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  69. data/bin/lib/Image/ExifTool/JPEG.pm +24 -2
  70. data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  71. data/bin/lib/Image/ExifTool/JSON.pm +1 -1
  72. data/bin/lib/Image/ExifTool/JVC.pm +1 -1
  73. data/bin/lib/Image/ExifTool/Jpeg2000.pm +9 -4
  74. data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  75. data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  76. data/bin/lib/Image/ExifTool/LNK.pm +1 -1
  77. data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  78. data/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  79. data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  80. data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  81. data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  82. data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  83. data/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
  84. data/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  85. data/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  86. data/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  87. data/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  88. data/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  89. data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  90. data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  91. data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  92. data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  93. data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  94. data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  95. data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  96. data/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  97. data/bin/lib/Image/ExifTool/MIE.pm +1 -1
  98. data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  99. data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  100. data/bin/lib/Image/ExifTool/MNG.pm +1 -1
  101. data/bin/lib/Image/ExifTool/MOI.pm +1 -1
  102. data/bin/lib/Image/ExifTool/MPC.pm +1 -1
  103. data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  104. data/bin/lib/Image/ExifTool/MPF.pm +1 -1
  105. data/bin/lib/Image/ExifTool/MWG.pm +1 -1
  106. data/bin/lib/Image/ExifTool/MXF.pm +1 -1
  107. data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
  108. data/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
  109. data/bin/lib/Image/ExifTool/Matroska.pm +1 -1
  110. data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  111. data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  112. data/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  113. data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  114. data/bin/lib/Image/ExifTool/Nikon.pm +312 -34
  115. data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  116. data/bin/lib/Image/ExifTool/NikonCustom.pm +1 -1
  117. data/bin/lib/Image/ExifTool/NikonSettings.pm +2013 -0
  118. data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  119. data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  120. data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  121. data/bin/lib/Image/ExifTool/Olympus.pm +1 -1
  122. data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  123. data/bin/lib/Image/ExifTool/Opus.pm +1 -1
  124. data/bin/lib/Image/ExifTool/PCX.pm +1 -1
  125. data/bin/lib/Image/ExifTool/PDF.pm +10 -2
  126. data/bin/lib/Image/ExifTool/PGF.pm +1 -1
  127. data/bin/lib/Image/ExifTool/PICT.pm +1 -1
  128. data/bin/lib/Image/ExifTool/PLIST.pm +1 -1
  129. data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  130. data/bin/lib/Image/ExifTool/PNG.pm +12 -4
  131. data/bin/lib/Image/ExifTool/PPM.pm +1 -1
  132. data/bin/lib/Image/ExifTool/PSP.pm +1 -1
  133. data/bin/lib/Image/ExifTool/Palm.pm +1 -1
  134. data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
  135. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  136. data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  137. data/bin/lib/Image/ExifTool/Pentax.pm +3 -2
  138. data/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  139. data/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  140. data/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  141. data/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  142. data/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  143. data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  144. data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  145. data/bin/lib/Image/ExifTool/QuickTime.pm +12 -6
  146. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +46 -7
  147. data/bin/lib/Image/ExifTool/README +5 -4
  148. data/bin/lib/Image/ExifTool/RIFF.pm +85 -7
  149. data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  150. data/bin/lib/Image/ExifTool/RTF.pm +1 -1
  151. data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  152. data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  153. data/bin/lib/Image/ExifTool/Real.pm +1 -1
  154. data/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  155. data/bin/lib/Image/ExifTool/Red.pm +1 -1
  156. data/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  157. data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
  158. data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  159. data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  160. data/bin/lib/Image/ExifTool/Shift.pl +1 -1
  161. data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  162. data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  163. data/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  164. data/bin/lib/Image/ExifTool/Sony.pm +4 -2
  165. data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  166. data/bin/lib/Image/ExifTool/Stim.pm +1 -1
  167. data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
  168. data/bin/lib/Image/ExifTool/TagLookup.pm +3985 -3811
  169. data/bin/lib/Image/ExifTool/TagNames.pod +422 -21
  170. data/bin/lib/Image/ExifTool/Text.pm +1 -1
  171. data/bin/lib/Image/ExifTool/Theora.pm +1 -1
  172. data/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  173. data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  174. data/bin/lib/Image/ExifTool/VCard.pm +1 -1
  175. data/bin/lib/Image/ExifTool/Validate.pm +1 -1
  176. data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  177. data/bin/lib/Image/ExifTool/WTV.pm +1 -1
  178. data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  179. data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  180. data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  181. data/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  182. data/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
  183. data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  184. data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  185. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +1 -1
  186. data/bin/lib/Image/ExifTool/WriteXMP.pl +10 -7
  187. data/bin/lib/Image/ExifTool/Writer.pl +17 -7
  188. data/bin/lib/Image/ExifTool/XMP.pm +44 -9
  189. data/bin/lib/Image/ExifTool/XMP2.pl +1 -1
  190. data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
  191. data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
  192. data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  193. data/bin/lib/Image/ExifTool/iWork.pm +1 -1
  194. data/bin/perl-Image-ExifTool.spec +1 -1
  195. data/lib/exiftool_vendored/version.rb +1 -1
  196. metadata +36 -3
@@ -192,7 +192,7 @@ from Lytro Light Field Picture (LFP) files.
192
192
 
193
193
  =head1 AUTHOR
194
194
 
195
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
195
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
196
196
 
197
197
  This library is free software; you can redistribute it and/or modify it
198
198
  under the same terms as Perl itself.
@@ -714,7 +714,7 @@ video.
714
714
 
715
715
  =head1 AUTHOR
716
716
 
717
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
717
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
718
718
 
719
719
  This library is free software; you can redistribute it and/or modify it
720
720
  under the same terms as Perl itself.
@@ -2544,7 +2544,7 @@ tag name. For example:
2544
2544
 
2545
2545
  =head1 AUTHOR
2546
2546
 
2547
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
2547
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2548
2548
 
2549
2549
  This library is free software; you can redistribute it and/or modify it
2550
2550
  under the same terms as Perl itself. The MIE format itself is also
@@ -356,7 +356,7 @@ A few examples of combined units strings:
356
356
 
357
357
  =head1 AUTHOR
358
358
 
359
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
359
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
360
360
 
361
361
  This library is free software; you can redistribute it and/or modify it
362
362
  under the same terms as Perl itself.
@@ -255,7 +255,7 @@ This module contains routines required by Image::ExifTool to read MIFF
255
255
 
256
256
  =head1 AUTHOR
257
257
 
258
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
258
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
259
259
 
260
260
  This library is free software; you can redistribute it and/or modify it
261
261
  under the same terms as Perl itself.
@@ -661,7 +661,7 @@ This module contains definitions required by Image::ExifTool to read MNG
661
661
 
662
662
  =head1 AUTHOR
663
663
 
664
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
664
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
665
665
 
666
666
  This library is free software; you can redistribute it and/or modify it
667
667
  under the same terms as Perl itself.
@@ -137,7 +137,7 @@ information from MOI files.
137
137
 
138
138
  =head1 AUTHOR
139
139
 
140
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
140
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
141
141
 
142
142
  This library is free software; you can redistribute it and/or modify it
143
143
  under the same terms as Perl itself.
@@ -134,7 +134,7 @@ information from Musepack (MPC) audio files.
134
134
 
135
135
  =head1 AUTHOR
136
136
 
137
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
137
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
138
138
 
139
139
  This library is free software; you can redistribute it and/or modify it
140
140
  under the same terms as Perl itself.
@@ -704,7 +704,7 @@ based on unofficial sources which may be incomplete, inaccurate or outdated.
704
704
 
705
705
  =head1 AUTHOR
706
706
 
707
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
707
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
708
708
 
709
709
  This library is free software; you can redistribute it and/or modify it
710
710
  under the same terms as Perl itself.
@@ -266,7 +266,7 @@ Format (MPF) information from JPEG images.
266
266
 
267
267
  =head1 AUTHOR
268
268
 
269
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
269
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
270
270
 
271
271
  This library is free software; you can redistribute it and/or modify it
272
272
  under the same terms as Perl itself.
@@ -756,7 +756,7 @@ must be loaded explicitly as described above.
756
756
 
757
757
  =head1 AUTHOR
758
758
 
759
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
759
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
760
760
 
761
761
  This library is free software; you can redistribute it and/or modify it
762
762
  under the same terms as Perl itself.
@@ -2987,7 +2987,7 @@ information from MXF (Material Exchange Format) files.
2987
2987
 
2988
2988
  =head1 AUTHOR
2989
2989
 
2990
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
2990
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2991
2991
 
2992
2992
  This library is free software; you can redistribute it and/or modify it
2993
2993
  under the same terms as Perl itself.
@@ -721,7 +721,7 @@ Writable tags use "xattr", "setfile" or "osascript" for writing.
721
721
 
722
722
  =head1 AUTHOR
723
723
 
724
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
724
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
725
725
 
726
726
  This library is free software; you can redistribute it and/or modify it
727
727
  under the same terms as Perl itself.
@@ -1812,7 +1812,7 @@ maker notes in EXIF information.
1812
1812
 
1813
1813
  =head1 AUTHOR
1814
1814
 
1815
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
1815
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1816
1816
 
1817
1817
  This library is free software; you can redistribute it and/or modify it
1818
1818
  under the same terms as Perl itself.
@@ -914,7 +914,7 @@ information from Matroska multimedia files (MKA, MKV, MKS and WEBM).
914
914
 
915
915
  =head1 AUTHOR
916
916
 
917
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
917
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
918
918
 
919
919
  This library is free software; you can redistribute it and/or modify it
920
920
  under the same terms as Perl itself.
@@ -884,7 +884,7 @@ Microsoft-specific EXIF and XMP tags.
884
884
 
885
885
  =head1 AUTHOR
886
886
 
887
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
887
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
888
888
 
889
889
  This library is free software; you can redistribute it and/or modify it
890
890
  under the same terms as Perl itself.
@@ -2928,7 +2928,7 @@ and write Minolta RAW (MRW) images.
2928
2928
 
2929
2929
  =head1 AUTHOR
2930
2930
 
2931
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
2931
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2932
2932
 
2933
2933
  This library is free software; you can redistribute it and/or modify it
2934
2934
  under the same terms as Perl itself.
@@ -512,7 +512,7 @@ write Konica-Minolta RAW (MRW) images.
512
512
 
513
513
  =head1 AUTHOR
514
514
 
515
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
515
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
516
516
 
517
517
  This library is free software; you can redistribute it and/or modify it
518
518
  under the same terms as Perl itself.
@@ -159,7 +159,7 @@ cell phone images.
159
159
 
160
160
  =head1 AUTHOR
161
161
 
162
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
162
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
163
163
 
164
164
  This library is free software; you can redistribute it and/or modify it
165
165
  under the same terms as Perl itself.
@@ -62,7 +62,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
62
62
  use Image::ExifTool::Exif;
63
63
  use Image::ExifTool::GPS;
64
64
 
65
- $VERSION = '3.90';
65
+ $VERSION = '3.92';
66
66
 
67
67
  sub LensIDConv($$$);
68
68
  sub ProcessNikonAVI($$$);
@@ -886,33 +886,33 @@ my %afPoints39 = (
886
886
  # AF point indices for models with 105 focus points, eg. D6 (ref 28)
887
887
  # - 7 rows (A-G) with 15 columns (1-15), center is D8
888
888
  my %afPoints105 = (
889
- 1 => 'D8', 28 => 'G7', 55 => 'F13', 82 => 'E4',
890
- 2 => 'C8', 29 => 'D6', 56 => 'G13', 83 => 'F4',
891
- 3 => 'B8', 30 => 'C6', 57 => 'D14', 84 => 'G4',
892
- 4 => 'A8', 31 => 'B6', 58 => 'C14', 85 => 'D3',
893
- 5 => 'E8', 32 => 'A6', 59 => 'B14', 86 => 'C3',
894
- 6 => 'F8', 33 => 'E6', 60 => 'A14', 87 => 'B3',
889
+ 1 => 'D8', 28 => 'G7', 55 => 'F13', 82 => 'E4',
890
+ 2 => 'C8', 29 => 'D6', 56 => 'G13', 83 => 'F4',
891
+ 3 => 'B8', 30 => 'C6', 57 => 'D14', 84 => 'G4',
892
+ 4 => 'A8', 31 => 'B6', 58 => 'C14', 85 => 'D3',
893
+ 5 => 'E8', 32 => 'A6', 59 => 'B14', 86 => 'C3',
894
+ 6 => 'F8', 33 => 'E6', 60 => 'A14', 87 => 'B3',
895
895
  7 => 'G8', 34 => 'F6', 61 => 'E14', 88 => 'A3',
896
- 8 => 'D9', 35 => 'G6', 62 => 'F14', 89 => 'E3',
897
- 9 => 'C9', 36 => 'D11', 63 => 'G14', 90 => 'F3',
898
- 10 => 'B9', 37 => 'C11', 64 => 'D15', 91 => 'G3',
899
- 11 => 'A9', 38 => 'B11', 65 => 'C15', 92 => 'D2',
900
- 12 => 'E9', 39 => 'A11', 66 => 'B15', 93 => 'C2',
901
- 13 => 'F9', 40 => 'E11', 67 => 'A15', 94 => 'B2',
902
- 14 => 'G9', 41 => 'F11', 68 => 'E15', 95 => 'A2',
903
- 15 => 'D10', 42 => 'G11', 69 => 'F15', 96 => 'E2',
904
- 16 => 'C10', 43 => 'D12', 70 => 'G15', 97 => 'F2',
905
- 17 => 'B10', 44 => 'C12', 71 => 'D5', 98 => 'G2',
906
- 18 => 'A10', 45 => 'B12', 72 => 'C5', 99 => 'D1',
907
- 19 => 'E10', 46 => 'A12', 73 => 'B5', 100 => 'C1',
908
- 20 => 'F10', 47 => 'E12', 74 => 'A5', 101 => 'B1',
896
+ 8 => 'D9', 35 => 'G6', 62 => 'F14', 89 => 'E3',
897
+ 9 => 'C9', 36 => 'D11', 63 => 'G14', 90 => 'F3',
898
+ 10 => 'B9', 37 => 'C11', 64 => 'D15', 91 => 'G3',
899
+ 11 => 'A9', 38 => 'B11', 65 => 'C15', 92 => 'D2',
900
+ 12 => 'E9', 39 => 'A11', 66 => 'B15', 93 => 'C2',
901
+ 13 => 'F9', 40 => 'E11', 67 => 'A15', 94 => 'B2',
902
+ 14 => 'G9', 41 => 'F11', 68 => 'E15', 95 => 'A2',
903
+ 15 => 'D10', 42 => 'G11', 69 => 'F15', 96 => 'E2',
904
+ 16 => 'C10', 43 => 'D12', 70 => 'G15', 97 => 'F2',
905
+ 17 => 'B10', 44 => 'C12', 71 => 'D5', 98 => 'G2',
906
+ 18 => 'A10', 45 => 'B12', 72 => 'C5', 99 => 'D1',
907
+ 19 => 'E10', 46 => 'A12', 73 => 'B5', 100 => 'C1',
908
+ 20 => 'F10', 47 => 'E12', 74 => 'A5', 101 => 'B1',
909
909
  21 => 'G10', 48 => 'F12', 75 => 'E5', 102 => 'A1',
910
- 22 => 'D7', 49 => 'G12', 76 => 'F5', 103 => 'E1',
911
- 23 => 'C7', 50 => 'D13', 77 => 'G5', 104 => 'F1',
912
- 24 => 'B7', 51 => 'C13', 78 => 'D4', 105 => 'G1',
913
- 25 => 'A7', 52 => 'B13', 79 => 'C4',
914
- 26 => 'E7', 53 => 'A13', 80 => 'B4',
915
- 27 => 'F7', 54 => 'E13', 81 => 'A4',
910
+ 22 => 'D7', 49 => 'G12', 76 => 'F5', 103 => 'E1',
911
+ 23 => 'C7', 50 => 'D13', 77 => 'G5', 104 => 'F1',
912
+ 24 => 'B7', 51 => 'C13', 78 => 'D4', 105 => 'G1',
913
+ 25 => 'A7', 52 => 'B13', 79 => 'C4',
914
+ 26 => 'E7', 53 => 'A13', 80 => 'B4',
915
+ 27 => 'F7', 54 => 'E13', 81 => 'A4',
916
916
  );
917
917
 
918
918
  # AF point indices for models with 135 focus points, eg. 1J1 (ref PH)
@@ -1097,7 +1097,12 @@ my %binaryDataAttrs = (
1097
1097
  0x0004 => { Name => 'Quality', Writable => 'string' },
1098
1098
  0x0005 => { Name => 'WhiteBalance', Writable => 'string' },
1099
1099
  0x0006 => { Name => 'Sharpness', Writable => 'string' },
1100
- 0x0007 => { Name => 'FocusMode', Writable => 'string' },
1100
+ 0x0007 => {
1101
+ Name => 'FocusMode',
1102
+ DataMember => 'FocusMode',
1103
+ Writable => 'string',
1104
+ RawConv => '$$self{FocusMode} = $val',
1105
+ },
1101
1106
  # FlashSetting (better named FlashSyncMode, ref 28) values:
1102
1107
  # "Normal", "Slow", "Rear Slow", "RED-EYE", "RED-EYE SLOW"
1103
1108
  0x0008 => { Name => 'FlashSetting', Writable => 'string' },
@@ -1424,12 +1429,27 @@ my %binaryDataAttrs = (
1424
1429
  Count => 4,
1425
1430
  # (may need to divide by 4 for some images, eg. D3300/D5300, 12 bit - ref IB)
1426
1431
  },
1432
+ 0x003e => { #28
1433
+ Name => 'ImageSizeRAW',
1434
+ PrintConv => {
1435
+ 1 => 'Large',
1436
+ 2 => 'Medium',
1437
+ 3 => 'Small',
1438
+ },
1439
+ },
1427
1440
  0x0045 => { #IB
1428
1441
  Name => 'CropArea',
1429
1442
  Notes => 'left, top, width, height',
1430
1443
  Writable => 'int16u',
1431
1444
  Count => 4,
1432
1445
  },
1446
+ 0x004e => { #28
1447
+ Name => 'NikonSettings',
1448
+ Writable => 'undef',
1449
+ Permanent => 0,
1450
+ Flags => [ 'Binary', 'Protected' ],
1451
+ SubDirectory => { TagTable => 'Image::ExifTool::NikonSettings::Main' },
1452
+ },
1433
1453
  0x004f => { #IB (D850)
1434
1454
  Name => 'ColorTemperatureAuto',
1435
1455
  Writable => 'int16u',
@@ -1500,6 +1520,7 @@ my %binaryDataAttrs = (
1500
1520
  7 => 'Fired, External', #14
1501
1521
  8 => 'Fired, Commander Mode',
1502
1522
  9 => 'Fired, TTL Mode',
1523
+ 18 => 'LED Light', #G.F. (movie LED light)
1503
1524
  },
1504
1525
  },
1505
1526
  0x0088 => [
@@ -1828,9 +1849,9 @@ my %binaryDataAttrs = (
1828
1849
  Condition => '$$valPt =~ /^0246/',
1829
1850
  Name => 'ShotInfoD6',
1830
1851
  SubDirectory => {
1831
- TagTable => 'Image::ExifTool::Nikon::ShotInfo',
1852
+ TagTable => 'Image::ExifTool::Nikon::ShotInfoD6',
1832
1853
  DecryptStart => 4,
1833
- DecryptLen => 0xa4, # only decrypt the version info & offset fields for now
1854
+ DecryptLen => 0xc21a + 12,
1834
1855
  ByteOrder => 'LittleEndian',
1835
1856
  },
1836
1857
  },
@@ -1844,6 +1865,16 @@ my %binaryDataAttrs = (
1844
1865
  ByteOrder => 'BigEndian',
1845
1866
  },
1846
1867
  },
1868
+ { # (Z6_2 firmware version 1.00 and Z7_2 firmware versions 1.00 & 1.01, ref 28)
1869
+ Condition => '$$valPt =~ /^0800/ or $$valPt =~ /^0803/',
1870
+ Name => 'ShotInfoZ7_2',
1871
+ SubDirectory => {
1872
+ TagTable => 'Image::ExifTool::Nikon::ShotInfoZ7_2',
1873
+ DecryptStart => 4,
1874
+ DecryptLen => 0xce32 + 12,
1875
+ ByteOrder => 'LittleEndian',
1876
+ },
1877
+ },
1847
1878
  { # D7100=0227, Z6/Z7=0800
1848
1879
  Condition => '$$valPt =~ /^0[28]/',
1849
1880
  Name => 'ShotInfo02xx',
@@ -2218,6 +2249,11 @@ my %binaryDataAttrs = (
2218
2249
  Name => 'FlashInfo0107', # (0107 for D4S/D750/D810/D5500/D7200, 0108 for D5/D500/D3400)
2219
2250
  Condition => '$$valPt =~ /^010[78]/',
2220
2251
  SubDirectory => { TagTable => 'Image::ExifTool::Nikon::FlashInfo0107' },
2252
+ },
2253
+ {
2254
+ Name => 'FlashInfo0300', # (Z7_2)
2255
+ Condition => '$$valPt =~ /^0300/',
2256
+ SubDirectory => { TagTable => 'Image::ExifTool::Nikon::FlashInfo0300' },
2221
2257
  },
2222
2258
  {
2223
2259
  Name => 'FlashInfoUnknown',
@@ -3381,13 +3417,13 @@ my %binaryDataAttrs = (
3381
3417
  130 => 'Subject Tracking (41 points)', #PH (NC)
3382
3418
  131 => 'Face Priority (41 points)', #PH (NC)
3383
3419
  192 => 'Pinpoint', #PH (Z7)
3384
- 193 => 'Single', #PH (Z7) (AF-S?)
3420
+ 193 => 'Single', #PH (Z7)
3385
3421
  194 => 'Dynamic', #PH (Z7)
3386
3422
  195 => 'Wide (S)', #PH (Z7)
3387
3423
  196 => 'Wide (L)', #PH (Z7)
3388
3424
  197 => 'Auto', #PH (Z7)
3389
- 198 => 'Auto (198)', #PH (Z7) (focus lock with AF-C maybe?)
3390
- 199 => 'Auto (focus lock)', #PH (Z7, AF-S)
3425
+ 198 => 'Auto (People)', #28 (Z7) #if no faces are detected, will record as 'Auto'. Camera setting recorded in AFAreaMode field in the MakerNotes area
3426
+ 199 => 'Auto (Animal)', #28 (Z7) #if no animals are detected, will record as 'Auto'. Camera setting recorded in AFAreaMode field in the MakerNotes area
3391
3427
  200 => 'Normal-area AF', #28 (D6)
3392
3428
  201 => 'Wide-area AF', #28 (D6)
3393
3429
  202 => 'Face-priority AF', #28 (D6)
@@ -3682,7 +3718,7 @@ my %binaryDataAttrs = (
3682
3718
  ],
3683
3719
  0x0a => { #28 (D6) in any of the 3 Group modes on the D6, the points specify the outer boundaries of the focus point area; otherwise the tag value is consistent with other Nikon bodies
3684
3720
  Name => 'AFPointsUsed',
3685
- Condition => '$$self{AFInfo2Version} eq "0301" and $$self{PhaseDetectAF} == 9',
3721
+ Condition => '$$self{AFInfo2Version} eq "0301" and $$self{PhaseDetectAF} == 9',
3686
3722
  Notes => q{
3687
3723
  models with 105-point AF -- 7 rows (A-G) and 15 columns (1-15). Center
3688
3724
  point is D8
@@ -3771,6 +3807,14 @@ my %binaryDataAttrs = (
3771
3807
  },
3772
3808
  Format => 'int16u',
3773
3809
  },
3810
+ 0x2f => { #28 (Z7) Still photography range 1-17 for the 493 point Z7 (arranged in a 29x17 grid. Center at x=16, y=10).
3811
+ Name => 'AFFocusPointXPosition',
3812
+ Condition => q{
3813
+ $$self{ContrastDetectAF} == 2 and $$self{AFInfo2Version} =~ /^03/ or
3814
+ $$self{ContrastDetectAF} == 1 and $$self{AFInfo2Version} =~ /^0301/
3815
+ },
3816
+ PrintConv => sub { my ($val) = @_; PrintAFPointsLeftRight($val, 29 ); },
3817
+ },
3774
3818
  0x30 => [
3775
3819
  { #PH (Z7)
3776
3820
  Name => 'AFAreaYPosition',
@@ -3790,6 +3834,14 @@ my %binaryDataAttrs = (
3790
3834
  PrintConvInv => sub { PrintAFPointsInv(shift, \%afPoints153); },
3791
3835
  },
3792
3836
  ],
3837
+ 0x31 => { #28 (Z7)
3838
+ Name => 'AFFocusPointYPosition',
3839
+ Condition => q{
3840
+ $$self{ContrastDetectAF} == 2 and $$self{AFInfo2Version} =~ /^03/ or
3841
+ $$self{ContrastDetectAF} == 1 and $$self{AFInfo2Version} =~ /^0301/
3842
+ },
3843
+ PrintConv => sub { my ($val) = @_; PrintAFPointsUpDown($val, 17 ); },
3844
+ },
3793
3845
  0x32 => { #PH (Z7)
3794
3846
  Name => 'AFAreaWidth',
3795
3847
  Condition => '$$self{AFInfo2Version} =~ /^03/',
@@ -6394,6 +6446,77 @@ my %nikonFocalConversions = (
6394
6446
  },
6395
6447
  # note: DecryptLen currently set to OtherOffset + 0x2ea5 - 0x2c90
6396
6448
  );
6449
+
6450
+ # shot information for the D6 firmware 1.00 (encrypted) - ref 28
6451
+ %Image::ExifTool::Nikon::ShotInfoD6 = (
6452
+ PROCESS_PROC => \&Image::ExifTool::Nikon::ProcessNikonEncrypted,
6453
+ WRITE_PROC => \&Image::ExifTool::Nikon::ProcessNikonEncrypted,
6454
+ CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
6455
+ VARS => { ID_LABEL => 'Index' },
6456
+ DATAMEMBER => [ 0x9c, 0xc219 ],
6457
+ WRITABLE => 1,
6458
+ FIRST_ENTRY => 0,
6459
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
6460
+ NOTES => 'These tags are extracted from encrypted data in images from the D6.',
6461
+ 0x00 => {
6462
+ Name => 'ShotInfoVersion',
6463
+ Format => 'string[4]',
6464
+ Writable => 0,
6465
+ },
6466
+ 0x24 => {
6467
+ Name => 'NumberOffsets', # (number of entries in offset table. offsets are from start of ShotInfo data)
6468
+ DataMember => 'NumberOffsets',
6469
+ Format => 'int32u',
6470
+ Writable => 0,
6471
+ Hidden => 1,
6472
+ },
6473
+ 0x9c => {
6474
+ Name => 'OrientationOffset',
6475
+ DataMember => 'OrientationOffset',
6476
+ Format => 'int32u',
6477
+ Writable => 0,
6478
+ Hidden => 1,
6479
+ RawConv => '$$self{OrientationOffset} = $val || 0x10000000; undef', # (ignore if 0)
6480
+ },
6481
+ ### 0xc21a - OrientationInfo start (D6 firmware 1.00)
6482
+ 0xc219 => {
6483
+ Name => 'Hook1',
6484
+ Hidden => 1,
6485
+ RawConv => 'undef',
6486
+ # account for variable location of OrientationInfo data
6487
+ Hook => '$varSize = $$self{OrientationOffset} - 0xc21a',
6488
+ },
6489
+
6490
+ 0xc21a => {
6491
+ Name => 'RollAngle',
6492
+ Format => 'fixed32u',
6493
+ Notes => 'converted to degrees of clockwise camera roll',
6494
+ ValueConv => '$val <= 180 ? $val : $val - 360',
6495
+ ValueConvInv => '$val >= 0 ? $val : $val + 360',
6496
+ PrintConv => 'sprintf("%.1f", $val)',
6497
+ PrintConvInv => '$val',
6498
+ },
6499
+ 0xc21e => {
6500
+ Name => 'PitchAngle',
6501
+ Format => 'fixed32u',
6502
+ Notes => 'converted to degrees of upward camera tilt',
6503
+ ValueConv => '$val <= 180 ? $val : $val - 360',
6504
+ ValueConvInv => '$val >= 0 ? $val : $val + 360',
6505
+ PrintConv => 'sprintf("%.1f", $val)',
6506
+ PrintConvInv => '$val',
6507
+ },
6508
+ 0xc222 => {
6509
+ Name => 'YawAngle',
6510
+ Format => 'fixed32u',
6511
+ Notes => 'the camera yaw angle when shooting in portrait orientation',
6512
+ ValueConv => '$val <= 180 ? $val : $val - 360',
6513
+ ValueConvInv => '$val >= 0 ? $val : $val + 360',
6514
+ PrintConv => 'sprintf("%.1f", $val)',
6515
+ PrintConvInv => '$val',
6516
+ },
6517
+ # note: DecryptLen currently set to 0xc21a + 12
6518
+ );
6519
+
6397
6520
  # shot information for the D610 firmware 1.00 (encrypted) - ref PH
6398
6521
  %Image::ExifTool::Nikon::ShotInfoD610 = (
6399
6522
  PROCESS_PROC => \&Image::ExifTool::Nikon::ProcessNikonEncrypted,
@@ -7211,6 +7334,98 @@ my %nikonFocalConversions = (
7211
7334
  # note: DecryptLen currently set to 0x3697
7212
7335
  );
7213
7336
 
7337
+ # shot information for the Z7_2 firmware 1.00 (encrypted) - ref 28
7338
+ %Image::ExifTool::Nikon::ShotInfoZ7_2 = (
7339
+ PROCESS_PROC => \&Image::ExifTool::Nikon::ProcessNikonEncrypted,
7340
+ WRITE_PROC => \&Image::ExifTool::Nikon::ProcessNikonEncrypted,
7341
+ CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
7342
+ VARS => { ID_LABEL => 'Index' },
7343
+ DATAMEMBER => [ 0x04, 0x0e, 0x18, 0x98, 0xce31 ],
7344
+ WRITABLE => 1,
7345
+ FIRST_ENTRY => 0,
7346
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
7347
+ NOTES => 'These tags are extracted from encrypted data in images from the Z7_2.',
7348
+ 0x00 => {
7349
+ Name => 'ShotInfoVersion',
7350
+ Format => 'string[4]',
7351
+ Writable => 0,
7352
+ },
7353
+ 0x04 => {
7354
+ Name => 'FirmwareVersion',
7355
+ DataMember => 'FirmwareVersion',
7356
+ Format => 'string[8]',
7357
+ Writable => 0,
7358
+ RawConv => '$$self{FirmwareVersion} = $val',
7359
+ },
7360
+ 0x0E => {
7361
+ Name => 'FirmwareVersion2',
7362
+ Format => 'string[8]',
7363
+ Writable => 0,
7364
+ RawConv => '$$self{FirmwareVersion2} = $val',
7365
+ Hidden => 1,
7366
+ },
7367
+ 0x18 => {
7368
+ Name => 'FirmwareVersion3',
7369
+ Format => 'string[8]',
7370
+ Writable => 0,
7371
+ RawConv => '$$self{FirmwareVersion3} = $val',
7372
+ Hidden => 1,
7373
+ },
7374
+ 0x24 => {
7375
+ Name => 'NumberOffsets', #number of entries in offset table. offsets are from start of ShotInfo data.
7376
+ DataMember => 'NumberOffsets',
7377
+ Format => 'int32u',
7378
+ Writable => 0,
7379
+ Hidden => 1,
7380
+ },
7381
+ 0x98 => {
7382
+ Name => 'OrientationOffset',
7383
+ DataMember => 'OrientationOffset',
7384
+ Format => 'int32u',
7385
+ Writable => 0,
7386
+ Hidden => 1,
7387
+ RawConv => '$$self{OrientationOffset} = $val || 0x10000000; undef', # (ignore if 0)
7388
+ },
7389
+
7390
+ ### 0xce32 - OrientationInfo start (Z7_2 firmware 1.00)
7391
+ 0xce31 => {
7392
+ Name => 'Hook1',
7393
+ Hidden => 1,
7394
+ RawConv => 'undef',
7395
+ # account for variable location of OrientationInfo data
7396
+ Hook => '$varSize = $$self{OrientationOffset} - 0xce32',
7397
+ },
7398
+
7399
+ 0xce32 => {
7400
+ Name => 'RollAngle',
7401
+ Format => 'fixed32u',
7402
+ Notes => 'converted to degrees of clockwise camera roll',
7403
+ ValueConv => '$val <= 180 ? $val : $val - 360',
7404
+ ValueConvInv => '$val >= 0 ? $val : $val + 360',
7405
+ PrintConv => 'sprintf("%.1f", $val)',
7406
+ PrintConvInv => '$val',
7407
+ },
7408
+ 0xce36 => {
7409
+ Name => 'PitchAngle',
7410
+ Format => 'fixed32u',
7411
+ Notes => 'converted to degrees of upward camera tilt',
7412
+ ValueConv => '$val <= 180 ? $val : $val - 360',
7413
+ ValueConvInv => '$val >= 0 ? $val : $val + 360',
7414
+ PrintConv => 'sprintf("%.1f", $val)',
7415
+ PrintConvInv => '$val',
7416
+ },
7417
+ 0xce3a => {
7418
+ Name => 'YawAngle',
7419
+ Format => 'fixed32u',
7420
+ Notes => 'the camera yaw angle when shooting in portrait orientation',
7421
+ ValueConv => '$val <= 180 ? $val : $val - 360',
7422
+ ValueConvInv => '$val >= 0 ? $val : $val + 360',
7423
+ PrintConv => 'sprintf("%.1f", $val)',
7424
+ PrintConvInv => '$val',
7425
+ },
7426
+ #note: DecryptLen currently set to 0xce32 + 12
7427
+ );
7428
+
7214
7429
  # Flash information (ref JD)
7215
7430
  %Image::ExifTool::Nikon::FlashInfo0100 = (
7216
7431
  %binaryDataAttrs,
@@ -8105,6 +8320,42 @@ my %nikonFocalConversions = (
8105
8320
  ],
8106
8321
  );
8107
8322
 
8323
+ # Flash information for the Z7_2 (ref 28)
8324
+ # (likey similar to FlashInfo010 and FlashInfo0108 with addition of support for radio controlled units such as the SB-5000?
8325
+ %Image::ExifTool::Nikon::FlashInfo0300 = (
8326
+ %binaryDataAttrs,
8327
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
8328
+ 0 => {
8329
+ Name => 'FlashInfoVersion',
8330
+ Format => 'string[4]',
8331
+ Writable => 0,
8332
+ },
8333
+ 4 => {
8334
+ Name => 'FlashSource',
8335
+ PrintConv => {
8336
+ 0 => 'None',
8337
+ 1 => 'External',
8338
+ 2 => 'Internal',
8339
+ },
8340
+ },
8341
+ 6 => {
8342
+ Format => 'int8u[2]',
8343
+ Name => 'ExternalFlashFirmware',
8344
+ SeparateTable => 'FlashFirmware',
8345
+ PrintConv => \%flashFirmware,
8346
+ },
8347
+ 27 => {
8348
+ Name => 'FlashCompensation',
8349
+ # this is the compensation from the camera (0x0012) for "Built-in" FlashType, or
8350
+ # the compensation from the external unit (0x0017) for "Optional" FlashType - PH
8351
+ Format => 'int8s',
8352
+ Priority => 0,
8353
+ ValueConv => '-$val/6',
8354
+ ValueConvInv => '-6 * $val',
8355
+ PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
8356
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
8357
+ },
8358
+ );
8108
8359
  # Unknown Flash information
8109
8360
  %Image::ExifTool::Nikon::FlashInfoUnknown = (
8110
8361
  %binaryDataAttrs,
@@ -8933,6 +9184,7 @@ my %nikonFocalConversions = (
8933
9184
  7 => 'Fired, External', #14
8934
9185
  8 => 'Fired, Commander Mode',
8935
9186
  9 => 'Fired, TTL Mode',
9187
+ 18 => 'LED Light', #G.F. (movie LED light)
8936
9188
  },
8937
9189
  },
8938
9190
  0x2000098 => [
@@ -9262,6 +9514,32 @@ sub PrintAFPointsGridInv($$$)
9262
9514
  return join(" ", unpack("H2"x$size, pack('C*', @dat)));
9263
9515
  }
9264
9516
 
9517
+ #------------------------------------------------------------------------------
9518
+ # Print conversion for relative Left/Right AF points (ref 28)
9519
+ # Inputs: 0) column, 1) number of columns
9520
+ # Returns: AF point data as a string (e.g. '2L' or 'C' or '3R')
9521
+ sub PrintAFPointsLeftRight($$)
9522
+ {
9523
+ my ($col, $ncol) = @_;
9524
+ my $center = 1 + ($ncol + 1)/2;
9525
+ return 'C' if $col == $center;
9526
+ return sprintf('%d', $center - $col) . 'L of Center' if $col < $center;
9527
+ return sprintf('%d', $col - $center) . 'R of Center' if $col > $center;
9528
+ }
9529
+
9530
+ #------------------------------------------------------------------------------
9531
+ # Print conversion for relative Up/Down AF points (ref 28)
9532
+ # Inputs: 0) column, 1) number of columns
9533
+ # Returns: AF point data as a string (e.g. '2U' or 'C' or '3D')
9534
+ sub PrintAFPointsUpDown($$)
9535
+ {
9536
+ my ($row, $nrow) = @_;
9537
+ my $center = 1 + ($nrow + 1)/2;
9538
+ return 'C' if $row == $center;
9539
+ return sprintf('%d', $center - $row) . 'U from Center' if $row < $center;
9540
+ return sprintf('%d', $row - $center) . 'D from Center' if $row > $center;
9541
+ }
9542
+
9265
9543
  #------------------------------------------------------------------------------
9266
9544
  # Print PictureControl value
9267
9545
  # Inputs: 0) value (with 0x80 subtracted),
@@ -9796,7 +10074,7 @@ Nikon maker notes in EXIF information.
9796
10074
 
9797
10075
  =head1 AUTHOR
9798
10076
 
9799
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
10077
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
9800
10078
 
9801
10079
  This library is free software; you can redistribute it and/or modify it
9802
10080
  under the same terms as Perl itself.