exiftool_vendored 12.50.0 → 12.54.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (204) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +69 -3
  3. data/bin/MANIFEST +2 -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 +12 -9
  8. data/bin/lib/File/RandomAccess.pm +1 -1
  9. data/bin/lib/File/RandomAccess.pod +2 -2
  10. data/bin/lib/Image/ExifTool/AES.pm +1 -1
  11. data/bin/lib/Image/ExifTool/AFCP.pm +1 -1
  12. data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  13. data/bin/lib/Image/ExifTool/APE.pm +1 -1
  14. data/bin/lib/Image/ExifTool/APP12.pm +1 -1
  15. data/bin/lib/Image/ExifTool/ASF.pm +1 -1
  16. data/bin/lib/Image/ExifTool/Apple.pm +197 -27
  17. data/bin/lib/Image/ExifTool/Audible.pm +1 -1
  18. data/bin/lib/Image/ExifTool/BMP.pm +1 -1
  19. data/bin/lib/Image/ExifTool/BPG.pm +1 -1
  20. data/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  21. data/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  22. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +3 -3
  23. data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
  24. data/bin/lib/Image/ExifTool/Canon.pm +14 -2
  25. data/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
  26. data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  27. data/bin/lib/Image/ExifTool/CanonVRD.pm +9 -9
  28. data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  29. data/bin/lib/Image/ExifTool/Casio.pm +4 -4
  30. data/bin/lib/Image/ExifTool/Charset.pm +1 -1
  31. data/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  32. data/bin/lib/Image/ExifTool/DJI.pm +1 -1
  33. data/bin/lib/Image/ExifTool/DNG.pm +1 -1
  34. data/bin/lib/Image/ExifTool/DPX.pm +1 -1
  35. data/bin/lib/Image/ExifTool/DV.pm +1 -1
  36. data/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
  37. data/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  38. data/bin/lib/Image/ExifTool/EXE.pm +1 -1
  39. data/bin/lib/Image/ExifTool/Exif.pm +5 -16
  40. data/bin/lib/Image/ExifTool/FITS.pm +1 -1
  41. data/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  42. data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  43. data/bin/lib/Image/ExifTool/FLIR.pm +7 -6
  44. data/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  45. data/bin/lib/Image/ExifTool/Flash.pm +1 -1
  46. data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  47. data/bin/lib/Image/ExifTool/Font.pm +1 -1
  48. data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  49. data/bin/lib/Image/ExifTool/FujiFilm.pm +20 -13
  50. data/bin/lib/Image/ExifTool/GE.pm +1 -1
  51. data/bin/lib/Image/ExifTool/GIF.pm +1 -1
  52. data/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  53. data/bin/lib/Image/ExifTool/GPS.pm +12 -6
  54. data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  55. data/bin/lib/Image/ExifTool/Geotag.pm +13 -5
  56. data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  57. data/bin/lib/Image/ExifTool/H264.pm +1 -1
  58. data/bin/lib/Image/ExifTool/HP.pm +1 -1
  59. data/bin/lib/Image/ExifTool/HTML.pm +1 -1
  60. data/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  61. data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  62. data/bin/lib/Image/ExifTool/ICO.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 +2 -1
  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 +35 -8
  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/LIF.pm +1 -1
  77. data/bin/lib/Image/ExifTool/LNK.pm +1 -1
  78. data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  79. data/bin/lib/Image/ExifTool/Lang/de.pm +2 -2
  80. data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  81. data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  82. data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  83. data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  84. data/bin/lib/Image/ExifTool/Lang/fr.pm +6016 -760
  85. data/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  86. data/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  87. data/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  88. data/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  89. data/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  90. data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  91. data/bin/lib/Image/ExifTool/Lang/sk.pm +1806 -0
  92. data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  93. data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  94. data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  95. data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  96. data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  97. data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  98. data/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  99. data/bin/lib/Image/ExifTool/MIE.pm +1 -1
  100. data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  101. data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  102. data/bin/lib/Image/ExifTool/MISB.pm +1 -1
  103. data/bin/lib/Image/ExifTool/MNG.pm +1 -1
  104. data/bin/lib/Image/ExifTool/MOI.pm +1 -1
  105. data/bin/lib/Image/ExifTool/MPC.pm +1 -1
  106. data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  107. data/bin/lib/Image/ExifTool/MPF.pm +1 -1
  108. data/bin/lib/Image/ExifTool/MRC.pm +1 -1
  109. data/bin/lib/Image/ExifTool/MWG.pm +1 -1
  110. data/bin/lib/Image/ExifTool/MXF.pm +1 -1
  111. data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
  112. data/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
  113. data/bin/lib/Image/ExifTool/Matroska.pm +262 -46
  114. data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  115. data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  116. data/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  117. data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  118. data/bin/lib/Image/ExifTool/Nikon.pm +658 -276
  119. data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  120. data/bin/lib/Image/ExifTool/NikonCustom.pm +140 -107
  121. data/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
  122. data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  123. data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  124. data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  125. data/bin/lib/Image/ExifTool/Olympus.pm +4 -3
  126. data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  127. data/bin/lib/Image/ExifTool/Opus.pm +1 -1
  128. data/bin/lib/Image/ExifTool/Other.pm +1 -1
  129. data/bin/lib/Image/ExifTool/PCX.pm +1 -1
  130. data/bin/lib/Image/ExifTool/PDF.pm +1 -1
  131. data/bin/lib/Image/ExifTool/PGF.pm +1 -1
  132. data/bin/lib/Image/ExifTool/PICT.pm +1 -1
  133. data/bin/lib/Image/ExifTool/PLIST.pm +12 -7
  134. data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  135. data/bin/lib/Image/ExifTool/PNG.pm +9 -2
  136. data/bin/lib/Image/ExifTool/PPM.pm +1 -1
  137. data/bin/lib/Image/ExifTool/PSP.pm +1 -1
  138. data/bin/lib/Image/ExifTool/Palm.pm +1 -1
  139. data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
  140. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  141. data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  142. data/bin/lib/Image/ExifTool/Pentax.pm +1 -1
  143. data/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  144. data/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  145. data/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  146. data/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  147. data/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  148. data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  149. data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  150. data/bin/lib/Image/ExifTool/QuickTime.pm +8 -4
  151. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +63 -15
  152. data/bin/lib/Image/ExifTool/README +2 -1
  153. data/bin/lib/Image/ExifTool/RIFF.pm +1 -1
  154. data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  155. data/bin/lib/Image/ExifTool/RTF.pm +1 -1
  156. data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  157. data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  158. data/bin/lib/Image/ExifTool/Real.pm +1 -1
  159. data/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  160. data/bin/lib/Image/ExifTool/Red.pm +1 -1
  161. data/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  162. data/bin/lib/Image/ExifTool/Samsung.pm +3 -1
  163. data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  164. data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  165. data/bin/lib/Image/ExifTool/Shift.pl +1 -1
  166. data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  167. data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  168. data/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  169. data/bin/lib/Image/ExifTool/Sony.pm +7 -7
  170. data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  171. data/bin/lib/Image/ExifTool/Stim.pm +1 -1
  172. data/bin/lib/Image/ExifTool/TagInfoXML.pm +13 -8
  173. data/bin/lib/Image/ExifTool/TagLookup.pm +4599 -4505
  174. data/bin/lib/Image/ExifTool/TagNames.pod +313 -39
  175. data/bin/lib/Image/ExifTool/Text.pm +1 -1
  176. data/bin/lib/Image/ExifTool/Theora.pm +1 -1
  177. data/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  178. data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  179. data/bin/lib/Image/ExifTool/VCard.pm +1 -1
  180. data/bin/lib/Image/ExifTool/Validate.pm +1 -1
  181. data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  182. data/bin/lib/Image/ExifTool/WTV.pm +1 -1
  183. data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  184. data/bin/lib/Image/ExifTool/WriteExif.pl +14 -1
  185. data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  186. data/bin/lib/Image/ExifTool/WritePDF.pl +5 -1
  187. data/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
  188. data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  189. data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  190. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +30 -14
  191. data/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
  192. data/bin/lib/Image/ExifTool/WriteXMP.pl +16 -2
  193. data/bin/lib/Image/ExifTool/Writer.pl +35 -15
  194. data/bin/lib/Image/ExifTool/XMP.pm +23 -3
  195. data/bin/lib/Image/ExifTool/XMP2.pl +20 -1
  196. data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
  197. data/bin/lib/Image/ExifTool/ZIP.pm +20 -8
  198. data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  199. data/bin/lib/Image/ExifTool/iWork.pm +1 -1
  200. data/bin/lib/Image/ExifTool.pm +38 -16
  201. data/bin/lib/Image/ExifTool.pod +39 -38
  202. data/bin/perl-Image-ExifTool.spec +1 -1
  203. data/lib/exiftool_vendored/version.rb +1 -1
  204. metadata +3 -2
@@ -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.