exiftool_vendored 13.44.0 → 13.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/Changes +33 -1
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +3 -3
- data/bin/config_files/example.config +5 -2
- data/bin/exiftool +19 -11
- data/bin/lib/File/RandomAccess.pm +1 -1
- data/bin/lib/File/RandomAccess.pod +2 -2
- data/bin/lib/Image/ExifTool/AAC.pm +1 -1
- 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 +4 -4
- data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
- data/bin/lib/Image/ExifTool/Canon.pm +53 -11
- 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/DSF.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 +7 -5
- 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/GM.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/Geolocation.pm +1 -1
- data/bin/lib/Image/ExifTool/Geotag.pm +61 -20
- data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
- data/bin/lib/Image/ExifTool/Google.pm +3 -2
- 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/ICO.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 +1 -1
- data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- data/bin/lib/Image/ExifTool/InfiRay.pm +1 -1
- data/bin/lib/Image/ExifTool/JPEG.pm +6 -2
- data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- data/bin/lib/Image/ExifTool/JSON.pm +1 -1
- data/bin/lib/Image/ExifTool/JVC.pm +1 -1
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +1 -1
- data/bin/lib/Image/ExifTool/Kandao.pm +3 -3
- data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
- data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/LIF.pm +1 -1
- data/bin/lib/Image/ExifTool/LNK.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/es.pm +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/sk.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
- data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
- data/bin/lib/Image/ExifTool/LigoGPS.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/MISB.pm +1 -1
- data/bin/lib/Image/ExifTool/MNG.pm +1 -1
- data/bin/lib/Image/ExifTool/MOI.pm +1 -1
- data/bin/lib/Image/ExifTool/MPC.pm +1 -1
- data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
- data/bin/lib/Image/ExifTool/MPF.pm +1 -1
- data/bin/lib/Image/ExifTool/MRC.pm +1 -1
- data/bin/lib/Image/ExifTool/MWG.pm +1 -1
- data/bin/lib/Image/ExifTool/MXF.pm +1 -1
- data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
- data/bin/lib/Image/ExifTool/MakerNotes.pm +4 -2
- 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 +9 -11
- data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- data/bin/lib/Image/ExifTool/NikonCustom.pm +6 -3
- data/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
- data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
- data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
- data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +1 -1
- data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
- data/bin/lib/Image/ExifTool/Opus.pm +1 -1
- data/bin/lib/Image/ExifTool/Other.pm +1 -1
- data/bin/lib/Image/ExifTool/PCAP.pm +1 -1
- data/bin/lib/Image/ExifTool/PCX.pm +1 -1
- data/bin/lib/Image/ExifTool/PDF.pm +1 -1
- data/bin/lib/Image/ExifTool/PGF.pm +1 -1
- data/bin/lib/Image/ExifTool/PICT.pm +1 -1
- data/bin/lib/Image/ExifTool/PLIST.pm +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 +7 -2
- 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 +13 -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/Plot.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/Protobuf.pm +41 -15
- data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +8 -4
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +1 -1
- data/bin/lib/Image/ExifTool/RIFF.pm +1 -1
- 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 +19 -3
- data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
- data/bin/lib/Image/ExifTool/Stim.pm +1 -1
- data/bin/lib/Image/ExifTool/TNEF.pm +1 -1
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +6976 -6967
- data/bin/lib/Image/ExifTool/TagNames.pod +23 -7
- 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/Trailer.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 +5 -5
- data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
- data/bin/lib/Image/ExifTool/WPG.pm +1 -1
- data/bin/lib/Image/ExifTool/WTV.pm +1 -1
- data/bin/lib/Image/ExifTool/WavPack.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 +8 -4
- data/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteXMP.pl +1 -1
- data/bin/lib/Image/ExifTool/Writer.pl +7 -4
- data/bin/lib/Image/ExifTool/XISF.pm +1 -1
- data/bin/lib/Image/ExifTool/XMP.pm +1 -1
- data/bin/lib/Image/ExifTool/XMP2.pl +1 -1
- data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
- data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- data/bin/lib/Image/ExifTool/iWork.pm +1 -1
- data/bin/lib/Image/ExifTool.pm +35 -29
- data/bin/lib/Image/ExifTool.pod +20 -2
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +1 -1
|
@@ -12,7 +12,7 @@ meta information extracted from or written to a file.
|
|
|
12
12
|
=head1 TAG TABLES
|
|
13
13
|
|
|
14
14
|
The tables listed below give the names of all tags recognized by ExifTool.
|
|
15
|
-
They contain a total of
|
|
15
|
+
They contain a total of 29034 tags, with 18043 unique tag names.
|
|
16
16
|
|
|
17
17
|
B<Tag ID>, B<Index#> or B<Sequence> is given in the first column of each
|
|
18
18
|
table. A B<Tag ID> is the computer-readable equivalent of a tag name, and
|
|
@@ -143,6 +143,7 @@ L<https://www.w3.org/Graphics/JPEG/jfif3.pdf> for the JPEG specification.
|
|
|
143
143
|
InfiRayMixMode InfiRay MixMode
|
|
144
144
|
DJI_DTAT no
|
|
145
145
|
'APP7' Pentax Pentax
|
|
146
|
+
Ricoh Pentax
|
|
146
147
|
Huawei Unknown
|
|
147
148
|
Qualcomm Qualcomm
|
|
148
149
|
InfiRayOpMode InfiRay OpMode
|
|
@@ -7538,6 +7539,7 @@ boot, not including standby time.
|
|
|
7538
7539
|
0x4026 LogInfo Canon LogInfo
|
|
7539
7540
|
0x4028 AFConfig Canon AFConfig
|
|
7540
7541
|
0x403f RawBurstModeRoll Canon RawBurstInfo
|
|
7542
|
+
0x4053 FocusBracketingInfo Canon FocusBracketingInfo
|
|
7541
7543
|
0x4059 LevelInfo Canon LevelInfo
|
|
7542
7544
|
|
|
7543
7545
|
=head3 Canon CameraSettings Tags
|
|
@@ -8447,7 +8449,7 @@ CameraInfo tags for the EOS R6 Mark II.
|
|
|
8447
8449
|
|
|
8448
8450
|
Index1 Tag Name Writable
|
|
8449
8451
|
------ -------- --------
|
|
8450
|
-
2157
|
|
8452
|
+
2157 ImageCount int16u
|
|
8451
8453
|
|
|
8452
8454
|
=head3 Canon CameraInfoG5XII Tags
|
|
8453
8455
|
|
|
@@ -9893,6 +9895,18 @@ Information about creative filter settings.
|
|
|
9893
9895
|
1 RawBurstImageNum int32u
|
|
9894
9896
|
2 RawBurstImageCount int32u
|
|
9895
9897
|
|
|
9898
|
+
=head3 Canon FocusBracketingInfo Tags
|
|
9899
|
+
|
|
9900
|
+
Index4 Tag Name Writable
|
|
9901
|
+
------ -------- --------
|
|
9902
|
+
1 FocusBracketing int32s
|
|
9903
|
+
2 FocusBracketingImageCount int32s
|
|
9904
|
+
3 FocusBracketingFocusIncrement int32s
|
|
9905
|
+
4 FocusBracketingExposureSmoothing int32s
|
|
9906
|
+
5 FocusBracketingDepthComposite int32s
|
|
9907
|
+
6 FocusBracketingCropDepthComposite int32s
|
|
9908
|
+
7 FocusBracketingFlashInterval int32s
|
|
9909
|
+
|
|
9896
9910
|
=head3 Canon LevelInfo Tags
|
|
9897
9911
|
|
|
9898
9912
|
Index4 Tag Name Writable
|
|
@@ -12507,7 +12521,8 @@ These tags belong to the ExifTool XMP-GImage family 1 group.
|
|
|
12507
12521
|
=head3 Google GPano Tags
|
|
12508
12522
|
|
|
12509
12523
|
Panorama tags written by Google Photosphere. See
|
|
12510
|
-
L<https://developers.google.com/
|
|
12524
|
+
L<https://developers.google.com/streetview/spherical-metadata> for the
|
|
12525
|
+
specification.
|
|
12511
12526
|
|
|
12512
12527
|
These tags belong to the ExifTool XMP-GPano family 1 group.
|
|
12513
12528
|
|
|
@@ -20137,6 +20152,7 @@ These tags are used in Panasonic/Leica cameras.
|
|
|
20137
20152
|
0x00ca SensorType int16u
|
|
20138
20153
|
0x00d1 ISO int32u
|
|
20139
20154
|
0x00d2 MonochromeGrainEffect int16u
|
|
20155
|
+
0x00d4 HybridLogGamma int16u
|
|
20140
20156
|
0x00d6 NoiseReductionStrength rational64s
|
|
20141
20157
|
0x00de AFAreaSize rational64u[2]
|
|
20142
20158
|
0x00e4 LensTypeModel int16u
|
|
@@ -20416,7 +20432,7 @@ various Panasonic and Leica models.
|
|
|
20416
20432
|
|
|
20417
20433
|
=head2 Pentax Tags
|
|
20418
20434
|
|
|
20419
|
-
These tags are used in Pentax/Asahi cameras.
|
|
20435
|
+
These tags are used in Pentax/Asahi/Ricoh cameras.
|
|
20420
20436
|
|
|
20421
20437
|
Tag ID Tag Name Writable
|
|
20422
20438
|
------ -------- --------
|
|
@@ -34166,8 +34182,8 @@ Other tags are extracted with the Unknown option.
|
|
|
34166
34182
|
=head2 Kandao Tags
|
|
34167
34183
|
|
|
34168
34184
|
Tags extracted from Kandao KVAR files and the 'kvar', 'kfix' and 'kstb'
|
|
34169
|
-
atoms in Kandao MP4 videos,
|
|
34170
|
-
|
|
34185
|
+
atoms in Kandao MP4 videos, with a family 1 group name of KVAR, KFIX or KSTB
|
|
34186
|
+
depending on their location.
|
|
34171
34187
|
|
|
34172
34188
|
Tag ID Tag Name Writable
|
|
34173
34189
|
------ -------- --------
|
|
@@ -42838,7 +42854,7 @@ L<Image::ExifTool::BuildTagLookup|Image::ExifTool::BuildTagLookup>.
|
|
|
42838
42854
|
|
|
42839
42855
|
=head1 AUTHOR
|
|
42840
42856
|
|
|
42841
|
-
Copyright 2003-
|
|
42857
|
+
Copyright 2003-2026, Phil Harvey (philharvey66 at gmail.com)
|
|
42842
42858
|
|
|
42843
42859
|
This library is free software; you can redistribute it and/or modify it
|
|
42844
42860
|
under the same terms as Perl itself.
|
|
@@ -222,7 +222,7 @@ characteristics of TXT and CSV files.
|
|
|
222
222
|
|
|
223
223
|
=head1 AUTHOR
|
|
224
224
|
|
|
225
|
-
Copyright 2003-
|
|
225
|
+
Copyright 2003-2026, Phil Harvey (philharvey66 at gmail.com)
|
|
226
226
|
|
|
227
227
|
This library is free software; you can redistribute it and/or modify it
|
|
228
228
|
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-2026, 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-2026, 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.
|
|
@@ -304,7 +304,7 @@ metadata the trailer written by some Vivo, OnePlus and Google phones.
|
|
|
304
304
|
|
|
305
305
|
=head1 AUTHOR
|
|
306
306
|
|
|
307
|
-
Copyright 2003-
|
|
307
|
+
Copyright 2003-2026, Phil Harvey (philharvey66 at gmail.com)
|
|
308
308
|
|
|
309
309
|
This library is free software; you can redistribute it and/or modify it
|
|
310
310
|
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-2026, 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-2026, 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.
|
|
@@ -17,7 +17,7 @@ package Image::ExifTool::Validate;
|
|
|
17
17
|
use strict;
|
|
18
18
|
use vars qw($VERSION %exifSpec);
|
|
19
19
|
|
|
20
|
-
$VERSION = '1.
|
|
20
|
+
$VERSION = '1.25';
|
|
21
21
|
|
|
22
22
|
use Image::ExifTool qw(:Utils);
|
|
23
23
|
use Image::ExifTool::Exif;
|
|
@@ -144,9 +144,9 @@ my %stdFormat = (
|
|
|
144
144
|
0x830e => 'double', 0x8482 => 'double', 0x87af => 'int16u', 0x87b1 => 'string',
|
|
145
145
|
0x8480 => 'double', 0x85d8 => 'double', 0x87b0 => 'double',
|
|
146
146
|
# DNG tags: (use '' for non-DNG tags in the range 0xc612-0xcd48)
|
|
147
|
-
0xc615 => '(string|int8u)', 0xc6f4 => '(string|int8u)',
|
|
148
|
-
0xc61a => '(int16u|int32u|rational64u)', 0xc6f6 => '(string|int8u)',
|
|
149
|
-
0xc61d => 'int(16|32)u', 0xc6f8 => '(string|int8u)',
|
|
147
|
+
0xc615 => '(string|int8u)', 0xc6f4 => '(string|int8u)', 0xcd49 => 'float',
|
|
148
|
+
0xc61a => '(int16u|int32u|rational64u)', 0xc6f6 => '(string|int8u)', 0xcd4a => 'int32u',
|
|
149
|
+
0xc61d => 'int(16|32)u', 0xc6f8 => '(string|int8u)', 0xcd4b => 'int32u',
|
|
150
150
|
0xc61f => '(int16u|int32u|rational64u)', 0xc6fe => '(string|int8u)',
|
|
151
151
|
0xc620 => '(int16u|int32u|rational64u)', 0xc716 => '(string|int8u)',
|
|
152
152
|
0xc628 => '(int16u|rational64u)', 0xc717 => '(string|int8u)',
|
|
@@ -678,7 +678,7 @@ ExifTool Validate option is enabled.
|
|
|
678
678
|
|
|
679
679
|
=head1 AUTHOR
|
|
680
680
|
|
|
681
|
-
Copyright 2003-
|
|
681
|
+
Copyright 2003-2026, 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-2026, 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-2026, 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-2026, 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.
|
|
@@ -123,7 +123,7 @@ from WavPack audio files.
|
|
|
123
123
|
|
|
124
124
|
=head1 AUTHOR
|
|
125
125
|
|
|
126
|
-
Copyright 2003-
|
|
126
|
+
Copyright 2003-2026, Phil Harvey (philharvey66 at gmail.com)
|
|
127
127
|
|
|
128
128
|
This library is free software; you can redistribute it and/or modify it
|
|
129
129
|
under the same terms as Perl itself.
|
|
@@ -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-2026, 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.
|
|
@@ -2734,7 +2734,7 @@ This file contains routines to write EXIF metadata.
|
|
|
2734
2734
|
|
|
2735
2735
|
=head1 AUTHOR
|
|
2736
2736
|
|
|
2737
|
-
Copyright 2003-
|
|
2737
|
+
Copyright 2003-2026, Phil Harvey (philharvey66 at gmail.com)
|
|
2738
2738
|
|
|
2739
2739
|
This library is free software; you can redistribute it and/or modify it
|
|
2740
2740
|
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-2026, 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.
|
|
@@ -780,7 +780,7 @@ C<PDF-update> pseudo group).
|
|
|
780
780
|
|
|
781
781
|
=head1 AUTHOR
|
|
782
782
|
|
|
783
|
-
Copyright 2003-
|
|
783
|
+
Copyright 2003-2026, Phil Harvey (philharvey66 at gmail.com)
|
|
784
784
|
|
|
785
785
|
This library is free software; you can redistribute it and/or modify it
|
|
786
786
|
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-2026, 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-2026, 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-2026, 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.
|
|
@@ -1104,13 +1104,17 @@ sub WriteQuickTime($$$)
|
|
|
1104
1104
|
}
|
|
1105
1105
|
if ($got != $size) {
|
|
1106
1106
|
# ignore up to 256 bytes of garbage at end of file
|
|
1107
|
-
|
|
1107
|
+
my $type;
|
|
1108
|
+
if ($got <= 256 and $size >= 1024 and $tag ne 'mdat' or
|
|
1109
|
+
$got < 3000 and pack('N',$size) =~ /^<b[r>]/ and $type = 'extraneous HTML')
|
|
1110
|
+
{
|
|
1108
1111
|
my $bytes = $got + length $hdr;
|
|
1112
|
+
$type or $type = 'garbage';
|
|
1109
1113
|
if ($$et{OPTIONS}{IgnoreMinorErrors}) {
|
|
1110
|
-
$et->Warn("Deleted
|
|
1114
|
+
$et->Warn("Deleted $type at end of file ($bytes bytes)");
|
|
1111
1115
|
$buff = $hdr = '';
|
|
1112
1116
|
} else {
|
|
1113
|
-
$et->Error("Possible
|
|
1117
|
+
$et->Error("Possible $type at end of file ($bytes bytes)", 1);
|
|
1114
1118
|
return $rtnVal;
|
|
1115
1119
|
}
|
|
1116
1120
|
} else {
|
|
@@ -2262,7 +2266,7 @@ QuickTime-based file formats like MOV and MP4.
|
|
|
2262
2266
|
|
|
2263
2267
|
=head1 AUTHOR
|
|
2264
2268
|
|
|
2265
|
-
Copyright 2003-
|
|
2269
|
+
Copyright 2003-2026, Phil Harvey (philharvey66 at gmail.com)
|
|
2266
2270
|
|
|
2267
2271
|
This library is free software; you can redistribute it and/or modify it
|
|
2268
2272
|
under the same terms as Perl itself.
|
|
@@ -374,7 +374,7 @@ Currently writes only WebP files.
|
|
|
374
374
|
|
|
375
375
|
=head1 AUTHOR
|
|
376
376
|
|
|
377
|
-
Copyright 2003-
|
|
377
|
+
Copyright 2003-2026, Phil Harvey (philharvey66 at gmail.com)
|
|
378
378
|
|
|
379
379
|
This library is free software; you can redistribute it and/or modify it
|
|
380
380
|
under the same terms as Perl itself.
|
|
@@ -1651,7 +1651,7 @@ This file contains routines to write XMP metadata.
|
|
|
1651
1651
|
|
|
1652
1652
|
=head1 AUTHOR
|
|
1653
1653
|
|
|
1654
|
-
Copyright 2003-
|
|
1654
|
+
Copyright 2003-2026, Phil Harvey (philharvey66 at gmail.com)
|
|
1655
1655
|
|
|
1656
1656
|
This library is free software; you can redistribute it and/or modify it
|
|
1657
1657
|
under the same terms as Perl itself.
|
|
@@ -1304,8 +1304,9 @@ sub SetNewValuesFromFile($$;@)
|
|
|
1304
1304
|
IgnoreTags ImageHashType KeepUTCTime Lang LargeFileSupport
|
|
1305
1305
|
LigoGPSScale ListItem ListSep MDItemTags MissingTagValue NoPDFList
|
|
1306
1306
|
NoWarning Password PrintConv QuickTimeUTC RequestTags SaveFormat
|
|
1307
|
-
SavePath ScanForXMP StructFormat SystemTags TimeZone
|
|
1308
|
-
Validate WindowsLongPath WindowsWideFile XAttrTags
|
|
1307
|
+
SavePath ScanForXMP StructFormat SystemTags SystemTimeRes TimeZone
|
|
1308
|
+
Unknown UserParam Validate WindowsLongPath WindowsWideFile XAttrTags
|
|
1309
|
+
XMPAutoConv))
|
|
1309
1310
|
{
|
|
1310
1311
|
$srcExifTool->Options($_ => $$options{$_});
|
|
1311
1312
|
}
|
|
@@ -3846,7 +3847,9 @@ sub GetNewValueHash($$;$$$$)
|
|
|
3846
3847
|
# QuickTime and All are special cases because all group1 tags may be updated at once
|
|
3847
3848
|
last if $$nvHash{WriteGroup} =~ /^(QuickTime|All)$/;
|
|
3848
3849
|
# replace existing entry if WriteGroup is 'All' (avoids confusion of forum10349)
|
|
3849
|
-
last if $$tagInfo{WriteGroup} and $$tagInfo{WriteGroup} eq 'All';
|
|
3850
|
+
#last if $$tagInfo{WriteGroup} and $$tagInfo{WriteGroup} eq 'All'; # (didn't work for forum17770)
|
|
3851
|
+
# forum17770 patch (also handles case where "EXIF" is specified as a write group)
|
|
3852
|
+
last if $writeGroup eq 'All' or $$nvHash{WriteGroup} eq 'EXIF' and $writeGroup =~ /IFD/;
|
|
3850
3853
|
$nvHash = $$nvHash{Next};
|
|
3851
3854
|
}
|
|
3852
3855
|
}
|
|
@@ -7399,7 +7402,7 @@ used routines.
|
|
|
7399
7402
|
|
|
7400
7403
|
=head1 AUTHOR
|
|
7401
7404
|
|
|
7402
|
-
Copyright 2003-
|
|
7405
|
+
Copyright 2003-2026, Phil Harvey (philharvey66 at gmail.com)
|
|
7403
7406
|
|
|
7404
7407
|
This library is free software; you can redistribute it and/or modify it
|
|
7405
7408
|
under the same terms as Perl itself.
|
|
@@ -163,7 +163,7 @@ information from XISF (Extensible Image Serialization Format) images.
|
|
|
163
163
|
|
|
164
164
|
=head1 AUTHOR
|
|
165
165
|
|
|
166
|
-
Copyright 2003-
|
|
166
|
+
Copyright 2003-2026, Phil Harvey (philharvey66 at gmail.com)
|
|
167
167
|
|
|
168
168
|
This library is free software; you can redistribute it and/or modify it
|
|
169
169
|
under the same terms as Perl itself.
|
|
@@ -4631,7 +4631,7 @@ information.
|
|
|
4631
4631
|
|
|
4632
4632
|
=head1 AUTHOR
|
|
4633
4633
|
|
|
4634
|
-
Copyright 2003-
|
|
4634
|
+
Copyright 2003-2026, Phil Harvey (philharvey66 at gmail.com)
|
|
4635
4635
|
|
|
4636
4636
|
This library is free software; you can redistribute it and/or modify it
|
|
4637
4637
|
under the same terms as Perl itself.
|
|
@@ -1958,7 +1958,7 @@ This file contains definitions for less common XMP namespaces.
|
|
|
1958
1958
|
|
|
1959
1959
|
=head1 AUTHOR
|
|
1960
1960
|
|
|
1961
|
-
Copyright 2003-
|
|
1961
|
+
Copyright 2003-2026, Phil Harvey (philharvey66 at gmail.com)
|
|
1962
1962
|
|
|
1963
1963
|
This library is free software; you can redistribute it and/or modify it
|
|
1964
1964
|
under the same terms as Perl itself.
|
|
@@ -944,7 +944,7 @@ information.
|
|
|
944
944
|
|
|
945
945
|
=head1 AUTHOR
|
|
946
946
|
|
|
947
|
-
Copyright 2003-
|
|
947
|
+
Copyright 2003-2026, Phil Harvey (philharvey66 at gmail.com)
|
|
948
948
|
|
|
949
949
|
This library is free software; you can redistribute it and/or modify it
|
|
950
950
|
under the same terms as Perl itself.
|
|
@@ -840,7 +840,7 @@ Electronic Publication (EPUB), and Sketch design files (SKETCH).
|
|
|
840
840
|
|
|
841
841
|
=head1 AUTHOR
|
|
842
842
|
|
|
843
|
-
Copyright 2003-
|
|
843
|
+
Copyright 2003-2026, Phil Harvey (philharvey66 at gmail.com)
|
|
844
844
|
|
|
845
845
|
This library is free software; you can redistribute it and/or modify it
|
|
846
846
|
under the same terms as Perl itself.
|
|
@@ -220,7 +220,7 @@ metadata from Zeiss Integrated Software RAW (ZISRAW) CZI files.
|
|
|
220
220
|
|
|
221
221
|
=head1 AUTHOR
|
|
222
222
|
|
|
223
|
-
Copyright 2003-
|
|
223
|
+
Copyright 2003-2026, Phil Harvey (philharvey66 at gmail.com)
|
|
224
224
|
|
|
225
225
|
This library is free software; you can redistribute it and/or modify it
|
|
226
226
|
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-2026, 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.
|
data/bin/lib/Image/ExifTool.pm
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
# Revisions: Nov. 12/2003 - P. Harvey Created
|
|
9
9
|
# (See html/history.html for revision history)
|
|
10
10
|
#
|
|
11
|
-
# Legal: Copyright (c) 2003-
|
|
11
|
+
# Legal: Copyright (c) 2003-2026, Phil Harvey (philharvey66 at gmail.com)
|
|
12
12
|
# This library is free software; you can redistribute it and/or
|
|
13
13
|
# modify it under the same terms as Perl itself.
|
|
14
14
|
#------------------------------------------------------------------------------
|
|
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
|
|
30
30
|
%static_vars $advFmtSelf $configFile @configFiles $noConfig);
|
|
31
31
|
|
|
32
|
-
$VERSION = '13.
|
|
32
|
+
$VERSION = '13.46';
|
|
33
33
|
$RELEASE = '';
|
|
34
34
|
@ISA = qw(Exporter);
|
|
35
35
|
%EXPORT_TAGS = (
|
|
@@ -1147,6 +1147,7 @@ my @availableOptions = (
|
|
|
1147
1147
|
[ 'GeoMinSats', undef, 'geotag minimum satellites' ],
|
|
1148
1148
|
[ 'GeoHPosErr', undef, 'geotag GPSHPositioningError based on $GPSDOP' ],
|
|
1149
1149
|
[ 'GeoSpeedRef', undef, 'geotag GPSSpeedRef' ],
|
|
1150
|
+
[ 'GeoUserTag', undef, 'user-defined GPX tags for geotagging' ],
|
|
1150
1151
|
[ 'GlobalTimeShift', undef, 'apply time shift to all extracted date/time values' ],
|
|
1151
1152
|
[ 'GPSQuadrant', undef, 'quadrant for GPS if not otherwise known' ],
|
|
1152
1153
|
[ 'Group#', undef, 'return tags for specified groups in family #' ],
|
|
@@ -1193,6 +1194,7 @@ my @availableOptions = (
|
|
|
1193
1194
|
[ 'Struct', undef, 'return structures as hash references' ],
|
|
1194
1195
|
[ 'StructFormat', undef, 'format for structure serialization when reading/writing' ],
|
|
1195
1196
|
[ 'SystemTags', undef, 'extract additional File System tags' ],
|
|
1197
|
+
[ 'SystemTimeRes', 0, 'number of sub-second digits in system and epoch times' ],
|
|
1196
1198
|
[ 'TextOut', \*STDOUT, 'file for Verbose/HtmlDump output' ],
|
|
1197
1199
|
[ 'TimeZone', undef, 'local time zone' ],
|
|
1198
1200
|
[ 'UndefTags', undef, 'leave undef tags in -if conditions when -m or -f are used' ],
|
|
@@ -2624,7 +2626,7 @@ sub Options($$;@)
|
|
|
2624
2626
|
# add to existing plot settings
|
|
2625
2627
|
$newVal = "$oldVal,$newVal" if defined $oldVal and defined $newVal;
|
|
2626
2628
|
$$options{$param} = $newVal;
|
|
2627
|
-
} elsif ($param eq 'KeepUTCTime') {
|
|
2629
|
+
} elsif ($param eq 'KeepUTCTime' or $param eq 'SystemTimeRes') {
|
|
2628
2630
|
$$options{$param} = $static_vars{$param} = $newVal;
|
|
2629
2631
|
} elsif (lc $param eq 'geodir') {
|
|
2630
2632
|
$Image::ExifTool::Geolocation::geoDir = $newVal;
|
|
@@ -4286,7 +4288,11 @@ sub Init($)
|
|
|
4286
4288
|
my $self = shift;
|
|
4287
4289
|
# delete all DataMember variables (lower-case names)
|
|
4288
4290
|
delete $$self{$_} foreach grep /[a-z]/, keys %$self;
|
|
4289
|
-
|
|
4291
|
+
# reset static variables
|
|
4292
|
+
%static_vars = (
|
|
4293
|
+
KeepUTCTime => $$self{OPTIONS}{KeepUTCTime},
|
|
4294
|
+
SystemTimeRes => $$self{OPTIONS}{SystemTimeRes},
|
|
4295
|
+
);
|
|
4290
4296
|
delete $$self{FOUND_TAGS}; # list of found tags
|
|
4291
4297
|
delete $$self{EXIF_DATA}; # the EXIF data block
|
|
4292
4298
|
delete $$self{EXIF_POS}; # EXIF position in file
|
|
@@ -4676,7 +4682,8 @@ sub SplitFileName($)
|
|
|
4676
4682
|
|
|
4677
4683
|
#------------------------------------------------------------------------------
|
|
4678
4684
|
# Encode file name for calls to system i/o routines
|
|
4679
|
-
# Inputs: 0) ExifTool ref, 1) file name in CharsetFileName encoding,
|
|
4685
|
+
# Inputs: 0) ExifTool ref, 1) file name in CharsetFileName encoding,
|
|
4686
|
+
# 2) flag to force conversion even if no special characters
|
|
4680
4687
|
# Returns: true if Windows Unicode routines should be used (in which case
|
|
4681
4688
|
# the file name will be encoded as a null-terminated UTF-16LE string)
|
|
4682
4689
|
sub EncodeFileName($$;$)
|
|
@@ -4872,7 +4879,7 @@ sub Exists($$;$)
|
|
|
4872
4879
|
eval { Win32API::File::CloseHandle($wh) };
|
|
4873
4880
|
} elsif ($writing) {
|
|
4874
4881
|
# (named pipes already exist, but we pretend that they don't
|
|
4875
|
-
# so we will be able to write them, so test
|
|
4882
|
+
# so we will be able to write them, so test for pipe with -p)
|
|
4876
4883
|
return(-e $file and not -p $file);
|
|
4877
4884
|
} else {
|
|
4878
4885
|
return(-e $file);
|
|
@@ -6713,34 +6720,33 @@ sub TimeZoneString($;$)
|
|
|
6713
6720
|
|
|
6714
6721
|
#------------------------------------------------------------------------------
|
|
6715
6722
|
# Convert Unix time to EXIF date/time string
|
|
6716
|
-
# Inputs: 0) Unix time value, 1) non-zero to convert to local time,
|
|
6717
|
-
#
|
|
6723
|
+
# Inputs: 0) Unix time value, 1) non-zero to convert to local time, 2) number of
|
|
6724
|
+
# digits after the decimal for fractional seconds, negative to trim
|
|
6725
|
+
# trailing zeros, or undef to use SystemTimeRes
|
|
6718
6726
|
# Returns: EXIF date/time string (with timezone for local times)
|
|
6719
6727
|
sub ConvertUnixTime($;$$)
|
|
6720
6728
|
{
|
|
6721
6729
|
my ($time, $toLocal, $dec) = @_;
|
|
6722
6730
|
return '0000:00:00 00:00:00' if $time == 0;
|
|
6723
|
-
my (@tm, $tz);
|
|
6724
|
-
|
|
6725
|
-
|
|
6726
|
-
|
|
6727
|
-
|
|
6728
|
-
|
|
6729
|
-
|
|
6730
|
-
|
|
6731
|
-
|
|
6732
|
-
|
|
6733
|
-
$dec = '';
|
|
6734
|
-
}
|
|
6731
|
+
my (@tm, $tz, $trim);
|
|
6732
|
+
$dec = $static_vars{SystemTimeRes} || 0 unless defined $dec;
|
|
6733
|
+
$dec < 0 and $dec = -$dec, $trim = 1;
|
|
6734
|
+
my $itime = int($time);
|
|
6735
|
+
my $frac = $time - $itime;
|
|
6736
|
+
$frac < 0 and $frac += 1, $itime -= 1;
|
|
6737
|
+
$dec = sprintf('%.*f', $dec, $frac);
|
|
6738
|
+
# remove number before decimal and increment integer time if necessary
|
|
6739
|
+
$dec =~ s/^(\d)// and $1 eq '1' and $itime += 1;
|
|
6740
|
+
$dec =~ s/\.?0+$// if $trim; # trim trailing zeros if specified
|
|
6735
6741
|
if (not $toLocal) {
|
|
6736
|
-
@tm = gmtime($
|
|
6742
|
+
@tm = gmtime($itime);
|
|
6737
6743
|
$tz = '';
|
|
6738
6744
|
} elsif ($static_vars{KeepUTCTime}) {
|
|
6739
|
-
@tm = gmtime($
|
|
6745
|
+
@tm = gmtime($itime);
|
|
6740
6746
|
$tz = 'Z';
|
|
6741
6747
|
} else {
|
|
6742
|
-
@tm = localtime($
|
|
6743
|
-
$tz = TimeZoneString(\@tm, $
|
|
6748
|
+
@tm = localtime($itime);
|
|
6749
|
+
$tz = TimeZoneString(\@tm, $itime);
|
|
6744
6750
|
}
|
|
6745
6751
|
my $str = sprintf("%4d:%.2d:%.2d %.2d:%.2d:%.2d$dec%s",
|
|
6746
6752
|
$tm[5]+1900, $tm[4]+1, $tm[3], $tm[2], $tm[1], $tm[0], $tz);
|
|
@@ -6783,7 +6789,7 @@ sub GetUnixTime($;$)
|
|
|
6783
6789
|
|
|
6784
6790
|
#------------------------------------------------------------------------------
|
|
6785
6791
|
# Print conversion for file size
|
|
6786
|
-
# Inputs: 0) file size in bytes
|
|
6792
|
+
# Inputs: 0) file size in bytes, 1) optional ExifTool ref
|
|
6787
6793
|
# Returns: converted file size
|
|
6788
6794
|
sub ConvertFileSize($;$)
|
|
6789
6795
|
{
|
|
@@ -8127,11 +8133,11 @@ sub ProcessJPEG($$;$)
|
|
|
8127
8133
|
$self->ProcessDirectory(\%dirInfo, $tagTablePtr);
|
|
8128
8134
|
}
|
|
8129
8135
|
} elsif ($marker == 0xe7) { # APP7 (InfiRay, Pentax, Huawei, Qualcomm)
|
|
8130
|
-
if ($$segDataPt =~ /^PENTAX \0(II|MM)/) {
|
|
8131
|
-
# found in K-3 images (is this multi-segment??)
|
|
8132
|
-
SetByteOrder($
|
|
8136
|
+
if ($$segDataPt =~ /^(PENTAX |RICOH)\0(II|MM)/) {
|
|
8137
|
+
# found in K-3 and Ricoh GR_IV images (is this multi-segment??)
|
|
8138
|
+
SetByteOrder($2);
|
|
8133
8139
|
undef $dumpType; # (dump this ourself)
|
|
8134
|
-
my $hdrLen =
|
|
8140
|
+
my $hdrLen = length($1) + 3;
|
|
8135
8141
|
my $tagTablePtr = GetTagTable('Image::ExifTool::Pentax::Main');
|
|
8136
8142
|
DirStart(\%dirInfo, $hdrLen, 0);
|
|
8137
8143
|
$dirInfo{DirName} = 'Pentax APP7';
|