exiftool_vendored 12.37.0 → 12.41.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (206) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +73 -0
  3. data/bin/MANIFEST +2 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +45 -45
  7. data/bin/arg_files/exif2xmp.args +5 -0
  8. data/bin/arg_files/xmp2exif.args +6 -0
  9. data/bin/config_files/acdsee.config +6 -6
  10. data/bin/config_files/photoshop_paths.config +30 -7
  11. data/bin/config_files/picasa_faces.config +1 -1
  12. data/bin/config_files/pix4d.config +2 -2
  13. data/bin/config_files/tiff_version.config +2 -2
  14. data/bin/exiftool +100 -67
  15. data/bin/lib/File/RandomAccess.pm +1 -1
  16. data/bin/lib/File/RandomAccess.pod +2 -2
  17. data/bin/lib/Image/ExifTool/AES.pm +1 -1
  18. data/bin/lib/Image/ExifTool/AFCP.pm +1 -1
  19. data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  20. data/bin/lib/Image/ExifTool/APE.pm +1 -1
  21. data/bin/lib/Image/ExifTool/APP12.pm +1 -1
  22. data/bin/lib/Image/ExifTool/ASF.pm +1 -1
  23. data/bin/lib/Image/ExifTool/Apple.pm +1 -1
  24. data/bin/lib/Image/ExifTool/Audible.pm +1 -1
  25. data/bin/lib/Image/ExifTool/BMP.pm +1 -1
  26. data/bin/lib/Image/ExifTool/BPG.pm +1 -1
  27. data/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  28. data/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  29. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +6 -4
  30. data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
  31. data/bin/lib/Image/ExifTool/Canon.pm +79 -5
  32. data/bin/lib/Image/ExifTool/CanonCustom.pm +13 -3
  33. data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  34. data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  35. data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  36. data/bin/lib/Image/ExifTool/Casio.pm +1 -1
  37. data/bin/lib/Image/ExifTool/Charset.pm +1 -1
  38. data/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  39. data/bin/lib/Image/ExifTool/DJI.pm +1 -1
  40. data/bin/lib/Image/ExifTool/DNG.pm +1 -1
  41. data/bin/lib/Image/ExifTool/DPX.pm +1 -1
  42. data/bin/lib/Image/ExifTool/DV.pm +1 -1
  43. data/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
  44. data/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  45. data/bin/lib/Image/ExifTool/EXE.pm +1 -1
  46. data/bin/lib/Image/ExifTool/Exif.pm +53 -21
  47. data/bin/lib/Image/ExifTool/FITS.pm +1 -1
  48. data/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  49. data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  50. data/bin/lib/Image/ExifTool/FLIR.pm +16 -4
  51. data/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  52. data/bin/lib/Image/ExifTool/Flash.pm +1 -1
  53. data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  54. data/bin/lib/Image/ExifTool/Font.pm +1 -1
  55. data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  56. data/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
  57. data/bin/lib/Image/ExifTool/GE.pm +1 -1
  58. data/bin/lib/Image/ExifTool/GIF.pm +1 -1
  59. data/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  60. data/bin/lib/Image/ExifTool/GPS.pm +1 -1
  61. data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  62. data/bin/lib/Image/ExifTool/Geotag.pm +4 -3
  63. data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  64. data/bin/lib/Image/ExifTool/H264.pm +1 -1
  65. data/bin/lib/Image/ExifTool/HP.pm +1 -1
  66. data/bin/lib/Image/ExifTool/HTML.pm +1 -1
  67. data/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  68. data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  69. data/bin/lib/Image/ExifTool/ID3.pm +1 -1
  70. data/bin/lib/Image/ExifTool/IPTC.pm +1 -1
  71. data/bin/lib/Image/ExifTool/ISO.pm +1 -1
  72. data/bin/lib/Image/ExifTool/ITC.pm +1 -1
  73. data/bin/lib/Image/ExifTool/Import.pm +1 -1
  74. data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  75. data/bin/lib/Image/ExifTool/JPEG.pm +6 -2
  76. data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  77. data/bin/lib/Image/ExifTool/JSON.pm +1 -1
  78. data/bin/lib/Image/ExifTool/JVC.pm +1 -1
  79. data/bin/lib/Image/ExifTool/Jpeg2000.pm +1 -1
  80. data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  81. data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  82. data/bin/lib/Image/ExifTool/LIF.pm +1 -1
  83. data/bin/lib/Image/ExifTool/LNK.pm +1 -1
  84. data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  85. data/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  86. data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  87. data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  88. data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  89. data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  90. data/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
  91. data/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  92. data/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  93. data/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  94. data/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  95. data/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  96. data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  97. data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  98. data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  99. data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  100. data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  101. data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  102. data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  103. data/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  104. data/bin/lib/Image/ExifTool/MIE.pm +1 -1
  105. data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  106. data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  107. data/bin/lib/Image/ExifTool/MNG.pm +1 -1
  108. data/bin/lib/Image/ExifTool/MOI.pm +1 -1
  109. data/bin/lib/Image/ExifTool/MPC.pm +1 -1
  110. data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  111. data/bin/lib/Image/ExifTool/MPF.pm +1 -1
  112. data/bin/lib/Image/ExifTool/MRC.pm +1 -1
  113. data/bin/lib/Image/ExifTool/MWG.pm +1 -1
  114. data/bin/lib/Image/ExifTool/MXF.pm +1 -1
  115. data/bin/lib/Image/ExifTool/MacOS.pm +10 -10
  116. data/bin/lib/Image/ExifTool/MakerNotes.pm +13 -2
  117. data/bin/lib/Image/ExifTool/Matroska.pm +9 -5
  118. data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  119. data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  120. data/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  121. data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  122. data/bin/lib/Image/ExifTool/Nikon.pm +1062 -189
  123. data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  124. data/bin/lib/Image/ExifTool/NikonCustom.pm +519 -6
  125. data/bin/lib/Image/ExifTool/NikonSettings.pm +17 -18
  126. data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  127. data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  128. data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  129. data/bin/lib/Image/ExifTool/Olympus.pm +8 -7
  130. data/bin/lib/Image/ExifTool/OpenEXR.pm +5 -3
  131. data/bin/lib/Image/ExifTool/Opus.pm +1 -1
  132. data/bin/lib/Image/ExifTool/Other.pm +1 -1
  133. data/bin/lib/Image/ExifTool/PCX.pm +1 -1
  134. data/bin/lib/Image/ExifTool/PDF.pm +1 -1
  135. data/bin/lib/Image/ExifTool/PGF.pm +1 -1
  136. data/bin/lib/Image/ExifTool/PICT.pm +1 -1
  137. data/bin/lib/Image/ExifTool/PLIST.pm +1 -1
  138. data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  139. data/bin/lib/Image/ExifTool/PNG.pm +28 -8
  140. data/bin/lib/Image/ExifTool/PPM.pm +1 -1
  141. data/bin/lib/Image/ExifTool/PSP.pm +1 -1
  142. data/bin/lib/Image/ExifTool/Palm.pm +1 -1
  143. data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
  144. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  145. data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  146. data/bin/lib/Image/ExifTool/Pentax.pm +3 -2
  147. data/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  148. data/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  149. data/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  150. data/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  151. data/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  152. data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  153. data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  154. data/bin/lib/Image/ExifTool/QuickTime.pm +10 -6
  155. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +16 -5
  156. data/bin/lib/Image/ExifTool/RIFF.pm +1 -1
  157. data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  158. data/bin/lib/Image/ExifTool/RTF.pm +1 -1
  159. data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  160. data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  161. data/bin/lib/Image/ExifTool/Real.pm +1 -1
  162. data/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  163. data/bin/lib/Image/ExifTool/Red.pm +1 -1
  164. data/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  165. data/bin/lib/Image/ExifTool/Samsung.pm +6 -2
  166. data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  167. data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  168. data/bin/lib/Image/ExifTool/Shift.pl +3 -1
  169. data/bin/lib/Image/ExifTool/Shortcuts.pm +3 -2
  170. data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  171. data/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  172. data/bin/lib/Image/ExifTool/Sony.pm +11 -5
  173. data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  174. data/bin/lib/Image/ExifTool/Stim.pm +1 -1
  175. data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
  176. data/bin/lib/Image/ExifTool/TagLookup.pm +6385 -6290
  177. data/bin/lib/Image/ExifTool/TagNames.pod +361 -22
  178. data/bin/lib/Image/ExifTool/Text.pm +1 -1
  179. data/bin/lib/Image/ExifTool/Theora.pm +1 -1
  180. data/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  181. data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  182. data/bin/lib/Image/ExifTool/VCard.pm +1 -1
  183. data/bin/lib/Image/ExifTool/Validate.pm +1 -1
  184. data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  185. data/bin/lib/Image/ExifTool/WTV.pm +1 -1
  186. data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  187. data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  188. data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  189. data/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  190. data/bin/lib/Image/ExifTool/WritePNG.pl +30 -10
  191. data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  192. data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  193. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +9 -4
  194. data/bin/lib/Image/ExifTool/WriteXMP.pl +3 -1
  195. data/bin/lib/Image/ExifTool/Writer.pl +6 -5
  196. data/bin/lib/Image/ExifTool/XMP.pm +51 -25
  197. data/bin/lib/Image/ExifTool/XMP2.pl +3 -2
  198. data/bin/lib/Image/ExifTool/XMPStruct.pl +22 -8
  199. data/bin/lib/Image/ExifTool/ZIP.pm +10 -2
  200. data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  201. data/bin/lib/Image/ExifTool/iWork.pm +1 -1
  202. data/bin/lib/Image/ExifTool.pm +23 -6
  203. data/bin/lib/Image/ExifTool.pod +71 -69
  204. data/bin/perl-Image-ExifTool.spec +43 -43
  205. data/lib/exiftool_vendored/version.rb +1 -1
  206. metadata +2 -2
