exiftool-vendored.exe 12.50.0 → 12.55.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.
Files changed (199) hide show
  1. package/bin/exiftool_files/Changes +81 -3
  2. package/bin/exiftool_files/README +3 -3
  3. package/bin/exiftool_files/exiftool.pl +14 -11
  4. package/bin/exiftool_files/fmt_files/kml_track.fmt +3 -3
  5. package/bin/exiftool_files/lib/File/RandomAccess.pm +1 -1
  6. package/bin/exiftool_files/lib/File/RandomAccess.pod +2 -2
  7. package/bin/exiftool_files/lib/Image/ExifTool/AES.pm +1 -1
  8. package/bin/exiftool_files/lib/Image/ExifTool/AFCP.pm +1 -1
  9. package/bin/exiftool_files/lib/Image/ExifTool/AIFF.pm +1 -1
  10. package/bin/exiftool_files/lib/Image/ExifTool/APE.pm +1 -1
  11. package/bin/exiftool_files/lib/Image/ExifTool/APP12.pm +1 -1
  12. package/bin/exiftool_files/lib/Image/ExifTool/ASF.pm +1 -1
  13. package/bin/exiftool_files/lib/Image/ExifTool/Apple.pm +197 -27
  14. package/bin/exiftool_files/lib/Image/ExifTool/Audible.pm +1 -1
  15. package/bin/exiftool_files/lib/Image/ExifTool/BMP.pm +1 -1
  16. package/bin/exiftool_files/lib/Image/ExifTool/BPG.pm +1 -1
  17. package/bin/exiftool_files/lib/Image/ExifTool/BZZ.pm +1 -1
  18. package/bin/exiftool_files/lib/Image/ExifTool/BigTIFF.pm +1 -1
  19. package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +4 -4
  20. package/bin/exiftool_files/lib/Image/ExifTool/CBOR.pm +1 -1
  21. package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +14 -2
  22. package/bin/exiftool_files/lib/Image/ExifTool/CanonCustom.pm +1 -1
  23. package/bin/exiftool_files/lib/Image/ExifTool/CanonRaw.pm +1 -1
  24. package/bin/exiftool_files/lib/Image/ExifTool/CanonVRD.pm +9 -9
  25. package/bin/exiftool_files/lib/Image/ExifTool/CaptureOne.pm +1 -1
  26. package/bin/exiftool_files/lib/Image/ExifTool/Casio.pm +4 -4
  27. package/bin/exiftool_files/lib/Image/ExifTool/Charset.pm +1 -1
  28. package/bin/exiftool_files/lib/Image/ExifTool/DICOM.pm +1 -1
  29. package/bin/exiftool_files/lib/Image/ExifTool/DJI.pm +1 -1
  30. package/bin/exiftool_files/lib/Image/ExifTool/DNG.pm +1 -1
  31. package/bin/exiftool_files/lib/Image/ExifTool/DPX.pm +1 -1
  32. package/bin/exiftool_files/lib/Image/ExifTool/DV.pm +1 -1
  33. package/bin/exiftool_files/lib/Image/ExifTool/DarwinCore.pm +1 -1
  34. package/bin/exiftool_files/lib/Image/ExifTool/DjVu.pm +1 -1
  35. package/bin/exiftool_files/lib/Image/ExifTool/EXE.pm +1 -1
  36. package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +5 -16
  37. package/bin/exiftool_files/lib/Image/ExifTool/FITS.pm +1 -1
  38. package/bin/exiftool_files/lib/Image/ExifTool/FLAC.pm +1 -1
  39. package/bin/exiftool_files/lib/Image/ExifTool/FLIF.pm +1 -1
  40. package/bin/exiftool_files/lib/Image/ExifTool/FLIR.pm +7 -6
  41. package/bin/exiftool_files/lib/Image/ExifTool/Fixup.pm +1 -1
  42. package/bin/exiftool_files/lib/Image/ExifTool/Flash.pm +1 -1
  43. package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +1 -1
  44. package/bin/exiftool_files/lib/Image/ExifTool/Font.pm +1 -1
  45. package/bin/exiftool_files/lib/Image/ExifTool/FotoStation.pm +1 -1
  46. package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +21 -13
  47. package/bin/exiftool_files/lib/Image/ExifTool/GE.pm +1 -1
  48. package/bin/exiftool_files/lib/Image/ExifTool/GIF.pm +1 -1
  49. package/bin/exiftool_files/lib/Image/ExifTool/GIMP.pm +1 -1
  50. package/bin/exiftool_files/lib/Image/ExifTool/GPS.pm +12 -6
  51. package/bin/exiftool_files/lib/Image/ExifTool/GeoTiff.pm +1 -1
  52. package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +25 -8
  53. package/bin/exiftool_files/lib/Image/ExifTool/GoPro.pm +1 -1
  54. package/bin/exiftool_files/lib/Image/ExifTool/H264.pm +1 -1
  55. package/bin/exiftool_files/lib/Image/ExifTool/HP.pm +1 -1
  56. package/bin/exiftool_files/lib/Image/ExifTool/HTML.pm +1 -1
  57. package/bin/exiftool_files/lib/Image/ExifTool/HtmlDump.pm +1 -1
  58. package/bin/exiftool_files/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  59. package/bin/exiftool_files/lib/Image/ExifTool/ICO.pm +1 -1
  60. package/bin/exiftool_files/lib/Image/ExifTool/ID3.pm +1 -1
  61. package/bin/exiftool_files/lib/Image/ExifTool/IPTC.pm +1 -1
  62. package/bin/exiftool_files/lib/Image/ExifTool/ISO.pm +1 -1
  63. package/bin/exiftool_files/lib/Image/ExifTool/ITC.pm +1 -1
  64. package/bin/exiftool_files/lib/Image/ExifTool/Import.pm +1 -1
  65. package/bin/exiftool_files/lib/Image/ExifTool/InDesign.pm +1 -1
  66. package/bin/exiftool_files/lib/Image/ExifTool/JPEG.pm +2 -1
  67. package/bin/exiftool_files/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  68. package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +1 -1
  69. package/bin/exiftool_files/lib/Image/ExifTool/JVC.pm +1 -1
  70. package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +35 -8
  71. package/bin/exiftool_files/lib/Image/ExifTool/Kodak.pm +1 -1
  72. package/bin/exiftool_files/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  73. package/bin/exiftool_files/lib/Image/ExifTool/LIF.pm +1 -1
  74. package/bin/exiftool_files/lib/Image/ExifTool/LNK.pm +1 -1
  75. package/bin/exiftool_files/lib/Image/ExifTool/Lang/cs.pm +1 -1
  76. package/bin/exiftool_files/lib/Image/ExifTool/Lang/de.pm +2 -2
  77. package/bin/exiftool_files/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  78. package/bin/exiftool_files/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  79. package/bin/exiftool_files/lib/Image/ExifTool/Lang/es.pm +1 -1
  80. package/bin/exiftool_files/lib/Image/ExifTool/Lang/fi.pm +1 -1
  81. package/bin/exiftool_files/lib/Image/ExifTool/Lang/fr.pm +6016 -760
  82. package/bin/exiftool_files/lib/Image/ExifTool/Lang/it.pm +1 -1
  83. package/bin/exiftool_files/lib/Image/ExifTool/Lang/ja.pm +1 -1
  84. package/bin/exiftool_files/lib/Image/ExifTool/Lang/ko.pm +1 -1
  85. package/bin/exiftool_files/lib/Image/ExifTool/Lang/nl.pm +1 -1
  86. package/bin/exiftool_files/lib/Image/ExifTool/Lang/pl.pm +1 -1
  87. package/bin/exiftool_files/lib/Image/ExifTool/Lang/ru.pm +1 -1
  88. package/bin/exiftool_files/lib/Image/ExifTool/Lang/sk.pm +1806 -0
  89. package/bin/exiftool_files/lib/Image/ExifTool/Lang/sv.pm +1 -1
  90. package/bin/exiftool_files/lib/Image/ExifTool/Lang/tr.pm +1 -1
  91. package/bin/exiftool_files/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  92. package/bin/exiftool_files/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  93. package/bin/exiftool_files/lib/Image/ExifTool/Leaf.pm +1 -1
  94. package/bin/exiftool_files/lib/Image/ExifTool/Lytro.pm +1 -1
  95. package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +1 -1
  96. package/bin/exiftool_files/lib/Image/ExifTool/MIE.pm +1 -1
  97. package/bin/exiftool_files/lib/Image/ExifTool/MIEUnits.pod +1 -1
  98. package/bin/exiftool_files/lib/Image/ExifTool/MIFF.pm +1 -1
  99. package/bin/exiftool_files/lib/Image/ExifTool/MISB.pm +1 -1
  100. package/bin/exiftool_files/lib/Image/ExifTool/MNG.pm +1 -1
  101. package/bin/exiftool_files/lib/Image/ExifTool/MOI.pm +1 -1
  102. package/bin/exiftool_files/lib/Image/ExifTool/MPC.pm +1 -1
  103. package/bin/exiftool_files/lib/Image/ExifTool/MPEG.pm +1 -1
  104. package/bin/exiftool_files/lib/Image/ExifTool/MPF.pm +1 -1
  105. package/bin/exiftool_files/lib/Image/ExifTool/MRC.pm +1 -1
  106. package/bin/exiftool_files/lib/Image/ExifTool/MWG.pm +1 -1
  107. package/bin/exiftool_files/lib/Image/ExifTool/MXF.pm +1 -1
  108. package/bin/exiftool_files/lib/Image/ExifTool/MacOS.pm +1 -1
  109. package/bin/exiftool_files/lib/Image/ExifTool/MakerNotes.pm +1 -1
  110. package/bin/exiftool_files/lib/Image/ExifTool/Matroska.pm +262 -46
  111. package/bin/exiftool_files/lib/Image/ExifTool/Microsoft.pm +1 -1
  112. package/bin/exiftool_files/lib/Image/ExifTool/Minolta.pm +1 -1
  113. package/bin/exiftool_files/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  114. package/bin/exiftool_files/lib/Image/ExifTool/Motorola.pm +1 -1
  115. package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +687 -280
  116. package/bin/exiftool_files/lib/Image/ExifTool/NikonCapture.pm +1 -1
  117. package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +140 -107
  118. package/bin/exiftool_files/lib/Image/ExifTool/NikonSettings.pm +1 -1
  119. package/bin/exiftool_files/lib/Image/ExifTool/Nintendo.pm +1 -1
  120. package/bin/exiftool_files/lib/Image/ExifTool/OOXML.pm +1 -1
  121. package/bin/exiftool_files/lib/Image/ExifTool/Ogg.pm +1 -1
  122. package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +4 -3
  123. package/bin/exiftool_files/lib/Image/ExifTool/OpenEXR.pm +1 -1
  124. package/bin/exiftool_files/lib/Image/ExifTool/Opus.pm +1 -1
  125. package/bin/exiftool_files/lib/Image/ExifTool/Other.pm +1 -1
  126. package/bin/exiftool_files/lib/Image/ExifTool/PCX.pm +1 -1
  127. package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +1 -1
  128. package/bin/exiftool_files/lib/Image/ExifTool/PGF.pm +1 -1
  129. package/bin/exiftool_files/lib/Image/ExifTool/PICT.pm +1 -1
  130. package/bin/exiftool_files/lib/Image/ExifTool/PLIST.pm +12 -7
  131. package/bin/exiftool_files/lib/Image/ExifTool/PLUS.pm +1 -1
  132. package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +9 -2
  133. package/bin/exiftool_files/lib/Image/ExifTool/PPM.pm +1 -1
  134. package/bin/exiftool_files/lib/Image/ExifTool/PSP.pm +1 -1
  135. package/bin/exiftool_files/lib/Image/ExifTool/Palm.pm +1 -1
  136. package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +1 -1
  137. package/bin/exiftool_files/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  138. package/bin/exiftool_files/lib/Image/ExifTool/Parrot.pm +1 -1
  139. package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +1 -1
  140. package/bin/exiftool_files/lib/Image/ExifTool/PhaseOne.pm +1 -1
  141. package/bin/exiftool_files/lib/Image/ExifTool/PhotoCD.pm +1 -1
  142. package/bin/exiftool_files/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  143. package/bin/exiftool_files/lib/Image/ExifTool/Photoshop.pm +1 -1
  144. package/bin/exiftool_files/lib/Image/ExifTool/PostScript.pm +1 -1
  145. package/bin/exiftool_files/lib/Image/ExifTool/PrintIM.pm +1 -1
  146. package/bin/exiftool_files/lib/Image/ExifTool/Qualcomm.pm +1 -1
  147. package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +26 -7
  148. package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +166 -39
  149. package/bin/exiftool_files/lib/Image/ExifTool/README +5 -1
  150. package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +1 -1
  151. package/bin/exiftool_files/lib/Image/ExifTool/RSRC.pm +1 -1
  152. package/bin/exiftool_files/lib/Image/ExifTool/RTF.pm +1 -1
  153. package/bin/exiftool_files/lib/Image/ExifTool/Radiance.pm +1 -1
  154. package/bin/exiftool_files/lib/Image/ExifTool/Rawzor.pm +1 -1
  155. package/bin/exiftool_files/lib/Image/ExifTool/Real.pm +1 -1
  156. package/bin/exiftool_files/lib/Image/ExifTool/Reconyx.pm +1 -1
  157. package/bin/exiftool_files/lib/Image/ExifTool/Red.pm +1 -1
  158. package/bin/exiftool_files/lib/Image/ExifTool/Ricoh.pm +1 -1
  159. package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +3 -1
  160. package/bin/exiftool_files/lib/Image/ExifTool/Sanyo.pm +1 -1
  161. package/bin/exiftool_files/lib/Image/ExifTool/Scalado.pm +1 -1
  162. package/bin/exiftool_files/lib/Image/ExifTool/Shift.pl +1 -1
  163. package/bin/exiftool_files/lib/Image/ExifTool/Shortcuts.pm +1 -1
  164. package/bin/exiftool_files/lib/Image/ExifTool/Sigma.pm +1 -1
  165. package/bin/exiftool_files/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  166. package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +7 -7
  167. package/bin/exiftool_files/lib/Image/ExifTool/SonyIDC.pm +1 -1
  168. package/bin/exiftool_files/lib/Image/ExifTool/Stim.pm +1 -1
  169. package/bin/exiftool_files/lib/Image/ExifTool/TagInfoXML.pm +13 -8
  170. package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +4608 -4512
  171. package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +323 -43
  172. package/bin/exiftool_files/lib/Image/ExifTool/Text.pm +1 -1
  173. package/bin/exiftool_files/lib/Image/ExifTool/Theora.pm +1 -1
  174. package/bin/exiftool_files/lib/Image/ExifTool/Torrent.pm +1 -1
  175. package/bin/exiftool_files/lib/Image/ExifTool/Unknown.pm +1 -1
  176. package/bin/exiftool_files/lib/Image/ExifTool/VCard.pm +1 -1
  177. package/bin/exiftool_files/lib/Image/ExifTool/Validate.pm +1 -1
  178. package/bin/exiftool_files/lib/Image/ExifTool/Vorbis.pm +1 -1
  179. package/bin/exiftool_files/lib/Image/ExifTool/WTV.pm +1 -1
  180. package/bin/exiftool_files/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  181. package/bin/exiftool_files/lib/Image/ExifTool/WriteExif.pl +14 -1
  182. package/bin/exiftool_files/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  183. package/bin/exiftool_files/lib/Image/ExifTool/WritePDF.pl +5 -1
  184. package/bin/exiftool_files/lib/Image/ExifTool/WritePNG.pl +1 -1
  185. package/bin/exiftool_files/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  186. package/bin/exiftool_files/lib/Image/ExifTool/WritePostScript.pl +1 -1
  187. package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +30 -14
  188. package/bin/exiftool_files/lib/Image/ExifTool/WriteRIFF.pl +1 -1
  189. package/bin/exiftool_files/lib/Image/ExifTool/WriteXMP.pl +16 -2
  190. package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +35 -15
  191. package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +23 -3
  192. package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +20 -1
  193. package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +1 -1
  194. package/bin/exiftool_files/lib/Image/ExifTool/ZIP.pm +20 -8
  195. package/bin/exiftool_files/lib/Image/ExifTool/ZISRAW.pm +1 -1
  196. package/bin/exiftool_files/lib/Image/ExifTool/iWork.pm +1 -1
  197. package/bin/exiftool_files/lib/Image/ExifTool.pm +38 -16
  198. package/bin/exiftool_files/lib/Image/ExifTool.pod +39 -38
  199. package/package.json +3 -3
