exiftool_vendored 12.12.0 → 12.17.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 (196) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +73 -3
  3. data/bin/MANIFEST +3 -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 +87 -57
  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 +36 -3
  11. data/bin/lib/Image/ExifTool.pod +12 -8
  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 +14 -7
  25. data/bin/lib/Image/ExifTool/Canon.pm +3 -2
  26. data/bin/lib/Image/ExifTool/CanonCustom.pm +20 -2
  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 +4 -4
  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 +45 -16
  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 +3 -2
  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 +6 -6
  55. data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  56. data/bin/lib/Image/ExifTool/Geotag.pm +1 -1
  57. data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  58. data/bin/lib/Image/ExifTool/H264.pm +21 -6
  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 +1 -1
  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 +1 -1
  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 +315 -36
  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 +1 -1
  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 +3 -2
  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 +20 -14
  146. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +46 -7
  147. data/bin/lib/Image/ExifTool/README +5 -4
  148. data/bin/lib/Image/ExifTool/RIFF.pm +85 -7
  149. data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  150. data/bin/lib/Image/ExifTool/RTF.pm +1 -1
  151. data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  152. data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  153. data/bin/lib/Image/ExifTool/Real.pm +1 -1
  154. data/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  155. data/bin/lib/Image/ExifTool/Red.pm +1 -1
  156. data/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  157. data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
  158. data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  159. data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  160. data/bin/lib/Image/ExifTool/Shift.pl +1 -1
  161. data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  162. data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  163. data/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  164. data/bin/lib/Image/ExifTool/Sony.pm +6 -2
  165. data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  166. data/bin/lib/Image/ExifTool/Stim.pm +1 -1
  167. data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
  168. data/bin/lib/Image/ExifTool/TagLookup.pm +3985 -3807
  169. data/bin/lib/Image/ExifTool/TagNames.pod +432 -21
  170. data/bin/lib/Image/ExifTool/Text.pm +1 -1
  171. data/bin/lib/Image/ExifTool/Theora.pm +1 -1
  172. data/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  173. data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  174. data/bin/lib/Image/ExifTool/VCard.pm +1 -1
  175. data/bin/lib/Image/ExifTool/Validate.pm +1 -1
  176. data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  177. data/bin/lib/Image/ExifTool/WTV.pm +1 -1
  178. data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  179. data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  180. data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  181. data/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  182. data/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
  183. data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  184. data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  185. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +1 -1
  186. data/bin/lib/Image/ExifTool/WriteXMP.pl +10 -7
  187. data/bin/lib/Image/ExifTool/Writer.pl +32 -18
  188. data/bin/lib/Image/ExifTool/XMP.pm +44 -9
  189. data/bin/lib/Image/ExifTool/XMP2.pl +5 -1
  190. data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
  191. data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
  192. data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  193. data/bin/lib/Image/ExifTool/iWork.pm +1 -1
  194. data/bin/perl-Image-ExifTool.spec +1 -1
  195. data/lib/exiftool_vendored/version.rb +1 -1
  196. 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.
@@ -4064,7 +4064,7 @@ Olympus or Epson maker notes in EXIF information.
4064
4064
 
4065
4065
  =head1 AUTHOR
4066
4066
 
4067
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
4067
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
4068
4068
 
4069
4069
  This library is free software; you can redistribute it and/or modify it
4070
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.35';
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
@@ -6290,7 +6291,7 @@ tags, and everyone who helped contribute to the LensType values.
6290
6291
 
6291
6292
  =head1 AUTHOR
6292
6293
 
6293
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
6294
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
6294
6295
 
6295
6296
  This library is free software; you can redistribute it and/or modify it
6296
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.57';
51
51
 
52
52
  sub ProcessMOV($$;$);
53
53
  sub ProcessKeys($$$);
@@ -214,7 +214,7 @@ 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
220
  Shift => 'Time',
