exiftool-vendored.pl 12.31.0 → 12.39.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 (201) hide show
  1. package/LICENSE +10 -3
  2. package/bin/Changes +130 -4
  3. package/bin/MANIFEST +3 -0
  4. package/bin/META.json +1 -1
  5. package/bin/META.yml +1 -1
  6. package/bin/README +45 -45
  7. package/bin/arg_files/xmp2exif.args +2 -1
  8. package/bin/exiftool +128 -96
  9. package/bin/lib/File/RandomAccess.pm +1 -1
  10. package/bin/lib/File/RandomAccess.pod +2 -2
  11. package/bin/lib/Image/ExifTool/AES.pm +1 -1
  12. package/bin/lib/Image/ExifTool/AFCP.pm +1 -1
  13. package/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  14. package/bin/lib/Image/ExifTool/APE.pm +1 -1
  15. package/bin/lib/Image/ExifTool/APP12.pm +1 -1
  16. package/bin/lib/Image/ExifTool/ASF.pm +1 -1
  17. package/bin/lib/Image/ExifTool/Apple.pm +1 -1
  18. package/bin/lib/Image/ExifTool/Audible.pm +1 -1
  19. package/bin/lib/Image/ExifTool/BMP.pm +1 -1
  20. package/bin/lib/Image/ExifTool/BPG.pm +1 -1
  21. package/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  22. package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  23. package/bin/lib/Image/ExifTool/BuildTagLookup.pm +17 -5
  24. package/bin/lib/Image/ExifTool/CBOR.pm +331 -0
  25. package/bin/lib/Image/ExifTool/Canon.pm +171 -13
  26. package/bin/lib/Image/ExifTool/CanonCustom.pm +13 -3
  27. package/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  28. package/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  29. package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  30. package/bin/lib/Image/ExifTool/Casio.pm +1 -1
  31. package/bin/lib/Image/ExifTool/Charset.pm +3 -1
  32. package/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  33. package/bin/lib/Image/ExifTool/DJI.pm +1 -1
  34. package/bin/lib/Image/ExifTool/DNG.pm +1 -1
  35. package/bin/lib/Image/ExifTool/DPX.pm +1 -1
  36. package/bin/lib/Image/ExifTool/DV.pm +1 -1
  37. package/bin/lib/Image/ExifTool/DarwinCore.pm +3 -3
  38. package/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  39. package/bin/lib/Image/ExifTool/EXE.pm +1 -1
  40. package/bin/lib/Image/ExifTool/Exif.pm +118 -4
  41. package/bin/lib/Image/ExifTool/FITS.pm +1 -1
  42. package/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  43. package/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  44. package/bin/lib/Image/ExifTool/FLIR.pm +48 -11
  45. package/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  46. package/bin/lib/Image/ExifTool/Flash.pm +1 -1
  47. package/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  48. package/bin/lib/Image/ExifTool/Font.pm +1 -1
  49. package/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  50. package/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
  51. package/bin/lib/Image/ExifTool/GE.pm +1 -1
  52. package/bin/lib/Image/ExifTool/GIF.pm +6 -2
  53. package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  54. package/bin/lib/Image/ExifTool/GPS.pm +15 -11
  55. package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  56. package/bin/lib/Image/ExifTool/Geotag.pm +14 -3
  57. package/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  58. package/bin/lib/Image/ExifTool/H264.pm +1 -1
  59. package/bin/lib/Image/ExifTool/HP.pm +1 -1
  60. package/bin/lib/Image/ExifTool/HTML.pm +1 -1
  61. package/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  62. package/bin/lib/Image/ExifTool/ICC_Profile.pm +97 -5
  63. package/bin/lib/Image/ExifTool/ID3.pm +1 -1
  64. package/bin/lib/Image/ExifTool/IPTC.pm +1 -1
  65. package/bin/lib/Image/ExifTool/ISO.pm +1 -1
  66. package/bin/lib/Image/ExifTool/ITC.pm +1 -1
  67. package/bin/lib/Image/ExifTool/Import.pm +1 -1
  68. package/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  69. package/bin/lib/Image/ExifTool/JPEG.pm +6 -2
  70. package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  71. package/bin/lib/Image/ExifTool/JSON.pm +8 -4
  72. package/bin/lib/Image/ExifTool/JVC.pm +1 -1
  73. package/bin/lib/Image/ExifTool/Jpeg2000.pm +155 -25
  74. package/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  75. package/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  76. package/bin/lib/Image/ExifTool/LIF.pm +1 -1
  77. package/bin/lib/Image/ExifTool/LNK.pm +1 -1
  78. package/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  79. package/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  80. package/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  81. package/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  82. package/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  83. package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  84. package/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
  85. package/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  86. package/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  87. package/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  88. package/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  89. package/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  90. package/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  91. package/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  92. package/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  93. package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  94. package/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  95. package/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  96. package/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  97. package/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  98. package/bin/lib/Image/ExifTool/MIE.pm +1 -1
  99. package/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  100. package/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  101. package/bin/lib/Image/ExifTool/MNG.pm +1 -1
  102. package/bin/lib/Image/ExifTool/MOI.pm +1 -1
  103. package/bin/lib/Image/ExifTool/MPC.pm +1 -1
  104. package/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  105. package/bin/lib/Image/ExifTool/MPF.pm +1 -1
  106. package/bin/lib/Image/ExifTool/MRC.pm +1 -1
  107. package/bin/lib/Image/ExifTool/MWG.pm +1 -1
  108. package/bin/lib/Image/ExifTool/MXF.pm +1 -1
  109. package/bin/lib/Image/ExifTool/MacOS.pm +3 -3
  110. package/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
  111. package/bin/lib/Image/ExifTool/Matroska.pm +9 -5
  112. package/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  113. package/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  114. package/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  115. package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  116. package/bin/lib/Image/ExifTool/Nikon.pm +1895 -74
  117. package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  118. package/bin/lib/Image/ExifTool/NikonCustom.pm +523 -6
  119. package/bin/lib/Image/ExifTool/NikonSettings.pm +150 -87
  120. package/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  121. package/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  122. package/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  123. package/bin/lib/Image/ExifTool/Olympus.pm +6 -2
  124. package/bin/lib/Image/ExifTool/OpenEXR.pm +5 -3
  125. package/bin/lib/Image/ExifTool/Opus.pm +1 -1
  126. package/bin/lib/Image/ExifTool/Other.pm +1 -1
  127. package/bin/lib/Image/ExifTool/PCX.pm +1 -1
  128. package/bin/lib/Image/ExifTool/PDF.pm +6 -4
  129. package/bin/lib/Image/ExifTool/PGF.pm +1 -1
  130. package/bin/lib/Image/ExifTool/PICT.pm +1 -1
  131. package/bin/lib/Image/ExifTool/PLIST.pm +1 -1
  132. package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  133. package/bin/lib/Image/ExifTool/PNG.pm +29 -8
  134. package/bin/lib/Image/ExifTool/PPM.pm +1 -1
  135. package/bin/lib/Image/ExifTool/PSP.pm +1 -1
  136. package/bin/lib/Image/ExifTool/Palm.pm +1 -1
  137. package/bin/lib/Image/ExifTool/Panasonic.pm +3 -3
  138. package/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  139. package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  140. package/bin/lib/Image/ExifTool/Pentax.pm +4 -2
  141. package/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  142. package/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  143. package/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  144. package/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  145. package/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  146. package/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  147. package/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  148. package/bin/lib/Image/ExifTool/QuickTime.pm +25 -4
  149. package/bin/lib/Image/ExifTool/QuickTimeStream.pl +125 -81
  150. package/bin/lib/Image/ExifTool/README +9 -2
  151. package/bin/lib/Image/ExifTool/RIFF.pm +1 -1
  152. package/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  153. package/bin/lib/Image/ExifTool/RTF.pm +1 -1
  154. package/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  155. package/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  156. package/bin/lib/Image/ExifTool/Real.pm +1 -1
  157. package/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  158. package/bin/lib/Image/ExifTool/Red.pm +1 -1
  159. package/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  160. package/bin/lib/Image/ExifTool/Samsung.pm +1 -1
  161. package/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  162. package/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  163. package/bin/lib/Image/ExifTool/Shift.pl +3 -1
  164. package/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  165. package/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  166. package/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  167. package/bin/lib/Image/ExifTool/Sony.pm +34 -14
  168. package/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  169. package/bin/lib/Image/ExifTool/Stim.pm +1 -1
  170. package/bin/lib/Image/ExifTool/TagInfoXML.pm +11 -6
  171. package/bin/lib/Image/ExifTool/TagLookup.pm +6589 -5877
  172. package/bin/lib/Image/ExifTool/TagNames.pod +1681 -65
  173. package/bin/lib/Image/ExifTool/Text.pm +1 -1
  174. package/bin/lib/Image/ExifTool/Theora.pm +1 -1
  175. package/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  176. package/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  177. package/bin/lib/Image/ExifTool/VCard.pm +1 -1
  178. package/bin/lib/Image/ExifTool/Validate.pm +1 -1
  179. package/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  180. package/bin/lib/Image/ExifTool/WTV.pm +1 -1
  181. package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  182. package/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  183. package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  184. package/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  185. package/bin/lib/Image/ExifTool/WritePNG.pl +30 -10
  186. package/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  187. package/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  188. package/bin/lib/Image/ExifTool/WriteQuickTime.pl +12 -1
  189. package/bin/lib/Image/ExifTool/WriteXMP.pl +11 -12
  190. package/bin/lib/Image/ExifTool/Writer.pl +56 -10
  191. package/bin/lib/Image/ExifTool/XMP.pm +164 -52
  192. package/bin/lib/Image/ExifTool/XMP2.pl +6 -3
  193. package/bin/lib/Image/ExifTool/XMPStruct.pl +4 -2
  194. package/bin/lib/Image/ExifTool/ZIP.pm +10 -2
  195. package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  196. package/bin/lib/Image/ExifTool/iWork.pm +1 -1
  197. package/bin/lib/Image/ExifTool.pm +98 -23
  198. package/bin/lib/Image/ExifTool.pod +76 -67
  199. package/bin/perl-Image-ExifTool.spec +43 -43
  200. package/bin/pp_build_exe.args +6 -5
  201. package/package.json +3 -3
