exiftool-vendored.pl 12.38.0 → 12.41.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 (206) hide show
  1. package/LICENSE +10 -3
  2. package/bin/Changes +62 -0
  3. package/bin/MANIFEST +2 -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/exif2xmp.args +5 -0
  8. package/bin/arg_files/xmp2exif.args +6 -0
  9. package/bin/config_files/acdsee.config +6 -6
  10. package/bin/config_files/photoshop_paths.config +30 -7
  11. package/bin/config_files/picasa_faces.config +1 -1
  12. package/bin/config_files/pix4d.config +2 -2
  13. package/bin/config_files/tiff_version.config +2 -2
  14. package/bin/exiftool +96 -65
  15. package/bin/lib/File/RandomAccess.pm +1 -1
  16. package/bin/lib/File/RandomAccess.pod +2 -2
  17. package/bin/lib/Image/ExifTool/AES.pm +1 -1
  18. package/bin/lib/Image/ExifTool/AFCP.pm +1 -1
  19. package/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  20. package/bin/lib/Image/ExifTool/APE.pm +1 -1
  21. package/bin/lib/Image/ExifTool/APP12.pm +1 -1
  22. package/bin/lib/Image/ExifTool/ASF.pm +1 -1
  23. package/bin/lib/Image/ExifTool/Apple.pm +1 -1
  24. package/bin/lib/Image/ExifTool/Audible.pm +1 -1
  25. package/bin/lib/Image/ExifTool/BMP.pm +1 -1
  26. package/bin/lib/Image/ExifTool/BPG.pm +1 -1
  27. package/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  28. package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  29. package/bin/lib/Image/ExifTool/BuildTagLookup.pm +6 -4
  30. package/bin/lib/Image/ExifTool/CBOR.pm +1 -1
  31. package/bin/lib/Image/ExifTool/Canon.pm +79 -5
  32. package/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
  33. package/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  34. package/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  35. package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  36. package/bin/lib/Image/ExifTool/Casio.pm +1 -1
  37. package/bin/lib/Image/ExifTool/Charset.pm +1 -1
  38. package/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  39. package/bin/lib/Image/ExifTool/DJI.pm +1 -1
  40. package/bin/lib/Image/ExifTool/DNG.pm +1 -1
  41. package/bin/lib/Image/ExifTool/DPX.pm +1 -1
  42. package/bin/lib/Image/ExifTool/DV.pm +1 -1
  43. package/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
  44. package/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  45. package/bin/lib/Image/ExifTool/EXE.pm +1 -1
  46. package/bin/lib/Image/ExifTool/Exif.pm +53 -21
  47. package/bin/lib/Image/ExifTool/FITS.pm +1 -1
  48. package/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  49. package/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  50. package/bin/lib/Image/ExifTool/FLIR.pm +16 -4
  51. package/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  52. package/bin/lib/Image/ExifTool/Flash.pm +1 -1
  53. package/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  54. package/bin/lib/Image/ExifTool/Font.pm +1 -1
  55. package/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  56. package/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
  57. package/bin/lib/Image/ExifTool/GE.pm +1 -1
  58. package/bin/lib/Image/ExifTool/GIF.pm +1 -1
  59. package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  60. package/bin/lib/Image/ExifTool/GPS.pm +1 -1
  61. package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  62. package/bin/lib/Image/ExifTool/Geotag.pm +4 -3
  63. package/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  64. package/bin/lib/Image/ExifTool/H264.pm +1 -1
  65. package/bin/lib/Image/ExifTool/HP.pm +1 -1
  66. package/bin/lib/Image/ExifTool/HTML.pm +1 -1
  67. package/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  68. package/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  69. package/bin/lib/Image/ExifTool/ID3.pm +1 -1
  70. package/bin/lib/Image/ExifTool/IPTC.pm +1 -1
  71. package/bin/lib/Image/ExifTool/ISO.pm +1 -1
  72. package/bin/lib/Image/ExifTool/ITC.pm +1 -1
  73. package/bin/lib/Image/ExifTool/Import.pm +1 -1
  74. package/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  75. package/bin/lib/Image/ExifTool/JPEG.pm +6 -2
  76. package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  77. package/bin/lib/Image/ExifTool/JSON.pm +1 -1
  78. package/bin/lib/Image/ExifTool/JVC.pm +1 -1
  79. package/bin/lib/Image/ExifTool/Jpeg2000.pm +1 -1
  80. package/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  81. package/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  82. package/bin/lib/Image/ExifTool/LIF.pm +1 -1
  83. package/bin/lib/Image/ExifTool/LNK.pm +1 -1
  84. package/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  85. package/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  86. package/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  87. package/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  88. package/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  89. package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  90. package/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
  91. package/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  92. package/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  93. package/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  94. package/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  95. package/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  96. package/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  97. package/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  98. package/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  99. package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  100. package/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  101. package/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  102. package/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  103. package/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  104. package/bin/lib/Image/ExifTool/MIE.pm +1 -1
  105. package/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  106. package/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  107. package/bin/lib/Image/ExifTool/MNG.pm +1 -1
  108. package/bin/lib/Image/ExifTool/MOI.pm +1 -1
  109. package/bin/lib/Image/ExifTool/MPC.pm +1 -1
  110. package/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  111. package/bin/lib/Image/ExifTool/MPF.pm +1 -1
  112. package/bin/lib/Image/ExifTool/MRC.pm +1 -1
  113. package/bin/lib/Image/ExifTool/MWG.pm +1 -1
  114. package/bin/lib/Image/ExifTool/MXF.pm +1 -1
  115. package/bin/lib/Image/ExifTool/MacOS.pm +10 -10
  116. package/bin/lib/Image/ExifTool/MakerNotes.pm +13 -2
  117. package/bin/lib/Image/ExifTool/Matroska.pm +9 -5
  118. package/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  119. package/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  120. package/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  121. package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  122. package/bin/lib/Image/ExifTool/Nikon.pm +924 -184
  123. package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  124. package/bin/lib/Image/ExifTool/NikonCustom.pm +519 -6
  125. package/bin/lib/Image/ExifTool/NikonSettings.pm +17 -18
  126. package/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  127. package/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  128. package/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  129. package/bin/lib/Image/ExifTool/Olympus.pm +8 -7
  130. package/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  131. package/bin/lib/Image/ExifTool/Opus.pm +1 -1
  132. package/bin/lib/Image/ExifTool/Other.pm +1 -1
  133. package/bin/lib/Image/ExifTool/PCX.pm +1 -1
  134. package/bin/lib/Image/ExifTool/PDF.pm +1 -1
  135. package/bin/lib/Image/ExifTool/PGF.pm +1 -1
  136. package/bin/lib/Image/ExifTool/PICT.pm +1 -1
  137. package/bin/lib/Image/ExifTool/PLIST.pm +1 -1
  138. package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  139. package/bin/lib/Image/ExifTool/PNG.pm +28 -8
  140. package/bin/lib/Image/ExifTool/PPM.pm +1 -1
  141. package/bin/lib/Image/ExifTool/PSP.pm +1 -1
  142. package/bin/lib/Image/ExifTool/Palm.pm +1 -1
  143. package/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
  144. package/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  145. package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  146. package/bin/lib/Image/ExifTool/Pentax.pm +3 -2
  147. package/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  148. package/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  149. package/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  150. package/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  151. package/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  152. package/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  153. package/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  154. package/bin/lib/Image/ExifTool/QuickTime.pm +10 -6
  155. package/bin/lib/Image/ExifTool/QuickTimeStream.pl +16 -5
  156. package/bin/lib/Image/ExifTool/RIFF.pm +1 -1
  157. package/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  158. package/bin/lib/Image/ExifTool/RTF.pm +1 -1
  159. package/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  160. package/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  161. package/bin/lib/Image/ExifTool/Real.pm +1 -1
  162. package/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  163. package/bin/lib/Image/ExifTool/Red.pm +1 -1
  164. package/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  165. package/bin/lib/Image/ExifTool/Samsung.pm +6 -2
  166. package/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  167. package/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  168. package/bin/lib/Image/ExifTool/Shift.pl +3 -1
  169. package/bin/lib/Image/ExifTool/Shortcuts.pm +3 -2
  170. package/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  171. package/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  172. package/bin/lib/Image/ExifTool/Sony.pm +11 -5
  173. package/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  174. package/bin/lib/Image/ExifTool/Stim.pm +1 -1
  175. package/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
  176. package/bin/lib/Image/ExifTool/TagLookup.pm +6382 -6290
  177. package/bin/lib/Image/ExifTool/TagNames.pod +340 -21
  178. package/bin/lib/Image/ExifTool/Text.pm +1 -1
  179. package/bin/lib/Image/ExifTool/Theora.pm +1 -1
  180. package/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  181. package/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  182. package/bin/lib/Image/ExifTool/VCard.pm +1 -1
  183. package/bin/lib/Image/ExifTool/Validate.pm +1 -1
  184. package/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  185. package/bin/lib/Image/ExifTool/WTV.pm +1 -1
  186. package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  187. package/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  188. package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  189. package/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  190. package/bin/lib/Image/ExifTool/WritePNG.pl +30 -10
  191. package/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  192. package/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  193. package/bin/lib/Image/ExifTool/WriteQuickTime.pl +9 -4
  194. package/bin/lib/Image/ExifTool/WriteXMP.pl +3 -1
  195. package/bin/lib/Image/ExifTool/Writer.pl +6 -5
  196. package/bin/lib/Image/ExifTool/XMP.pm +49 -23
  197. package/bin/lib/Image/ExifTool/XMP2.pl +3 -2
  198. package/bin/lib/Image/ExifTool/XMPStruct.pl +22 -8
  199. package/bin/lib/Image/ExifTool/ZIP.pm +10 -2
  200. package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  201. package/bin/lib/Image/ExifTool/iWork.pm +1 -1
  202. package/bin/lib/Image/ExifTool.pm +21 -5
  203. package/bin/lib/Image/ExifTool.pod +71 -69
  204. package/bin/perl-Image-ExifTool.spec +43 -43
  205. package/bin/pp_build_exe.args +5 -5
  206. package/package.json +14 -3
