exiftool-vendored.pl 12.72.0 → 12.76.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.
- package/bin/Changes +64 -1
- package/bin/META.json +1 -1
- package/bin/META.yml +1 -1
- package/bin/README +47 -46
- package/bin/exiftool +123 -96
- package/bin/lib/File/RandomAccess.pm +32 -6
- package/bin/lib/File/RandomAccess.pod +6 -6
- package/bin/lib/Image/ExifTool/7Z.pm +3 -3
- package/bin/lib/Image/ExifTool/AAC.pm +8 -6
- package/bin/lib/Image/ExifTool/AES.pm +1 -1
- package/bin/lib/Image/ExifTool/AFCP.pm +3 -3
- package/bin/lib/Image/ExifTool/AIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/APE.pm +1 -1
- package/bin/lib/Image/ExifTool/APP12.pm +1 -1
- package/bin/lib/Image/ExifTool/ASF.pm +1 -1
- package/bin/lib/Image/ExifTool/Apple.pm +1 -1
- package/bin/lib/Image/ExifTool/Audible.pm +1 -1
- package/bin/lib/Image/ExifTool/BMP.pm +1 -1
- package/bin/lib/Image/ExifTool/BPG.pm +1 -1
- package/bin/lib/Image/ExifTool/BZZ.pm +3 -3
- package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/BuildTagLookup.pm +9 -9
- package/bin/lib/Image/ExifTool/CBOR.pm +1 -1
- package/bin/lib/Image/ExifTool/Canon.pm +7 -6
- package/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
- package/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/CanonVRD.pm +3 -3
- package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- package/bin/lib/Image/ExifTool/Casio.pm +1 -1
- package/bin/lib/Image/ExifTool/Charset.pm +1 -1
- package/bin/lib/Image/ExifTool/DICOM.pm +3 -3
- package/bin/lib/Image/ExifTool/DJI.pm +1 -1
- package/bin/lib/Image/ExifTool/DNG.pm +5 -5
- package/bin/lib/Image/ExifTool/DPX.pm +1 -1
- package/bin/lib/Image/ExifTool/DV.pm +1 -1
- package/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
- package/bin/lib/Image/ExifTool/DjVu.pm +1 -1
- package/bin/lib/Image/ExifTool/EXE.pm +1 -1
- package/bin/lib/Image/ExifTool/Exif.pm +4 -3
- package/bin/lib/Image/ExifTool/FITS.pm +1 -1
- package/bin/lib/Image/ExifTool/FLAC.pm +1 -1
- package/bin/lib/Image/ExifTool/FLIF.pm +1 -1
- package/bin/lib/Image/ExifTool/FLIR.pm +3 -3
- package/bin/lib/Image/ExifTool/Fixup.pm +4 -4
- package/bin/lib/Image/ExifTool/Flash.pm +1 -1
- package/bin/lib/Image/ExifTool/FlashPix.pm +61 -8
- package/bin/lib/Image/ExifTool/Font.pm +1 -1
- package/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
- package/bin/lib/Image/ExifTool/FujiFilm.pm +9 -4
- package/bin/lib/Image/ExifTool/GE.pm +1 -1
- package/bin/lib/Image/ExifTool/GIF.pm +1 -1
- package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
- package/bin/lib/Image/ExifTool/GPS.pm +1 -1
- package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
- package/bin/lib/Image/ExifTool/Geotag.pm +4 -4
- package/bin/lib/Image/ExifTool/GoPro.pm +1 -1
- package/bin/lib/Image/ExifTool/H264.pm +1 -1
- package/bin/lib/Image/ExifTool/HP.pm +1 -1
- package/bin/lib/Image/ExifTool/HTML.pm +1 -1
- package/bin/lib/Image/ExifTool/HtmlDump.pm +7 -5
- package/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
- package/bin/lib/Image/ExifTool/ICO.pm +1 -1
- package/bin/lib/Image/ExifTool/ID3.pm +3 -3
- package/bin/lib/Image/ExifTool/IPTC.pm +1 -1
- package/bin/lib/Image/ExifTool/ISO.pm +1 -1
- package/bin/lib/Image/ExifTool/ITC.pm +1 -1
- package/bin/lib/Image/ExifTool/Import.pm +6 -6
- package/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- package/bin/lib/Image/ExifTool/InfiRay.pm +1 -1
- package/bin/lib/Image/ExifTool/JPEG.pm +5 -2
- package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- package/bin/lib/Image/ExifTool/JSON.pm +3 -3
- package/bin/lib/Image/ExifTool/JVC.pm +3 -3
- package/bin/lib/Image/ExifTool/Jpeg2000.pm +67 -17
- package/bin/lib/Image/ExifTool/Kodak.pm +1 -1
- package/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/LIF.pm +1 -1
- package/bin/lib/Image/ExifTool/LNK.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/es.pm +4 -4
- package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/fr.pm +4 -5
- package/bin/lib/Image/ExifTool/Lang/it.pm +3 -3
- package/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/sk.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
- package/bin/lib/Image/ExifTool/Leaf.pm +3 -3
- package/bin/lib/Image/ExifTool/Lytro.pm +1 -1
- package/bin/lib/Image/ExifTool/M2TS.pm +1 -1
- package/bin/lib/Image/ExifTool/MIE.pm +5 -5
- package/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
- package/bin/lib/Image/ExifTool/MIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/MISB.pm +1 -1
- package/bin/lib/Image/ExifTool/MNG.pm +1 -1
- package/bin/lib/Image/ExifTool/MOI.pm +1 -1
- package/bin/lib/Image/ExifTool/MPC.pm +1 -1
- package/bin/lib/Image/ExifTool/MPEG.pm +1 -1
- package/bin/lib/Image/ExifTool/MPF.pm +1 -1
- package/bin/lib/Image/ExifTool/MRC.pm +1 -1
- package/bin/lib/Image/ExifTool/MWG.pm +1 -1
- package/bin/lib/Image/ExifTool/MXF.pm +1 -1
- package/bin/lib/Image/ExifTool/MacOS.pm +1 -1
- package/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
- package/bin/lib/Image/ExifTool/Matroska.pm +1 -1
- package/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
- package/bin/lib/Image/ExifTool/Minolta.pm +1 -1
- package/bin/lib/Image/ExifTool/MinoltaRaw.pm +3 -3
- package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
- package/bin/lib/Image/ExifTool/Nikon.pm +11 -8
- package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- package/bin/lib/Image/ExifTool/NikonCustom.pm +4 -4
- package/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
- package/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
- package/bin/lib/Image/ExifTool/OOXML.pm +1 -1
- package/bin/lib/Image/ExifTool/Ogg.pm +3 -3
- package/bin/lib/Image/ExifTool/Olympus.pm +1 -1
- package/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
- package/bin/lib/Image/ExifTool/Opus.pm +1 -1
- package/bin/lib/Image/ExifTool/Other.pm +1 -1
- package/bin/lib/Image/ExifTool/PCX.pm +1 -1
- package/bin/lib/Image/ExifTool/PDF.pm +55 -5
- package/bin/lib/Image/ExifTool/PGF.pm +1 -1
- package/bin/lib/Image/ExifTool/PICT.pm +1 -1
- package/bin/lib/Image/ExifTool/PLIST.pm +4 -4
- package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
- package/bin/lib/Image/ExifTool/PNG.pm +24 -2
- package/bin/lib/Image/ExifTool/PPM.pm +1 -1
- package/bin/lib/Image/ExifTool/PSP.pm +1 -1
- package/bin/lib/Image/ExifTool/Palm.pm +1 -1
- package/bin/lib/Image/ExifTool/Panasonic.pm +27 -2
- package/bin/lib/Image/ExifTool/PanasonicRaw.pm +4 -4
- package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
- package/bin/lib/Image/ExifTool/Pentax.pm +32 -11
- package/bin/lib/Image/ExifTool/PhaseOne.pm +6 -6
- package/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
- package/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
- package/bin/lib/Image/ExifTool/Photoshop.pm +4 -4
- package/bin/lib/Image/ExifTool/PostScript.pm +3 -3
- package/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
- package/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
- package/bin/lib/Image/ExifTool/QuickTime.pm +55 -101
- package/bin/lib/Image/ExifTool/QuickTimeStream.pl +97 -7
- package/bin/lib/Image/ExifTool/RIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/RSRC.pm +3 -3
- package/bin/lib/Image/ExifTool/RTF.pm +1 -1
- package/bin/lib/Image/ExifTool/Radiance.pm +1 -1
- package/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
- package/bin/lib/Image/ExifTool/Real.pm +1 -1
- package/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
- package/bin/lib/Image/ExifTool/Red.pm +1 -1
- package/bin/lib/Image/ExifTool/Ricoh.pm +3 -3
- package/bin/lib/Image/ExifTool/Samsung.pm +5 -5
- package/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
- package/bin/lib/Image/ExifTool/Scalado.pm +1 -1
- package/bin/lib/Image/ExifTool/Shift.pl +2 -3
- package/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
- package/bin/lib/Image/ExifTool/Sigma.pm +1 -1
- package/bin/lib/Image/ExifTool/SigmaRaw.pm +4 -4
- package/bin/lib/Image/ExifTool/Sony.pm +5 -5
- package/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
- package/bin/lib/Image/ExifTool/Stim.pm +1 -1
- package/bin/lib/Image/ExifTool/TagInfoXML.pm +4 -4
- package/bin/lib/Image/ExifTool/TagLookup.pm +3879 -3862
- package/bin/lib/Image/ExifTool/TagNames.pod +11439 -11374
- package/bin/lib/Image/ExifTool/Text.pm +1 -1
- package/bin/lib/Image/ExifTool/Theora.pm +1 -1
- package/bin/lib/Image/ExifTool/Torrent.pm +1 -1
- package/bin/lib/Image/ExifTool/Unknown.pm +1 -1
- package/bin/lib/Image/ExifTool/VCard.pm +1 -1
- package/bin/lib/Image/ExifTool/Validate.pm +1 -1
- package/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
- package/bin/lib/Image/ExifTool/WPG.pm +1 -1
- package/bin/lib/Image/ExifTool/WTV.pm +1 -1
- package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +2 -2
- package/bin/lib/Image/ExifTool/WriteExif.pl +27 -24
- package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePDF.pl +2 -2
- package/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
- package/bin/lib/Image/ExifTool/WriteQuickTime.pl +5 -2
- package/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
- package/bin/lib/Image/ExifTool/WriteXMP.pl +9 -5
- package/bin/lib/Image/ExifTool/Writer.pl +74 -45
- package/bin/lib/Image/ExifTool/XISF.pm +1 -1
- package/bin/lib/Image/ExifTool/XMP.pm +20 -3
- package/bin/lib/Image/ExifTool/XMP2.pl +10 -1
- package/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- package/bin/lib/Image/ExifTool/ZIP.pm +7 -7
- package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- package/bin/lib/Image/ExifTool/iWork.pm +1 -1
- package/bin/lib/Image/ExifTool.pm +59 -28
- package/bin/lib/Image/ExifTool.pod +81 -68
- package/bin/perl-Image-ExifTool.spec +45 -44
- package/bin/pp_build_exe.args +5 -5
- package/package.json +5 -5
|
@@ -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);
|
|
@@ -2277,14 +2277,17 @@ NoOverwrite: next if $isNew > 0;
|
|
|
2277
2277
|
$$offsetInfo{0x117} and $$offsetInfo{0x145} and
|
|
2278
2278
|
$$offsetInfo{0x111}[2]==1) # (must be a single strip or the tile offsets could get out of sync)
|
|
2279
2279
|
{
|
|
2280
|
-
#
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2280
|
+
# check the start offsets to see if they are the same
|
|
2281
|
+
if ($$offsetInfo{0x111}[3][0] == $$offsetInfo{0x144}[3][0]) {
|
|
2282
|
+
# some Sony ARW images contain double-referenced raw data stored as both strips
|
|
2283
|
+
# and tiles. Copy the data using only the strip tags, but store the TileOffets
|
|
2284
|
+
# information for updating later (see PanasonicRaw:PatchRawDataOffset for a
|
|
2285
|
+
# description of offsetInfo elements)
|
|
2286
|
+
$$offsetInfo{0x111}[5] = $$offsetInfo{0x144}; # hack to save TileOffsets
|
|
2287
|
+
# delete tile information from offsetInfo because we will copy as strips
|
|
2288
|
+
delete $$offsetInfo{0x144};
|
|
2289
|
+
delete $$offsetInfo{0x145};
|
|
2290
|
+
}
|
|
2288
2291
|
} else {
|
|
2289
2292
|
$et->Error("TIFF $dirName contains both strip and tile data");
|
|
2290
2293
|
}
|
|
@@ -2451,7 +2454,7 @@ NoOverwrite: next if $isNew > 0;
|
|
|
2451
2454
|
$newOffset += $blockSize; # data comes after other deferred data
|
|
2452
2455
|
# create fixup for SubIFD ImageData
|
|
2453
2456
|
if ($imageDataFlag eq 'SubIFD' and not $subIfdDataFixup) {
|
|
2454
|
-
$subIfdDataFixup =
|
|
2457
|
+
$subIfdDataFixup = Image::ExifTool::Fixup->new;
|
|
2455
2458
|
$imageData[-1][4] = $subIfdDataFixup;
|
|
2456
2459
|
}
|
|
2457
2460
|
$size += $pad; # account for pad byte if necessary
|
|
@@ -2522,7 +2525,7 @@ NoOverwrite: next if $isNew > 0;
|
|
|
2522
2525
|
# hold onto the PreviewImage until we can determine if it fits
|
|
2523
2526
|
$$et{PREVIEW_INFO} or $$et{PREVIEW_INFO} = {
|
|
2524
2527
|
Data => $buff,
|
|
2525
|
-
Fixup =>
|
|
2528
|
+
Fixup => Image::ExifTool::Fixup->new,
|
|
2526
2529
|
};
|
|
2527
2530
|
if ($$tagInfo{IsOffset} and $$tagInfo{IsOffset} eq '2') {
|
|
2528
2531
|
$$et{PREVIEW_INFO}{NoBaseShift} = 1;
|
|
@@ -2603,7 +2606,7 @@ NoOverwrite: next if $isNew > 0;
|
|
|
2603
2606
|
$fixup->AddFixup($entry + 8);
|
|
2604
2607
|
# create special fixup for SubIFD data
|
|
2605
2608
|
if ($imageDataFlag eq 'SubIFD') {
|
|
2606
|
-
my $subIfdDataFixup =
|
|
2609
|
+
my $subIfdDataFixup = Image::ExifTool::Fixup->new;
|
|
2607
2610
|
$subIfdDataFixup->AddFixup($entry + 8);
|
|
2608
2611
|
# save fixup in imageData list
|
|
2609
2612
|
$$blockInfo[4] = $subIfdDataFixup;
|
|
@@ -2668,7 +2671,7 @@ NoOverwrite: next if $isNew > 0;
|
|
|
2668
2671
|
} else {
|
|
2669
2672
|
# Doesn't fit, or we still don't know, so save fixup information
|
|
2670
2673
|
# and put the preview at the end of the file
|
|
2671
|
-
$$previewInfo{Fixup} or $$previewInfo{Fixup} =
|
|
2674
|
+
$$previewInfo{Fixup} or $$previewInfo{Fixup} = Image::ExifTool::Fixup->new;
|
|
2672
2675
|
$$previewInfo{Fixup}->AddFixup($fixup);
|
|
2673
2676
|
}
|
|
2674
2677
|
} elsif (defined $newData and $deleteAll) {
|
|
@@ -2722,7 +2725,7 @@ This file contains routines to write EXIF metadata.
|
|
|
2722
2725
|
|
|
2723
2726
|
=head1 AUTHOR
|
|
2724
2727
|
|
|
2725
|
-
Copyright 2003-
|
|
2728
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
2726
2729
|
|
|
2727
2730
|
This library is free software; you can redistribute it and/or modify it
|
|
2728
2731
|
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.
|