@@ -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.
@@ -15,7 +15,7 @@ use vars qw($VERSION);
15
15
  use Image::ExifTool qw(:DataAccess :Utils);
16
16
  use Image::ExifTool::GPS;
17
17
 
18
- $VERSION = '1.02';
18
+ $VERSION = '1.03';
19
19
 
20
20
  # supported EXR value format types (other types are extracted as undef binary data)
21
21
  my %formatType = (
@@ -172,12 +172,13 @@ sub ProcessEXR($$)
172
172
  my $ver = unpack('x4V', $buff);
173
173
  $et->HandleTag($tagTablePtr, '_ver', $ver & 0xff);
174
174
  $et->HandleTag($tagTablePtr, '_lay', $ver & 0x200);
175
+ my $maxLen = ($ver & 0x400) ? 255 : 31;
175
176
 
176
177
  # extract attributes
177
178
  for (;;) {
178
179
  $raf->Read($buff, 68) or last;
179
180
  last if $buff =~ /^\0/;
180
- unless ($buff =~ /^([^\0]{1,31})\0([^\0]{1,31})\0(.{4})/sg) {
181
+ unless ($buff =~ /^([^\0]{1,$maxLen})\0([^\0]{1,$maxLen})\0(.{4})/sg) {
181
182
  $et->Warn('EXR format error');
182
183
  last;
183
184
  }
@@ -189,6 +190,7 @@ sub ProcessEXR($$)
189
190
  my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
190
191
  unless ($tagInfo) {
191
192
  my $name = ucfirst $tag;
193
+ $name =~ s/([^a-zA-Z])([a-z])/$1\U$2/g; # capitalize first letter of each word
192
194
  $name =~ tr/-_a-zA-Z0-9//dc;
193
195
  if (length $name <= 1) {
194
196
  if (length $name) {
@@ -302,7 +304,7 @@ information from OpenEXR images.
302
304
 
303
305
  =head1 AUTHOR
304
306
 
305
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
307
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
306
308
 
307
309
  This library is free software; you can redistribute it and/or modify it
308
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.