@@ -17,7 +17,7 @@ use strict;
17
17
  use vars qw($VERSION);
18
18
  use Image::ExifTool qw(:DataAccess :Utils);
19
19
 
20
- $VERSION = '1.06';
20
+ $VERSION = '1.07';
21
21
 
22
22
  sub ProcessNikonSettings($$$);
23
23
 
@@ -948,7 +948,7 @@ my %infoZSeries = (
948
948
  Name => 'MovieShutterButton',
949
949
  PrintConv => {
950
950
  1 => 'Take Photo',
951
- 2 => 'Record Movies',
951
+ 2 => 'Record Movie',
952
952
  },
953
953
  },
954
954
  0x063 => { # Settings menu # (D6,Z7_2)
@@ -1425,7 +1425,7 @@ my %infoZSeries = (
1425
1425
  7 => 'Zoom (Low)',
1426
1426
  8 => 'Zoom (1:1)',
1427
1427
  9 => 'Zoom (High)',
1428
- 10 => 'Record Movies',
1428
+ 10 => 'Record Movie',
1429
1429
  11 => 'None',
1430
1430
  },
1431
1431
  %infoD6,
@@ -1442,7 +1442,7 @@ my %infoZSeries = (
1442
1442
  8 => 'Zoom (Low)',
1443
1443
  9 => 'Zoom (1:1)',
1444
1444
  10 => 'Zoom (High)',
1445
- 11 => 'Record Movies',
1445
+ 11 => 'Record Movie',
1446
1446
  12 => 'Image Area',
1447
1447
  13 => 'None',
1448
1448
  },
@@ -1479,14 +1479,13 @@ my %infoZSeries = (
1479
1479
  4 => 'Off',
1480
1480
  },
1481
1481
  },