@@ -918,7 +918,7 @@ the maker notes of NEF images.
918
918
 
919
919
  =head1 AUTHOR
920
920
 
921
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
921
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
922
922
 
923
923
  This library is free software; you can redistribute it and/or modify it
924
924
  under the same terms as Perl itself.
@@ -15,68 +15,87 @@ package Image::ExifTool::NikonCustom;
15
15
  use strict;
16
16
  use vars qw($VERSION);
17
17
 
18
- $VERSION = '1.20';
18
+ $VERSION = '1.22';
19
19
 
20
20
  my %buttonsZ9= (
21
- 0 => 'None',
22
- 1 => 'Preview',
23
- 3 => 'FV Lock',
24
- 4 => 'AE/AF Lock',
25
- 5 => 'AE Lock Only',
26
- 6 => 'AE Lock (reset on release)',
27
- 7 => 'AE Lock (hold)',
28
- 8 => 'AF Lock Only',
29
- 9 => 'AF-On',
30
- 10 => 'Flash Disable/Enable',
31
- 11 => 'Bracketing Burst',
32
- 12 => '+NEF(RAW)',
33
- 18 => 'Virtual Horizon',
34
- 19 => 'Synchronized Release',
35
- 20 => 'My Menu',
36
- 21 => 'My Menu Top Item',
37
- 22 => 'Playback',
38
- 23 => 'Rating',
39
- 24 => 'Protect',
40
- 25 => 'Zoom',
41
- 26 => 'Focus Peaking',
42
- 28 => 'Image Area',
43
- 30 => 'Non-CPU Lens',
44
- 31 => 'Active-D Lighting',
45
- 33 => '1 Stop Speed/Aperture',
46
- 35 => 'Metering',
47
- 36 => 'Auto Bracketing',
48
- 37 => 'Multiple Exposure',
49
- 38 => 'HDR Overlay',
50
- 39 => 'Picture Control',
51
- 40 => 'Quality',
52
- 41 => 'Focus Mode/AF AreaMode',
53
- 42 => 'Select Center Focus Point',
54
- 44 => 'Record Movie',
55
- 47 => 'Choose Folder',
56
- 48 => 'Power Aperture (Open)',
57
- 49 => 'Power Aperture (Close)',
58
- 52 => 'Microphone Sensitivity',
59
- 57 => 'Preset Focus Point',
60
- 58 => 'AE/AWB Lock (hold)',
61
- 59 => 'AF-AreaMode',
62
- 60 => 'AF-AreaMode + AF-On',
63
- 61 => 'Recall Shooting Functions',
64
- 64 => 'Filtered Playback',
65
- 65 => 'Same as AF-On',
66
- 66 => 'Voice Memo',
67
- 70 => 'Photo Shooting Bank',
68
- 73 => 'Exposure Compensation',
69
- 76 => 'Silent Mode',
70
- 78 => 'LiveView Information',
71
- 79 => 'AWB Lock (hold)',
72
- 80 => 'Grid Display',
73
- 81 => 'Starlight View',
74
- 82 => 'Select To Send (PC)',
75
- 83 => 'Select To Send (FTP)',
76
- 85 => 'Control Lock',
77
- 86 => 'Save Focus Position',
78
- 87 => 'Recall Focus Position',
79
- 88 => 'Recall Shooting Functions (Hold)',
21
+ SeparateTable => 'ButtonsZ9',
22
+ PrintConv => {
23
+ 0 => 'None',
24
+ 1 => 'Preview',
25
+ 3 => 'FV Lock',
26
+ 4 => 'AE/AF Lock',
27
+ 5 => 'AE Lock Only',
28
+ 6 => 'AE Lock (reset on release)',
29
+ 7 => 'AE Lock (hold)',
30
+ 8 => 'AF Lock Only',
31
+ 9 => 'AF-On',
32
+ 10 => 'Flash Disable/Enable',
33
+ 11 => 'Bracketing Burst',
34
+ 12 => '+NEF(RAW)',
35
+ 18 => 'Virtual Horizon',
36
+ 19 => 'Synchronized Release',
37
+ 20 => 'My Menu',
38
+ 21 => 'My Menu Top Item',
39
+ 22 => 'Playback',
40
+ 23 => 'Rating',
41
+ 24 => 'Protect',
42
+ 25 => 'Zoom',
43
+ 26 => 'Focus Peaking',
44
+ 28 => 'Image Area',
45
+ 30 => 'Non-CPU Lens',
46
+ 31 => 'Active-D Lighting',
47
+ 33 => '1 Stop Speed/Aperture',
48
+ 34 => 'White Balance',
49
+ 35 => 'Metering',
50
+ 36 => 'Auto Bracketing',
51
+ 37 => 'Multiple Exposure',
52
+ 38 => 'HDR Overlay',
53
+ 39 => 'Picture Control',
54
+ 40 => 'Quality',
55
+ 41 => 'Focus Mode/AF AreaMode',
56
+ 42 => 'Select Center Focus Point',
57
+ 44 => 'Record Movie',
58
+ 47 => 'Choose Folder',
59
+ 48 => 'Power Aperture (Open)',
60
+ 49 => 'Power Aperture (Close)',
61
+ 52 => 'Microphone Sensitivity',
62
+ 57 => 'Preset Focus Point',
63
+ 58 => 'AE/AWB Lock (hold)',
64
+ 59 => 'AF-AreaMode',
65
+ 60 => 'AF-AreaMode + AF-On',
66
+ 61 => 'Recall Shooting Functions',
67
+ 64 => 'Filtered Playback',
68
+ 65 => 'Same as AF-On',
69
+ 66 => 'Voice Memo',
70
+ 70 => 'Photo Shooting Bank',
71
+ 71 => 'ISO',
72
+ 73 => 'Exposure Compensation',
73
+ 76 => 'Silent Mode',
74
+ 78 => 'LiveView Information',
75
+ 79 => 'AWB Lock (hold)',
76
+ 80 => 'Grid Display',
77
+ 81 => 'Starlight View',
78
+ 82 => 'Select To Send (PC)',
79
+ 83 => 'Select To Send (FTP)',
80
+ 84 => 'Pattern Tone Range',
81
+ 85 => 'Control Lock',
82
+ 86 => 'Save Focus Position',
83
+ 87 => 'Recall Focus Position',
84
+ 88 => 'Recall Shooting Functions (Hold)',
85
+ 97 => 'High Frequency Flicker Reduction',
86
+ 98 => 'Switch FX/DX',
87
+ 99 => 'View Mode (Photo LV)',
88
+ 100 => 'Photo Flicker Reduction',
89
+ 101 => 'Filtered Playback (Select Criteria)',
90
+ 103 => 'Start Series Playback',
91
+ 104 => 'View Assist',
92
+ 105 => 'Hi-Res Zoom+',
93
+ 106 => 'Hi-Res Zoom-',
94
+ 108 => 'Override Other Cameras',
95
+ 109 => 'DISP - Cycle Information Display (shooting)', # Shooting Mode
96
+ 110 => 'DISP - Cycle Information Display (playback)', # Playback mode
97
+ 111 => 'Resume Shooting',
98
+ },
80
99
  );
