exiftool_vendored 12.09.0 → 12.14.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of exiftool_vendored might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bin/Changes +76 -5
- 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 +156 -64
- data/bin/lib/File/RandomAccess.pm +1 -1
- data/bin/lib/File/RandomAccess.pod +2 -2
- data/bin/lib/Image/ExifTool.pm +18 -10
- data/bin/lib/Image/ExifTool.pod +14 -10
- 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 +20 -15
- 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 +1 -1
- data/bin/lib/Image/ExifTool/DNG.pm +1 -1
- 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 +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 +15 -12
- data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- data/bin/lib/Image/ExifTool/JPEG.pm +1 -1
- 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 +3 -3
- 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 +4 -2
- 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 +7 -5
- data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- data/bin/lib/Image/ExifTool/NikonCustom.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 +1 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +4 -2
- 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 +1 -1
- 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 +12 -4
- 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 +28 -18
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +24 -3
- data/bin/lib/Image/ExifTool/RIFF.pm +82 -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 +16 -12
- data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
- data/bin/lib/Image/ExifTool/Stim.pm +3 -3
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +7 -1
- data/bin/lib/Image/ExifTool/TagNames.pod +41 -13
- 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 +5 -4
- data/bin/lib/Image/ExifTool/WriteXMP.pl +1 -1
- data/bin/lib/Image/ExifTool/Writer.pl +31 -17
- data/bin/lib/Image/ExifTool/XMP.pm +17 -8
- data/bin/lib/Image/ExifTool/XMP2.pl +6 -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 +3 -3
@@ -223,7 +223,7 @@ characteristics of TXT and CSV files.
|
|
223
223
|
|
224
224
|
=head1 AUTHOR
|
225
225
|
|
226
|
-
Copyright 2003-
|
226
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
227
227
|
|
228
228
|
This library is free software; you can redistribute it and/or modify it
|
229
229
|
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-2021, 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.
|
@@ -303,7 +303,7 @@ bencoded information from BitTorrent files.
|
|
303
303
|
|
304
304
|
=head1 AUTHOR
|
305
305
|
|
306
|
-
Copyright 2003-
|
306
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
307
307
|
|
308
308
|
This library is free software; you can redistribute it and/or modify it
|
309
309
|
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-2021, 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.
|
@@ -416,7 +416,7 @@ information from vCard VCF and iCalendar ICS files.
|
|
416
416
|
|
417
417
|
=head1 AUTHOR
|
418
418
|
|
419
|
-
Copyright 2003-
|
419
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
420
420
|
|
421
421
|
This library is free software; you can redistribute it and/or modify it
|
422
422
|
under the same terms as Perl itself.
|
@@ -659,7 +659,7 @@ ExifTool Validate option is enabled.
|
|
659
659
|
|
660
660
|
=head1 AUTHOR
|
661
661
|
|
662
|
-
Copyright 2003-
|
662
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
663
663
|
|
664
664
|
This library is free software; you can redistribute it and/or modify it
|
665
665
|
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-2021, 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.
|
@@ -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-2021, 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.
|
@@ -623,7 +623,7 @@ JPEG files, and would lead to far fewer problems with corrupted metadata.
|
|
623
623
|
|
624
624
|
=head1 AUTHOR
|
625
625
|
|
626
|
-
Copyright 2003-
|
626
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
627
627
|
|
628
628
|
This library is free software; you can redistribute it and/or modify it
|
629
629
|
under the same terms as Perl itself.
|
@@ -2563,7 +2563,7 @@ This file contains routines to write EXIF metadata.
|
|
2563
2563
|
|
2564
2564
|
=head1 AUTHOR
|
2565
2565
|
|
2566
|
-
Copyright 2003-
|
2566
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
2567
2567
|
|
2568
2568
|
This library is free software; you can redistribute it and/or modify it
|
2569
2569
|
under the same terms as Perl itself.
|
@@ -715,7 +715,7 @@ seldom-used routines.
|
|
715
715
|
|
716
716
|
=head1 AUTHOR
|
717
717
|
|
718
|
-
Copyright 2003-
|
718
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
719
719
|
|
720
720
|
This library is free software; you can redistribute it and/or modify it
|
721
721
|
under the same terms as Perl itself.
|
@@ -749,7 +749,7 @@ C<PDF-update> pseudo group).
|
|
749
749
|
|
750
750
|
=head1 AUTHOR
|
751
751
|
|
752
|
-
Copyright 2003-
|
752
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
753
753
|
|
754
754
|
This library is free software; you can redistribute it and/or modify it
|
755
755
|
under the same terms as Perl itself.
|
@@ -379,7 +379,7 @@ strings).
|
|
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.
|
@@ -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-2021, 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.
|
@@ -686,7 +686,7 @@ Thanks to Tim Kordick for his help testing the EPS writer.
|
|
686
686
|
|
687
687
|
=head1 AUTHOR
|
688
688
|
|
689
|
-
Copyright 2003-
|
689
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
690
690
|
|
691
691
|
This library is free software; you can redistribute it and/or modify it
|
692
692
|
under the same terms as Perl itself.
|
@@ -159,11 +159,12 @@ sub ConvInvISO6709($)
|
|
159
159
|
my @a = split ' ', $val;
|
160
160
|
if (@a == 2 or @a == 3) {
|
161
161
|
# latitude must have 2 digits before the decimal, and longitude 3,
|
162
|
-
# and all values must start with a "+" or "-"
|
163
|
-
|
162
|
+
# and all values must start with a "+" or "-", and Google Photos
|
163
|
+
# requires at least 3 digits after the decimal point
|
164
|
+
my @fmt = ('%s%02d.%s%s','%s%03d.%s%s','%s%d.%s%s');
|
164
165
|
foreach (@a) {
|
165
166
|
return undef unless Image::ExifTool::IsFloat($_);
|
166
|
-
$_ =~ s/^([-+]?)(\d+)/sprintf(shift(@fmt)
|
167
|
+
$_ =~ s/^([-+]?)(\d+)\.?(\d*)/sprintf(shift(@fmt),$1||'+',$2,$3,length($3)<3 ? '0'x(3-length($3)) : '')/e;
|
167
168
|
}
|
168
169
|
return join '', @a, '/';
|
169
170
|
}
|
@@ -1877,7 +1878,7 @@ QuickTime-based file formats like MOV and MP4.
|
|
1877
1878
|
|
1878
1879
|
=head1 AUTHOR
|
1879
1880
|
|
1880
|
-
Copyright 2003-
|
1881
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
1881
1882
|
|
1882
1883
|
This library is free software; you can redistribute it and/or modify it
|
1883
1884
|
under the same terms as Perl itself.
|
@@ -1613,7 +1613,7 @@ This file contains routines to write XMP metadata.
|
|
1613
1613
|
|
1614
1614
|
=head1 AUTHOR
|
1615
1615
|
|
1616
|
-
Copyright 2003-
|
1616
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
1617
1617
|
|
1618
1618
|
This library is free software; you can redistribute it and/or modify it
|
1619
1619
|
under the same terms as Perl itself.
|
@@ -1987,12 +1987,12 @@ sub SetFileName($$;$$$)
|
|
1987
1987
|
local (*EXIFTOOL_SFN_IN, *EXIFTOOL_SFN_OUT);
|
1988
1988
|
# renaming didn't work, so copy the file instead
|
1989
1989
|
unless ($self->Open(\*EXIFTOOL_SFN_IN, $file)) {
|
1990
|
-
$self->
|
1990
|
+
$self->Error("Error opening '${file}'");
|
1991
1991
|
return -1;
|
1992
1992
|
}
|
1993
1993
|
unless ($self->Open(\*EXIFTOOL_SFN_OUT, $newName, '>')) {
|
1994
1994
|
close EXIFTOOL_SFN_IN;
|
1995
|
-
$self->
|
1995
|
+
$self->Error("Error creating '${newName}'");
|
1996
1996
|
return -1;
|
1997
1997
|
}
|
1998
1998
|
binmode EXIFTOOL_SFN_IN;
|
@@ -2005,7 +2005,7 @@ sub SetFileName($$;$$$)
|
|
2005
2005
|
close EXIFTOOL_SFN_IN;
|
2006
2006
|
if ($err) {
|
2007
2007
|
$self->Unlink($newName); # erase bad output file
|
2008
|
-
$self->
|
2008
|
+
$self->Error("Error writing '${newName}'");
|
2009
2009
|
return -1;
|
2010
2010
|
}
|
2011
2011
|
# preserve modification time
|
@@ -2133,20 +2133,24 @@ sub WriteInfo($$;$$)
|
|
2133
2133
|
}
|
2134
2134
|
if ($numNew == $numPseudo) {
|
2135
2135
|
$rtnVal = 2;
|
2136
|
+
if ((defined $newFileName or defined $newDir) and not ref $infile) {
|
2137
|
+
my $result = $self->SetFileName($infile);
|
2138
|
+
if ($result > 0) {
|
2139
|
+
$infile = $$self{NewName}; # file name changed
|
2140
|
+
$rtnVal = 1;
|
2141
|
+
} elsif ($result < 0) {
|
2142
|
+
return 0; # don't try to do anything else
|
2143
|
+
}
|
2144
|
+
}
|
2136
2145
|
if (not ref $infile or UNIVERSAL::isa($infile,'GLOB')) {
|
2137
2146
|
$self->SetFileModifyDate($infile) > 0 and $rtnVal = 1 if $setModDate;
|
2138
2147
|
$self->SetFileModifyDate($infile, undef, 'FileCreateDate') > 0 and $rtnVal = 1 if $setCreateDate;
|
2139
2148
|
$self->SetSystemTags($infile) > 0 and $rtnVal = 1;
|
2140
2149
|
}
|
2141
|
-
if ((defined $newFileName or defined $newDir) and not ref $infile) {
|
2142
|
-
$self->SetFileName($infile) > 0 and $rtnVal = 1;
|
2143
|
-
}
|
2144
2150
|
if (defined $hardLink or defined $symLink or defined $testName) {
|
2145
|
-
|
2146
|
-
$
|
2147
|
-
$
|
2148
|
-
$symLink and $self->SetFileName($src, $symLink, 'SymLink') and $rtnVal = 1;
|
2149
|
-
$testName and $self->SetFileName($src, $testName, 'Test') and $rtnVal = 1;
|
2151
|
+
$hardLink and $self->SetFileName($infile, $hardLink, 'HardLink') and $rtnVal = 1;
|
2152
|
+
$symLink and $self->SetFileName($infile, $symLink, 'SymLink') and $rtnVal = 1;
|
2153
|
+
$testName and $self->SetFileName($infile, $testName, 'Test') and $rtnVal = 1;
|
2150
2154
|
}
|
2151
2155
|
return $rtnVal;
|
2152
2156
|
} elsif (defined $newFileName and length $newFileName) {
|
@@ -4035,6 +4039,7 @@ sub WriteDirectory($$$;$)
|
|
4035
4039
|
if ($dataPt or $$dirInfo{RAF}) {
|
4036
4040
|
++$$self{CHANGED};
|
4037
4041
|
$out and print $out " Deleting $grp1\n";
|
4042
|
+
$self->Warn('ICC_Profile deleted. Image colors may be affected') if $grp1 eq 'ICC_Profile';
|
4038
4043
|
# can no longer validate TIFF_END if deleting an entire IFD
|
4039
4044
|
delete $$self{TIFF_END} if $dirName =~ /IFD/;
|
4040
4045
|
}
|
@@ -4706,17 +4711,17 @@ sub InverseDateTime($$;$$)
|
|
4706
4711
|
{
|
4707
4712
|
my ($self, $val, $tzFlag, $dateOnly) = @_;
|
4708
4713
|
my ($rtnVal, $tz);
|
4714
|
+
my $fmt = $$self{OPTIONS}{DateFormat};
|
4709
4715
|
# strip off timezone first if it exists
|
4710
|
-
if ($val =~ s/([+-])(\d{1,2}):?(\d{2})\s*(DST)?$//i) {
|
4716
|
+
if (not $fmt and $val =~ s/([+-])(\d{1,2}):?(\d{2})\s*(DST)?$//i) {
|
4711
4717
|
$tz = sprintf("$1%.2d:$3", $2);
|
4712
|
-
} elsif ($val =~ s/Z$//i) {
|
4718
|
+
} elsif (not $fmt and $val =~ s/Z$//i) {
|
4713
4719
|
$tz = 'Z';
|
4714
4720
|
} else {
|
4715
4721
|
$tz = '';
|
4716
4722
|
# allow special value of 'now'
|
4717
4723
|
return $self->TimeNow($tzFlag) if lc($val) eq 'now';
|
4718
4724
|
}
|
4719
|
-
my $fmt = $$self{OPTIONS}{DateFormat};
|
4720
4725
|
# only convert date if a format was specified and the date is recognizable
|
4721
4726
|
if ($fmt) {
|
4722
4727
|
unless (defined $strptimeLib) {
|
@@ -4806,9 +4811,17 @@ TryLib: for ($lib=$strptimeLib; ; $lib='') {
|
|
4806
4811
|
$ss = ':00';
|
4807
4812
|
}
|
4808
4813
|
# construct properly formatted date/time string
|
4809
|
-
if ($a[0]
|
4810
|
-
|
4814
|
+
if ($a[0] < 1 or $a[0] > 12) {
|
4815
|
+
warn "Month '$a[0]' out of range 1..12\n";
|
4816
|
+
return undef;
|
4817
|
+
}
|
4818
|
+
if ($a[1] < 1 or $a[1] > 31) {
|
4819
|
+
warn "Day '$a[1]' out of range 1..31\n";
|
4820
|
+
return undef;
|
4811
4821
|
}
|
4822
|
+
$a[2] > 24 and warn("Hour '$a[2]' out of range 0..24\n"), return undef;
|
4823
|
+
$a[3] > 59 and warn("Minutes '$a[3]' out of range 0..59\n"), return undef;
|
4824
|
+
$rtnVal = "$yr:$a[0]:$a[1] $a[2]:$a[3]$ss$fs$tz";
|
4812
4825
|
} elsif ($dateOnly) {
|
4813
4826
|
$rtnVal = join ':', $yr, @a;
|
4814
4827
|
}
|
@@ -5910,6 +5923,7 @@ sub WriteJPEG($$)
|
|
5910
5923
|
# group delete of APP segments
|
5911
5924
|
if ($$delGroup{$dirName}) {
|
5912
5925
|
$verbose and print $out " Deleting $dirName segment\n";
|
5926
|
+
$self->Warn('ICC_Profile deleted. Image colors may be affected') if $dirName eq 'ICC_Profile';
|
5913
5927
|
++$$self{CHANGED};
|
5914
5928
|
next Marker;
|
5915
5929
|
}
|
@@ -6938,7 +6952,7 @@ used routines.
|
|
6938
6952
|
|
6939
6953
|
=head1 AUTHOR
|
6940
6954
|
|
6941
|
-
Copyright 2003-
|
6955
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
6942
6956
|
|
6943
6957
|
This library is free software; you can redistribute it and/or modify it
|
6944
6958
|
under the same terms as Perl itself.
|
@@ -50,7 +50,7 @@ use Image::ExifTool::Exif;
|
|
50
50
|
use Image::ExifTool::GPS;
|
51
51
|
require Exporter;
|
52
52
|
|
53
|
-
$VERSION = '3.
|
53
|
+
$VERSION = '3.37';
|
54
54
|
@ISA = qw(Exporter);
|
55
55
|
@EXPORT_OK = qw(EscapeXML UnescapeXML);
|
56
56
|
|
@@ -3105,10 +3105,15 @@ sub FoundXMP($$$$;$)
|
|
3105
3105
|
}
|
3106
3106
|
}
|
3107
3107
|
|
3108
|
-
|
3109
|
-
|
3108
|
+
my $xmlGroups;
|
3109
|
+
my $grp0 = $$tagTablePtr{GROUPS}{0};
|
3110
|
+
if (not $ns and $grp0 ne 'XMP') {
|
3110
3111
|
$tagID = $tag;
|
3112
|
+
} elsif ($grp0 eq 'XML' and not $table) {
|
3113
|
+
# this is an XML table (no namespace lookup)
|
3114
|
+
$tagID = "$ns:$tag";
|
3111
3115
|
} else {
|
3116
|
+
$xmlGroups = 1 if $grp0 eq 'XML';
|
3112
3117
|
# look up this tag in the appropriate table
|
3113
3118
|
$table or $table = 'Image::ExifTool::XMP::other';
|
3114
3119
|
$tagTablePtr = GetTagTable($table);
|
@@ -3335,7 +3340,10 @@ NoLoop:
|
|
3335
3340
|
$$et{TAG_EXTRA}{$key}{Struct} = \@structProps;
|
3336
3341
|
$$et{IsStruct} = 1;
|
3337
3342
|
}
|
3338
|
-
if ($
|
3343
|
+
if ($xmlGroups) {
|
3344
|
+
$et->SetGroup($key, 'XML', 0);
|
3345
|
+
$et->SetGroup($key, "XML-$ns", 1);
|
3346
|
+
} elsif ($ns and not $$tagInfo{StaticGroup1}) {
|
3339
3347
|
# set group1 dynamically according to the namespace
|
3340
3348
|
$et->SetGroup($key, "$$tagTablePtr{GROUPS}{0}-$ns");
|
3341
3349
|
}
|
@@ -4027,11 +4035,12 @@ sub ProcessXMP($$;$)
|
|
4027
4035
|
$dirLen = $dataLen = length $$dataPt;
|
4028
4036
|
}
|
4029
4037
|
|
4030
|
-
# extract XMP as a block if specified
|
4038
|
+
# extract XMP/XML as a block if specified
|
4031
4039
|
my $blockName = $$dirInfo{BlockInfo} ? $$dirInfo{BlockInfo}{Name} : 'XMP';
|
4032
4040
|
if (($$et{REQ_TAG_LOOKUP}{lc $blockName} or ($$et{TAGS_FROM_FILE} and
|
4033
|
-
not $$et{EXCL_TAG_LOOKUP}{lc $blockName})) and
|
4034
|
-
($$
|
4041
|
+
not $$et{EXCL_TAG_LOOKUP}{lc $blockName})) and
|
4042
|
+
(($$et{FileType} eq 'XMP' and $blockName eq 'XMP') or
|
4043
|
+
($$dirInfo{DirName} and $$dirInfo{DirName} eq $blockName)))
|
4035
4044
|
{
|
4036
4045
|
$et->FoundTag($$dirInfo{BlockInfo} || 'XMP', substr($$dataPt, $dirStart, $dirLen));
|
4037
4046
|
}
|
@@ -4193,7 +4202,7 @@ information.
|
|
4193
4202
|
|
4194
4203
|
=head1 AUTHOR
|
4195
4204
|
|
4196
|
-
Copyright 2003-
|
4205
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
4197
4206
|
|
4198
4207
|
This library is free software; you can redistribute it and/or modify it
|
4199
4208
|
under the same terms as Perl itself.
|
@@ -1697,6 +1697,7 @@ my %sSubVersion = (
|
|
1697
1697
|
InitialViewPitchDegrees => { Writable => 'real' },
|
1698
1698
|
InitialViewRollDegrees => { Writable => 'real' },
|
1699
1699
|
InitialHorizontalFOVDegrees => { Writable => 'real' },
|
1700
|
+
InitialVerticalFOVDegrees => { Writable => 'real' },
|
1700
1701
|
FirstPhotoDate => { %dateTimeInfo, Groups => { 2 => 'Time' } },
|
1701
1702
|
LastPhotoDate => { %dateTimeInfo, Groups => { 2 => 'Time' } },
|
1702
1703
|
SourcePhotosCount => { Writable => 'integer' },
|
@@ -1838,6 +1839,10 @@ my %sSubVersion = (
|
|
1838
1839
|
ValueConv => 'Image::ExifTool::XMP::DecodeBase64($val)',
|
1839
1840
|
ValueConvInv => 'Image::ExifTool::XMP::EncodeBase64($val)',
|
1840
1841
|
},
|
1842
|
+
MicroVideo => { Writable => 'integer' },
|
1843
|
+
MicroVideoVersion => { Writable => 'integer' },
|
1844
|
+
MicroVideoOffset => { Writable => 'integer' },
|
1845
|
+
MicroVideoPresentationTimestampUs => { Writable => 'integer' },
|
1841
1846
|
);
|
1842
1847
|
|
1843
1848
|
# Google creations namespace (ref PH)
|
@@ -2117,7 +2122,7 @@ This file contains definitions for less common XMP namespaces.
|
|
2117
2122
|
|
2118
2123
|
=head1 AUTHOR
|
2119
2124
|
|
2120
|
-
Copyright 2003-
|
2125
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
2121
2126
|
|
2122
2127
|
This library is free software; you can redistribute it and/or modify it
|
2123
2128
|
under the same terms as Perl itself.
|
@@ -853,7 +853,7 @@ information.
|
|
853
853
|
|
854
854
|
=head1 AUTHOR
|
855
855
|
|
856
|
-
Copyright 2003-
|
856
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
857
857
|
|
858
858
|
This library is free software; you can redistribute it and/or modify it
|
859
859
|
under the same terms as Perl itself.
|
@@ -700,7 +700,7 @@ Electronic Publication (EPUB), and Sketch design files (SKETCH).
|
|
700
700
|
|
701
701
|
=head1 AUTHOR
|
702
702
|
|
703
|
-
Copyright 2003-
|
703
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
704
704
|
|
705
705
|
This library is free software; you can redistribute it and/or modify it
|
706
706
|
under the same terms as Perl itself.
|
@@ -101,7 +101,7 @@ metadata from Zeiss Integrated Software RAW (ZISRAW) CZI files.
|
|
101
101
|
|
102
102
|
=head1 AUTHOR
|
103
103
|
|
104
|
-
Copyright 2003-
|
104
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
105
105
|
|
106
106
|
This library is free software; you can redistribute it and/or modify it
|
107
107
|
under the same terms as Perl itself.
|
@@ -215,7 +215,7 @@ information from Apple iWork '09 XML+ZIP files.
|
|
215
215
|
|
216
216
|
=head1 AUTHOR
|
217
217
|
|
218
|
-
Copyright 2003-
|
218
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
219
219
|
|
220
220
|
This library is free software; you can redistribute it and/or modify it
|
221
221
|
under the same terms as Perl itself.
|