exiftool_vendored 12.12.0 → 12.17.0

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.

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 +73 -3
  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 +87 -57
  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 +12 -8
  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 +14 -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 +315 -36
  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 +20 -14
  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 +6 -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 -3807
  169. data/bin/lib/Image/ExifTool/TagNames.pod +432 -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 +32 -18
  188. data/bin/lib/Image/ExifTool/XMP.pm +44 -9
  189. data/bin/lib/Image/ExifTool/XMP2.pl +5 -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 +9 -4
@@ -1032,7 +1032,7 @@ and values.
1032
1032
 
1033
1033
  =head1 AUTHOR
1034
1034
 
1035
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
1035
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1036
1036
 
1037
1037
  This library is free software; you can redistribute it and/or modify it
1038
1038
  under the same terms as Perl itself.
@@ -4005,7 +4005,7 @@ and values.
4005
4005
 
4006
4006
  =head1 AUTHOR
4007
4007
 
4008
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
4008
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
4009
4009
 
4010
4010
  This library is free software; you can redistribute it and/or modify it
4011
4011
  under the same terms as Perl itself.
@@ -2878,7 +2878,7 @@ and values.
2878
2878
 
2879
2879
  =head1 AUTHOR
2880
2880
 
2881
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
2881
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2882
2882
 
2883
2883
  This library is free software; you can redistribute it and/or modify it
2884
2884
  under the same terms as Perl itself.
@@ -4751,7 +4751,7 @@ and values.
4751
4751
 
4752
4752
  =head1 AUTHOR
4753
4753
 
4754
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
4754
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
4755
4755
 
4756
4756
  This library is free software; you can redistribute it and/or modify it
4757
4757
  under the same terms as Perl itself.
@@ -7903,7 +7903,7 @@ and values.
7903
7903
 
7904
7904
  =head1 AUTHOR
7905
7905
 
7906
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
7906
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
7907
7907
 
7908
7908
  This library is free software; you can redistribute it and/or modify it
7909
7909
  under the same terms as Perl itself.
@@ -5841,7 +5841,7 @@ and values.
5841
5841
 
5842
5842
  =head1 AUTHOR
5843
5843
 
5844
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
5844
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
5845
5845
 
5846
5846
  This library is free software; you can redistribute it and/or modify it
5847
5847
  under the same terms as Perl itself.
@@ -2316,7 +2316,7 @@ and values.
2316
2316
 
2317
2317
  =head1 AUTHOR
2318
2318
 
2319
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
2319
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2320
2320
 
2321
2321
  This library is free software; you can redistribute it and/or modify it
2322
2322
  under the same terms as Perl itself.
@@ -3207,7 +3207,7 @@ and values.
3207
3207
 
3208
3208
  =head1 AUTHOR
3209
3209
 
3210
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
3210
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
3211
3211
 
3212
3212
  This library is free software; you can redistribute it and/or modify it
3213
3213
  under the same terms as Perl itself.
@@ -1258,7 +1258,7 @@ and values.
1258
1258
 
1259
1259
  =head1 AUTHOR
1260
1260
 
1261
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
1261
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1262
1262
 
1263
1263
  This library is free software; you can redistribute it and/or modify it
1264
1264
  under the same terms as Perl itself.
@@ -5718,7 +5718,7 @@ and values.
5718
5718
 
5719
5719
  =head1 AUTHOR
5720
5720
 
5721
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
5721
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
5722
5722
 
5723
5723
  This library is free software; you can redistribute it and/or modify it
5724
5724
  under the same terms as Perl itself.
@@ -620,7 +620,7 @@ and values.
620
620
 
621
621
  =head1 AUTHOR
622
622
 
623
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
623
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
624
624
 
625
625
  This library is free software; you can redistribute it and/or modify it
626
626
  under the same terms as Perl itself.
@@ -528,7 +528,7 @@ and values.
528
528
 
529
529
  =head1 AUTHOR
530
530
 
531
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
531
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
532
532
 
533
533
  This library is free software; you can redistribute it and/or modify it
534
534
  under the same terms as Perl itself.
@@ -1313,7 +1313,7 @@ and values.
1313
1313
 
1314
1314
  =head1 AUTHOR
1315
1315
 
1316
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
1316
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1317
1317
 
1318
1318
  This library is free software; you can redistribute it and/or modify it
1319
1319
  under the same terms as Perl itself.
@@ -784,7 +784,7 @@ and values.
784
784
 