81
100
  my %dialsZ9 = (
82
101
  0 => '1 Frame',
@@ -116,16 +135,19 @@ my %focusModeRestrictionsZ9 = (
116
135
  4 => 'No Restrictions',
117
136
  );
118
137
  my %powerOffDelayTimesZ9 = (
119
- 0 => '2 s',
120
- 1 => '4 s',
121
- 3 => '10 s',
122
- 4 => '20 s',
123
- 5 => '30 s',
124
- 6 => '1 min',
125
- 7 => '5 min',
126
- 8 => '10 min',
127
- 11 => '30 min',
128
- 12 => 'No Limit',
138
+ SeparateTable => 'DelaysZ9',
139
+ PrintConv => {
140
+ 0 => '2 s',
141
+ 1 => '4 s',
142
+ 3 => '10 s',
143
+ 4 => '20 s',
144
+ 5 => '30 s',
145
+ 6 => '1 min',
146
+ 7 => '5 min',
147
+ 8 => '10 min',
148
+ 11 => '30 min',
149
+ 12 => 'No Limit',
150
+ },
129
151
  );
130
152
  my %thirdHalfFull = (
131
153
  0 => '1/3 EV',
@@ -9767,10 +9789,10 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9767
9789
  3 => '3 s',
9768
9790
  },
9769
9791
  },
