exiftool_vendored 12.72.0 → 12.74.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/Changes +42 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +3 -3
- data/bin/exiftool +75 -53
- data/bin/lib/File/RandomAccess.pm +32 -6
- data/bin/lib/File/RandomAccess.pod +6 -6
- data/bin/lib/Image/ExifTool/7Z.pm +3 -3
- data/bin/lib/Image/ExifTool/AAC.pm +8 -6
- data/bin/lib/Image/ExifTool/AES.pm +1 -1
- data/bin/lib/Image/ExifTool/AFCP.pm +3 -3
- 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 +3 -3
- data/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +7 -7
- data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
- data/bin/lib/Image/ExifTool/Canon.pm +4 -4
- 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 +3 -3
- 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 +3 -3
- data/bin/lib/Image/ExifTool/DJI.pm +1 -1
- data/bin/lib/Image/ExifTool/DNG.pm +5 -5
- data/bin/lib/Image/ExifTool/DPX.pm +1 -1
- 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 +3 -3
- 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 +3 -3
- data/bin/lib/Image/ExifTool/Fixup.pm +4 -4
- data/bin/lib/Image/ExifTool/Flash.pm +1 -1
- data/bin/lib/Image/ExifTool/FlashPix.pm +61 -8
- 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 +9 -4
- 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 +4 -4
- 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 +3 -3
- data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
- data/bin/lib/Image/ExifTool/ICO.pm +1 -1
- data/bin/lib/Image/ExifTool/ID3.pm +3 -3
- 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 +6 -6
- data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- data/bin/lib/Image/ExifTool/InfiRay.pm +1 -1
- data/bin/lib/Image/ExifTool/JPEG.pm +5 -2
- data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- data/bin/lib/Image/ExifTool/JSON.pm +3 -3
- data/bin/lib/Image/ExifTool/JVC.pm +3 -3
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +18 -7
- data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
- data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/LIF.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 +4 -4
- data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/fr.pm +4 -5
- data/bin/lib/Image/ExifTool/Lang/it.pm +3 -3
- 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/sk.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 +3 -3
- 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 +5 -5
- data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
- data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/MISB.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/MRC.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 +3 -3
- data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
- data/bin/lib/Image/ExifTool/Nikon.pm +11 -8
- data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- data/bin/lib/Image/ExifTool/NikonCustom.pm +4 -4
- data/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
- 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 +3 -3
- 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/Other.pm +1 -1
- data/bin/lib/Image/ExifTool/PCX.pm +1 -1
- data/bin/lib/Image/ExifTool/PDF.pm +1 -1
- 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 +4 -4
- data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
- data/bin/lib/Image/ExifTool/PNG.pm +24 -2
- 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 +27 -2
- data/bin/lib/Image/ExifTool/PanasonicRaw.pm +4 -4
- data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +32 -11
- data/bin/lib/Image/ExifTool/PhaseOne.pm +6 -6
- 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 +4 -4
- data/bin/lib/Image/ExifTool/PostScript.pm +3 -3
- 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 +54 -101
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +97 -7
- data/bin/lib/Image/ExifTool/RIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/RSRC.pm +3 -3
- 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 +3 -3
- data/bin/lib/Image/ExifTool/Samsung.pm +5 -5
- 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 +2 -2
- 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 +4 -4
- data/bin/lib/Image/ExifTool/Sony.pm +5 -5
- 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 +4 -4
- data/bin/lib/Image/ExifTool/TagLookup.pm +3876 -3862
- data/bin/lib/Image/ExifTool/TagNames.pod +11420 -11382
- 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/WPG.pm +1 -1
- data/bin/lib/Image/ExifTool/WTV.pm +1 -1
- data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +2 -2
- data/bin/lib/Image/ExifTool/WriteExif.pl +16 -16
- data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePDF.pl +2 -2
- 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 +5 -2
- data/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteXMP.pl +9 -5
- data/bin/lib/Image/ExifTool/Writer.pl +72 -43
- data/bin/lib/Image/ExifTool/XISF.pm +1 -1
- data/bin/lib/Image/ExifTool/XMP.pm +19 -3
- data/bin/lib/Image/ExifTool/XMP2.pl +1 -1
- data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- data/bin/lib/Image/ExifTool/ZIP.pm +7 -7
- data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- data/bin/lib/Image/ExifTool/iWork.pm +1 -1
- data/bin/lib/Image/ExifTool.pm +44 -25
- data/bin/lib/Image/ExifTool.pod +12 -3
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
@@ -221,7 +221,7 @@ characteristics of TXT and CSV files.
|
|
221
221
|
|
222
222
|
=head1 AUTHOR
|
223
223
|
|
224
|
-
Copyright 2003-
|
224
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
225
225
|
|
226
226
|
This library is free software; you can redistribute it and/or modify it
|
227
227
|
under the same terms as Perl itself.
|
@@ -122,7 +122,7 @@ information from Theora video streams.
|
|
122
122
|
|
123
123
|
=head1 AUTHOR
|
124
124
|
|
125
|
-
Copyright 2003-
|
125
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
126
126
|
|
127
127
|
This library is free software; you can redistribute it and/or modify it
|
128
128
|
under the same terms as Perl itself.
|
@@ -309,7 +309,7 @@ bencoded information from BitTorrent files.
|
|
309
309
|
|
310
310
|
=head1 AUTHOR
|
311
311
|
|
312
|
-
Copyright 2003-
|
312
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
313
313
|
|
314
314
|
This library is free software; you can redistribute it and/or modify it
|
315
315
|
under the same terms as Perl itself.
|
@@ -53,7 +53,7 @@ unknown manufacturers.
|
|
53
53
|
|
54
54
|
=head1 AUTHOR
|
55
55
|
|
56
|
-
Copyright 2003-
|
56
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
57
57
|
|
58
58
|
This library is free software; you can redistribute it and/or modify it
|
59
59
|
under the same terms as Perl itself.
|
@@ -430,7 +430,7 @@ information from vCard VCF and iCalendar ICS files.
|
|
430
430
|
|
431
431
|
=head1 AUTHOR
|
432
432
|
|
433
|
-
Copyright 2003-
|
433
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
434
434
|
|
435
435
|
This library is free software; you can redistribute it and/or modify it
|
436
436
|
under the same terms as Perl itself.
|
@@ -678,7 +678,7 @@ ExifTool Validate option is enabled.
|
|
678
678
|
|
679
679
|
=head1 AUTHOR
|
680
680
|
|
681
|
-
Copyright 2003-
|
681
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
682
682
|
|
683
683
|
This library is free software; you can redistribute it and/or modify it
|
684
684
|
under the same terms as Perl itself.
|
@@ -228,7 +228,7 @@ information from Ogg Vorbis audio headers.
|
|
228
228
|
|
229
229
|
=head1 AUTHOR
|
230
230
|
|
231
|
-
Copyright 2003-
|
231
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
232
232
|
|
233
233
|
This library is free software; you can redistribute it and/or modify it
|
234
234
|
under the same terms as Perl itself.
|
@@ -271,7 +271,7 @@ This module contains definitions required by Image::ExifTool to read WPG
|
|
271
271
|
|
272
272
|
=head1 AUTHOR
|
273
273
|
|
274
|
-
Copyright 2003-
|
274
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
275
275
|
|
276
276
|
This library is free software; you can redistribute it and/or modify it
|
277
277
|
under the same terms as Perl itself.
|
@@ -297,7 +297,7 @@ This module contains definitions required by Image::ExifTool to read WTV
|
|
297
297
|
|
298
298
|
=head1 AUTHOR
|
299
299
|
|
300
|
-
Copyright 2003-
|
300
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
301
301
|
|
302
302
|
This library is free software; you can redistribute it and/or modify it
|
303
303
|
under the same terms as Perl itself.
|
@@ -128,7 +128,7 @@ sub SaveMakerNotes($)
|
|
128
128
|
delete $$et{MAKER_NOTE_INFO};
|
129
129
|
my $dirEntries = $makerInfo->{Entries};
|
130
130
|
my $numEntries = scalar(keys %$dirEntries);
|
131
|
-
my $fixup =
|
131
|
+
my $fixup = Image::ExifTool::Fixup->new;
|
132
132
|
return unless $numEntries;
|
133
133
|
# build the MakerNotes directory
|
134
134
|
my $makerNotes = Set16u($numEntries);
|
@@ -630,7 +630,7 @@ JPEG files, and would lead to far fewer problems with corrupted metadata.
|
|
630
630
|
|
631
631
|
=head1 AUTHOR
|
632
632
|
|
633
|
-
Copyright 2003-
|
633
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
634
634
|
|
635
635
|
This library is free software; you can redistribute it and/or modify it
|
636
636
|
under the same terms as Perl itself.
|
@@ -171,9 +171,9 @@ sub RebuildMakerNotes($$$)
|
|
171
171
|
my $saveOrder = GetByteOrder();
|
172
172
|
my $loc = Image::ExifTool::MakerNotes::LocateIFD($et,\%subdirInfo);
|
173
173
|
if (defined $loc) {
|
174
|
-
my $makerFixup = $subdirInfo{Fixup} =
|
174
|
+
my $makerFixup = $subdirInfo{Fixup} = Image::ExifTool::Fixup->new;
|
175
175
|
# create new exiftool object to rewrite the directory without changing it
|
176
|
-
my $newTool =
|
176
|
+
my $newTool = Image::ExifTool->new;
|
177
177
|
$newTool->Options(
|
178
178
|
IgnoreMinorErrors => $$et{OPTIONS}{IgnoreMinorErrors},
|
179
179
|
FixBase => $$et{OPTIONS}{FixBase},
|
@@ -565,7 +565,7 @@ sub WriteExif($$$)
|
|
565
565
|
my $firstBase = $base;
|
566
566
|
my $raf = $$dirInfo{RAF};
|
567
567
|
my $dirName = $$dirInfo{DirName} || 'unknown';
|
568
|
-
my $fixup = $$dirInfo{Fixup} ||
|
568
|
+
my $fixup = $$dirInfo{Fixup} || Image::ExifTool::Fixup->new;
|
569
569
|
my $imageDataFlag = $$dirInfo{ImageData} || '';
|
570
570
|
my $verbose = $et->Options('Verbose');
|
571
571
|
my $out = $et->Options('TextOut');
|
@@ -745,7 +745,7 @@ sub WriteExif($$$)
|
|
745
745
|
my $valBuff = ''; # buffer for value data
|
746
746
|
my @valFixups; # list of fixups for offsets in valBuff
|
747
747
|
# fixup for offsets in dirBuff
|
748
|
-
my $dirFixup =
|
748
|
+
my $dirFixup = Image::ExifTool::Fixup->new;
|
749
749
|
my $entryBasedFixup;
|
750
750
|
my $lastTagID = -1;
|
751
751
|
my ($oldInfo, $oldFormat, $oldFormName, $oldCount, $oldSize, $oldValue, $oldImageData);
|
@@ -896,7 +896,7 @@ Entry: for (;;) {
|
|
896
896
|
TagInfo => $oldInfo || $tmpInfo,
|
897
897
|
Offset => $base + $valuePtr + $dataPos,
|
898
898
|
Size => $oldSize,
|
899
|
-
Fixup =>
|
899
|
+
Fixup => Image::ExifTool::Fixup->new,
|
900
900
|
},
|
901
901
|
$invalidPreview = 2;
|
902
902
|
# remove SubDirectory to prevent processing (for now)
|
@@ -1348,7 +1348,7 @@ NoOverwrite: next if $isNew > 0;
|
|
1348
1348
|
# create empty source directory
|
1349
1349
|
my %sourceDir = (
|
1350
1350
|
Parent => $dirName,
|
1351
|
-
Fixup =>
|
1351
|
+
Fixup => Image::ExifTool::Fixup->new,
|
1352
1352
|
);
|
1353
1353
|
$sourceDir{DirName} = $$newInfo{Groups}{1} if $$newInfo{SubIFD};
|
1354
1354
|
$newValue = $et->WriteDirectory(\%sourceDir, $subTable);
|
@@ -1509,7 +1509,7 @@ NoOverwrite: next if $isNew > 0;
|
|
1509
1509
|
}
|
1510
1510
|
if (defined $loc) {
|
1511
1511
|
# we need fixup data for this subdirectory
|
1512
|
-
$subdirInfo{Fixup} =
|
1512
|
+
$subdirInfo{Fixup} = Image::ExifTool::Fixup->new;
|
1513
1513
|
# rewrite maker notes
|
1514
1514
|
my $changed = $$et{CHANGED};
|
1515
1515
|
$subdir = $et->WriteDirectory(\%subdirInfo, $subTable, $writeProc);
|
@@ -1673,7 +1673,7 @@ NoOverwrite: next if $isNew > 0;
|
|
1673
1673
|
Name => $$newInfo{Name},
|
1674
1674
|
TagInfo => $newInfo,
|
1675
1675
|
Parent => $dirName,
|
1676
|
-
Fixup =>
|
1676
|
+
Fixup => Image::ExifTool::Fixup->new,
|
1677
1677
|
RAF => $raf,
|
1678
1678
|
Subdir => $subdir,
|
1679
1679
|
# set ImageData only for 1st level SubIFD's
|
@@ -1782,7 +1782,7 @@ NoOverwrite: next if $isNew > 0;
|
|
1782
1782
|
#### eval Base ($start,$base)
|
1783
1783
|
$subdirBase += eval $$subdir{Base};
|
1784
1784
|
}
|
1785
|
-
my $subFixup =
|
1785
|
+
my $subFixup = Image::ExifTool::Fixup->new;
|
1786
1786
|
my %subdirInfo = (
|
1787
1787
|
Base => $subdirBase,
|
1788
1788
|
DataPt => $valueDataPt,
|
@@ -1995,7 +1995,7 @@ NoOverwrite: next if $isNew > 0;
|
|
1995
1995
|
# hold onto the PreviewImage until we can determine if it fits
|
1996
1996
|
$$et{PREVIEW_INFO} or $$et{PREVIEW_INFO} = {
|
1997
1997
|
Data => $$newValuePt,
|
1998
|
-
Fixup =>
|
1998
|
+
Fixup => Image::ExifTool::Fixup->new,
|
1999
1999
|
};
|
2000
2000
|
$$et{PREVIEW_INFO}{ChangeBase} = 1 if $$newInfo{ChangeBase};
|
2001
2001
|
if ($$newInfo{IsOffset} and $$newInfo{IsOffset} eq '2') {
|
@@ -2017,7 +2017,7 @@ NoOverwrite: next if $isNew > 0;
|
|
2017
2017
|
$valBuff .= $$newValuePt; # add value data to buffer
|
2018
2018
|
# must save a fixup pointer for every pointer in the directory
|
2019
2019
|
if ($entryBased) {
|
2020
|
-
$entryBasedFixup or $entryBasedFixup =
|
2020
|
+
$entryBasedFixup or $entryBasedFixup = Image::ExifTool::Fixup->new;
|
2021
2021
|
$entryBasedFixup->AddFixup(length($dirBuff) + 8, $dataTag);
|
2022
2022
|
} else {
|
2023
2023
|
$dirFixup->AddFixup(length($dirBuff) + 8, $dataTag);
|
@@ -2451,7 +2451,7 @@ NoOverwrite: next if $isNew > 0;
|
|
2451
2451
|
$newOffset += $blockSize; # data comes after other deferred data
|
2452
2452
|
# create fixup for SubIFD ImageData
|
2453
2453
|
if ($imageDataFlag eq 'SubIFD' and not $subIfdDataFixup) {
|
2454
|
-
$subIfdDataFixup =
|
2454
|
+
$subIfdDataFixup = Image::ExifTool::Fixup->new;
|
2455
2455
|
$imageData[-1][4] = $subIfdDataFixup;
|
2456
2456
|
}
|
2457
2457
|
$size += $pad; # account for pad byte if necessary
|
@@ -2522,7 +2522,7 @@ NoOverwrite: next if $isNew > 0;
|
|
2522
2522
|
# hold onto the PreviewImage until we can determine if it fits
|
2523
2523
|
$$et{PREVIEW_INFO} or $$et{PREVIEW_INFO} = {
|
2524
2524
|
Data => $buff,
|
2525
|
-
Fixup =>
|
2525
|
+
Fixup => Image::ExifTool::Fixup->new,
|
2526
2526
|
};
|
2527
2527
|
if ($$tagInfo{IsOffset} and $$tagInfo{IsOffset} eq '2') {
|
2528
2528
|
$$et{PREVIEW_INFO}{NoBaseShift} = 1;
|
@@ -2603,7 +2603,7 @@ NoOverwrite: next if $isNew > 0;
|
|
2603
2603
|
$fixup->AddFixup($entry + 8);
|
2604
2604
|
# create special fixup for SubIFD data
|
2605
2605
|
if ($imageDataFlag eq 'SubIFD') {
|
2606
|
-
my $subIfdDataFixup =
|
2606
|
+
my $subIfdDataFixup = Image::ExifTool::Fixup->new;
|
2607
2607
|
$subIfdDataFixup->AddFixup($entry + 8);
|
2608
2608
|
# save fixup in imageData list
|
2609
2609
|
$$blockInfo[4] = $subIfdDataFixup;
|
@@ -2668,7 +2668,7 @@ NoOverwrite: next if $isNew > 0;
|
|
2668
2668
|
} else {
|
2669
2669
|
# Doesn't fit, or we still don't know, so save fixup information
|
2670
2670
|
# and put the preview at the end of the file
|
2671
|
-
$$previewInfo{Fixup} or $$previewInfo{Fixup} =
|
2671
|
+
$$previewInfo{Fixup} or $$previewInfo{Fixup} = Image::ExifTool::Fixup->new;
|
2672
2672
|
$$previewInfo{Fixup}->AddFixup($fixup);
|
2673
2673
|
}
|
2674
2674
|
} elsif (defined $newData and $deleteAll) {
|
@@ -2722,7 +2722,7 @@ This file contains routines to write EXIF metadata.
|
|
2722
2722
|
|
2723
2723
|
=head1 AUTHOR
|
2724
2724
|
|
2725
|
-
Copyright 2003-
|
2725
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
2726
2726
|
|
2727
2727
|
This library is free software; you can redistribute it and/or modify it
|
2728
2728
|
under the same terms as Perl itself.
|
@@ -711,7 +711,7 @@ seldom-used routines.
|
|
711
711
|
|
712
712
|
=head1 AUTHOR
|
713
713
|
|
714
|
-
Copyright 2003-
|
714
|
+
Copyright 2003-2024, 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.
|
@@ -290,7 +290,7 @@ sub WritePDF($$)
|
|
290
290
|
$raf->Seek($pos, 0);
|
291
291
|
|
292
292
|
# create a new ExifTool object and use it to read PDF and XMP information
|
293
|
-
my $newTool =
|
293
|
+
my $newTool = Image::ExifTool->new;
|
294
294
|
$newTool->Options(List => 1);
|
295
295
|
$newTool->Options(Password => $et->Options('Password'));
|
296
296
|
$newTool->Options(NoPDFList => $et->Options('NoPDFList'));
|
@@ -753,7 +753,7 @@ C<PDF-update> pseudo group).
|
|
753
753
|
|
754
754
|
=head1 AUTHOR
|
755
755
|
|
756
|
-
Copyright 2003-
|
756
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
757
757
|
|
758
758
|
This library is free software; you can redistribute it and/or modify it
|
759
759
|
under the same terms as Perl itself.
|
@@ -401,7 +401,7 @@ strings).
|
|
401
401
|
|
402
402
|
=head1 AUTHOR
|
403
403
|
|
404
|
-
Copyright 2003-
|
404
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
405
405
|
|
406
406
|
This library is free software; you can redistribute it and/or modify it
|
407
407
|
under the same terms as Perl itself.
|
@@ -257,7 +257,7 @@ default resource name, and applied if no appended name is provided.
|
|
257
257
|
|
258
258
|
=head1 AUTHOR
|
259
259
|
|
260
|
-
Copyright 2003-
|
260
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
261
261
|
|
262
262
|
This library is free software; you can redistribute it and/or modify it
|
263
263
|
under the same terms as Perl itself.
|
@@ -687,7 +687,7 @@ Thanks to Tim Kordick for his help testing the EPS writer.
|
|
687
687
|
|
688
688
|
=head1 AUTHOR
|
689
689
|
|
690
|
-
Copyright 2003-
|
690
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
691
691
|
|
692
692
|
This library is free software; you can redistribute it and/or modify it
|
693
693
|
under the same terms as Perl itself.
|
@@ -169,8 +169,11 @@ sub ConvInvISO6709($)
|
|
169
169
|
# with more than 5 digits after the decimal place:
|
170
170
|
# https://exiftool.org/forum/index.php?topic=11055.msg67171#msg67171 )
|
171
171
|
my @fmt = ('%s%02d.%s%s','%s%03d.%s%s','%s%d.%s%s');
|
172
|
+
my @limit = (90,180);
|
172
173
|
foreach (@a) {
|
173
174
|
return undef unless Image::ExifTool::IsFloat($_);
|
175
|
+
my $lim = shift @limit;
|
176
|
+
warn((@limit ? 'Lat' : 'Long') . "itude out of range\n") if $lim and abs($_) > $lim;
|
174
177
|
$_ =~ s/^([-+]?)(\d+)\.?(\d*)/sprintf(shift(@fmt),$1||'+',$2,$3,length($3)<3 ? '0'x(3-length($3)) : '')/e;
|
175
178
|
}
|
176
179
|
return join '', @a, '/';
|
@@ -782,7 +785,7 @@ sub WriteQuickTime($$$)
|
|
782
785
|
my ($rtnVal, $rtnErr) = $dataPt ? (undef, undef) : (1, 0);
|
783
786
|
|
784
787
|
if ($dataPt) {
|
785
|
-
$raf =
|
788
|
+
$raf = File::RandomAccess->new($dataPt);
|
786
789
|
} else {
|
787
790
|
return 0 unless $raf;
|
788
791
|
}
|
@@ -1958,7 +1961,7 @@ QuickTime-based file formats like MOV and MP4.
|
|
1958
1961
|
|
1959
1962
|
=head1 AUTHOR
|
1960
1963
|
|
1961
|
-
Copyright 2003-
|
1964
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
1962
1965
|
|
1963
1966
|
This library is free software; you can redistribute it and/or modify it
|
1964
1967
|
under the same terms as Perl itself.
|
@@ -363,7 +363,7 @@ Currently writes only WebP files.
|
|
363
363
|
|
364
364
|
=head1 AUTHOR
|
365
365
|
|
366
|
-
Copyright 2003-
|
366
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
367
367
|
|
368
368
|
This library is free software; you can redistribute it and/or modify it
|
369
369
|
under the same terms as Perl itself.
|
@@ -137,13 +137,15 @@ sub ValidateProperty($$;$)
|
|
137
137
|
|
138
138
|
#------------------------------------------------------------------------------
|
139
139
|
# Check XMP date values for validity and format accordingly
|
140
|
-
# Inputs: 1) EXIF-format date string
|
140
|
+
# Inputs: 1) EXIF-format date string (XMP-format also accepted)
|
141
141
|
# Returns: XMP date/time string (or undef on error)
|
142
142
|
sub FormatXMPDate($)
|
143
143
|
{
|
144
144
|
my $val = shift;
|
145
145
|
my ($y, $m, $d, $t, $tz);
|
146
|
-
if ($val =~ /(\d{4}):(\d{2}):(\d{2}) (\d{2}:\d{2}(?::\d{2}(?:\.\d*)?)?)(.*)/
|
146
|
+
if ($val =~ /(\d{4}):(\d{2}):(\d{2}) (\d{2}:\d{2}(?::\d{2}(?:\.\d*)?)?)(.*)/ or
|
147
|
+
$val =~ /(\d{4})-(\d{2})-(\d{2})T(\d{2}:\d{2}(?::\d{2}(?:\.\d*)?)?)(.*)/)
|
148
|
+
{
|
147
149
|
($y, $m, $d, $t, $tz) = ($1, $2, $3, $4, $5);
|
148
150
|
$val = "$y-$m-${d}T$t";
|
149
151
|
} elsif ($val =~ /^\s*\d{4}(:\d{2}){0,2}\s*$/) {
|
@@ -1081,6 +1083,8 @@ sub WriteXMP($$;$)
|
|
1081
1083
|
# delete all structure (or pseudo-structure) elements
|
1082
1084
|
require 'Image/ExifTool/XMPStruct.pl';
|
1083
1085
|
($deleted, $added, $existed) = DeleteStruct($et, \%capture, \$path, $nvHash, \$changed);
|
1086
|
+
# don't add if it didn't exist and not IsCreating and Avoid
|
1087
|
+
undef $added if not $existed and not $$nvHash{IsCreating} and $$tagInfo{Avoid};
|
1084
1088
|
next unless $deleted or $added or $et->IsOverwriting($nvHash);
|
1085
1089
|
next if $existed and $$nvHash{CreateOnly};
|
1086
1090
|
} elsif ($cap) {
|
@@ -1260,8 +1264,8 @@ sub WriteXMP($$;$)
|
|
1260
1264
|
# check to see if we want to create this tag
|
1261
1265
|
# (create non-avoided tags in XMP data files by default)
|
1262
1266
|
my $isCreating = ($$nvHash{IsCreating} or (($isStruct or
|
1263
|
-
($preferred and not $$
|
1264
|
-
|
1267
|
+
($preferred and not defined $$nvHash{Shift})) and
|
1268
|
+
not $$tagInfo{Avoid} and not $$nvHash{EditOnly}));
|
1265
1269
|
|
1266
1270
|
# don't add new values unless...
|
1267
1271
|
# ...tag existed before and was deleted, or we added it to a list
|
@@ -1635,7 +1639,7 @@ This file contains routines to write XMP metadata.
|
|
1635
1639
|
|
1636
1640
|
=head1 AUTHOR
|
1637
1641
|
|
1638
|
-
Copyright 2003-
|
1642
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
1639
1643
|
|
1640
1644
|
This library is free software; you can redistribute it and/or modify it
|
1641
1645
|
under the same terms as Perl itself.
|