@@ -21,7 +21,7 @@ use vars qw($VERSION $AUTOLOAD $lastFetched);
21
21
  use Image::ExifTool qw(:DataAccess :Utils);
22
22
  require Exporter;
23
23
 
24
- $VERSION = '1.53';
24
+ $VERSION = '1.54';
25
25
 
26
26
  sub FetchObject($$$$);
27
27
  sub ExtractObject($$;$$);
@@ -280,10 +280,12 @@ my %supportedFilter = (
280
280
  ConvertToDict => 1,
281
281
  },
282
282
  Cs1 => {
283
- SubDirectory => { TagTable => 'Image::ExifTool::PDF::ICCBased' },
283
+ SubDirectory => { TagTable => 'Image::ExifTool::PDF::DefaultRGB' },
284
+ ConvertToDict => 1, # (just in case)
284
285
  },
285
286
  CS0 => {
286
- SubDirectory => { TagTable => 'Image::ExifTool::PDF::ICCBased' },
287
+ SubDirectory => { TagTable => 'Image::ExifTool::PDF::DefaultRGB' },
288
+ ConvertToDict => 1, # (just in case)
287
289
  },
288
290
  );
289
291
 
@@ -2386,7 +2388,7 @@ including AESV2 (AES-128) and AESV3 (AES-256).
2386
2388
 