9770
- 51 => { Name => 'PlaybackMonitorOffTime', PrintConv => \%powerOffDelayTimesZ9 }, # CSc4-a
9771
- 53 => { Name => 'MenuMonitorOffTime', PrintConv => \%powerOffDelayTimesZ9 }, # CSc4-b
9772
- 55 => { Name => 'ShootingInfoMonitorOffTime',PrintConv => \%powerOffDelayTimesZ9 }, # CSc4-c
9773
- 57 => { Name => 'ImageReviewMonitorOffTime', PrintConv => \%powerOffDelayTimesZ9 }, # CSc4-d
9792
+ 51 => { Name => 'PlaybackMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc4-a
9793
+ 53 => { Name => 'MenuMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc4-b
9794
+ 55 => { Name => 'ShootingInfoMonitorOffTime',%powerOffDelayTimesZ9 }, # CSc4-c
9795
+ 57 => { Name => 'ImageReviewMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc4-d
9774
9796
  59 => { Name => 'CLModeShootingSpeed', ValueConv => '$val + 1', ValueConvInv => '$val - 1', PrintConv => '"$val fps"', PrintConvInv => '$val=~s/\s*fps//i; $val' }, # CSd1b
9775
9797
  61 => { # CSd2 # values: 1-200 & 'No Limit'
9776
9798
  Name => 'MaxContinuousRelease',
@@ -9848,25 +9870,25 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9848
9870
  },
9849
9871
  },
9850
9872
  97 => { Name => 'AutoBracketOrder', PrintConv => { 0 => '0,-,+',1 => '-,0,+' } }, # CSe7
9851
- 99 => { Name => 'Func1Button', PrintConv => \%buttonsZ9}, # CSf2-a
9873
+ 99 => { Name => 'Func1Button', %buttonsZ9}, # CSf2-a
9852
9874
  #101 Func1Button submenu: Preview 0 => 'Press To Recall', 1=> 'Hold To Recall' # CSf2-a
9853
9875
  #103 Func1Button submenu: AreaMode 0-7 => S, Dyn-S, Dyn-M, Dyn-L, Wide-S, Wide-L, 3D, Auto; 11=>n/a # CSf2-a
9854
9876
  #105 Func1Button submenu: AreaMode+AF-On 0-7 => S, Dyn-S, Dyn-M, Dyn-L, Wide-S, Wide-L, 3D, Auto; 11=>n/a # CSf2-a
9855
9877
  #109 Func1Button submenu: SynchronizedRelease 1=>'Master', 2=>'Remote' # CSf2-a
9856
9878
  #111 Func1Button submenu: Zoom 0=>'Zoom (Low)', 2=>'Zoom (1:1)', 2=>'Zoom (High)' # CSf2-a
9857
9879
  #113 Func1Button & Func1ButtonPlayback submenu: Rating # CSf2-a & CSf3a 0=>'Candidate For Deletion' 6=>''None'
9858
- 115 => { Name => 'Func2Button', PrintConv => \%buttonsZ9}, # CSf2-b
9880
+ 115 => { Name => 'Func2Button', %buttonsZ9}, # CSf2-b
9859
9881
  #117 Func2Button submenu: Preview 0 => 'Press To Recall', 1=> 'Hold To Recall' # CSf2-b
9860
9882
  #119 Func2Button submenu: AreaMode 0-7 => S, Dyn-S, Dyn-M, Dyn-L, Wide-S, Wide-L, 3D, Auto; 11=>n/a # CSf2-b
9861
9883
  #121 Func2Button submenu: AreaMode+AF-On 0-7 => S, Dyn-S, Dyn-M, Dyn-L, Wide-S, Wide-L, 3D, Auto; 11=>n/a # CSf2-b
9862
9884
  #125 Func2Button submenu: SynchronizedRelease 1=>'Master', 2=>'Remote' # CSf2-b
9863
9885
  #127 Func2Button submenu: Zoom 0=>'Zoom (Low)', 2=>'Zoom (1:1)', 2=>'Zoom (High)' # CSf2-b
9864
9886
  #129 Func2Button & Func2ButtonPlayback submenu: Rating # CSf2-b & CSf3b 0=>'Candidate For Deletion' 6=>''None'
9865
- 131 => { Name => 'AFOnButton', PrintConv => \%buttonsZ9}, # CSf2-c
9866
- 143 => { Name => 'SubSelector', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf2-g
9867
- 155 => { Name => 'AssignMovieRecordButton', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf2-m
9868
- 159 => { Name => 'LensFunc1Button', PrintConv => \%buttonsZ9}, # CSf2-o
9869
- 167 => { Name => 'LensFunc2Button', PrintConv => \%buttonsZ9}, # CSf2-p
9887
+ 131 => { Name => 'AFOnButton', %buttonsZ9}, # CSf2-c
9888
+ 143 => { Name => 'SubSelector', %buttonsZ9, Unknown => 1}, # CSf2-g
9889
+ 155 => { Name => 'AssignMovieRecordButton', %buttonsZ9, Unknown => 1}, # CSf2-m
9890
+ 159 => { Name => 'LensFunc1Button', %buttonsZ9}, # CSf2-o
9891
+ 167 => { Name => 'LensFunc2Button', %buttonsZ9}, # CSf2-p
9870
9892
  173 => { # CSf2-q
9871
9893
  Name => 'LensControlRing',
9872
9894
  PrintConv => {
@@ -9877,8 +9899,8 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9877
9899
  4 => 'Aperture',
9878
9900
  },
9879
9901
  },
9880
- 175 => { Name => 'MultiSelectorShootMode', PrintConv => \%buttonsZ9}, # CSf2-h called the OK button in camera, tag name retained for compatibility
9881
- 179 => { Name => 'MultiSelectorPlaybackMode', PrintConv => \%buttonsZ9}, # CSf3f
9902
+ 175 => { Name => 'MultiSelectorShootMode', %buttonsZ9}, # CSf2-h called the OK button in camera, tag name retained for compatibility
9903
+ 179 => { Name => 'MultiSelectorPlaybackMode', %buttonsZ9}, # CSf3f
9882
9904
  183 => { Name => 'ShutterSpeedLock', PrintConv => \%offOn }, # CSf4-a
9883
9905
  184 => { Name => 'ApertureLock', PrintConv => \%offOn }, # CSf4-b
9884
9906
  185 => { # CSf5-a Previous cameras reported this tag as part of CmdDialsReverseRotation. Blend with CSf5-b separate settings together to match extant tag name and values
@@ -9902,9 +9924,20 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9902
9924
  }],
9903
9925
  191 => { Name => 'UseDialWithoutHold', PrintConv => \%offOn, Unknown => 1 }, # CSf6
9904
9926
  193 => { Name => 'ReverseIndicators', PrintConv => { 0 => '+ 0 -', 1 => '- 0 +' }, Unknown => 1 }, # CSf7
9905
- 195 => { Name => 'MovieFunc1Button', PrintConv => \%buttonsZ9}, # CSg2-a
9906
- 203 => { Name => 'MovieAF-OnButton', PrintConv => \%buttonsZ9}, # CSg2-f
9907
- 217 => { Name => 'MovieMultiSelector', PrintConv => \%buttonsZ9, Unknown => 1}, # CSg2-h
9927
+ 195 => { Name => 'MovieFunc1Button', %buttonsZ9}, # CSg2-a
9928
+ 199 => { Name => 'MovieFunc2Button', %buttonsZ9}, # CSg2-b
9929
+ 203 => { Name => 'MovieAF-OnButton', %buttonsZ9}, # CSg2-f
9930
+ 215 => { # CSg2-z
9931
+ Name => 'MovieLensControlRing',
9932
+ PrintConv => {
9933
+ 0 => 'None (Disabled)',
9934
+ 2 => 'ISO Sensitivity',
9935
+ 3 => 'Exposure Compensation',
9936
+ 4 => 'Power Aperture',
9937
+ 5 => 'Hi-Res Zoom',
9938
+ },
9939
+ },
9940
+ 217 => { Name => 'MovieMultiSelector', %buttonsZ9, Unknown => 1}, # CSg2-h
9908
9941
  221 => { Name => 'MovieAFSpeed', ValueConv => '$val - 5', ValueConvInv => '$val + 6' }, # CSg6-a
9909
9942
  223 => { Name => 'MovieAFSpeedApply', rintConv => {0 => 'Always', 1 => 'Only During Recording'},}, # CSg6-b
9910
9943
  225 => { # CSg7
@@ -9931,11 +9964,11 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9931
9964
  269.4 => { Name => 'LimitReleaseModeSelC120', Mask => 0x40, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-c
9932
9965
  269.5 => { Name => 'LimitReleaseModeSelSelf', Mask => 0x80, PrintConv => \%limitNolimit, Unknown => 1 }, # CSd3-d
9933
9966
  273 => { Name => 'FlashBurstPriority', PrintConv => { 0 => 'Frame Rate',1 => 'Exposure'}, Unknown => 1 }, # CSe8
9934
- 277 => { Name => 'VerticalFuncButton', PrintConv => \%buttonsZ9}, # CSf2-c
9935
- 281 => { Name => 'Func3Button', PrintConv => \%buttonsZ9}, # CSf2-c
9936
- 285 => { Name => 'VerticalAFOnButton', PrintConv => \%buttonsZ9}, # CSf2-l
9967
+ 277 => { Name => 'VerticalFuncButton', %buttonsZ9}, # CSf2-c
9968
+ 281 => { Name => 'Func3Button', %buttonsZ9}, # CSf2-c
9969
+ 285 => { Name => 'VerticalAFOnButton', %buttonsZ9}, # CSf2-l
9937
9970
  293 => { Name => 'VerticalMultiSelectorPlaybackMode', PrintConv => { 0 => 'Image Scroll L/R', 1 => 'Image Scroll Up/Down' }, Unknown => 1}, # CSf3-j
9938
- 295 => { Name => 'MovieFunc3Button', PrintConv => \%buttonsZ9}, # CSg2-c
9971
+ 295 => { Name => 'MovieFunc3Button', %buttonsZ9}, # CSg2-c
9939
9972
  335 => { Name => 'LimitAF-AreaModeSelDynamic_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9940
9973
  336 => { Name => 'LimitAF-AreaModeSelDynamic_M', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9941
9974
  337 => { Name => 'LimitAF-AreaModeSelDynamic_L', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
@@ -9947,26 +9980,26 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9947
9980
  356 => { Name => 'EVFImageFrame', PrintConv => \%offOn, Unknown => 1 }, # CSd14
9948
9981
  357 => { Name => 'EVFGrid', PrintConv => \%evfGridsZ9, Unknown => 1 }, # CSd15
9949
9982
  359 => { Name => 'VirtualHorizonStyle', PrintConv => {0 => 'Type A (Cockpit)', 1 => 'Type B (Sides)' }, Unknown => 1}, #CSd16
9950
- 373 => { Name => 'Func4Button', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf2-e
9951
- 379 => { Name => 'AudioButton', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf2-i
9952
- 381 => { Name => 'QualityButton', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf2-j
9953
- 399 => { Name => 'VerticalMultiSelector', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf2-k
9954
- 421 => { Name => 'Func1ButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-a
9955
- 423 => { Name => 'Func2ButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-b
9956
- 425 => { Name => 'Func3ButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-c
9957
- 431 => { Name => 'Func4ButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-e
9958
- 437 => { Name => 'MovieRecordButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-m
9959
- 439 => { Name => 'VerticalFuncButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-d
9960
- 441 => { Name => 'AudioButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-g
9961
- 447 => { Name => 'QualityButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-h
9983
+ 373 => { Name => 'Func4Button', %buttonsZ9, Unknown => 1}, # CSf2-e
9984
+ 379 => { Name => 'AudioButton', %buttonsZ9, Unknown => 1}, # CSf2-i
9985
+ 381 => { Name => 'QualityButton', %buttonsZ9, Unknown => 1}, # CSf2-j
9986
+ 399 => { Name => 'VerticalMultiSelector', %buttonsZ9, Unknown => 1}, # CSf2-k
9987
+ 421 => { Name => 'Func1ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-a
9988
+ 423 => { Name => 'Func2ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-b
9989
+ 425 => { Name => 'Func3ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-c
9990
+ 431 => { Name => 'Func4ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-e
9991
+ 437 => { Name => 'MovieRecordButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-m
9992
+ 439 => { Name => 'VerticalFuncButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-d
9993
+ 441 => { Name => 'AudioButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-g
9994
+ 447 => { Name => 'QualityButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-h
9962
9995
  467 => { Name => 'FocusPointLock', PrintConv => \%offOn, Unknown => 1}, # CSf4-c
9963
- 453 => { Name => 'WhiteBalanceButtonPlaybackMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSf3-i
9996
+ 453 => { Name => 'WhiteBalanceButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-i
9964
9997
  459 => { Name => 'CommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-k
9965
9998
  463 => { Name => 'SubCommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-l
9966
9999
  469 => { Name => 'ControlRingResponse', PrintConv => { 0 => 'High', 1 => 'Low' } }, # CSf10
9967
- 481 => { Name => 'VerticalMovieFuncButton', PrintConv => \%buttonsZ9, Unknown => 1}, # CSg2-d
9968
- 505 => { Name => 'VerticalMovieAFOnButton', PrintConv => \%buttonsZ9, Unknown => 1}, # CSg2-l
9969
- 515 => { Name => 'MovieAFAreaMode', PrintConv => \%buttonsZ9, Unknown => 1}, # CSg2-e
10000
+ 481 => { Name => 'VerticalMovieFuncButton', %buttonsZ9, Unknown => 1}, # CSg2-d
10001
+ 505 => { Name => 'VerticalMovieAFOnButton', %buttonsZ9, Unknown => 1}, # CSg2-l
10002
+ 515 => { Name => 'MovieAFAreaMode', %buttonsZ9, Unknown => 1}, # CSg2-e
9970
10003
  #521 => { Name => 'MovieLimitAF-AreaModeSelWideAF_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-a
9971
10004
  #522 => { Name => 'MovieLimitAF-AreaModeSelWideAF_W', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-b
9972
10005
  #523 => { Name => 'MovieLimitAF-AreaModeSelSubjectTrack', PrintConv => \%limitNolimit, Unknown => 1 }, # CSg4-c
@@ -10054,7 +10087,7 @@ this information.
10054
10087
 
10055
10088
  =head1 AUTHOR
10056
10089
 
10057
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
10090
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
10058
10091
 
10059
10092
  This library is free software; you can redistribute it and/or modify it
10060
10093
  under the same terms as Perl itself.
@@ -2077,7 +2077,7 @@ Nikon cameras such as the D6 and Z7mk2.
2077
2077
 
2078
2078
  =head1 AUTHOR
2079
2079
 
2080
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
2080
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
2081
2081
 
2082
2082
  This library is free software; you can redistribute it and/or modify it
2083
2083
  under the same terms as Perl itself.
@@ -107,7 +107,7 @@ interpret Nintendo maker notes EXIF meta information.
107
107
 
108
108
  =head1 AUTHOR
109
109
 
110
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
110
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
111
111
 
112
112
  This library is free software; you can redistribute it and/or modify it
113
113
  under the same terms as Perl itself.
@@ -395,7 +395,7 @@ archives of XML files.
395
395
 
396
396
  =head1 AUTHOR
397
397
 
398
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
398
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
399
399
 
400
400
  This library is free software; you can redistribute it and/or modify it
401
401
  under the same terms as Perl itself.
@@ -214,7 +214,7 @@ information from Ogg bitstream container files.
214
214
 
215
215
  =head1 AUTHOR
216
216
 
217
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
217
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
218
218
 
219
219
  This library is free software; you can redistribute it and/or modify it
220
220
  under the same terms as Perl itself.
@@ -115,6 +115,7 @@ my %olympusLensTypes = (
115
115
  '0 35 00' => 'Olympus Zuiko Digital 14-54mm F2.8-3.5 II', #PH
116
116
  '0 35 10' => 'Olympus M.Zuiko 100-400mm F5.0-6.3', #IB
117
117
  '0 36 10' => 'Olympus M.Zuiko Digital ED 8-25mm F4 Pro', #IB
118
+ '0 37 10' => 'Olympus M.Zuiko Digital ED 40-150mm F4.0 Pro', #forum3833
118
119
  # Sigma lenses
119
120
  '1 01 00' => 'Sigma 18-50mm F3.5-5.6 DC', #8
120
121
  '1 01 10' => 'Sigma 30mm F2.8 EX DN', #NJ
@@ -1835,7 +1836,7 @@ my %indexInfo = (
1835
1836
  1 => 'Sequential shooting AF',
1836
1837
  2 => 'Continuous AF',
1837
1838
  3 => 'Multi AF',
1838
- 4 => 'Face detect', #11
1839
+ 4 => 'Face Detect', #11
1839
1840
  10 => 'MF',
1840
1841
  }, {
1841
1842
  0 => '(none)',
@@ -1843,7 +1844,7 @@ my %indexInfo = (
1843
1844
  0 => 'S-AF',
1844
1845
  2 => 'C-AF',
1845
1846
  4 => 'MF',
1846
- 5 => 'Face detect',
1847
+ 5 => 'Face Detect',
1847
1848
  6 => 'Imager AF',
1848
1849
  7 => 'Live View Magnification Frame',
1849
1850
  8 => 'AF sensor',
@@ -4092,7 +4093,7 @@ Olympus or Epson maker notes in EXIF information.
4092
4093
 
4093
4094
  =head1 AUTHOR
4094
4095
 
4095
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
4096
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
4096
4097
 
4097
4098
  This library is free software; you can redistribute it and/or modify it
4098
4099
  under the same terms as Perl itself.
@@ -304,7 +304,7 @@ information from OpenEXR images.
304
304
 
305
305
  =head1 AUTHOR
306
306
 
307
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
307
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
308
308
 
309
309
  This library is free software; you can redistribute it and/or modify it
310
310
  under the same terms as Perl itself.
@@ -69,7 +69,7 @@ information from Ogg Opus audio files.
69
69
 
70
70
  =head1 AUTHOR
71
71
 
72
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
72
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
73
73
 
74
74
  This library is free software; you can redistribute it and/or modify it
75
75
  under the same terms as Perl itself.
@@ -71,7 +71,7 @@ information from Portable FloatMap (PFM) images.
71
71
 
72
72
  =head1 AUTHOR
73
73
 
74
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
74
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
75
75
 
76
76
  This library is free software; you can redistribute it and/or modify it
77
77
  under the same terms as Perl itself.
@@ -114,7 +114,7 @@ information from PC Paintbrush (PCX) files.
114
114
 
115
115
  =head1 AUTHOR
116
116
 
117
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
117
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
118
118
 
119
119
  This library is free software; you can redistribute it and/or modify it
120
120
  under the same terms as Perl itself.
@@ -2389,7 +2389,7 @@ including AESV2 (AES-128) and AESV3 (AES-256).
2389
2389
 
2390
2390
  =head1 AUTHOR
2391
2391
 
2392
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
2392
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
2393
2393
 
2394
2394
  This library is free software; you can redistribute it and/or modify it
2395
2395
  under the same terms as Perl itself.
@@ -119,7 +119,7 @@ information from Progressive Graphics File (PGF) images.
119
119
 
120
120
  =head1 AUTHOR
121
121
 
122
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
122
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
123
123
 
124
124
  This library is free software; you can redistribute it and/or modify it
125
125
  under the same terms as Perl itself.
@@ -1236,7 +1236,7 @@ Verbose or the Unknown option.
1236
1236
 
1237
1237
  =head1 AUTHOR
1238
1238
 
1239
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1239
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1240
1240
 
1241
1241
  This library is free software; you can redistribute it and/or modify it
1242
1242
  under the same terms as Perl itself.
@@ -21,7 +21,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
21
21
  use Image::ExifTool::XMP;
22
22
  use Image::ExifTool::GPS;
23
23
 
24
- $VERSION = '1.09';
24
+ $VERSION = '1.10';
25
25
 
26
26
  sub ExtractObject($$;$);
27
27
  sub Get24u($$);
@@ -274,6 +274,7 @@ sub ExtractObject($$;$)
274
274
  }
275
275
  my $tagTablePtr = $$plistInfo{TagTablePtr};
276
276
  my $verbose = $et->Options('Verbose');
277
+ $val = { }; # initialize return dictionary (will stay empty if tags are saved)
277
278
  for ($i=0; $i<$size; ++$i) {
278
279
  # get the entry key
279
280
  $raf->Seek($$table[$refs[$i]], 0) or return undef;
@@ -284,8 +285,13 @@ sub ExtractObject($$;$)
284
285
  # generate an ID for this tag
285
286
  my $tag = defined $parent ? "$parent/$key" : $key;
286
287
  undef $$plistInfo{DateFormat};
287
- my $val = ExtractObject($et, $plistInfo, $tag);
288
- next if not defined $val or ref($val) eq 'HASH';
288
+ my $obj = ExtractObject($et, $plistInfo, $tag);
289
+ next if not defined $obj;
290
+ unless ($tagTablePtr) {
291
+ $$val{$key} = $obj if defined $obj;
292
+ next;
293
+ }
294
+ next if ref($obj) eq 'HASH';
289
295
  my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
290
296
  unless ($tagInfo) {
291
297
  $et->VPrint(0, $$et{INDENT}, "[adding $tag]\n") if $verbose;
@@ -304,9 +310,8 @@ sub ExtractObject($$;$)
304
310
  delete $$et{LIST_TAGS}{$$et{LastPListTag}};
305
311
  }
306
312
  $$et{LastPListTag} = $tagInfo;
307
- $et->HandleTag($tagTablePtr, $tag, $val);
313
+ $et->HandleTag($tagTablePtr, $tag, $obj);
308
314
  }
309
- $val = { }; # flag the value as a dictionary (ie. tags already saved)
310
315
  } else {
311
316
  # extract the referenced objects
312
317
  foreach $ref (@refs) {
@@ -326,7 +331,7 @@ sub ExtractObject($$;$)
326
331
  # Process binary PLIST data (ref 2)
327
332
  # Inputs: 0) ExifTool object ref, 1) DirInfo ref, 2) tag table ref
328
333
  # Returns: 1 on success (and returns plist value as $$dirInfo{Value})
329
- sub ProcessBinaryPLIST($$$)
334
+ sub ProcessBinaryPLIST($$;$)
330
335
  {
331
336
  my ($et, $dirInfo, $tagTablePtr) = @_;
332
337
  my ($i, $buff, @table);
@@ -438,7 +443,7 @@ This module decodes both the binary and XML-based PLIST format.
438
443
 
439
444
  =head1 AUTHOR
440
445
 
441
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
446
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
442
447
 
443
448
  This library is free software; you can redistribute it and/or modify it
444
449
  under the same terms as Perl itself.
@@ -2586,7 +2586,7 @@ Definitions for PLUS (Picture Licensing Universal System) tags.
2586
2586
 
2587
2587
  =head1 AUTHOR
2588
2588
 
2589
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
2589
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
2590
2590
 
2591
2591
  This library is free software; you can redistribute it and/or modify it
2592
2592
  under the same terms as Perl itself.
@@ -36,7 +36,7 @@ use strict;
36
36
  use vars qw($VERSION $AUTOLOAD %stdCase);
37
37
  use Image::ExifTool qw(:DataAccess :Utils);
38
38
 
39
- $VERSION = '1.60';
39
+ $VERSION = '1.61';
40
40
 
41
41
  sub ProcessPNG_tEXt($$$);
42
42
  sub ProcessPNG_iTXt($$$);
@@ -339,6 +339,11 @@ my %noLeapFrog = ( SAVE => 1, SEEK => 1, IHDR => 1, JHDR => 1, IEND => 1, MEND =
339
339
  # int32u DividedHeight2
340
340
  # int32u IDAT_Offset2 [location of IDAT with start of DividedHeight2 segment]
341
341
  },
342
+ caBX => { # C2PA metadata
343
+ Name => 'JUMBF',
344
+ SubDirectory => { TagTable => 'Image::ExifTool::Jpeg2000::Main' },
345
+ },
346
+ # cICP - Coding-independent code points (added in 2022 specification)
342
347
  );
343
348
 
344
349
  # PNG IHDR chunk
@@ -536,6 +541,8 @@ my %unreg = ( Notes => 'unregistered' );
536
541
  Label => { %unreg },
537
542
  Make => { %unreg, Groups => { 2 => 'Camera' } },
538
543
  Model => { %unreg, Groups => { 2 => 'Camera' } },
544
+ # parameters (written by Stable Diffusion)
545
+ # aesthetic_score (written by Stable Diffusion)
539
546
  'create-date'=> {
540
547
  Name => 'CreateDate',
541
548
  Groups => { 2 => 'Time' },
@@ -1561,7 +1568,7 @@ and JNG (JPEG Network Graphics) images.
1561
1568
 
1562
1569
  =head1 AUTHOR
1563
1570
 
1564
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1571
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1565
1572
 
1566
1573
  This library is free software; you can redistribute it and/or modify it
1567
1574
  under the same terms as Perl itself.
@@ -143,7 +143,7 @@ BitMap) images.
143
143
 
144
144
  =head1 AUTHOR
145
145
 
146
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
146
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
147
147
 
148
148
  This library is free software; you can redistribute it and/or modify it
149
149
  under the same terms as Perl itself.
@@ -284,7 +284,7 @@ information from Paint Shop Pro images.
284
284
 
285
285
  =head1 AUTHOR
286
286
 
287
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
287
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
288
288
 
289
289
  This library is free software; you can redistribute it and/or modify it
290
290
  under the same terms as Perl itself.
@@ -379,7 +379,7 @@ KF7 and KF8 books (AZW and AZW3).
379
379
 
380
380
  =head1 AUTHOR
381
381
 
382
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
382
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
383
383
 
384
384
  This library is free software; you can redistribute it and/or modify it
385
385
  under the same terms as Perl itself.