785
785
  =head1 AUTHOR
786
786
 
787
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
787
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
788
788
 
789
789
  This library is free software; you can redistribute it and/or modify it
790
790
  under the same terms as Perl itself.
@@ -504,7 +504,7 @@ Capture.
504
504
 
505
505
  =head1 AUTHOR
506
506
 
507
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
507
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
508
508
 
509
509
  This library is free software; you can redistribute it and/or modify it
510
510
  under the same terms as Perl itself.
@@ -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.89';
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' },
@@ -1401,8 +1406,9 @@ my %binaryDataAttrs = (
1401
1406
  16 => 'Electronic',
1402
1407
  # 33 => ? seen for 1J2
1403
1408
  48 => 'Electronic Front Curtain',
1404
- # 80 => ? seen for the Z6II
1405
- # 81 => ? seen for Z50
1409
+ 64 => 'Electronic (Movie)', #JanSkoda (Z6II)
1410
+ 80 => 'Auto (Mechanical)', #JanSkoda (Z6II)
1411
+ 81 => 'Auto (Electronic Front Curtain)', #JanSkoda (Z6II)
1406
1412
  },
1407
1413
  },
1408
1414
  0x0035 => { #32
@@ -1423,12 +1429,27 @@ my %binaryDataAttrs = (
1423
1429
  Count => 4,
1424
1430
  # (may need to divide by 4 for some images, eg. D3300/D5300, 12 bit - ref IB)
1425
1431
  },
1432
+ 0x003e => { #28
1433
+ Name => 'ImageSizeRAW',
1434
+ PrintConv => {
1435
+ 1 => 'Large',
1436
+ 2 => 'Medium',
1437
+ 3 => 'Small',
1438
+ },
1439
+ },
1426
1440
  0x0045 => { #IB
1427
1441
  Name => 'CropArea',
1428
1442
  Notes => 'left, top, width, height',
1429
1443
  Writable => 'int16u',
1430
1444
  Count => 4,
1431
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
+ },
1432
1453
  0x004f => { #IB (D850)
1433
1454
  Name => 'ColorTemperatureAuto',
1434
1455
  Writable => 'int16u',
@@ -1499,6 +1520,7 @@ my %binaryDataAttrs = (
1499
1520
  7 => 'Fired, External', #14
1500
1521
  8 => 'Fired, Commander Mode',
1501
1522
  9 => 'Fired, TTL Mode',
1523
+ 18 => 'LED Light', #G.F. (movie LED light)
1502
1524
  },
1503
1525
  },
1504
1526
  0x0088 => [
@@ -1827,9 +1849,9 @@ my %binaryDataAttrs = (
1827
1849
  Condition => '$$valPt =~ /^0246/',
1828
1850
  Name => 'ShotInfoD6',
1829
1851
  SubDirectory => {
1830
- TagTable => 'Image::ExifTool::Nikon::ShotInfo',
1852
+ TagTable => 'Image::ExifTool::Nikon::ShotInfoD6',
1831
1853
  DecryptStart => 4,
1832
- DecryptLen => 0xa4, # only decrypt the version info & offset fields for now
1854
+ DecryptLen => 0xc21a + 12,
1833
1855
  ByteOrder => 'LittleEndian',
1834
1856
  },
1835
1857
  },
@@ -1843,6 +1865,16 @@ my %binaryDataAttrs = (
1843
1865
  ByteOrder => 'BigEndian',
1844
1866
  },
1845
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
+ },
1846
1878
  { # D7100=0227, Z6/Z7=0800
1847
1879
  Condition => '$$valPt =~ /^0[28]/',
1848
1880
  Name => 'ShotInfo02xx',
@@ -2217,6 +2249,11 @@ my %binaryDataAttrs = (
2217
2249
  Name => 'FlashInfo0107', # (0107 for D4S/D750/D810/D5500/D7200, 0108 for D5/D500/D3400)
2218
2250
  Condition => '$$valPt =~ /^010[78]/',
2219
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' },
2220
2257
  },
2221
2258
  {
2222
2259
  Name => 'FlashInfoUnknown',
@@ -3380,13 +3417,13 @@ my %binaryDataAttrs = (
3380
3417
  130 => 'Subject Tracking (41 points)', #PH (NC)
3381
3418
  131 => 'Face Priority (41 points)', #PH (NC)
3382
3419
  192 => 'Pinpoint', #PH (Z7)
3383
- 193 => 'Single', #PH (Z7) (AF-S?)
3420
+ 193 => 'Single', #PH (Z7)
3384
3421
  194 => 'Dynamic', #PH (Z7)
3385
3422
  195 => 'Wide (S)', #PH (Z7)
3386
3423
  196 => 'Wide (L)', #PH (Z7)
3387
3424
  197 => 'Auto', #PH (Z7)
3388
- 198 => 'Auto (198)', #PH (Z7) (focus lock with AF-C maybe?)
3389
- 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
3390
3427
  200 => 'Normal-area AF', #28 (D6)
3391
3428
  201 => 'Wide-area AF', #28 (D6)
3392
3429
  202 => 'Face-priority AF', #28 (D6)
@@ -3681,7 +3718,7 @@ my %binaryDataAttrs = (
3681
3718
  ],
3682
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
3683
3720
  Name => 'AFPointsUsed',
3684
- Condition => '$$self{AFInfo2Version} eq "0301" and $$self{PhaseDetectAF} == 9',
3721
+ Condition => '$$self{AFInfo2Version} eq "0301" and $$self{PhaseDetectAF} == 9',
3685
3722
  Notes => q{
3686
3723
  models with 105-point AF -- 7 rows (A-G) and 15 columns (1-15). Center
3687
3724
  point is D8
@@ -3770,6 +3807,14 @@ my %binaryDataAttrs = (
3770
3807
  },
3771
3808
  Format => 'int16u',
3772
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
+ },
3773
3818
  0x30 => [
3774
3819
  { #PH (Z7)
3775
3820
  Name => 'AFAreaYPosition',
@@ -3789,6 +3834,14 @@ my %binaryDataAttrs = (
3789
3834
  PrintConvInv => sub { PrintAFPointsInv(shift, \%afPoints153); },
3790
3835
  },
3791
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
+ },
3792
3845
  0x32 => { #PH (Z7)
3793
3846
  Name => 'AFAreaWidth',
3794
3847
  Condition => '$$self{AFInfo2Version} =~ /^03/',
@@ -6393,6 +6446,77 @@ my %nikonFocalConversions = (
6393
6446
  },
6394
6447
  # note: DecryptLen currently set to OtherOffset + 0x2ea5 - 0x2c90
6395
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
+
6396
6520
  # shot information for the D610 firmware 1.00 (encrypted) - ref PH
6397
6521
  %Image::ExifTool::Nikon::ShotInfoD610 = (
6398
6522
  PROCESS_PROC => \&Image::ExifTool::Nikon::ProcessNikonEncrypted,
@@ -7210,6 +7334,98 @@ my %nikonFocalConversions = (
7210
7334
  # note: DecryptLen currently set to 0x3697
7211
7335
  );
7212
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
+
7213
7429
  # Flash information (ref JD)
7214
7430
  %Image::ExifTool::Nikon::FlashInfo0100 = (
7215
7431
  %binaryDataAttrs,
@@ -8104,6 +8320,42 @@ my %nikonFocalConversions = (
8104
8320
  ],
8105
8321
  );
8106
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
+ );
8107
8359
  # Unknown Flash information
8108
8360
  %Image::ExifTool::Nikon::FlashInfoUnknown = (
8109
8361
  %binaryDataAttrs,
@@ -8932,6 +9184,7 @@ my %nikonFocalConversions = (
8932
9184
  7 => 'Fired, External', #14
8933
9185
  8 => 'Fired, Commander Mode',
8934
9186
  9 => 'Fired, TTL Mode',
9187
+ 18 => 'LED Light', #G.F. (movie LED light)
8935
9188
  },
8936
9189
  },
8937
9190
  0x2000098 => [
@@ -9261,6 +9514,32 @@ sub PrintAFPointsGridInv($$$)
9261
9514
  return join(" ", unpack("H2"x$size, pack('C*', @dat)));
9262
9515
  }
9263
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
+
9264
9543
  #------------------------------------------------------------------------------
9265
9544
  # Print PictureControl value
9266
9545
  # Inputs: 0) value (with 0x80 subtracted),
@@ -9795,7 +10074,7 @@ Nikon maker notes in EXIF information.
9795
10074
 
9796
10075
  =head1 AUTHOR
9797
10076
 
9798
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
10077
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
9799
10078
 
9800
10079
  This library is free software; you can redistribute it and/or modify it
9801
10080
  under the same terms as Perl itself.