2387
2389
  =head1 AUTHOR
2388
2390
 
2389
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2391
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
2390
2392
 
2391
2393
  This library is free software; you can redistribute it and/or modify it
2392
2394
  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-2021, Phil Harvey (philharvey66 at gmail.com)
122
+ Copyright 2003-2022, 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-2021, Phil Harvey (philharvey66 at gmail.com)
1239
+ Copyright 2003-2022, 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.
@@ -438,7 +438,7 @@ This module decodes both the binary and XML-based PLIST format.
438
438
 
439
439
  =head1 AUTHOR
440
440
 
441
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
441
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
442
442
 
443
443
  This library is free software; you can redistribute it and/or modify it
444
444
  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-2021, Phil Harvey (philharvey66 at gmail.com)
2589
+ Copyright 2003-2022, 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.59';
39
+ $VERSION = '1.60';
40
40
 
41
41
  sub ProcessPNG_tEXt($$$);
42
42
  sub ProcessPNG_iTXt($$$);
@@ -142,11 +142,14 @@ my %noLeapFrog = ( SAVE => 1, SEEK => 1, IHDR => 1, JHDR => 1, IEND => 1, MEND =
142
142
  },
143
143
  gAMA => {
144
144
  Name => 'Gamma',
145
+ Writable => 1,
146
+ Protected => 1,
145
147
  Notes => q{
146
148
  ExifTool reports the gamma for decoding the image, which is consistent with
147
149
  the EXIF convention, but is the inverse of the stored encoding gamma
148
150
  },
149
151
  ValueConv => 'my $a=unpack("N",$val);$a ? int(1e9/$a+0.5)/1e4 : $val',
152
+ ValueConvInv => 'pack("N", int(1e5/$val+0.5))',
150
153
  },
