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.
- checksums.yaml +4 -4
- data/bin/Changes +73 -3
- data/bin/MANIFEST +3 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +3 -3
- data/bin/exiftool +87 -57
- data/bin/lib/File/RandomAccess.pm +1 -1
- data/bin/lib/File/RandomAccess.pod +2 -2
- data/bin/lib/Image/ExifTool.pm +36 -3
- data/bin/lib/Image/ExifTool.pod +12 -8
- data/bin/lib/Image/ExifTool/AES.pm +1 -1
- data/bin/lib/Image/ExifTool/AFCP.pm +1 -1
- data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/APE.pm +1 -1
- data/bin/lib/Image/ExifTool/APP12.pm +1 -1
- data/bin/lib/Image/ExifTool/ASF.pm +1 -1
- data/bin/lib/Image/ExifTool/Apple.pm +1 -1
- data/bin/lib/Image/ExifTool/Audible.pm +1 -1
- data/bin/lib/Image/ExifTool/BMP.pm +1 -1
- data/bin/lib/Image/ExifTool/BPG.pm +1 -1
- data/bin/lib/Image/ExifTool/BZZ.pm +1 -1
- data/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +14 -7
- data/bin/lib/Image/ExifTool/Canon.pm +3 -2
- data/bin/lib/Image/ExifTool/CanonCustom.pm +20 -2
- data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
- data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- data/bin/lib/Image/ExifTool/Casio.pm +1 -1
- data/bin/lib/Image/ExifTool/Charset.pm +1 -1
- data/bin/lib/Image/ExifTool/DICOM.pm +1 -1
- data/bin/lib/Image/ExifTool/DJI.pm +28 -2
- data/bin/lib/Image/ExifTool/DNG.pm +1 -1
- data/bin/lib/Image/ExifTool/DPX.pm +4 -4
- data/bin/lib/Image/ExifTool/DV.pm +1 -1
- data/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
- data/bin/lib/Image/ExifTool/DjVu.pm +1 -1
- data/bin/lib/Image/ExifTool/EXE.pm +1 -1
- data/bin/lib/Image/ExifTool/Exif.pm +45 -16
- data/bin/lib/Image/ExifTool/FITS.pm +1 -1
- data/bin/lib/Image/ExifTool/FLAC.pm +1 -1
- data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
- data/bin/lib/Image/ExifTool/FLIR.pm +1 -1
- data/bin/lib/Image/ExifTool/Fixup.pm +1 -1
- data/bin/lib/Image/ExifTool/Flash.pm +1 -1
- data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
- data/bin/lib/Image/ExifTool/Font.pm +1 -1
- data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
- data/bin/lib/Image/ExifTool/FujiFilm.pm +3 -2
- data/bin/lib/Image/ExifTool/GE.pm +1 -1
- data/bin/lib/Image/ExifTool/GIF.pm +1 -1
- data/bin/lib/Image/ExifTool/GIMP.pm +1 -1
- data/bin/lib/Image/ExifTool/GPS.pm +6 -6
- data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
- data/bin/lib/Image/ExifTool/Geotag.pm +1 -1
- data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
- data/bin/lib/Image/ExifTool/H264.pm +21 -6
- data/bin/lib/Image/ExifTool/HP.pm +1 -1
- data/bin/lib/Image/ExifTool/HTML.pm +1 -1
- data/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
- data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
- data/bin/lib/Image/ExifTool/ID3.pm +1 -1
- data/bin/lib/Image/ExifTool/IPTC.pm +1 -1
- data/bin/lib/Image/ExifTool/ISO.pm +1 -1
- data/bin/lib/Image/ExifTool/ITC.pm +1 -1
- data/bin/lib/Image/ExifTool/Import.pm +1 -1
- data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- data/bin/lib/Image/ExifTool/JPEG.pm +24 -2
- data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- data/bin/lib/Image/ExifTool/JSON.pm +1 -1
- data/bin/lib/Image/ExifTool/JVC.pm +1 -1
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +9 -4
- data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
- data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/LNK.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
- data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
- data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
- data/bin/lib/Image/ExifTool/M2TS.pm +1 -1
- data/bin/lib/Image/ExifTool/MIE.pm +1 -1
- data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
- data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/MNG.pm +1 -1
- data/bin/lib/Image/ExifTool/MOI.pm +1 -1
- data/bin/lib/Image/ExifTool/MPC.pm +1 -1
- data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
- data/bin/lib/Image/ExifTool/MPF.pm +1 -1
- data/bin/lib/Image/ExifTool/MWG.pm +1 -1
- data/bin/lib/Image/ExifTool/MXF.pm +1 -1
- data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
- data/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
- data/bin/lib/Image/ExifTool/Matroska.pm +1 -1
- data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
- data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
- data/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
- data/bin/lib/Image/ExifTool/Nikon.pm +315 -36
- data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- data/bin/lib/Image/ExifTool/NikonCustom.pm +1 -1
- data/bin/lib/Image/ExifTool/NikonSettings.pm +2013 -0
- data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
- data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
- data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +1 -1
- data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
- data/bin/lib/Image/ExifTool/Opus.pm +1 -1
- data/bin/lib/Image/ExifTool/PCX.pm +1 -1
- data/bin/lib/Image/ExifTool/PDF.pm +10 -2
- data/bin/lib/Image/ExifTool/PGF.pm +1 -1
- data/bin/lib/Image/ExifTool/PICT.pm +1 -1
- data/bin/lib/Image/ExifTool/PLIST.pm +1 -1
- data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
- data/bin/lib/Image/ExifTool/PNG.pm +12 -4
- data/bin/lib/Image/ExifTool/PPM.pm +1 -1
- data/bin/lib/Image/ExifTool/PSP.pm +1 -1
- data/bin/lib/Image/ExifTool/Palm.pm +1 -1
- data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
- data/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +3 -2
- data/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
- data/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
- data/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
- data/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
- data/bin/lib/Image/ExifTool/PostScript.pm +1 -1
- data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
- data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +20 -14
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +46 -7
- data/bin/lib/Image/ExifTool/README +5 -4
- data/bin/lib/Image/ExifTool/RIFF.pm +85 -7
- data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
- data/bin/lib/Image/ExifTool/RTF.pm +1 -1
- data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
- data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
- data/bin/lib/Image/ExifTool/Real.pm +1 -1
- data/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
- data/bin/lib/Image/ExifTool/Red.pm +1 -1
- data/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
- data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
- data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
- data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
- data/bin/lib/Image/ExifTool/Shift.pl +1 -1
- data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
- data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
- data/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/Sony.pm +6 -2
- data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
- data/bin/lib/Image/ExifTool/Stim.pm +1 -1
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +3985 -3807
- data/bin/lib/Image/ExifTool/TagNames.pod +432 -21
- data/bin/lib/Image/ExifTool/Text.pm +1 -1
- data/bin/lib/Image/ExifTool/Theora.pm +1 -1
- data/bin/lib/Image/ExifTool/Torrent.pm +1 -1
- data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
- data/bin/lib/Image/ExifTool/VCard.pm +1 -1
- data/bin/lib/Image/ExifTool/Validate.pm +1 -1
- data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
- data/bin/lib/Image/ExifTool/WTV.pm +1 -1
- data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteXMP.pl +10 -7
- data/bin/lib/Image/ExifTool/Writer.pl +32 -18
- data/bin/lib/Image/ExifTool/XMP.pm +44 -9
- data/bin/lib/Image/ExifTool/XMP2.pl +5 -1
- data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
- data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- data/bin/lib/Image/ExifTool/iWork.pm +1 -1
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- 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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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.
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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.
|
|
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
|
-
#
|
|
1426
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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.
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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.
|
|
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
|
|
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, $
|
|
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
|
-
|
|
8952
|
-
|
|
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-
|
|
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.
|