@@ -424,7 +424,6 @@ my %eeBox = (
424
424
  # (note: vide is only processed if specific atoms exist in the VideoSampleDesc)
425
425
  vide => { %eeStd,
426
426
  JPEG => 'stsd',
427
- # avcC => 'stsd', # (uncomment to parse H264 stream)
428
427
  },
429
428
  text => { %eeStd },
430
429
  meta => { %eeStd },
@@ -434,6 +433,10 @@ my %eeBox = (
434
433
  ctbx => { %eeStd }, # (GM cars)
435
434
  '' => { 'gps ' => 'moov', 'GPS ' => 'main' }, # (no handler -- in top level 'moov' box, and main)
436
435
  );
436
+ # boxes to save when ExtractEmbedded is set to 2 or higher
437
+ my %eeBox2 = (
438
+ vide => { avcC => 'stsd' }, # (parses H264 video stream)
439
+ );
437
440
 
438
441
  # QuickTime atoms
439
442
  %Image::ExifTool::QuickTime::Main = (
@@ -682,7 +685,7 @@ my %eeBox = (
682
685
  ValueConv => '$val=~tr/-/:/; $val',
683
686
  ValueConvInv => '$val=~s/(\d+):(\d+):/$1-$2-/; $val',
684
687
  PrintConv => '$self->ConvertDateTime($val)',
685
- PrintConvInv => '$self->InverseDateTime($val)',
688
+ PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
686
689
  },
687
690
  gps0 => { #PH (DuDuBell M1, VSYS M6L)
688
691
  Name => 'GPSTrack',
@@ -1415,7 +1418,7 @@ my %eeBox = (
1415
1418
  return $val;
1416
1419
  },
1417
1420
  PrintConv => '$self->ConvertDateTime($val)',
1418
- PrintConvInv => '$self->InverseDateTime($val)',
1421
+ PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
1419
1422
  },
1420
1423
  "\xa9ART" => 'Artist', #PH (iTunes 8.0.2)
1421
1424
  "\xa9alb" => 'Album', #PH (iTunes 8.0.2)
@@ -1689,7 +1692,7 @@ my %eeBox = (
1689
1692
  return $val;
1690
1693
  },
1691
1694
  PrintConv => '$self->ConvertDateTime($val)',
1692
- PrintConvInv => '$self->InverseDateTime($val)',
1695
+ PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
1693
1696
  },
1694
1697
  manu => { # (SX280)
1695
1698
  Name => 'Make',
@@ -2124,7 +2127,7 @@ my %eeBox = (
2124
2127
  return $val;
2125
2128
  },
2126
2129
  PrintConv => '$self->ConvertDateTime($val)',
2127
- PrintConvInv => '$self->InverseDateTime($val)',
2130
+ PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
2128
2131
  },
2129
2132
  '@xyz' => { #PH (iPhone 3GS)
2130
2133
  Name => 'GPSCoordinates',
@@ -3022,7 +3025,7 @@ my %eeBox = (
3022
3025
  return $val;
3023
3026
  },
3024
3027
  PrintConv => '$self->ConvertDateTime($val)',
3025
- PrintConvInv => '$self->InverseDateTime($val)',
3028
+ PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
3026
3029
  },
3027
3030
  "\xa9des" => 'Description', #4
3028
3031
  "\xa9enc" => 'EncodedBy', #10
@@ -6200,7 +6203,7 @@ my %eeBox = (
6200
6203
  return $val;
6201
6204
  },
6202
6205
  PrintConv => '$self->ConvertDateTime($val)',
6203
- PrintConvInv => '$self->InverseDateTime($val)',
6206
+ PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
6204
6207
  },
6205
6208
  description => { },
6206
6209
  director => { },
@@ -6260,7 +6263,7 @@ my %eeBox = (
6260
6263
  return $val;
6261
6264
  },
6262
6265
  PrintConv => '$self->ConvertDateTime($val)',
6263
- PrintConvInv => '$self->InverseDateTime($val)',
6266
+ PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
6264
6267
  },
6265
6268
  'direction.facing' => { Name => 'CameraDirection', Groups => { 2 => 'Location' } },
6266
6269
  'direction.motion' => { Name => 'CameraMotion', Groups => { 2 => 'Location' } },
@@ -8884,7 +8887,7 @@ sub ProcessMOV($$;$)
8884
8887
  my $dirID = $$dirInfo{DirID} || '';
8885
8888
  my $charsetQuickTime = $et->Options('CharsetQuickTime');
8886
8889
  my ($buff, $tag, $size, $track, $isUserData, %triplet, $doDefaultLang, $index);
8887
- my ($dirEnd, $ee, $unkOpt, %saveOptions, $atomCount);
8890
+ my ($dirEnd, $unkOpt, %saveOptions, $atomCount);
8888
8891
 
8889
8892
  my $topLevel = not $$et{InQuickTime};
8890
8893
  $$et{InQuickTime} = 1;
@@ -8948,8 +8951,8 @@ sub ProcessMOV($$;$)
8948
8951
  }
8949
8952
  $$raf{NoBuffer} = 1 if $et->Options('FastScan'); # disable buffering in FastScan mode
8950
8953
 
8951
- if ($$et{OPTIONS}{ExtractEmbedded}) {
8952
- $ee = 1;
8954
+ my $ee = $$et{OPTIONS}{ExtractEmbedded};
8955
+ if ($ee) {
8953
8956
  $unkOpt = $$et{OPTIONS}{Unknown};
8954
8957
  require 'Image/ExifTool/QuickTimeStream.pl';
8955
8958
  }
@@ -9032,6 +9035,9 @@ sub ProcessMOV($$;$)
9032
9035
  } elsif ($handlerType ne 'vide' and not $$et{OPTIONS}{Validate}) {
9033
9036
  EEWarn($et);
9034
9037
  }
9038
+ } elsif ($ee and $ee > 1 and $eeBox2{$handlerType} and $eeBox2{$handlerType}{$tag}) {
9039
+ $eeTag = 1;
9040
+ $$et{OPTIONS}{Unknown} = 1;
9035
9041
  }
9036
9042
  my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
9037
9043
 
@@ -9500,7 +9506,7 @@ information from QuickTime and MP4 video, M4A audio, and HEIC image files.
9500
9506
 
9501
9507
  =head1 AUTHOR
9502
9508
 
9503
- Copyright 2003-2020, Phil Harvey (philharvey66 at gmail.com)
9509
+ Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
9504
9510
 
9505
9511
  This library is free software; you can redistribute it and/or modify it
9506
9512
  under the same terms as Perl itself.