1482
- 0x0e9 => { # CSf2-i # need to confirm with a Z series lens # (Z7_2)
1482
+ 0x0ea => { # CSf2-i #option for 'Focus (M/A)' is documented, but not available from camera menu
1483
1483
  Name => 'LensControlRing',
1484
1484
  PrintConv => {
1485
- 1 => 'Focus (M/A)',
1486
- 2 => 'Aperture',
1487
- 3 => 'Exposure Compensation',
1488
- 4 => 'ISO Sensitivity',
1489
- 5 => 'None (Disabled)',
1485
+ 1 => 'Aperture',
1486
+ 2 => 'Exposure Compensation',
1487
+ 3 => 'ISO Sensitivity',
1488
+ 4 => 'None (Disabled)',
1490
1489
  },
1491
1490
  },
1492
1491
  # 0x0eb MovieLensControlRing ? # (Z7_2)
@@ -1498,7 +1497,7 @@ my %infoZSeries = (
1498
1497
  2 => 'Zoom (Low)',
1499
1498
  3 => 'Zoom (1:1)',
1500
1499
  4 => 'Zoom (High)',
1501
- 5 => 'Record Movies',
1500
+ 5 => 'Record Movie',
1502
1501
  6 => 'None',
1503
1502
  },
1504
1503
  %infoD6,
@@ -1509,7 +1508,7 @@ my %infoZSeries = (
1509
1508
  2 => 'Zoom (Low)',
1510
1509
  3 => 'Zoom (1:1)',
1511
1510
  4 => 'Zoom (High)',
1512
- 5 => 'Record Movies',
1511
+ 5 => 'Record Movie',
1513
1512
  6 => 'None',
1514
1513
  },
1515
1514
  }],
