exiftool_vendored 12.11.0 → 12.16.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 +62 -2
- data/bin/MANIFEST +5 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +3 -3
- data/bin/exiftool +70 -36
- data/bin/lib/File/RandomAccess.pm +1 -1
- data/bin/lib/File/RandomAccess.pod +2 -2
- data/bin/lib/Image/ExifTool.pm +39 -4
- 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 +10 -4
- data/bin/lib/Image/ExifTool/Canon.pm +3 -2
- data/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
- 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 +14 -1
- 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 +1 -1
- 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 +1 -1
- data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
- data/bin/lib/Image/ExifTool/Geotag.pm +30 -11
- data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
- data/bin/lib/Image/ExifTool/H264.pm +1 -1
- 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 +3 -3
- 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 -35
- 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 +2 -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 +38 -23
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +46 -7
- data/bin/lib/Image/ExifTool/RIFF.pm +83 -5
- 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 +8 -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 +3943 -3807
- data/bin/lib/Image/ExifTool/TagNames.pod +312 -18
- 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 +1 -1
- data/bin/lib/Image/ExifTool/Writer.pl +26 -14
- data/bin/lib/Image/ExifTool/XMP.pm +17 -8
- 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.
|
|
@@ -138,6 +138,7 @@ my %olympusLensTypes = (
|
|
|
138
138
|
'1 15 00' => 'Sigma 10-20mm F4.0-5.6 EX DC HSM', #11
|
|
139
139
|
'1 16 00' => 'Sigma APO 70-200mm F2.8 II EX DG Macro HSM', #11
|
|
140
140
|
'1 17 00' => 'Sigma 50mm F1.4 EX DG HSM', #11
|
|
141
|
+
'1 18 60' => 'Test',
|
|
141
142
|
# Panasonic/Leica lenses
|
|
142
143
|
'2 01 00' => 'Leica D Vario Elmarit 14-50mm F2.8-3.5 Asph.', #11
|
|
143
144
|
'2 01 10' => 'Lumix G Vario 14-45mm F3.5-5.6 Asph. Mega OIS', #16
|
|
@@ -4063,7 +4064,7 @@ Olympus or Epson maker notes in EXIF information.
|
|
|
4063
4064
|
|
|
4064
4065
|
=head1 AUTHOR
|
|
4065
4066
|
|
|
4066
|
-
Copyright 2003-
|
|
4067
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
|
4067
4068
|
|
|
4068
4069
|
This library is free software; you can redistribute it and/or modify it
|
|
4069
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,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
|
|
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
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
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!)
|
|
@@ -415,7 +424,6 @@ my %eeBox = (
|
|
|
415
424
|
# (note: vide is only processed if specific atoms exist in the VideoSampleDesc)
|
|
416
425
|
vide => { %eeStd,
|
|
417
426
|
JPEG => 'stsd',
|
|
418
|
-
# avcC => 'stsd', # (uncomment to parse H264 stream)
|
|
419
427
|
},
|
|
420
428
|
text => { %eeStd },
|
|
421
429
|
meta => { %eeStd },
|
|
@@ -425,6 +433,10 @@ my %eeBox = (
|
|
|
425
433
|
ctbx => { %eeStd }, # (GM cars)
|
|
426
434
|
'' => { 'gps ' => 'moov', 'GPS ' => 'main' }, # (no handler -- in top level 'moov' box, and main)
|
|
427
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
|
+
);
|
|
428
440
|
|
|
429
441
|
# QuickTime atoms
|
|
430
442
|
%Image::ExifTool::QuickTime::Main = (
|
|
@@ -673,7 +685,7 @@ my %eeBox = (
|
|
|
673
685
|
ValueConv => '$val=~tr/-/:/; $val',
|
|
674
686
|
ValueConvInv => '$val=~s/(\d+):(\d+):/$1-$2-/; $val',
|
|
675
687
|
PrintConv => '$self->ConvertDateTime($val)',
|
|
676
|
-
PrintConvInv => '$self->InverseDateTime($val)',
|
|
688
|
+
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
|
677
689
|
},
|
|
678
690
|
gps0 => { #PH (DuDuBell M1, VSYS M6L)
|
|
679
691
|
Name => 'GPSTrack',
|
|
@@ -1406,7 +1418,7 @@ my %eeBox = (
|
|
|
1406
1418
|
return $val;
|
|
1407
1419
|
},
|
|
1408
1420
|
PrintConv => '$self->ConvertDateTime($val)',
|
|
1409
|
-
PrintConvInv => '$self->InverseDateTime($val)',
|
|
1421
|
+
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
|
1410
1422
|
},
|
|
1411
1423
|
"\xa9ART" => 'Artist', #PH (iTunes 8.0.2)
|
|
1412
1424
|
"\xa9alb" => 'Album', #PH (iTunes 8.0.2)
|
|
@@ -1680,7 +1692,7 @@ my %eeBox = (
|
|
|
1680
1692
|
return $val;
|
|
1681
1693
|
},
|
|
1682
1694
|
PrintConv => '$self->ConvertDateTime($val)',
|
|
1683
|
-
PrintConvInv => '$self->InverseDateTime($val)',
|
|
1695
|
+
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
|
1684
1696
|
},
|
|
1685
1697
|
manu => { # (SX280)
|
|
1686
1698
|
Name => 'Make',
|
|
@@ -2115,7 +2127,7 @@ my %eeBox = (
|
|
|
2115
2127
|
return $val;
|
|
2116
2128
|
},
|
|
2117
2129
|
PrintConv => '$self->ConvertDateTime($val)',
|
|
2118
|
-
PrintConvInv => '$self->InverseDateTime($val)',
|
|
2130
|
+
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
|
2119
2131
|
},
|
|
2120
2132
|
'@xyz' => { #PH (iPhone 3GS)
|
|
2121
2133
|
Name => 'GPSCoordinates',
|
|
@@ -3013,7 +3025,7 @@ my %eeBox = (
|
|
|
3013
3025
|
return $val;
|
|
3014
3026
|
},
|
|
3015
3027
|
PrintConv => '$self->ConvertDateTime($val)',
|
|
3016
|
-
PrintConvInv => '$self->InverseDateTime($val)',
|
|
3028
|
+
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
|
3017
3029
|
},
|
|
3018
3030
|
"\xa9des" => 'Description', #4
|
|
3019
3031
|
"\xa9enc" => 'EncodedBy', #10
|
|
@@ -6191,7 +6203,7 @@ my %eeBox = (
|
|
|
6191
6203
|
return $val;
|
|
6192
6204
|
},
|
|
6193
6205
|
PrintConv => '$self->ConvertDateTime($val)',
|
|
6194
|
-
PrintConvInv => '$self->InverseDateTime($val)',
|
|
6206
|
+
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
|
6195
6207
|
},
|
|
6196
6208
|
description => { },
|
|
6197
6209
|
director => { },
|
|
@@ -6251,7 +6263,7 @@ my %eeBox = (
|
|
|
6251
6263
|
return $val;
|
|
6252
6264
|
},
|
|
6253
6265
|
PrintConv => '$self->ConvertDateTime($val)',
|
|
6254
|
-
PrintConvInv => '$self->InverseDateTime($val)',
|
|
6266
|
+
PrintConvInv => '$self->InverseDateTime($val,1)', # (add time zone if it didn't exist)
|
|
6255
6267
|
},
|
|
6256
6268
|
'direction.facing' => { Name => 'CameraDirection', Groups => { 2 => 'Location' } },
|
|
6257
6269
|
'direction.motion' => { Name => 'CameraMotion', Groups => { 2 => 'Location' } },
|
|
@@ -8639,10 +8651,10 @@ sub ProcessSampleDesc($$$)
|
|
|
8639
8651
|
my $dirLen = $$dirInfo{DirLen} || (length($$dataPt) - $pos);
|
|
8640
8652
|
return 0 if $pos + 8 > $dirLen;
|
|
8641
8653
|
|
|
8642
|
-
my $num = Get32u($dataPt, 4); # get number of sample
|
|
8654
|
+
my $num = Get32u($dataPt, 4); # get number of sample entries in table
|
|
8643
8655
|
$pos += 8;
|
|
8644
8656
|
my $i;
|
|
8645
|
-
for ($i=0; $i<$num; ++$i) { # loop through sample
|
|
8657
|
+
for ($i=0; $i<$num; ++$i) { # loop through sample entries
|
|
8646
8658
|
last if $pos + 8 > $dirLen;
|
|
8647
8659
|
my $size = Get32u($dataPt, $pos);
|
|
8648
8660
|
last if $pos + $size > $dirLen;
|
|
@@ -8875,7 +8887,7 @@ sub ProcessMOV($$;$)
|
|
|
8875
8887
|
my $dirID = $$dirInfo{DirID} || '';
|
|
8876
8888
|
my $charsetQuickTime = $et->Options('CharsetQuickTime');
|
|
8877
8889
|
my ($buff, $tag, $size, $track, $isUserData, %triplet, $doDefaultLang, $index);
|
|
8878
|
-
my ($dirEnd, $
|
|
8890
|
+
my ($dirEnd, $unkOpt, %saveOptions, $atomCount);
|
|
8879
8891
|
|
|
8880
8892
|
my $topLevel = not $$et{InQuickTime};
|
|
8881
8893
|
$$et{InQuickTime} = 1;
|
|
@@ -8939,8 +8951,8 @@ sub ProcessMOV($$;$)
|
|
|
8939
8951
|
}
|
|
8940
8952
|
$$raf{NoBuffer} = 1 if $et->Options('FastScan'); # disable buffering in FastScan mode
|
|
8941
8953
|
|
|
8942
|
-
|
|
8943
|
-
|
|
8954
|
+
my $ee = $$et{OPTIONS}{ExtractEmbedded};
|
|
8955
|
+
if ($ee) {
|
|
8944
8956
|
$unkOpt = $$et{OPTIONS}{Unknown};
|
|
8945
8957
|
require 'Image/ExifTool/QuickTimeStream.pl';
|
|
8946
8958
|
}
|
|
@@ -9023,6 +9035,9 @@ sub ProcessMOV($$;$)
|
|
|
9023
9035
|
} elsif ($handlerType ne 'vide' and not $$et{OPTIONS}{Validate}) {
|
|
9024
9036
|
EEWarn($et);
|
|
9025
9037
|
}
|
|
9038
|
+
} elsif ($ee and $ee > 1 and $eeBox2{$handlerType} and $eeBox2{$handlerType}{$tag}) {
|
|
9039
|
+
$eeTag = 1;
|
|
9040
|
+
$$et{OPTIONS}{Unknown} = 1;
|
|
9026
9041
|
}
|
|
9027
9042
|
my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
|
|
9028
9043
|
|
|
@@ -9491,7 +9506,7 @@ information from QuickTime and MP4 video, M4A audio, and HEIC image files.
|
|
|
9491
9506
|
|
|
9492
9507
|
=head1 AUTHOR
|
|
9493
9508
|
|
|
9494
|
-
Copyright 2003-
|
|
9509
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
|
9495
9510
|
|
|
9496
9511
|
This library is free software; you can redistribute it and/or modify it
|
|
9497
9512
|
under the same terms as Perl itself.
|