exiftool_vendored 12.10.0 → 12.15.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of exiftool_vendored might be problematic. Click here for more details.

Files changed (195) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +71 -2
  3. data/bin/MANIFEST +5 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +3 -3
  7. data/bin/exiftool +130 -55
  8. data/bin/lib/File/RandomAccess.pm +1 -1
  9. data/bin/lib/File/RandomAccess.pod +2 -2
  10. data/bin/lib/Image/ExifTool.pm +46 -10
  11. data/bin/lib/Image/ExifTool.pod +14 -11
  12. data/bin/lib/Image/ExifTool/AES.pm +1 -1
  13. data/bin/lib/Image/ExifTool/AFCP.pm +1 -1
  14. data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  15. data/bin/lib/Image/ExifTool/APE.pm +1 -1
  16. data/bin/lib/Image/ExifTool/APP12.pm +1 -1
  17. data/bin/lib/Image/ExifTool/ASF.pm +1 -1
  18. data/bin/lib/Image/ExifTool/Apple.pm +1 -1
  19. data/bin/lib/Image/ExifTool/Audible.pm +1 -1
  20. data/bin/lib/Image/ExifTool/BMP.pm +1 -1
  21. data/bin/lib/Image/ExifTool/BPG.pm +1 -1
  22. data/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  23. data/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  24. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +10 -4
  25. data/bin/lib/Image/ExifTool/Canon.pm +15 -12
  26. data/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
  27. data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  28. data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  29. data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  30. data/bin/lib/Image/ExifTool/Casio.pm +1 -1
  31. data/bin/lib/Image/ExifTool/Charset.pm +1 -1
  32. data/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  33. data/bin/lib/Image/ExifTool/DJI.pm +28 -2
  34. data/bin/lib/Image/ExifTool/DNG.pm +1 -1
  35. data/bin/lib/Image/ExifTool/DPX.pm +1 -1
  36. data/bin/lib/Image/ExifTool/DV.pm +1 -1
  37. data/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
  38. data/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  39. data/bin/lib/Image/ExifTool/EXE.pm +1 -1
  40. data/bin/lib/Image/ExifTool/Exif.pm +14 -1
  41. data/bin/lib/Image/ExifTool/FITS.pm +1 -1
  42. data/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  43. data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  44. data/bin/lib/Image/ExifTool/FLIR.pm +1 -1
  45. data/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  46. data/bin/lib/Image/ExifTool/Flash.pm +1 -1
  47. data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  48. data/bin/lib/Image/ExifTool/Font.pm +1 -1
  49. data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  50. data/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
  51. data/bin/lib/Image/ExifTool/GE.pm +1 -1
  52. data/bin/lib/Image/ExifTool/GIF.pm +1 -1
  53. data/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  54. data/bin/lib/Image/ExifTool/GPS.pm +1 -1
  55. data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  56. data/bin/lib/Image/ExifTool/Geotag.pm +30 -11
  57. data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  58. data/bin/lib/Image/ExifTool/H264.pm +1 -1
  59. data/bin/lib/Image/ExifTool/HP.pm +1 -1
  60. data/bin/lib/Image/ExifTool/HTML.pm +1 -1
  61. data/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  62. data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  63. data/bin/lib/Image/ExifTool/ID3.pm +1 -1
  64. data/bin/lib/Image/ExifTool/IPTC.pm +1 -1
  65. data/bin/lib/Image/ExifTool/ISO.pm +1 -1
  66. data/bin/lib/Image/ExifTool/ITC.pm +1 -1
  67. data/bin/lib/Image/ExifTool/Import.pm +15 -12
  68. data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  69. data/bin/lib/Image/ExifTool/JPEG.pm +24 -2
  70. data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  71. data/bin/lib/Image/ExifTool/JSON.pm +1 -1
  72. data/bin/lib/Image/ExifTool/JVC.pm +1 -1
  73. data/bin/lib/Image/ExifTool/Jpeg2000.pm +9 -4
  74. data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  75. data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  76. data/bin/lib/Image/ExifTool/LNK.pm +1 -1
  77. data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  78. data/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  79. data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  80. data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  81. data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  82. data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  83. data/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
  84. data/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  85. data/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  86. data/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  87. data/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  88. data/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  89. data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  90. data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  91. data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  92. data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  93. data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  94. data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  95. data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  96. data/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  97. data/bin/lib/Image/ExifTool/MIE.pm +1 -1
  98. data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  99. data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  100. data/bin/lib/Image/ExifTool/MNG.pm +1 -1
  101. data/bin/lib/Image/ExifTool/MOI.pm +1 -1
  102. data/bin/lib/Image/ExifTool/MPC.pm +1 -1
  103. data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  104. data/bin/lib/Image/ExifTool/MPF.pm +3 -3
  105. data/bin/lib/Image/ExifTool/MWG.pm +1 -1
  106. data/bin/lib/Image/ExifTool/MXF.pm +1 -1
  107. data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
  108. data/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
  109. data/bin/lib/Image/ExifTool/Matroska.pm +1 -1
  110. data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  111. data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  112. data/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  113. data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  114. data/bin/lib/Image/ExifTool/Nikon.pm +314 -35
  115. data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  116. data/bin/lib/Image/ExifTool/NikonCustom.pm +1 -1
  117. data/bin/lib/Image/ExifTool/NikonSettings.pm +2013 -0
  118. data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  119. data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  120. data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  121. data/bin/lib/Image/ExifTool/Olympus.pm +4 -2
  122. data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  123. data/bin/lib/Image/ExifTool/Opus.pm +1 -1
  124. data/bin/lib/Image/ExifTool/PCX.pm +1 -1
  125. data/bin/lib/Image/ExifTool/PDF.pm +10 -2
  126. data/bin/lib/Image/ExifTool/PGF.pm +1 -1
  127. data/bin/lib/Image/ExifTool/PICT.pm +1 -1
  128. data/bin/lib/Image/ExifTool/PLIST.pm +1 -1
  129. data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  130. data/bin/lib/Image/ExifTool/PNG.pm +12 -4
  131. data/bin/lib/Image/ExifTool/PPM.pm +1 -1
  132. data/bin/lib/Image/ExifTool/PSP.pm +1 -1
  133. data/bin/lib/Image/ExifTool/Palm.pm +1 -1
  134. data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
  135. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  136. data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  137. data/bin/lib/Image/ExifTool/Pentax.pm +12 -4
  138. data/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  139. data/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  140. data/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  141. data/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  142. data/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  143. data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  144. data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  145. data/bin/lib/Image/ExifTool/QuickTime.pm +28 -19
  146. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +25 -4
  147. data/bin/lib/Image/ExifTool/RIFF.pm +83 -5
  148. data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  149. data/bin/lib/Image/ExifTool/RTF.pm +1 -1
  150. data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  151. data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  152. data/bin/lib/Image/ExifTool/Real.pm +1 -1
  153. data/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  154. data/bin/lib/Image/ExifTool/Red.pm +1 -1
  155. data/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  156. data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
  157. data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  158. data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  159. data/bin/lib/Image/ExifTool/Shift.pl +1 -1
  160. data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  161. data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  162. data/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  163. data/bin/lib/Image/ExifTool/Sony.pm +8 -2
  164. data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  165. data/bin/lib/Image/ExifTool/Stim.pm +3 -3
  166. data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
  167. data/bin/lib/Image/ExifTool/TagLookup.pm +3943 -3807
  168. data/bin/lib/Image/ExifTool/TagNames.pod +313 -21
  169. data/bin/lib/Image/ExifTool/Text.pm +1 -1
  170. data/bin/lib/Image/ExifTool/Theora.pm +1 -1
  171. data/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  172. data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  173. data/bin/lib/Image/ExifTool/VCard.pm +1 -1
  174. data/bin/lib/Image/ExifTool/Validate.pm +1 -1
  175. data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  176. data/bin/lib/Image/ExifTool/WTV.pm +1 -1
  177. data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  178. data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  179. data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  180. data/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  181. data/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
  182. data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  183. data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  184. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +5 -4
  185. data/bin/lib/Image/ExifTool/WriteXMP.pl +1 -1
  186. data/bin/lib/Image/ExifTool/Writer.pl +28 -14
  187. data/bin/lib/Image/ExifTool/XMP.pm +17 -8
  188. data/bin/lib/Image/ExifTool/XMP2.pl +5 -1
  189. data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
  190. data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
  191. data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  192. data/bin/lib/Image/ExifTool/iWork.pm +1 -1
  193. data/bin/perl-Image-ExifTool.spec +1 -1
  194. data/lib/exiftool_vendored/version.rb +1 -1
  195. metadata +9 -4