151
154
  gIFg => {
152
155
  Name => 'GIFGraphicControlExtension',
@@ -166,7 +169,10 @@ my %noLeapFrog = ( SAVE => 1, SEEK => 1, IHDR => 1, JHDR => 1, IEND => 1, MEND =
166
169
  },
167
170
  iCCP => {
168
171
  Name => 'ICC_Profile',
169
- Notes => 'this is where ExifTool will write a new ICC_Profile',
172
+ Notes => q{
173
+ this is where ExifTool will write a new ICC_Profile. When creating a new
174
+ ICC_Profile, the SRGBRendering tag should be deleted if it exists
175
+ },
170
176
  SubDirectory => {
171
177
  TagTable => 'Image::ExifTool::ICC_Profile::Main',
172
178
  ProcessProc => \&ProcessPNG_Compressed,
@@ -174,7 +180,12 @@ my %noLeapFrog = ( SAVE => 1, SEEK => 1, IHDR => 1, JHDR => 1, IEND => 1, MEND =
174
180
  },
175
181
  'iCCP-name' => {
176
182
  Name => 'ProfileName',
177
- Notes => 'not a real tag ID, this tag represents the iCCP profile name',
183
+ Writable => 1,
184
+ FakeTag => 1, # (not a real PNG tag, so don't try to write it)
185
+ Notes => q{
186
+ not a real tag ID, this tag represents the iCCP profile name, and may only
187
+ be written when the ICC_Profile is written
188
+ },
178
189
  },
179
190
  # IDAT
180
191
  # IEND
@@ -227,7 +238,11 @@ my %noLeapFrog = ( SAVE => 1, SEEK => 1, IHDR => 1, JHDR => 1, IEND => 1, MEND =
227
238
  },
228
239
  sRGB => {
229
240
  Name => 'SRGBRendering',
241
+ Writable => 1,
242
+ Protected => 1,
243
+ Notes => 'this chunk should not be present if an iCCP chunk exists',
230
244
  ValueConv => 'unpack("C",$val)',
245
+ ValueConvInv => 'pack("C",$val)',
231
246
  PrintConv => {
232
247
  0 => 'Perceptual',
233
248
  1 => 'Relative Colorimetric',
@@ -259,6 +274,7 @@ my %noLeapFrog = ( SAVE => 1, SEEK => 1, IHDR => 1, JHDR => 1, IEND => 1, MEND =
259
274
  },
260
275
  tRNS => {
261
276
  Name => 'Transparency',
277
+ # may have as many entries as the PLTE table, but who wants to see all that?
262
278
  ValueConv => q{
263
279
  return \$val if length($val) > 6;
264
280
  join(" ",unpack($Image::ExifTool::PNG::colorType == 3 ? "C*" : "n*", $val));
@@ -1158,11 +1174,16 @@ sub ProcessPNG_Compressed($$$)
1158
1174
  if ($tagInfo and $$tagInfo{Name} eq 'ICC_Profile') {
1159
1175
  $et->VerboseDir('iCCP');
1160
1176
  $tagTablePtr = \%Image::ExifTool::PNG::Main;
1161
- if (length($tag) and not $outBuff) {
1162
- FoundPNG($et, $tagTablePtr, 'iCCP-name', $tag);
1163
- }
1177
+ FoundPNG($et, $tagTablePtr, 'iCCP-name', $tag) if length($tag) and not $outBuff;
1164
1178
  $success = FoundPNG($et, $tagTablePtr, 'iCCP', $val, $compressed, $outBuff);
1165
- $$outBuff = $hdr . $$outBuff if $outBuff and $$outBuff;
1179
+ if ($outBuff and $$outBuff) {
1180
+ my $profileName = $et->GetNewValue($Image::ExifTool::PNG::Main{'iCCP-name'});
1181
+ if (defined $profileName) {
1182
+ $hdr = $profileName . substr($hdr, length $tag);
1183
+ $et->VerboseValue("+ PNG:ProfileName", $profileName);
1184
+ }
1185
+ $$outBuff = $hdr . $$outBuff;
1186
+ }
1166
1187
  } else {
1167
1188
  $success = FoundPNG($et, $tagTablePtr, $tag, $val, $compressed, $outBuff, 'Latin');
1168
1189
  }
@@ -1540,7 +1561,7 @@ and JNG (JPEG Network Graphics) images.
1540
1561
 
1541
1562
  =head1 AUTHOR
1542
1563
 
1543
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1564
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1544
1565
 
1545
1566
  This library is free software; you can redistribute it and/or modify it
1546
1567
  under the same terms as Perl itself.
@@ -143,7 +143,7 @@ BitMap) images.
143
143
 
144
144
  =head1 AUTHOR
145
145
 
146
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
146
+ Copyright 2003-2022, 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-2021, Phil Harvey (philharvey66 at gmail.com)
287
+ Copyright 2003-2022, 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-2021, Phil Harvey (philharvey66 at gmail.com)
382
+ Copyright 2003-2022, 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.
@@ -37,7 +37,7 @@ use vars qw($VERSION %leicaLensTypes);
37
37
  use Image::ExifTool qw(:DataAccess :Utils);
38
38
  use Image::ExifTool::Exif;
39
39
 
40
- $VERSION = '2.15';
40
+ $VERSION = '2.16';
41
41
 
42
42
  sub ProcessLeicaLEIC($$$);
43
43
  sub WhiteBalanceConv($;$$);
@@ -449,7 +449,7 @@ my %shootingMode = (
449
449
  same as the number printed on the camera body
450
450
  },
451
451
  PrintConv => q{
452
- return $val unless $val=~/^([A-Z]\d{2})(\d{2})(\d{2})(\d{2})(\d{4})/;
452
+ return $val unless $val=~/^([A-Z][0-9A-Z]{2})(\d{2})(\d{2})(\d{2})(\d{4})/;
453
453
  my $yr = $2 + ($2 < 70 ? 2000 : 1900);
454
454
  return "($1) $yr:$3:$4 no. $5";
455
455
  },
@@ -2837,7 +2837,7 @@ Panasonic and Leica maker notes in EXIF information.
2837
2837
 
2838
2838
  =head1 AUTHOR
2839
2839
 
2840
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2840
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
2841
2841
 
2842
2842
  This library is free software; you can redistribute it and/or modify it
2843
2843
  under the same terms as Perl itself.
@@ -888,7 +888,7 @@ write meta information in Panasonic/Leica RAW, RW2 and RWL images.
888
888
 
889
889
  =head1 AUTHOR
890
890
 
891
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
891
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
892
892
 
893
893
  This library is free software; you can redistribute it and/or modify it
894
894
  under the same terms as Perl itself.
@@ -731,7 +731,7 @@ timed metadata from the 'mett' frame found in Parrot drone MP4 videos.
731
731
 
732
732
  =head1 AUTHOR
733
733
 
734
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
734
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
735
735
 
736
736
  This library is free software; you can redistribute it and/or modify it
737
737
  under the same terms as Perl itself.
@@ -58,7 +58,7 @@ use Image::ExifTool::Exif;
58
58
  use Image::ExifTool::GPS;
59
59
  use Image::ExifTool::HP;
60
60
 
61
- $VERSION = '3.38';
61
+ $VERSION = '3.40';
62
62
 
63
63
  sub CryptShutterCount($$);
64
64
  sub PrintFilter($$$);
@@ -340,6 +340,8 @@ sub DecodeAFPoints($$$$;$);
340
340
  '8 64' => 'HD PENTAX-D FA* 50mm F1.4 SDM AW', #27
341
341
  '8 65' => 'HD PENTAX-D FA 70-210mm F4 ED SDM WR', #PH
342
342
  '8 66' => 'HD PENTAX-D FA 85mm F1.4 ED SDM AW', #James O'Neill
343
+ '8 67' => 'HD PENTAX-D FA 21mm F2.4 ED Limited DC WR', #ChristianShulz
344
+ '8 195' => 'HD PENTAX DA* 16-50mm F2.8 ED PLM AW', #27
343
345
  '8 196' => 'HD PENTAX-DA* 11-18mm F2.8 ED DC AW', #29
344
346
  '8 197' => 'HD PENTAX-DA 55-300mm F4.5-6.3 ED PLM WR RE', #29
345
347
  '8 198' => 'smc PENTAX-DA L 18-50mm F4-5.6 DC WR RE', #29
@@ -6313,7 +6315,7 @@ tags, and everyone who helped contribute to the LensType values.
6313
6315
 
6314
6316
  =head1 AUTHOR
6315
6317
 
6316
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
6318
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
6317
6319
 
6318
6320
  This library is free software; you can redistribute it and/or modify it
6319
6321
  under the same terms as Perl itself.
@@ -712,7 +712,7 @@ One maker notes.
712
712
 
713
713
  =head1 AUTHOR
714
714
 
715
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
715
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
716
716
 
717
717
  This library is free software; you can redistribute it and/or modify it
718
718
  under the same terms as Perl itself.
@@ -484,7 +484,7 @@ information from Kodak Photo CD Image Pac (PCD) files.
484
484
 
485
485
  =head1 AUTHOR
486
486
 
487
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
487
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
488
488
 
489
489
  This library is free software; you can redistribute it and/or modify it
490
490
  under the same terms as Perl itself.
@@ -236,7 +236,7 @@ write information written by the Camera Bits Photo Mechanic software.
236
236
 
237
237
  =head1 AUTHOR
238
238
 
239
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
239
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
240
240
 
241
241
  This library is free software; you can redistribute it and/or modify it
242
242
  under the same terms as Perl itself.
@@ -1143,7 +1143,7 @@ be preserved when copying Photoshop information via user-defined tags.
1143
1143
 
1144
1144
  =head1 AUTHOR
1145
1145
 
1146
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1146
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1147
1147
 
1148
1148
  This library is free software; you can redistribute it and/or modify it
1149
1149
  under the same terms as Perl itself.
@@ -777,7 +777,7 @@ This code reads meta information from EPS (Encapsulated PostScript), PS
777
777
 
778
778
  =head1 AUTHOR
779
779
 
780
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
780
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
781
781
 
782
782
  This library is free software; you can redistribute it and/or modify it
783
783
  under the same terms as Perl itself.
@@ -112,7 +112,7 @@ Print Image Matching meta information.
112
112
 
113
113
  =head1 AUTHOR
114
114
 
115
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
115
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
116
116
 
117
117
  This library is free software; you can redistribute it and/or modify it
118
118
  under the same terms as Perl itself.
@@ -1331,7 +1331,7 @@ information from the APP7 Qualcomm segment in JPEG images.
1331
1331
 
1332
1332
  =head1 AUTHOR
1333
1333
 
1334
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1334
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1335
1335
 
1336
1336
  This library is free software; you can redistribute it and/or modify it
1337
1337
  under the same terms as Perl itself.
@@ -47,7 +47,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
47
47
  use Image::ExifTool::Exif;
48
48
  use Image::ExifTool::GPS;
49
49
 
50
- $VERSION = '2.69';
50
+ $VERSION = '2.73';
51
51
 
52
52
  sub ProcessMOV($$;$);
53
53
  sub ProcessKeys($$$);
@@ -482,6 +482,17 @@ my %eeBox2 = (
482
482
  # (Pittasoft Blackview dashcam MP4 videos)
483
483
  Condition => '$$valPt =~ /^\0\0..(cprt|sttm|ptnm|ptrh|thum|gps |3gf )/s',
484
484
  SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::Pittasoft' },
485
+ },{
486
+ Name => 'ThumbnailImage',
487
+ # (DJI Zenmuse XT2 thermal camera)
488
+ Groups => { 2 => 'Preview' },
489
+ Condition => '$$valPt =~ /^.{4}mdat\xff\xd8\xff/s',
490
+ RawConv => q{
491
+ my $len = unpack('N', $val);
492
+ return undef if $len <= 8 or $len > length($val);
493
+ return substr($val, 8, $len-8);
494
+ },
495
+ Binary => 1,
485
496
  },{
486
497
  Unknown => 1,
487
498
  Binary => 1,
@@ -558,6 +569,7 @@ my %eeBox2 = (
558
569
  # *** this is where ExifTool writes XMP in MP4 videos (as per XMP spec) ***
559
570
  Condition => '$$valPt=~/^\xbe\x7a\xcf\xcb\x97\xa9\x42\xe8\x9c\x71\x99\x94\x91\xe3\xaf\xac/',
560
571
  WriteGroup => 'XMP', # (write main XMP tags here)
572
+ PreservePadding => 1,
561
573
  SubDirectory => {
562
574
  TagTable => 'Image::ExifTool::XMP::Main',
563
575
  Start => 16,
@@ -607,6 +619,7 @@ my %eeBox2 = (
607
619
  Name => 'PreviewImage',
608
620
  Condition => '$$valPt=~/^\xea\xf4\x2b\x5e\x1c\x98\x4b\x88\xb9\xfb\xb7\xdc\x40\x6e\x4d\x16/',
609
621
  Groups => { 2 => 'Preview' },
622
+ PreservePadding => 1,
610
623
  # 0x00 - undef[16]: UUID
611
624
  # 0x10 - int32u[2]: "0 1" (version and/or item count?)
612
625
  # 0x18 - int32u: PRVW atom size
@@ -738,6 +751,7 @@ my %eeBox2 = (
738
751
  Name => 'SamsungTrailer',
739
752
  SubDirectory => { TagTable => 'Image::ExifTool::Samsung::Trailer' },
740
753
  },
754
+ # 'samn'? - seen in Vantrue N2S sample video
741
755
  );
742
756
 
743
757
  # MPEG-4 'ftyp' atom
@@ -6356,7 +6370,7 @@ my %eeBox2 = (
6356
6370
  'player.movie.visual.tint' => 'Tint',
6357
6371
  'player.movie.visual.contrast' => 'Contrast',
6358
6372
  'player.movie.audio.gain' => 'AudioGain',
6359
- 'player.movie.audio.treble' => 'Trebel',
6373
+ 'player.movie.audio.treble' => 'Treble',
6360
6374
  'player.movie.audio.bass' => 'Bass',
6361
6375
  'player.movie.audio.balance' => 'Balance',
6362
6376
  'player.movie.audio.pitchshift' => 'PitchShift',
@@ -6451,6 +6465,7 @@ my %eeBox2 = (
6451
6465
  %Image::ExifTool::QuickTime::iTunesInfo = (
6452
6466
  PROCESS_PROC => \&ProcessMOV,
6453
6467
  GROUPS => { 1 => 'iTunes', 2 => 'Audio' },
6468
+ VARS => { LONG_TAGS => 0 }, # (hack for discrepancy in the way long tags are counted in BuildTagLookup)
6454
6469
  NOTES => q{
6455
6470
  ExifTool will extract any iTunesInfo tags that exist, even if they are not
6456
6471
  defined in this table. These tags belong to the family 1 "iTunes" group,
@@ -9112,6 +9127,12 @@ sub ProcessMOV($$;$)
9112
9127
  } else {
9113
9128
  my $t = PrintableTagID($tag,2);
9114
9129
  $et->VPrint(0,"$$et{INDENT}Tag '${t}' extends to end of file");
9130
+ if ($$tagTablePtr{"$tag-size"}) {
9131
+ my $pos = $raf->Tell();
9132
+ $raf->Seek(0, 2);
9133
+ $et->HandleTag($tagTablePtr, "$tag-size", $raf->Tell() - $pos);
9134
+ $et->HandleTag($tagTablePtr, "$tag-offset", $pos) if $$tagTablePtr{"$tag-offset"};
9135
+ }
9115
9136
  }
9116
9137
  last;
9117
9138
  }
@@ -9418,7 +9439,7 @@ ItemID: foreach $id (keys %$items) {
9418
9439
  for (;;) {
9419
9440
  last if $pos + 16 > $size;
9420
9441
  my ($len, $type, $flags, $ctry, $lang) = unpack("x${pos}Na4Nnn", $val);
9421
- last if $pos + $len > $size;
9442
+ last if $pos + $len > $size or not $len;
9422
9443
  my ($value, $langInfo, $oldDir);
9423
9444
  my $format = $$tagInfo{Format};
9424
9445
  if ($type eq 'data' and $len >= 16) {
@@ -9664,7 +9685,7 @@ information from QuickTime and MP4 video, M4A audio, and HEIC image files.
9664
9685
 
9665
9686
  =head1 AUTHOR
9666
9687
 
9667
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
9688
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
9668
9689
 
9669
9690
  This library is free software; you can redistribute it and/or modify it
9670
9691
  under the same terms as Perl itself.