@@ -1561,7 +1560,7 @@ my %infoZSeries = (
1561
1560
  8 => 'Zoom (Low)',
1562
1561
  9 => 'Zoom (1:1)',
1563
1562
  10 => 'Zoom (High)',
1564
- 11 => 'Record Movies',
1563
+ 11 => 'Record Movie',
1565
1564
  12 => 'None',
1566
1565
  },
1567
1566
  },
@@ -1587,7 +1586,7 @@ my %infoZSeries = (
1587
1586
  3 => 'Off',
1588
1587
  },
1589
1588
  },
1590
- 0x104 => { # valid for 10 bit with either N-Log or HDR/HLG selected (Z7_2)
1589
+ 0x104 => { # valid for 10 bit with either N-Log or HDR/HLG selected CSg5 (Z7_2)
1591
1590
  Name => 'HDMIViewAssist',
1592
1591
  Condition => '$$self{HDMIBitDepth} == 2',
1593
1592
  PrintConv => \%onOff
@@ -1856,7 +1855,7 @@ my %infoZSeries = (
1856
1855
  0x13d => { # CSg2-d (D6)
1857
1856
  Name => 'MovieFunc3Button',
1858
1857
  PrintConv => {
1859
- 1 => 'Record Movies',
1858
+ 1 => 'Record Movie',
1860
1859
  2 => 'My Menu',
1861
1860
  3 => 'My Menu Top Item',
1862
1861
  4 => 'None',
@@ -1925,7 +1924,7 @@ my %infoZSeries = (
1925
1924
  Name => 'VerticalMovieFuncButton',
1926
1925
  PrintConv => {
1927
1926
  1 => 'LiveView Info Display On/Off',
1928
- 2 => 'Record Movies',
1927
+ 2 => 'Record Movie',
1929
1928
  3 => 'Exposure Compensation',
1930
1929
  4 => 'ISO',
1931
1930
  5 => 'None',
@@ -1945,7 +1944,7 @@ my %infoZSeries = (
1945
1944
  9 => 'Zoom (Low)',
1946
1945
  10 => 'Zoom (1:1)',
1947
1946
  11 => 'Zoom (High)',
1948
- 12 => 'Record Movies',
1947
+ 12 => 'Record Movie',
1949
1948
  13 => 'None',
1950
1949
  },
1951
1950
  },
@@ -2076,7 +2075,7 @@ Nikon cameras such as the D6 and Z7mk2.
2076
2075
 
2077
2076
  =head1 AUTHOR
2078
2077
 
2079
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2078
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
2080
2079
 
2081
2080
  This library is free software; you can redistribute it and/or modify it
2082
2081
  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-2021, Phil Harvey (philharvey66 at gmail.com)
110
+ Copyright 2003-2022, 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-2021, Phil Harvey (philharvey66 at gmail.com)
398
+ Copyright 2003-2022, 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-2021, Phil Harvey (philharvey66 at gmail.com)
217
+ Copyright 2003-2022, 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.
@@ -40,7 +40,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
40
40
  use Image::ExifTool::Exif;
41
41
  use Image::ExifTool::APP12;
42
42
 
43
- $VERSION = '2.75';
43
+ $VERSION = '2.77';
44
44
 
45
45
  sub PrintLensInfo($$$);
46
46
 
@@ -432,6 +432,7 @@ my %olympusCameraTypes = (
432
432
  S0089 => 'E-M5MarkIII',
433
433
  S0092 => 'E-M1MarkIII', #IB
434
434
  S0093 => 'E-P7', #IB
435
+ S0095 => 'OM-1', #IB
435
436
  SR45 => 'D220',
436
437
  SR55 => 'D320L',
437
438
  SR83 => 'D340L',
@@ -3430,7 +3431,7 @@ my %indexInfo = (
3430
3431
  0x2a => {
3431
3432
  Name => 'FNumber',
3432
3433
  Format => 'rational64u',
3433
- PrintConv => 'sprintf("%.1f",$val)',
3434
+ PrintConv => 'Image::ExifTool::Exif::PrintFNumber($val)',
3434
3435
  },
3435
3436
  0x32 => { #(NC)
3436
3437
  Name => 'ExposureCompensation',
@@ -3476,7 +3477,7 @@ my %indexInfo = (
3476
3477
  0x3a => {
3477
3478
  Name => 'FNumber',
3478
3479
  Format => 'rational64u',
3479
- PrintConv => 'sprintf("%.1f",$val)',
3480
+ PrintConv => 'Image::ExifTool::Exif::PrintFNumber($val)',
3480
3481
  },
3481
3482
  0x42 => { #(NC)
3482
3483
  Name => 'ExposureCompensation',
@@ -3527,7 +3528,7 @@ my %indexInfo = (
3527
3528
  0x28 => {
3528
3529
  Name => 'FNumber',
3529
3530
  Format => 'rational64u',
3530
- PrintConv => 'sprintf("%.1f",$val)',
3531
+ PrintConv => 'Image::ExifTool::Exif::PrintFNumber($val)',
3531
3532
  },
3532
3533
  0x30 => { #(NC)
3533
3534
  Name => 'ExposureCompensation',
@@ -3744,7 +3745,7 @@ my %indexInfo = (
3744
3745
  0x5a => {
3745
3746
  Name => 'FNumber',
3746
3747
  Format => 'rational64u',
3747
- PrintConv => 'sprintf("%.1f",$val)',
3748
+ PrintConv => 'Image::ExifTool::Exif::PrintFNumber($val)',
3748
3749
  },
3749
3750
  0x7f => {
3750
3751
  Name => 'DateTimeOriginal', #(NC)
@@ -3789,7 +3790,7 @@ my %indexInfo = (
3789
3790
  0x5e => {
3790
3791
  Name => 'FNumber',
3791
3792
  Format => 'rational64u',
3792
- PrintConv => 'sprintf("%.1f",$val)',
3793
+ PrintConv => 'Image::ExifTool::Exif::PrintFNumber($val)',
3793
3794
  },
3794
3795
  0x83 => {
3795
3796
  Name => 'DateTime1',
@@ -4071,7 +4072,7 @@ Olympus or Epson maker notes in EXIF information.
4071
4072
 
4072
4073
  =head1 AUTHOR
4073
4074
 
4074
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
4075
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
4075
4076
 
4076
4077
  This library is free software; you can redistribute it and/or modify it
4077
4078
  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-2021, Phil Harvey (philharvey66 at gmail.com)
307
+ Copyright 2003-2022, 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-2021, Phil Harvey (philharvey66 at gmail.com)
72
+ Copyright 2003-2022, 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-2021, Phil Harvey (philharvey66 at gmail.com)
74
+ Copyright 2003-2022, 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-2021, Phil Harvey (philharvey66 at gmail.com)
117
+ Copyright 2003-2022, 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.
@@ -2388,7 +2388,7 @@ including AESV2 (AES-128) and AESV3 (AES-256).
2388
2388
 
2389
2389
  =head1 AUTHOR
2390
2390
 
2391
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2391
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
2392
2392
 
2393
2393
  This library is free software; you can redistribute it and/or modify it
2394
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',
@@ -1159,11 +1174,16 @@ sub ProcessPNG_Compressed($$$)
1159
1174
  if ($tagInfo and $$tagInfo{Name} eq 'ICC_Profile') {
1160
1175
  $et->VerboseDir('iCCP');
1161
1176
  $tagTablePtr = \%Image::ExifTool::PNG::Main;
1162
- if (length($tag) and not $outBuff) {
1163
- FoundPNG($et, $tagTablePtr, 'iCCP-name', $tag);
1164
- }
1177
+ FoundPNG($et, $tagTablePtr, 'iCCP-name', $tag) if length($tag) and not $outBuff;
1165
1178
  $success = FoundPNG($et, $tagTablePtr, 'iCCP', $val, $compressed, $outBuff);
1166
- $$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
+ }
1167
1187
  } else {
1168
1188
  $success = FoundPNG($et, $tagTablePtr, $tag, $val, $compressed, $outBuff, 'Latin');
1169
1189
  }
@@ -1541,7 +1561,7 @@ and JNG (JPEG Network Graphics) images.
1541
1561
 
1542
1562
  =head1 AUTHOR
1543
1563
 
1544
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1564
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1545
1565
 
1546
1566
  This library is free software; you can redistribute it and/or modify it
1547
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.
@@ -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.39';
61
+ $VERSION = '3.40';
62
62
 
63
63
  sub CryptShutterCount($$);
64
64
  sub PrintFilter($$$);
@@ -340,6 +340,7 @@ 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
343
344
  '8 195' => 'HD PENTAX DA* 16-50mm F2.8 ED PLM AW', #27
344
345
  '8 196' => 'HD PENTAX-DA* 11-18mm F2.8 ED DC AW', #29
345
346
  '8 197' => 'HD PENTAX-DA 55-300mm F4.5-6.3 ED PLM WR RE', #29
@@ -6314,7 +6315,7 @@ tags, and everyone who helped contribute to the LensType values.
6314
6315
 
6315
6316
  =head1 AUTHOR
6316
6317
 
6317
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
6318
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
6318
6319
 
6319
6320
  This library is free software; you can redistribute it and/or modify it
6320
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.73';
50
+ $VERSION = '2.74';
51
51
 
52
52
  sub ProcessMOV($$;$);
53
53
  sub ProcessKeys($$$);
@@ -2232,7 +2232,7 @@ my %eeBox2 = (
2232
2232
  # 4 ? - "1e 00"
2233
2233
  # 6 int16u - record length in bytes
2234
2234
  # 8 ? - "23 01 00 00 00 00 00 00"
2235
- # 16 - start of records (each record ends in an int64u timestamp in ns)
2235
+ # 16 - start of records (each record ends in an int64u timestamp "ts" in ns)
2236
2236
  # RDTA - float[4],ts: "-0.31289672 -0.2245330 11.303817 0 775.780"
2237
2237
  # RDTB - float[4],ts: "-0.04841613 -0.2166595 0.0724792 0 775.780"
2238
2238
  # RDTC - float[4],ts: "27.60925 -27.10037 -13.27285 0 775.829"
@@ -8795,16 +8795,20 @@ sub ProcessSampleDesc($$$)
8795
8795
 
8796
8796
  my $num = Get32u($dataPt, 4); # get number of sample entries in table
8797
8797
  $pos += 8;
8798
- my $i;
8798
+ my ($i, $err);
8799
8799
  for ($i=0; $i<$num; ++$i) { # loop through sample entries
8800
- last if $pos + 8 > $dirLen;
8800
+ $pos + 8 > $dirLen and $err = 1, last;
8801
8801
  my $size = Get32u($dataPt, $pos);
8802
- last if $pos + $size > $dirLen;
8802
+ $pos + $size > $dirLen and $err = 1, last;
8803
8803
  $$dirInfo{DirStart} = $pos;
8804
8804
  $$dirInfo{DirLen} = $size;
8805
8805
  ProcessHybrid($et, $dirInfo, $tagTablePtr);
8806
8806
  $pos += $size;
8807
8807
  }
8808
+ if ($err and $$et{HandlerType}) {
8809
+ my $grp = $$et{SET_GROUP1} || $$dirInfo{Parent} || 'unknown';
8810
+ $et->Warn("Truncated $$et{HandlerType} sample table for $grp");
8811
+ }
8808
8812
  return 1;
8809
8813
  }
8810
8814
 
@@ -9685,7 +9689,7 @@ information from QuickTime and MP4 video, M4A audio, and HEIC image files.
9685
9689
 
9686
9690
  =head1 AUTHOR
9687
9691
 
9688
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
9692
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
9689
9693
 
9690
9694
  This library is free software; you can redistribute it and/or modify it
9691
9695
  under the same terms as Perl itself.