@@ -107,7 +107,7 @@ interpret Nintendo maker notes EXIF meta information.
107
107
 
108
108
  =head1 AUTHOR
109
109
 
110
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
110
+ Copyright 2003-2021, 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-2020, Phil Harvey (philharvey66 at gmail.com)
398
+ Copyright 2003-2021, 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-2020, Phil Harvey (philharvey66 at gmail.com)
217
+ Copyright 2003-2021, 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.69';
43
+ $VERSION = '2.70';
44
44
 
45
45
  sub PrintLensInfo($$$);
46
46
 
@@ -109,6 +109,7 @@ my %olympusLensTypes = (
109
109
  '0 32 00' => 'Olympus Zuiko Digital ED 14-35mm F2.0 SWD', #PH
110
110
  '0 32 10' => 'Olympus M.Zuiko Digital ED 12-200mm F3.5-6.3', #IB
111
111
  '0 33 00' => 'Olympus Zuiko Digital 25mm F2.8', #PH
112
+ '0 33 10' => 'Olympus M.Zuiko Digital 150-400mm F4.5 TC1.25x IS Pro', #IB
112
113
  '0 34 00' => 'Olympus Zuiko Digital ED 9-18mm F4.0-5.6', #7
113
114
  '0 34 10' => 'Olympus M.Zuiko Digital ED 12-45mm F4.0 Pro', #IB
114
115
  '0 35 00' => 'Olympus Zuiko Digital 14-54mm F2.8-3.5 II', #PH
@@ -137,6 +138,7 @@ my %olympusLensTypes = (
137
138
  '1 15 00' => 'Sigma 10-20mm F4.0-5.6 EX DC HSM', #11
138
139
  '1 16 00' => 'Sigma APO 70-200mm F2.8 II EX DG Macro HSM', #11
139
140
  '1 17 00' => 'Sigma 50mm F1.4 EX DG HSM', #11
141
+ '1 18 60' => 'Test',
140
142
  # Panasonic/Leica lenses
141
143
  '2 01 00' => 'Leica D Vario Elmarit 14-50mm F2.8-3.5 Asph.', #11
142
144
  '2 01 10' => 'Lumix G Vario 14-45mm F3.5-5.6 Asph. Mega OIS', #16
@@ -4062,7 +4064,7 @@ Olympus or Epson maker notes in EXIF information.
4062
4064
 
4063
4065
  =head1 AUTHOR
4064
4066
 
4065
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
4067
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
4066
4068
 
4067
4069
  This library is free software; you can redistribute it and/or modify it
4068
4070
  under the same terms as Perl itself.
@@ -302,7 +302,7 @@ information from OpenEXR images.
302
302
 
303
303
  =head1 AUTHOR
304
304
 
305
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
305
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
306
306
 
307
307
  This library is free software; you can redistribute it and/or modify it
308
308
  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-2020, Phil Harvey (philharvey66 at gmail.com)
72
+ Copyright 2003-2021, 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.
@@ -114,7 +114,7 @@ information from PC Paintbrush (PCX) files.
114
114
 
115
115
  =head1 AUTHOR
116
116
 
117
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
117
+ Copyright 2003-2021, 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.
@@ -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.50';
24
+ $VERSION = '1.51';
25
25
 
26
26
  sub FetchObject($$$$);
27
27
  sub ExtractObject($$;$$);
@@ -2164,6 +2164,7 @@ sub ReadPDF($$)
2164
2164
  # set input record separator
2165
2165
  local $/ = $ws =~ /(\x0d\x0a|\x0d|\x0a)/ ? $1 : "\x0a";
2166
2166
  my (%xref, @mainDicts, %loaded, $mainFree);
2167
+ my ($xrefSize, $mainDictSize) = (0, 0);
2167
2168
  # initialize variables to capture when rewriting
2168
2169
  if ($capture) {
2169
2170
  $capture->{startxref} = $xr;
@@ -2206,6 +2207,7 @@ XRef:
2206
2207
  $raf->Read($buff, 20) == 20 or return -6;
2207
2208
  $buff =~ /^\s*(\d{10}) (\d{5}) (f|n)/s or return -4;
2208
2209
  my $num = $start + $i;
2210
+ $xrefSize = $num if $num > $xrefSize;
2209
2211
  # locate object to generate entry from stream if necessary
2210
2212
  # (must do this before we test $xref{$num})
2211
2213
  LocateAnyObject(\%xref, $num) if $xref{dicts};
@@ -2242,6 +2244,8 @@ XRef:
2242
2244
  $et->Warn('Error loading secondary dictionary');
2243
2245
  next;
2244
2246
  }
2247
+ # keep track of total trailer dictionary Size
2248
+ $mainDictSize = $$mainDict{Size} if $$mainDict{Size} and $$mainDict{Size} > $mainDictSize;
2245
2249
  if ($loadXRefStream) {
2246
2250
  # decode and save our XRef stream from PDF-1.5 file
2247
2251
  # (but parse it later as required to save time)
@@ -2280,6 +2284,10 @@ XRef:
2280
2284
  # load previous xref table if it exists
2281
2285
  push @xrefOffsets, $$mainDict{Prev}, 'Prev' if $$mainDict{Prev};
2282
2286
  }
2287
+ if ($xrefSize > $mainDictSize) {
2288
+ my $str = "Objects in xref table ($xrefSize) exceed trailer dictionary Size ($mainDictSize)";
2289
+ $capture ? $et->Error($str) : $et->Warn($str);
2290
+ }
2283
2291
  #
2284
2292
  # extract encryption information if necessary
2285
2293
  #
@@ -2381,7 +2389,7 @@ including AESV2 (AES-128) and AESV3 (AES-256).
2381
2389
 
2382
2390
  =head1 AUTHOR
2383
2391
 
2384
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
2392
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2385
2393
 
2386
2394
  This library is free software; you can redistribute it and/or modify it
2387
2395
  under the same terms as Perl itself.
@@ -119,7 +119,7 @@ information from Progressive Graphics File (PGF) images.
119
119
 
120
120
  =head1 AUTHOR
121
121
 
122
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
122
+ Copyright 2003-2021, 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-2020, Phil Harvey (philharvey66 at gmail.com)
1239
+ Copyright 2003-2021, 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-2020, Phil Harvey (philharvey66 at gmail.com)
441
+ Copyright 2003-2021, 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-2020, Phil Harvey (philharvey66 at gmail.com)
2589
+ Copyright 2003-2021, 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.55';
39
+ $VERSION = '1.56';
40
40
 
41
41
  sub ProcessPNG_tEXt($$$);
42
42
  sub ProcessPNG_iTXt($$$);
@@ -1422,8 +1422,16 @@ sub ProcessPNG($$)
1422
1422
  next;
1423
1423
  }
1424
1424
  if ($datChunk) {
1425
- # skip over data chunks if possible
1426
- unless ($verbose or $validate or $outfile) {
1425
+ my $chunkSizeLimit = 10000000; # largest chunk to read into memory
1426
+ if ($outfile) {
1427
+ # avoid loading very large data chunks into memory
1428
+ if ($len > $chunkSizeLimit) {
1429
+ Write($outfile, $hbuf) or $err = 1;
1430
+ Image::ExifTool::CopyBlock($raf, $outfile, $len+4) or $et->Error("Error copying $datChunk");
1431
+ next;
1432
+ }
1433
+ # skip over data chunks if possible/necessary
1434
+ } elsif (not $validate or $len > $chunkSizeLimit) {
1427
1435
  $raf->Seek($len + 4, 1) or $et->Warn('Seek error'), last;
1428
1436
  next;
1429
1437
  }
@@ -1531,7 +1539,7 @@ and JNG (JPEG Network Graphics) images.
1531
1539
 
1532
1540
  =head1 AUTHOR
1533
1541
 
1534
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
1542
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1535
1543
 
1536
1544
  This library is free software; you can redistribute it and/or modify it
1537
1545
  under the same terms as Perl itself.
@@ -143,7 +143,7 @@ BitMap) images.
143
143
 
144
144
  =head1 AUTHOR
145
145
 
146
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
146
+ Copyright 2003-2021, 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-2020, Phil Harvey (philharvey66 at gmail.com)
287
+ Copyright 2003-2021, 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-2020, Phil Harvey (philharvey66 at gmail.com)
382
+ Copyright 2003-2021, 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.
@@ -2812,7 +2812,7 @@ Panasonic and Leica maker notes in EXIF information.
2812
2812
 
2813
2813
  =head1 AUTHOR
2814
2814
 
2815
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
2815
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2816
2816
 
2817
2817
  This library is free software; you can redistribute it and/or modify it
2818
2818
  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-2020, Phil Harvey (philharvey66 at gmail.com)
891
+ Copyright 2003-2021, 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-2020, Phil Harvey (philharvey66 at gmail.com)
734
+ Copyright 2003-2021, 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.34';
61
+ $VERSION = '3.36';
62
62
 
63
63
  sub CryptShutterCount($$);
64
64
  sub PrintFilter($$$);
@@ -322,6 +322,7 @@ sub DecodeAFPoints($$$$;$);
322
322
  '8 21' => 'Sigma 17-50mm F2.8 EX DC OS HSM', #26
323
323
  '8 22' => 'Sigma 85mm F1.4 EX DG HSM', #26
324
324
  '8 23' => 'Sigma 70-200mm F2.8 APO EX DG OS HSM', #27
325
+ '8 24' => 'Sigma 17-70mm F2.8-4 DC Macro OS HSM', #27
325
326
  '8 25' => 'Sigma 17-50mm F2.8 EX DC HSM', #Exiv2
326
327
  '8 27' => 'Sigma 18-200mm F3.5-6.3 II DC HSM', #27
327
328
  '8 28' => 'Sigma 18-250mm F3.5-6.3 DC Macro HSM', #27
@@ -2894,13 +2895,20 @@ my %binaryDataAttrs = (
2894
2895
  Writable => 'string',
2895
2896
  Notes => 'left blank by some cameras',
2896
2897
  },
2897
- 0x022a => { #PH (K-5)
2898
+ 0x022a => [{ #PH (RICOH models (GR III))
2899
+ Name => 'FilterInfo',
2900
+ Condition => '$$self{Make} =~ /^RICOH/',
2901
+ SubDirectory => {
2902
+ TagTable => 'Image::ExifTool::Pentax::FilterInfo',
2903
+ ByteOrder => 'LittleEndian',
2904
+ },
2905
+ },{ #PH (K-5)
2898
2906
  Name => 'FilterInfo',
2899
2907
  SubDirectory => {
2900
2908
  TagTable => 'Image::ExifTool::Pentax::FilterInfo',
2901
2909
  ByteOrder => 'BigEndian',
2902
2910
  },
2903
- },
2911
+ }],
2904
2912
  0x022b => { #PH (K-5)
2905
2913
  Name => 'LevelInfo',
2906
2914
  SubDirectory => { TagTable => 'Image::ExifTool::Pentax::LevelInfo' },
@@ -6283,7 +6291,7 @@ tags, and everyone who helped contribute to the LensType values.
6283
6291
 
6284
6292
  =head1 AUTHOR
6285
6293
 
6286
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
6294
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
6287
6295
 
6288
6296
  This library is free software; you can redistribute it and/or modify it
6289
6297
  under the same terms as Perl itself.
@@ -711,7 +711,7 @@ One maker notes.
711
711
 
712
712
  =head1 AUTHOR
713
713
 
714
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
714
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
715
715
 
716
716
  This library is free software; you can redistribute it and/or modify it
717
717
  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-2020, Phil Harvey (philharvey66 at gmail.com)
487
+ Copyright 2003-2021, 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-2020, Phil Harvey (philharvey66 at gmail.com)
239
+ Copyright 2003-2021, 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.
@@ -1137,7 +1137,7 @@ be preserved when copying Photoshop information via user-defined tags.
1137
1137
 
1138
1138
  =head1 AUTHOR
1139
1139
 
1140
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
1140
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1141
1141
 
1142
1142
  This library is free software; you can redistribute it and/or modify it
1143
1143
  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-2020, Phil Harvey (philharvey66 at gmail.com)
780
+ Copyright 2003-2021, 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-2020, Phil Harvey (philharvey66 at gmail.com)
115
+ Copyright 2003-2021, 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-2020, Phil Harvey (philharvey66 at gmail.com)
1334
+ Copyright 2003-2021, 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.55';
50
+ $VERSION = '2.56';
51
51
 
52
52
  sub ProcessMOV($$;$);
53
53
  sub ProcessKeys($$$);
@@ -214,11 +214,16 @@ my %ftypLookup = (
214
214
  'crx ' => 'Canon Raw (.CRX)', #PH (CR3 or CRM; use Canon CompressorVersion to decide)
215
215
  );
216
216
 
217
- # information for time/date-based tags (time zero is Jan 1, 1904)
217
+ # information for int32u date/time tags (time zero is Jan 1, 1904)
218
218
  my %timeInfo = (
219
219
  Notes => 'converted from UTC to local time if the QuickTimeUTC option is set',
220
+ Shift => 'Time',
221
+ Writable => 1,
222
+ Permanent => 1,
223
+ DelValue => 0,
220
224
  # It is not uncommon for brain-dead software to use the wrong time zero,
221
225
  # so assume a time zero of Jan 1, 1970 if the date is before this
226
+ # Note: This value will be in UTC if generated by a system that is aware of the time zone
222
227
  RawConv => q{
223
228
  my $offset = (66 * 365 + 17) * 24 * 3600;
224
229
  return $val - $offset if $val >= $offset or $$self{OPTIONS}{QuickTimeUTC};
@@ -227,14 +232,18 @@ my %timeInfo = (
227
232
  }
228
233
  return $val;
229
234
  },
230
- Shift => 'Time',
231
- Writable => 1,
232
- Permanent => 1,
233
- DelValue => 0,
234
- # Note: This value will be in UTC if generated by a system that is aware of the time zone (ie. CR3 files)
235
- RawConvInv => 'GetUnixTime($val, $self->Options("QuickTimeUTC") || $$self{FileType} eq "CR3") + (66 * 365 + 17) * 24 * 3600',
235
+ RawConvInv => q{
236
+ if ($$self{FileType} eq 'CR3' and not $self->Options('QuickTimeUTC')) {
237
+ # convert to UTC
238
+ my $offset = (66 * 365 + 17) * 24 * 3600;
239
+ $val = ConvertUnixTime($val - $offset);
240
+ $val = GetUnixTime($val, 1) + $offset;
241
+ }
242
+ return $val;
243
+ },
244
+ # (all CR3 files store UTC times - PH)
236
245
  ValueConv => 'ConvertUnixTime($val, $self->Options("QuickTimeUTC") || $$self{FileType} eq "CR3")',
237
- ValueConvInv => '$val',
246
+ ValueConvInv => 'GetUnixTime($val, $self->Options("QuickTimeUTC")) + (66 * 365 + 17) * 24 * 3600',
238
247
  PrintConv => '$self->ConvertDateTime($val)',
239
248
  PrintConvInv => '$self->InverseDateTime($val)',
240
249
  # (can't put Groups here because they aren't constant!)
@@ -673,7 +682,7 @@ my %eeBox = (
673
682
  ValueConv => '$val=~tr/-/:/; $val',
674
683
  ValueConvInv => '$val=~s/(\d+):(\d+):/$1-$2-/; $val',
675
684
  PrintConv => '$self->ConvertDateTime($val)',
676
- PrintConvInv => '$self->InverseDateTime($val)',
685
+ PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
677
686
  },
678
687
  gps0 => { #PH (DuDuBell M1, VSYS M6L)
679
688
  Name => 'GPSTrack',
@@ -1406,7 +1415,7 @@ my %eeBox = (
1406
1415
  return $val;
1407
1416
  },
1408
1417
  PrintConv => '$self->ConvertDateTime($val)',
1409
- PrintConvInv => '$self->InverseDateTime($val)',
1418
+ PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
1410
1419
  },
1411
1420
  "\xa9ART" => 'Artist', #PH (iTunes 8.0.2)
1412
1421
  "\xa9alb" => 'Album', #PH (iTunes 8.0.2)
@@ -1680,7 +1689,7 @@ my %eeBox = (
1680
1689
  return $val;
1681
1690
  },
1682
1691
  PrintConv => '$self->ConvertDateTime($val)',
1683
- PrintConvInv => '$self->InverseDateTime($val)',
1692
+ PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
1684
1693
  },
1685
1694
  manu => { # (SX280)
1686
1695
  Name => 'Make',
@@ -2115,7 +2124,7 @@ my %eeBox = (
2115
2124
  return $val;
2116
2125
  },
2117
2126
  PrintConv => '$self->ConvertDateTime($val)',
2118
- PrintConvInv => '$self->InverseDateTime($val)',
2127
+ PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
2119
2128
  },
2120
2129
  '@xyz' => { #PH (iPhone 3GS)
2121
2130
  Name => 'GPSCoordinates',
@@ -3013,7 +3022,7 @@ my %eeBox = (
3013
3022
  return $val;
3014
3023
  },
3015
3024
  PrintConv => '$self->ConvertDateTime($val)',
3016
- PrintConvInv => '$self->InverseDateTime($val)',
3025
+ PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
3017
3026
  },
3018
3027
  "\xa9des" => 'Description', #4
3019
3028
  "\xa9enc" => 'EncodedBy', #10
@@ -6191,7 +6200,7 @@ my %eeBox = (
6191
6200
  return $val;
6192
6201
  },
6193
6202
  PrintConv => '$self->ConvertDateTime($val)',
6194
- PrintConvInv => '$self->InverseDateTime($val)',
6203
+ PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
6195
6204
  },
6196
6205
  description => { },
6197
6206
  director => { },
@@ -6251,7 +6260,7 @@ my %eeBox = (
6251
6260
  return $val;
6252
6261
  },
6253
6262
  PrintConv => '$self->ConvertDateTime($val)',
6254
- PrintConvInv => '$self->InverseDateTime($val)',
6263
+ PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
6255
6264
  },
6256
6265
  'direction.facing' => { Name => 'CameraDirection', Groups => { 2 => 'Location' } },
6257
6266
  'direction.motion' => { Name => 'CameraMotion', Groups => { 2 => 'Location' } },
@@ -8639,10 +8648,10 @@ sub ProcessSampleDesc($$$)
8639
8648
  my $dirLen = $$dirInfo{DirLen} || (length($$dataPt) - $pos);
8640
8649
  return 0 if $pos + 8 > $dirLen;
8641
8650
 
8642
- my $num = Get32u($dataPt, 4); # get number of sample descriptions in table
8651
+ my $num = Get32u($dataPt, 4); # get number of sample entries in table
8643
8652
  $pos += 8;
8644
8653
  my $i;
8645
- for ($i=0; $i<$num; ++$i) { # loop through sample descriptions
8654
+ for ($i=0; $i<$num; ++$i) { # loop through sample entries
8646
8655
  last if $pos + 8 > $dirLen;
8647
8656
  my $size = Get32u($dataPt, $pos);
8648
8657
  last if $pos + $size > $dirLen;
@@ -9491,7 +9500,7 @@ information from QuickTime and MP4 video, M4A audio, and HEIC image files.
9491
9500
 
9492
9501
  =head1 AUTHOR
9493
9502
 
9494
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
9503
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
9495
9504
 
9496
9505
  This library is free software; you can redistribute it and/or modify it
9497
9506
  under the same terms as Perl itself.