exiftool-vendored.exe 12.38.0 → 12.41.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/LICENSE +254 -247
- package/bin/exiftool_files/Changes +62 -0
- package/bin/exiftool_files/README +45 -45
- package/bin/exiftool_files/arg_files/exif2xmp.args +5 -0
- package/bin/exiftool_files/arg_files/xmp2exif.args +6 -0
- package/bin/exiftool_files/config_files/acdsee.config +6 -6
- package/bin/exiftool_files/config_files/photoshop_paths.config +30 -7
- package/bin/exiftool_files/config_files/picasa_faces.config +1 -1
- package/bin/exiftool_files/config_files/pix4d.config +2 -2
- package/bin/exiftool_files/config_files/tiff_version.config +2 -2
- package/bin/exiftool_files/exiftool.pl +97 -65
- package/bin/exiftool_files/lib/File/RandomAccess.pm +1 -1
- package/bin/exiftool_files/lib/File/RandomAccess.pod +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/AES.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/AFCP.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/AIFF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/APE.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/APP12.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ASF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Apple.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Audible.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BMP.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BPG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BZZ.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BigTIFF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +6 -4
- package/bin/exiftool_files/lib/Image/ExifTool/CBOR.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +79 -5
- package/bin/exiftool_files/lib/Image/ExifTool/CanonCustom.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/CanonRaw.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/CanonVRD.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/CaptureOne.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Casio.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Charset.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DICOM.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DJI.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DNG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DPX.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DV.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DarwinCore.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DjVu.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/EXE.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +53 -21
- package/bin/exiftool_files/lib/Image/ExifTool/FITS.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FLAC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FLIF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FLIR.pm +16 -4
- package/bin/exiftool_files/lib/Image/ExifTool/Fixup.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Flash.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Font.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FotoStation.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/GE.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/GIF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/GIMP.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/GPS.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/GeoTiff.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +4 -3
- package/bin/exiftool_files/lib/Image/ExifTool/GoPro.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/H264.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/HP.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/HTML.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/HtmlDump.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ICC_Profile.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ID3.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/IPTC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ISO.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ITC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Import.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/InDesign.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/JPEG.pm +6 -2
- package/bin/exiftool_files/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/JVC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Kodak.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/LIF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/LNK.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/cs.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/de.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/es.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/fi.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/fr.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/it.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/ja.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/ko.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/nl.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/pl.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/ru.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/sv.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/tr.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Leaf.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lytro.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MIE.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MIEUnits.pod +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MIFF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MNG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MOI.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MPC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MPEG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MPF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MRC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MWG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MXF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MacOS.pm +10 -10
- package/bin/exiftool_files/lib/Image/ExifTool/MakerNotes.pm +13 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Matroska.pm +9 -5
- package/bin/exiftool_files/lib/Image/ExifTool/Microsoft.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Minolta.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Motorola.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +924 -184
- package/bin/exiftool_files/lib/Image/ExifTool/NikonCapture.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +519 -6
- package/bin/exiftool_files/lib/Image/ExifTool/NikonSettings.pm +17 -18
- package/bin/exiftool_files/lib/Image/ExifTool/Nintendo.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/OOXML.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Ogg.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +8 -7
- package/bin/exiftool_files/lib/Image/ExifTool/OpenEXR.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Opus.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Other.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PCX.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PGF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PICT.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PLIST.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PLUS.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +28 -8
- package/bin/exiftool_files/lib/Image/ExifTool/PPM.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PSP.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Palm.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Parrot.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +3 -2
- package/bin/exiftool_files/lib/Image/ExifTool/PhaseOne.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PhotoCD.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Photoshop.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PostScript.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PrintIM.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Qualcomm.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +10 -6
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +16 -5
- package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/RSRC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/RTF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Radiance.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Rawzor.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Real.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Reconyx.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Red.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Ricoh.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +6 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Sanyo.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Scalado.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Shift.pl +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Shortcuts.pm +3 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Sigma.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/SigmaRaw.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +11 -5
- package/bin/exiftool_files/lib/Image/ExifTool/SonyIDC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Stim.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/TagInfoXML.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +6382 -6290
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +340 -21
- package/bin/exiftool_files/lib/Image/ExifTool/Text.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Theora.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Torrent.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Unknown.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/VCard.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Validate.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Vorbis.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WTV.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteExif.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WritePDF.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WritePNG.pl +30 -10
- package/bin/exiftool_files/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WritePostScript.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +9 -4
- package/bin/exiftool_files/lib/Image/ExifTool/WriteXMP.pl +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +6 -5
- package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +49 -23
- package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +3 -2
- package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +22 -8
- package/bin/exiftool_files/lib/Image/ExifTool/ZIP.pm +10 -2
- package/bin/exiftool_files/lib/Image/ExifTool/ZISRAW.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/iWork.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool.pm +21 -5
- package/bin/exiftool_files/lib/Image/ExifTool.pod +71 -69
- package/package.json +14 -3
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
#
|
|
4
4
|
# Description: Buffer to support random access reading of sequential file
|
|
5
5
|
#
|
|
6
|
-
# Legal: Copyright (c) 2003-
|
|
6
|
+
# Legal: Copyright (c) 2003-2022 Phil Harvey (philharvey66 at gmail.com)
|
|
7
7
|
# This library is free software; you can redistribute it and/or
|
|
8
8
|
# modify it under the same terms as Perl itself.
|
|
9
9
|
#------------------------------------------------------------------------------
|
|
@@ -236,7 +236,7 @@ the end of file is not allowed.
|
|
|
236
236
|
|
|
237
237
|
=head1 AUTHOR
|
|
238
238
|
|
|
239
|
-
Copyright 2003-
|
|
239
|
+
Copyright 2003-2022 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.
|
|
@@ -477,7 +477,7 @@ main purpose of encryption, so this really can't be considered a bug.
|
|
|
477
477
|
|
|
478
478
|
=head1 AUTHOR
|
|
479
479
|
|
|
480
|
-
Copyright 2003-
|
|
480
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
481
481
|
|
|
482
482
|
This library is free software; you can redistribute it and/or modify it
|
|
483
483
|
under the same terms as Perl itself.
|
|
@@ -259,7 +259,7 @@ scanning for AFCP information.
|
|
|
259
259
|
|
|
260
260
|
=head1 AUTHOR
|
|
261
261
|
|
|
262
|
-
Copyright 2003-
|
|
262
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
263
263
|
|
|
264
264
|
This library is free software; you can redistribute it and/or modify it
|
|
265
265
|
under the same terms as Perl itself.
|
|
@@ -287,7 +287,7 @@ information from AIFF (Audio Interchange File Format) audio files.
|
|
|
287
287
|
|
|
288
288
|
=head1 AUTHOR
|
|
289
289
|
|
|
290
|
-
Copyright 2003-
|
|
290
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
291
291
|
|
|
292
292
|
This library is free software; you can redistribute it and/or modify it
|
|
293
293
|
under the same terms as Perl itself.
|
|
@@ -263,7 +263,7 @@ Currently doesn't parse MAC header unless it is at the start of the file.
|
|
|
263
263
|
|
|
264
264
|
=head1 AUTHOR
|
|
265
265
|
|
|
266
|
-
Copyright 2003-
|
|
266
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
267
267
|
|
|
268
268
|
This library is free software; you can redistribute it and/or modify it
|
|
269
269
|
under the same terms as Perl itself.
|
|
@@ -305,7 +305,7 @@ APP12 meta information.
|
|
|
305
305
|
|
|
306
306
|
=head1 AUTHOR
|
|
307
307
|
|
|
308
|
-
Copyright 2003-
|
|
308
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
309
309
|
|
|
310
310
|
This library is free software; you can redistribute it and/or modify it
|
|
311
311
|
under the same terms as Perl itself.
|
|
@@ -876,7 +876,7 @@ Windows Media Audio (WMA) and Windows Media Video (WMV) files.
|
|
|
876
876
|
|
|
877
877
|
=head1 AUTHOR
|
|
878
878
|
|
|
879
|
-
Copyright 2003-
|
|
879
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
880
880
|
|
|
881
881
|
This library is free software; you can redistribute it and/or modify it
|
|
882
882
|
under the same terms as Perl itself.
|
|
@@ -149,7 +149,7 @@ Apple maker notes in EXIF information.
|
|
|
149
149
|
|
|
150
150
|
=head1 AUTHOR
|
|
151
151
|
|
|
152
|
-
Copyright 2003-
|
|
152
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
153
153
|
|
|
154
154
|
This library is free software; you can redistribute it and/or modify it
|
|
155
155
|
under the same terms as Perl itself.
|
|
@@ -291,7 +291,7 @@ information from Audible audio books.
|
|
|
291
291
|
|
|
292
292
|
=head1 AUTHOR
|
|
293
293
|
|
|
294
|
-
Copyright 2003-
|
|
294
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
295
295
|
|
|
296
296
|
This library is free software; you can redistribute it and/or modify it
|
|
297
297
|
under the same terms as Perl itself.
|
|
@@ -335,7 +335,7 @@ This module contains definitions required by Image::ExifTool to read BMP
|
|
|
335
335
|
|
|
336
336
|
=head1 AUTHOR
|
|
337
337
|
|
|
338
|
-
Copyright 2003-
|
|
338
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
339
339
|
|
|
340
340
|
This library is free software; you can redistribute it and/or modify it
|
|
341
341
|
under the same terms as Perl itself.
|
|
@@ -231,7 +231,7 @@ This module contains definitions required by Image::ExifTool to read BPG
|
|
|
231
231
|
|
|
232
232
|
=head1 AUTHOR
|
|
233
233
|
|
|
234
|
-
Copyright 2003-
|
|
234
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
235
235
|
|
|
236
236
|
This library is free software; you can redistribute it and/or modify it
|
|
237
237
|
under the same terms as Perl itself.
|
|
@@ -445,7 +445,7 @@ compression ability).
|
|
|
445
445
|
|
|
446
446
|
=head1 AUTHOR
|
|
447
447
|
|
|
448
|
-
Copyright 2003-
|
|
448
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
449
449
|
Copyright 2002, Leon Bottou and Yann Le Cun
|
|
450
450
|
Copyright 2001, AT&T
|
|
451
451
|
Copyright 1999-2001, LizardTech Inc.
|
|
@@ -275,7 +275,7 @@ information in BigTIFF images.
|
|
|
275
275
|
|
|
276
276
|
=head1 AUTHOR
|
|
277
277
|
|
|
278
|
-
Copyright 2003-
|
|
278
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
279
279
|
|
|
280
280
|
This library is free software; you can redistribute it and/or modify it
|
|
281
281
|
under the same terms as Perl itself.
|
|
@@ -669,7 +669,7 @@ L<Image::ExifTool::BuildTagLookup|Image::ExifTool::BuildTagLookup>.
|
|
|
669
669
|
|
|
670
670
|
~head1 AUTHOR
|
|
671
671
|
|
|
672
|
-
Copyright 2003-
|
|
672
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
673
673
|
|
|
674
674
|
This library is free software; you can redistribute it and/or modify it
|
|
675
675
|
under the same terms as Perl itself.
|
|
@@ -905,8 +905,10 @@ TagID: foreach $tagID (@keys) {
|
|
|
905
905
|
foreach (@grps) {
|
|
906
906
|
warn "Group name starts with 'ID-' for $short $name\n" if /^ID-/i;
|
|
907
907
|
}
|
|
908
|
-
if ($isXMP and not $$tagInfo{Avoid} and not $$tagInfo{Struct}
|
|
909
|
-
|
|
908
|
+
if ($isXMP and not $$tagInfo{Avoid} and not $$tagInfo{Struct} and
|
|
909
|
+
($$tagInfo{Writable} or $$table{WRITABLE}))
|
|
910
|
+
{
|
|
911
|
+
$dupXmpTag{$name} and warn "Duplicate writable XMP tag $name\n";
|
|
910
912
|
$dupXmpTag{$name} = 1;
|
|
911
913
|
}
|
|
912
914
|
# validate Name (must not start with a digit or else XML output will not be valid;
|
|
@@ -2760,7 +2762,7 @@ Returned list of writable pseudo tags.
|
|
|
2760
2762
|
|
|
2761
2763
|
=head1 AUTHOR
|
|
2762
2764
|
|
|
2763
|
-
Copyright 2003-
|
|
2765
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
2764
2766
|
|
|
2765
2767
|
This library is free software; you can redistribute it and/or modify it
|
|
2766
2768
|
under the same terms as Perl itself.
|
|
@@ -307,7 +307,7 @@ specification.
|
|
|
307
307
|
|
|
308
308
|
=head1 AUTHOR
|
|
309
309
|
|
|
310
|
-
Copyright 2003-
|
|
310
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
311
311
|
|
|
312
312
|
This library is free software; you can redistribute it and/or modify it
|
|
313
313
|
under the same terms as Perl itself.
|
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
|
88
88
|
sub ProcessExifInfo($$$);
|
|
89
89
|
sub SwapWords($);
|
|
90
90
|
|
|
91
|
-
$VERSION = '4.
|
|
91
|
+
$VERSION = '4.57';
|
|
92
92
|
|
|
93
93
|
# Note: Removed 'USM' from 'L' lenses since it is redundant - PH
|
|
94
94
|
# (or is it? Ref 32 shows 5 non-USM L-type lenses)
|
|
@@ -208,6 +208,7 @@ $VERSION = '4.55';
|
|
|
208
208
|
53 => 'Canon EF-S 18-55mm f/3.5-5.6 III', #Jon Charnas
|
|
209
209
|
54 => 'Canon EF-S 55-250mm f/4-5.6 IS II', #47
|
|
210
210
|
60 => 'Irix 11mm f/4', #50
|
|
211
|
+
63 => 'Irix 30mm F1.4 Dragonfly', #IB
|
|
211
212
|
80 => 'Canon TS-E 50mm f/2.8L Macro', #42
|
|
212
213
|
81 => 'Canon TS-E 90mm f/2.8L Macro', #42
|
|
213
214
|
82 => 'Canon TS-E 135mm f/4L Macro', #42
|
|
@@ -599,6 +600,9 @@ $VERSION = '4.55';
|
|
|
599
600
|
'61182.25' => 'Canon RF 100-400mm F5.6-8 IS USM + RF1.4x', #42 (NC)
|
|
600
601
|
'61182.26' => 'Canon RF 100-400mm F5.6-8 IS USM + RF2x', #42 (NC)
|
|
601
602
|
'61182.27' => 'Canon RF 16mm F2.8 STM', #42
|
|
603
|
+
'61182.28' => 'Canon RF 400mm F2.8L IS USM', #IB
|
|
604
|
+
'61182.29' => 'Canon RF 400mm F2.8L IS USM + RF1.4x', #IB
|
|
605
|
+
'61182.30' => 'Canon RF 400mm F2.8L IS USM + RF2x', #IB
|
|
602
606
|
#'61182.xx' => 'Canon RF 100mm F2.8L MACRO IS USM',
|
|
603
607
|
65535 => 'n/a',
|
|
604
608
|
);
|
|
@@ -970,8 +974,8 @@ my %canonQuality = (
|
|
|
970
974
|
4 => 'RAW',
|
|
971
975
|
5 => 'Superfine',
|
|
972
976
|
7 => 'CRAW', #42
|
|
973
|
-
130 => '
|
|
974
|
-
131 => '
|
|
977
|
+
130 => 'Light (RAW)', #github#119
|
|
978
|
+
131 => 'Standard (RAW)', #github#119
|
|
975
979
|
);
|
|
976
980
|
my %canonImageSize = (
|
|
977
981
|
-1 => 'n/a',
|
|
@@ -1018,7 +1022,7 @@ my %canonWhiteBalance = (
|
|
|
1018
1022
|
20 => 'PC Set4', #PH
|
|
1019
1023
|
21 => 'PC Set5', #PH
|
|
1020
1024
|
# 22 - Custom 2?
|
|
1021
|
-
23 => 'Auto (ambience priority)', #PH (5DS)
|
|
1025
|
+
23 => 'Auto (ambience priority)', #PH (5DS) (perhaps this needs re-thinking?: forum13295)
|
|
1022
1026
|
# 30 - Click White Balance?
|
|
1023
1027
|
# 31 - Shot Settings?
|
|
1024
1028
|
# 137 - Tungsten?
|
|
@@ -2053,6 +2057,13 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
|
2053
2057
|
TagTable => 'Image::ExifTool::Canon::HDRInfo',
|
|
2054
2058
|
}
|
|
2055
2059
|
},
|
|
2060
|
+
0x4026 => { #github#119
|
|
2061
|
+
Name => 'LogInfo',
|
|
2062
|
+
SubDirectory => {
|
|
2063
|
+
Validate => 'Image::ExifTool::Canon::Validate($dirData,$subdirStart,$size)',
|
|
2064
|
+
TagTable => 'Image::ExifTool::Canon::LogInfo',
|
|
2065
|
+
}
|
|
2066
|
+
},
|
|
2056
2067
|
0x4028 => { #PH
|
|
2057
2068
|
Name => 'AFConfig', # (AFTabInfo)
|
|
2058
2069
|
SubDirectory => {
|
|
@@ -2126,6 +2137,7 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
|
2126
2137
|
4 => 'Continuous, Low', #PH
|
|
2127
2138
|
5 => 'Continuous, High', #PH
|
|
2128
2139
|
6 => 'Silent Single', #PH
|
|
2140
|
+
8 => 'Continuous, High+', #WolfgangGulcker
|
|
2129
2141
|
# ref A: https://exiftool.org/forum/index.php/topic,5701.msg27843.html#msg27843
|
|
2130
2142
|
9 => 'Single, Silent', #A
|
|
2131
2143
|
10 => 'Continuous, Silent', #A
|
|
@@ -6789,6 +6801,9 @@ my %ciMaxFocal = (
|
|
|
6789
6801
|
284 => 'Canon RF 100-400mm F5.6-8 IS USM + RF1.4x', #42 (NC)
|
|
6790
6802
|
285 => 'Canon RF 100-400mm F5.6-8 IS USM + RF2x', #42 (NC)
|
|
6791
6803
|
288 => 'Canon RF 16mm F2.8 STM', #42
|
|
6804
|
+
289 => 'Canon RF 400mm F2.8L IS USM', #IB
|
|
6805
|
+
290 => 'Canon RF 400mm F2.8L IS USM + RF1.4x', #IB
|
|
6806
|
+
291 => 'Canon RF 400mm F2.8L IS USM + RF2x', #IB
|
|
6792
6807
|
#xxx => 'Canon RF 100mm F2.8L MACRO IS USM',
|
|
6793
6808
|
# Note: add new RF lenses to %canonLensTypes with ID 61182
|
|
6794
6809
|
},
|
|
@@ -8701,6 +8716,65 @@ my %filterConv = (
|
|
|
8701
8716
|
# 3 - maybe related to AutoImageAlign?
|
|
8702
8717
|
);
|
|
8703
8718
|
|
|
8719
|
+
# More color information (MakerNotes tag 0x4026) (ref github issue #119)
|
|
8720
|
+
%Image::ExifTool::Canon::LogInfo = (
|
|
8721
|
+
%binaryDataAttrs,
|
|
8722
|
+
FORMAT => 'int32s',
|
|
8723
|
+
FIRST_ENTRY => 1,
|
|
8724
|
+
PRIORITY => 0,
|
|
8725
|
+
4 => {
|
|
8726
|
+
Name => 'CompressionFormat',
|
|
8727
|
+
PrintConv => {
|
|
8728
|
+
0 => 'Editing (ALL-I)',
|
|
8729
|
+
1 => 'Standard (IPB)',
|
|
8730
|
+
2 => 'Light (IPB)',
|
|
8731
|
+
3 => 'Motion JPEG',
|
|
8732
|
+
4 => 'RAW', # either Standard or Light, depending on Quality
|
|
8733
|
+
},
|
|
8734
|
+
},
|
|
8735
|
+
6 => { # 0 to 7
|
|
8736
|
+
Name => 'Sharpness',
|
|
8737
|
+
RawConv => '$val == 0x7fffffff ? undef : $val',
|
|
8738
|
+
},
|
|
8739
|
+
7 => { # -4 to 4
|
|
8740
|
+
Name => 'Saturation',
|
|
8741
|
+
RawConv => '$val == 0x7fffffff ? undef : $val',
|
|
8742
|
+
%Image::ExifTool::Exif::printParameter,
|
|
8743
|
+
},
|
|
8744
|
+
8 => { # -4 to 4
|
|
8745
|
+
Name => 'ColorTone',
|
|
8746
|
+
RawConv => '$val == 0x7fffffff ? undef : $val',
|
|
8747
|
+
%Image::ExifTool::Exif::printParameter,
|
|
8748
|
+
},
|
|
8749
|
+
9 => {
|
|
8750
|
+
Name => 'ColorSpace2',
|
|
8751
|
+
RawConv => '$val == 0x7fffffff ? undef : $val',
|
|
8752
|
+
PrintConv => {
|
|
8753
|
+
0 => 'BT.709',
|
|
8754
|
+
1 => 'BT.2020',
|
|
8755
|
+
2 => 'CinemaGamut',
|
|
8756
|
+
},
|
|
8757
|
+
},
|
|
8758
|
+
10 => {
|
|
8759
|
+
Name => 'ColorMatrix',
|
|
8760
|
+
RawConv => '$val == 0x7fffffff ? undef : $val',
|
|
8761
|
+
PrintConv => {
|
|
8762
|
+
0 => 'EOS Original',
|
|
8763
|
+
1 => 'Neutral',
|
|
8764
|
+
},
|
|
8765
|
+
},
|
|
8766
|
+
11 => {
|
|
8767
|
+
Name => 'CanonLogVersion', # (increases dynamic range of sensor data)
|
|
8768
|
+
RawConv => '$val == 0x7fffffff ? undef : $val',
|
|
8769
|
+
PrintConv => {
|
|
8770
|
+
0 => 'OFF',
|
|
8771
|
+
1 => 'CLogV1',
|
|
8772
|
+
2 => 'CLogV2', # (NC)
|
|
8773
|
+
3 => 'CLogV3',
|
|
8774
|
+
},
|
|
8775
|
+
},
|
|
8776
|
+
);
|
|
8777
|
+
|
|
8704
8778
|
# AF configuration info (MakerNotes tag 0x4028) (ref PH)
|
|
8705
8779
|
%Image::ExifTool::Canon::AFConfig = (
|
|
8706
8780
|
%binaryDataAttrs,
|
|
@@ -10064,7 +10138,7 @@ Canon maker notes in EXIF information.
|
|
|
10064
10138
|
|
|
10065
10139
|
=head1 AUTHOR
|
|
10066
10140
|
|
|
10067
|
-
Copyright 2003-
|
|
10141
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
10068
10142
|
|
|
10069
10143
|
This library is free software; you can redistribute it and/or modify it
|
|
10070
10144
|
under the same terms as Perl itself.
|
|
@@ -2873,7 +2873,7 @@ Image::ExifTool to read this information.
|
|
|
2873
2873
|
|
|
2874
2874
|
=head1 AUTHOR
|
|
2875
2875
|
|
|
2876
|
-
Copyright 2003-
|
|
2876
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
2877
2877
|
|
|
2878
2878
|
This library is free software; you can redistribute it and/or modify it
|
|
2879
2879
|
under the same terms as Perl itself.
|
|
@@ -877,7 +877,7 @@ tags.)
|
|
|
877
877
|
|
|
878
878
|
=head1 AUTHOR
|
|
879
879
|
|
|
880
|
-
Copyright 2003-
|
|
880
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
881
881
|
|
|
882
882
|
This library is free software; you can redistribute it and/or modify it
|
|
883
883
|
under the same terms as Perl itself.
|
|
@@ -2264,7 +2264,7 @@ files, and as a trailer in JPEG, CRW, CR2 and TIFF images.
|
|
|
2264
2264
|
|
|
2265
2265
|
=head1 AUTHOR
|
|
2266
2266
|
|
|
2267
|
-
Copyright 2003-
|
|
2267
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
2268
2268
|
|
|
2269
2269
|
This library is free software; you can redistribute it and/or modify it
|
|
2270
2270
|
under the same terms as Perl itself.
|
|
@@ -221,7 +221,7 @@ settings files (COS).
|
|
|
221
221
|
|
|
222
222
|
=head1 AUTHOR
|
|
223
223
|
|
|
224
|
-
Copyright 2003-
|
|
224
|
+
Copyright 2003-2022, 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.
|
|
@@ -2034,7 +2034,7 @@ Casio maker notes in EXIF information.
|
|
|
2034
2034
|
|
|
2035
2035
|
=head1 AUTHOR
|
|
2036
2036
|
|
|
2037
|
-
Copyright 2003-
|
|
2037
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
2038
2038
|
|
|
2039
2039
|
This library is free software; you can redistribute it and/or modify it
|
|
2040
2040
|
under the same terms as Perl itself.
|
|
@@ -422,7 +422,7 @@ when decoding certain types of information.
|
|
|
422
422
|
|
|
423
423
|
=head1 AUTHOR
|
|
424
424
|
|
|
425
|
-
Copyright 2003-
|
|
425
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
426
426
|
|
|
427
427
|
This library is free software; you can redistribute it and/or modify it
|
|
428
428
|
under the same terms as Perl itself.
|
|
@@ -3853,7 +3853,7 @@ No translation of special characters sets is done.
|
|
|
3853
3853
|
|
|
3854
3854
|
=head1 AUTHOR
|
|
3855
3855
|
|
|
3856
|
-
Copyright 2003-
|
|
3856
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
3857
3857
|
|
|
3858
3858
|
This library is free software; you can redistribute it and/or modify it
|
|
3859
3859
|
under the same terms as Perl itself.
|
|
@@ -151,7 +151,7 @@ the maker notes in images from some DJI Phantom drones.
|
|
|
151
151
|
|
|
152
152
|
=head1 AUTHOR
|
|
153
153
|
|
|
154
|
-
Copyright 2003-
|
|
154
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
155
155
|
|
|
156
156
|
This library is free software; you can redistribute it and/or modify it
|
|
157
157
|
under the same terms as Perl itself.
|
|
@@ -820,7 +820,7 @@ information in DNG (Digital Negative) images.
|
|
|
820
820
|
|
|
821
821
|
=head1 AUTHOR
|
|
822
822
|
|
|
823
|
-
Copyright 2003-
|
|
823
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
824
824
|
|
|
825
825
|
This library is free software; you can redistribute it and/or modify it
|
|
826
826
|
under the same terms as Perl itself.
|
|
@@ -225,7 +225,7 @@ metadata from DPX (Digital Picture Exchange) images.
|
|
|
225
225
|
|
|
226
226
|
=head1 AUTHOR
|
|
227
227
|
|
|
228
|
-
Copyright 2003-
|
|
228
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
229
229
|
|
|
230
230
|
This library is free software; you can redistribute it and/or modify it
|
|
231
231
|
under the same terms as Perl itself.
|
|
@@ -291,7 +291,7 @@ information from DV (raw Digital Video) files.
|
|
|
291
291
|
|
|
292
292
|
=head1 AUTHOR
|
|
293
293
|
|
|
294
|
-
Copyright 2003-
|
|
294
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
295
295
|
|
|
296
296
|
This library is free software; you can redistribute it and/or modify it
|
|
297
297
|
under the same terms as Perl itself.
|
|
@@ -360,7 +360,7 @@ This file contains tag definitions for the Darwin Core XMP namespace.
|
|
|
360
360
|
|
|
361
361
|
=head1 AUTHOR
|
|
362
362
|
|
|
363
|
-
Copyright 2003-
|
|
363
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
364
364
|
|
|
365
365
|
This library is free software; you can redistribute it and/or modify it
|
|
366
366
|
under the same terms as Perl itself.
|
|
@@ -353,7 +353,7 @@ Image::ExifTool::AIFF.
|
|
|
353
353
|
|
|
354
354
|
=head1 AUTHOR
|
|
355
355
|
|
|
356
|
-
Copyright 2003-
|
|
356
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
357
357
|
|
|
358
358
|
This library is free software; you can redistribute it and/or modify it
|
|
359
359
|
under the same terms as Perl itself.
|
|
@@ -1398,7 +1398,7 @@ library files.
|
|
|
1398
1398
|
|
|
1399
1399
|
=head1 AUTHOR
|
|
1400
1400
|
|
|
1401
|
-
Copyright 2003-
|
|
1401
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
1402
1402
|
|
|
1403
1403
|
This library is free software; you can redistribute it and/or modify it
|
|
1404
1404
|
under the same terms as Perl itself.
|
|
@@ -56,7 +56,7 @@ use vars qw($VERSION $AUTOLOAD @formatSize @formatName %formatNumber %intFormat
|
|
|
56
56
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
57
57
|
use Image::ExifTool::MakerNotes;
|
|
58
58
|
|
|
59
|
-
$VERSION = '4.
|
|
59
|
+
$VERSION = '4.40';
|
|
60
60
|
|
|
61
61
|
sub ProcessExif($$$);
|
|
62
62
|
sub WriteExif($$$);
|
|
@@ -415,7 +415,14 @@ my %opcodeInfo = (
|
|
|
415
415
|
WriteGroup => 'IFD0',
|
|
416
416
|
# set priority directory if this is the full resolution image
|
|
417
417
|
DataMember => 'SubfileType',
|
|
418
|
-
RawConv =>
|
|
418
|
+
RawConv => q{
|
|
419
|
+
if ($val == ($val & 0x02)) {
|
|
420
|
+
$self->SetPriorityDir() if $val == 0;
|
|
421
|
+
$$self{PageCount} = ($$self{PageCount} || 0) + 1;
|
|
422
|
+
$$self{MultiPage} = 1 if $val == 2 or $$self{PageCount} > 1;
|
|
423
|
+
}
|
|
424
|
+
$$self{SubfileType} = $val;
|
|
425
|
+
},
|
|
419
426
|
PrintConv => \%subfileType,
|
|
420
427
|
},
|
|
421
428
|
0xff => {
|
|
@@ -425,7 +432,14 @@ my %opcodeInfo = (
|
|
|
425
432
|
Writable => 'int16u',
|
|
426
433
|
WriteGroup => 'IFD0',
|
|
427
434
|
# set priority directory if this is the full resolution image
|
|
428
|
-
RawConv =>
|
|
435
|
+
RawConv => q{
|
|
436
|
+
if ($val == 1 or $val == 3) {
|
|
437
|
+
$self->SetPriorityDir() if $val == 1;
|
|
438
|
+
$$self{PageCount} = ($$self{PageCount} || 0) + 1;
|
|
439
|
+
$$self{MultiPage} = 1 if $val == 3 or $$self{PageCount} > 1;
|
|
440
|
+
}
|
|
441
|
+
$val;
|
|
442
|
+
},
|
|
429
443
|
PrintConv => {
|
|
430
444
|
1 => 'Full-resolution image',
|
|
431
445
|
2 => 'Reduced-resolution image',
|
|
@@ -2144,7 +2158,7 @@ my %opcodeInfo = (
|
|
|
2144
2158
|
Notes => 'displayed in seconds, but stored as an APEX value',
|
|
2145
2159
|
Format => 'rational64s', # Leica M8 patch (incorrectly written as rational64u)
|
|
2146
2160
|
Writable => 'rational64s',
|
|
2147
|
-
ValueConv => 'abs($val)<100 ? 2**(-$val) : 0',
|
|
2161
|
+
ValueConv => 'IsFloat($val) && abs($val)<100 ? 2**(-$val) : 0',
|
|
2148
2162
|
ValueConvInv => '$val>0 ? -log($val)/log(2) : -100',
|
|
2149
2163
|
PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
|
|
2150
2164
|
PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
|
|
@@ -4817,12 +4831,21 @@ my %subSecConv = (
|
|
|
4817
4831
|
GPSPosition => {
|
|
4818
4832
|
Groups => { 2 => 'Location' },
|
|
4819
4833
|
Writable => 1,
|
|
4834
|
+
Protected => 1,
|
|
4820
4835
|
WriteAlso => {
|
|
4821
4836
|
GPSLatitude => '$val =~ /(.*?)( ?[NS])?,/ ? $1 : undef',
|
|
4822
4837
|
GPSLatitudeRef => '$val =~ /(-?)(.*?) ?([NS]?),/ ? ($3 || ($1 ? "S" : "N")) : undef',
|
|
4823
4838
|
GPSLongitude => '$val =~ /, ?(.*?)( ?[EW]?)$/ ? $1 : undef',
|
|
4824
4839
|
GPSLongitudeRef => '$val =~ /, ?(-?)(.*?) ?([EW]?)$/ ? ($3 || ($1 ? "W" : "E")) : undef',
|
|
4825
4840
|
},
|
|
4841
|
+
PrintConvInv => q{
|
|
4842
|
+
return undef unless $val =~ /(.*? ?[NS]?), ?(.*? ?[EW]?)$/;
|
|
4843
|
+
my ($lat, $lon) = ($1, $2);
|
|
4844
|
+
require Image::ExifTool::GPS;
|
|
4845
|
+
$lat = Image::ExifTool::GPS::ToDegrees($lat, 1, "lat");
|
|
4846
|
+
$lon = Image::ExifTool::GPS::ToDegrees($lon, 1, "lon");
|
|
4847
|
+
return "$lat, $lon";
|
|
4848
|
+
},
|
|
4826
4849
|
Require => {
|
|
4827
4850
|
0 => 'GPSLatitude',
|
|
4828
4851
|
1 => 'GPSLongitude',
|
|
@@ -5240,6 +5263,7 @@ sub RedBlueBalance($@)
|
|
|
5240
5263
|
sub PrintExposureTime($)
|
|
5241
5264
|
{
|
|
5242
5265
|
my $secs = shift;
|
|
5266
|
+
return $secs unless Image::ExifTool::IsFloat($secs);
|
|
5243
5267
|
if ($secs < 0.25001 and $secs > 0) {
|
|
5244
5268
|
return sprintf("1/%d",int(0.5 + 1/$secs));
|
|
5245
5269
|
}
|
|
@@ -5845,7 +5869,7 @@ sub ProcessExif($$$)
|
|
|
5845
5869
|
unless ($path =~ /^(JPEG-APP1-IFD0|TIFF-IFD0|PSD-EXIFInfo-IFD0)$/) {
|
|
5846
5870
|
if ($Image::ExifTool::MWG::strict) {
|
|
5847
5871
|
$et->Warn("Ignored non-standard EXIF at $path");
|
|
5848
|
-
return
|
|
5872
|
+
return 0;
|
|
5849
5873
|
} else {
|
|
5850
5874
|
$et->Warn("Non-standard EXIF at $path", 1);
|
|
5851
5875
|
}
|
|
@@ -5888,10 +5912,6 @@ sub ProcessExif($$$)
|
|
|
5888
5912
|
# also read next IFD pointer if available
|
|
5889
5913
|
if ($raf->Read($buf2, $len+4) >= $len) {
|
|
5890
5914
|
$buff .= $buf2;
|
|
5891
|
-
# make copy of dirInfo since we're going to modify it
|
|
5892
|
-
my %newDirInfo = %$dirInfo;
|
|
5893
|
-
$dirInfo = \%newDirInfo;
|
|
5894
|
-
# update directory parameters for the newly loaded IFD
|
|
5895
5915
|
$dataPt = $$dirInfo{DataPt} = \$buff;
|
|
5896
5916
|
$dataPos = $$dirInfo{DataPos} = $offset;
|
|
5897
5917
|
$dataLen = $$dirInfo{DataLen} = length $buff;
|
|
@@ -6585,7 +6605,7 @@ sub ProcessExif($$$)
|
|
|
6585
6605
|
#### eval Validate ($val, $dirData, $subdirStart, $size)
|
|
6586
6606
|
my $ok = 0;
|
|
6587
6607
|
if (defined $$subdir{Validate} and not eval $$subdir{Validate}) {
|
|
6588
|
-
$et->Warn("Invalid $tagStr data");
|
|
6608
|
+
$et->Warn("Invalid $tagStr data", $inMakerNotes);
|
|
6589
6609
|
$invalid = 1;
|
|
6590
6610
|
} else {
|
|
6591
6611
|
if (not $subdirInfo{DirName} and $inMakerNotes) {
|
|
@@ -6698,28 +6718,40 @@ sub ProcessExif($$$)
|
|
|
6698
6718
|
|
|
6699
6719
|
# scan for subsequent IFD's if specified
|
|
6700
6720
|
if ($$dirInfo{Multi} and $bytesFromEnd >= 4) {
|
|
6701
|
-
|
|
6702
|
-
|
|
6703
|
-
|
|
6704
|
-
|
|
6705
|
-
|
|
6706
|
-
|
|
6707
|
-
|
|
6708
|
-
|
|
6721
|
+
# use same directory information for trailing directory,
|
|
6722
|
+
# but change the start location (ProcessDirectory will
|
|
6723
|
+
# test to make sure we don't reprocess the same dir twice)
|
|
6724
|
+
my %newDirInfo = %$dirInfo;
|
|
6725
|
+
$newDirInfo{Multi} = 0; # prevent recursion
|
|
6726
|
+
$newDirInfo{OffsetName} = $nextOffName;
|
|
6727
|
+
$$et{INDENT} =~ s/..$//; # keep indent the same
|
|
6728
|
+
for (;;) {
|
|
6729
|
+
my $offset = Get32u($dataPt, $dirEnd) or last;
|
|
6730
|
+
$newDirInfo{DirStart} = $offset - $dataPos;
|
|
6709
6731
|
# increment IFD number
|
|
6710
6732
|
my $ifdNum = $newDirInfo{DirName} =~ s/(\d+)$// ? $1 : 0;
|
|
6711
6733
|
$newDirInfo{DirName} .= $ifdNum + 1;
|
|
6712
|
-
$newDirInfo{OffsetName} = $nextOffName;
|
|
6713
6734
|
# must validate SubIFD1 because the nextIFD pointer is invalid for some RAW formats
|
|
6714
6735
|
if ($newDirInfo{DirName} ne 'SubIFD1' or ValidateIFD(\%newDirInfo)) {
|
|
6715
|
-
$$et{INDENT} =~ s/..$//; # keep indent the same
|
|
6716
6736
|
my $cur = pop @{$$et{PATH}};
|
|
6717
6737
|
$et->ProcessDirectory(\%newDirInfo, $tagTablePtr) or $success = 0;
|
|
6718
6738
|
push @{$$et{PATH}}, $cur;
|
|
6739
|
+
if ($success and $newDirInfo{BytesFromEnd} >= 4) {
|
|
6740
|
+
$dataPt = $newDirInfo{DataPt};
|
|
6741
|
+
$dataPos = $newDirInfo{DataPos};
|
|
6742
|
+
$dirEnd = $newDirInfo{DirEnd};
|
|
6743
|
+
next;
|
|
6744
|
+
}
|
|
6719
6745
|
} elsif ($verbose or $$et{TIFF_TYPE} eq 'TIFF') {
|
|
6720
6746
|
$et->Warn('Ignored bad IFD linked from SubIFD');
|
|
6721
6747
|
}
|
|
6748
|
+
last;
|
|
6722
6749
|
}
|
|
6750
|
+
} elsif (defined $$dirInfo{Multi}) {
|
|
6751
|
+
# return necessary parameters for parsing next IFD
|
|
6752
|
+
$$dirInfo{DirEnd} = $dirEnd;
|
|
6753
|
+
$$dirInfo{OffsetName} = $nextOffName;
|
|
6754
|
+
$$dirInfo{BytesFromEnd} = $bytesFromEnd;
|
|
6723
6755
|
}
|
|
6724
6756
|
return $success;
|
|
6725
6757
|
}
|
|
@@ -6743,7 +6775,7 @@ EXIF and TIFF meta information.
|
|
|
6743
6775
|
|
|
6744
6776
|
=head1 AUTHOR
|
|
6745
6777
|
|
|
6746
|
-
Copyright 2003-
|
|
6778
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
6747
6779
|
|
|
6748
6780
|
This library is free software; you can redistribute it and/or modify it
|
|
6749
6781
|
under the same terms as Perl itself.
|
|
@@ -137,7 +137,7 @@ information from FITS (Flexible Image Transport System) images.
|
|
|
137
137
|
|
|
138
138
|
=head1 AUTHOR
|
|
139
139
|
|
|
140
|
-
Copyright 2003-
|
|
140
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
141
141
|
|
|
142
142
|
This library is free software; you can redistribute it and/or modify it
|
|
143
143
|
under the same terms as Perl itself.
|