exiftool_vendored 12.11.0 → 12.16.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 +62 -2
- data/bin/MANIFEST +5 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +3 -3
- data/bin/exiftool +70 -36
- data/bin/lib/File/RandomAccess.pm +1 -1
- data/bin/lib/File/RandomAccess.pod +2 -2
- data/bin/lib/Image/ExifTool.pm +39 -4
- data/bin/lib/Image/ExifTool.pod +12 -8
- 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 +3 -2
- 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 +28 -2
- data/bin/lib/Image/ExifTool/DNG.pm +1 -1
- data/bin/lib/Image/ExifTool/DPX.pm +4 -4
- 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 +3 -3
- data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- data/bin/lib/Image/ExifTool/JPEG.pm +24 -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 +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 +1 -1
- data/bin/lib/Image/ExifTool/MWG.pm +1 -1
- data/bin/lib/Image/ExifTool/MXF.pm +1 -1
- data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
- data/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
- data/bin/lib/Image/ExifTool/Matroska.pm +1 -1
- data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
- data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
- data/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
- data/bin/lib/Image/ExifTool/Nikon.pm +315 -35
- data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- data/bin/lib/Image/ExifTool/NikonCustom.pm +1 -1
- data/bin/lib/Image/ExifTool/NikonSettings.pm +2013 -0
- 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 +2 -1
- 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 +12 -4
- 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 +3 -2
- 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 +38 -23
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +46 -7
- data/bin/lib/Image/ExifTool/RIFF.pm +83 -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 +8 -2
- data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
- data/bin/lib/Image/ExifTool/Stim.pm +1 -1
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +3943 -3807
- data/bin/lib/Image/ExifTool/TagNames.pod +312 -18
- 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 +1 -1
- data/bin/lib/Image/ExifTool/WriteXMP.pl +1 -1
- data/bin/lib/Image/ExifTool/Writer.pl +26 -14
- data/bin/lib/Image/ExifTool/XMP.pm +17 -8
- data/bin/lib/Image/ExifTool/XMP2.pl +5 -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 +9 -4
@@ -820,7 +820,7 @@ information in DNG (Digital Negative) images.
|
|
820
820
|
|
821
821
|
=head1 AUTHOR
|
822
822
|
|
823
|
-
Copyright 2003-
|
823
|
+
Copyright 2003-2021, 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.
|
@@ -15,7 +15,7 @@ use strict;
|
|
15
15
|
use vars qw($VERSION);
|
16
16
|
use Image::ExifTool qw(:DataAccess :Utils);
|
17
17
|
|
18
|
-
$VERSION = '1.
|
18
|
+
$VERSION = '1.05';
|
19
19
|
|
20
20
|
# DPX tags
|
21
21
|
%Image::ExifTool::DPX::Main = (
|
@@ -158,11 +158,11 @@ $VERSION = '1.04';
|
|
158
158
|
1588=> { Name => 'InputDeviceSerialNumber', Format => 'string[32]' },
|
159
159
|
# 1620=> { Name => 'AspectRatio', Format => 'int32u' },
|
160
160
|
1724 => { Name => 'OriginalFrameRate',Format => 'float' },
|
161
|
-
1728 => { Name => 'ShutterAngle', Format => 'float', RawConv => '$val =~ /\d/ ? $val : undef' }, #2
|
161
|
+
1728 => { Name => 'ShutterAngle', Format => 'float', RawConv => '($val =~ /\d/ and $val !~ /nan/i) ? $val : undef' }, #2
|
162
162
|
1732 => { Name => 'FrameID', Format => 'string[32]' },
|
163
163
|
1764 => { Name => 'SlateInformation', Format => 'string[100]' },
|
164
164
|
1920 => { Name => 'TimeCode', Format => 'int32u' }, #2
|
165
|
-
1940 => { Name => 'FrameRate', Format => 'float', RawConv => '$val =~ /\d/ ? $val : undef' }, #2
|
165
|
+
1940 => { Name => 'FrameRate', Format => 'float', RawConv => '($val =~ /\d/ and $val !~ /nan/i) ? $val : undef' }, #2
|
166
166
|
1972 => { Name => 'Reserved5', Format => 'string[76]', Unknown => 1 },
|
167
167
|
2048 => { Name => 'UserID', Format => 'string[32]' },
|
168
168
|
);
|
@@ -214,7 +214,7 @@ metadata from DPX (Digital Picture Exchange) images.
|
|
214
214
|
|
215
215
|
=head1 AUTHOR
|
216
216
|
|
217
|
-
Copyright 2003-
|
217
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
218
218
|
|
219
219
|
This library is free software; you can redistribute it and/or modify it
|
220
220
|
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-2021, 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-2021, 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.
|
@@ -352,7 +352,7 @@ Image::ExifTool::AIFF.
|
|
352
352
|
|
353
353
|
=head1 AUTHOR
|
354
354
|
|
355
|
-
Copyright 2003-
|
355
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
356
356
|
|
357
357
|
This library is free software; you can redistribute it and/or modify it
|
358
358
|
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-2021, 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.
|
@@ -1377,6 +1377,12 @@ my %opcodeInfo = (
|
|
1377
1377
|
Count => 6,
|
1378
1378
|
Priority => 0,
|
1379
1379
|
},
|
1380
|
+
# 0x220 - int32u: 0 (IFD0, Xaiomi Redmi models)
|
1381
|
+
# 0x221 - int32u: 0 (IFD0, Xaiomi Redmi models)
|
1382
|
+
# 0x222 - int32u: 0 (IFD0, Xaiomi Redmi models)
|
1383
|
+
# 0x223 - int32u: 0 (IFD0, Xaiomi Redmi models)
|
1384
|
+
# 0x224 - int32u: 0,1 (IFD0, Xaiomi Redmi models)
|
1385
|
+
# 0x225 - string: "" (IFD0, Xaiomi Redmi models)
|
1380
1386
|
0x22f => 'StripRowCounts',
|
1381
1387
|
0x2bc => {
|
1382
1388
|
Name => 'ApplicationNotes', # (writable directory!)
|
@@ -1998,6 +2004,7 @@ my %opcodeInfo = (
|
|
1998
2004
|
0x885d => 'FaxSubAddress', #9
|
1999
2005
|
0x885e => 'FaxRecvTime', #9
|
2000
2006
|
0x8871 => 'FedexEDR', #exifprobe (NC)
|
2007
|
+
# 0x8889 - string: "portrait" (ExifIFD, Xiaomi POCO F1)
|
2001
2008
|
0x888a => { #PH
|
2002
2009
|
Name => 'LeafSubIFD',
|
2003
2010
|
Format => 'int32u', # Leaf incorrectly uses 'undef' format!
|
@@ -2008,6 +2015,10 @@ my %opcodeInfo = (
|
|
2008
2015
|
Start => '$val',
|
2009
2016
|
},
|
2010
2017
|
},
|
2018
|
+
# 0x8891 - int16u: 35 (ExifIFD, Xiaomi POCO F1)
|
2019
|
+
# 0x8894 - int16u: 0 (ExifIFD, Xiaomi POCO F1)
|
2020
|
+
# 0x8895 - int16u: 0 (ExifIFD, Xiaomi POCO F1)
|
2021
|
+
# 0x889a - int16u: 0 (ExifIFD, Xiaomi POCO F1)
|
2011
2022
|
# 0x89ab - seen "11 100 130 16 0 0 0 0" in IFD0 of TIFF image from IR scanner (forum8470)
|
2012
2023
|
0x9000 => {
|
2013
2024
|
Name => 'ExifVersion',
|
@@ -2368,6 +2379,8 @@ my %opcodeInfo = (
|
|
2368
2379
|
Name => 'CameraElevationAngle',
|
2369
2380
|
Writable => 'rational64s',
|
2370
2381
|
},
|
2382
|
+
# 0x9999 - string: camera settings (ExifIFD, Xiaomi POCO F1)
|
2383
|
+
# 0x9aaa - int8u[2176]: ? (ExifIFD, Xiaomi POCO F1)
|
2371
2384
|
0x9c9b => {
|
2372
2385
|
Name => 'XPTitle',
|
2373
2386
|
Format => 'undef',
|
@@ -6591,7 +6604,7 @@ EXIF and TIFF meta information.
|
|
6591
6604
|
|
6592
6605
|
=head1 AUTHOR
|
6593
6606
|
|
6594
|
-
Copyright 2003-
|
6607
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
6595
6608
|
|
6596
6609
|
This library is free software; you can redistribute it and/or modify it
|
6597
6610
|
under the same terms as Perl itself.
|
@@ -126,7 +126,7 @@ information from FITS (Flexible Image Transport System) images.
|
|
126
126
|
|
127
127
|
=head1 AUTHOR
|
128
128
|
|
129
|
-
Copyright 2003-
|
129
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
130
130
|
|
131
131
|
This library is free software; you can redistribute it and/or modify it
|
132
132
|
under the same terms as Perl itself.
|
@@ -284,7 +284,7 @@ information from Free Lossless Audio Codec (FLAC) audio files.
|
|
284
284
|
|
285
285
|
=head1 AUTHOR
|
286
286
|
|
287
|
-
Copyright 2003-
|
287
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
288
288
|
|
289
289
|
This library is free software; you can redistribute it and/or modify it
|
290
290
|
under the same terms as Perl itself.
|
@@ -329,7 +329,7 @@ meta information in FLIF (Free Lossless Image Format) images.
|
|
329
329
|
|
330
330
|
=head1 AUTHOR
|
331
331
|
|
332
|
-
Copyright 2003-
|
332
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
333
333
|
|
334
334
|
This library is free software; you can redistribute it and/or modify it
|
335
335
|
under the same terms as Perl itself.
|
@@ -1594,7 +1594,7 @@ Systems Inc. thermal image files (FFF, FPF and JPEG format).
|
|
1594
1594
|
|
1595
1595
|
=head1 AUTHOR
|
1596
1596
|
|
1597
|
-
Copyright 2003-
|
1597
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
1598
1598
|
|
1599
1599
|
This library is free software; you can redistribute it and/or modify it
|
1600
1600
|
under the same terms as Perl itself.
|
@@ -354,7 +354,7 @@ linear list when ApplyFixups() is called.
|
|
354
354
|
|
355
355
|
=head1 AUTHOR
|
356
356
|
|
357
|
-
Copyright 2003-
|
357
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
358
358
|
|
359
359
|
This library is free software; you can redistribute it and/or modify it
|
360
360
|
under the same terms as Perl itself.
|
@@ -721,7 +721,7 @@ will add AMF3 support.
|
|
721
721
|
|
722
722
|
=head1 AUTHOR
|
723
723
|
|
724
|
-
Copyright 2003-
|
724
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
725
725
|
|
726
726
|
This library is free software; you can redistribute it and/or modify it
|
727
727
|
under the same terms as Perl itself.
|
@@ -2370,7 +2370,7 @@ JPEG images.
|
|
2370
2370
|
|
2371
2371
|
=head1 AUTHOR
|
2372
2372
|
|
2373
|
-
Copyright 2003-
|
2373
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
2374
2374
|
|
2375
2375
|
This library is free software; you can redistribute it and/or modify it
|
2376
2376
|
under the same terms as Perl itself.
|
@@ -622,7 +622,7 @@ extracted from these formats.
|
|
622
622
|
|
623
623
|
=head1 AUTHOR
|
624
624
|
|
625
|
-
Copyright 2003-
|
625
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
626
626
|
|
627
627
|
This library is free software; you can redistribute it and/or modify it
|
628
628
|
under the same terms as Perl itself.
|
@@ -243,7 +243,7 @@ write information from the FotoWare FotoStation trailer.
|
|
243
243
|
|
244
244
|
=head1 AUTHOR
|
245
245
|
|
246
|
-
Copyright 2003-
|
246
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
247
247
|
|
248
248
|
This library is free software; you can redistribute it and/or modify it
|
249
249
|
under the same terms as Perl itself.
|
@@ -1658,7 +1658,7 @@ FujiFilm maker notes in EXIF information, and to read/write FujiFilm RAW
|
|
1658
1658
|
|
1659
1659
|
=head1 AUTHOR
|
1660
1660
|
|
1661
|
-
Copyright 2003-
|
1661
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
1662
1662
|
|
1663
1663
|
This library is free software; you can redistribute it and/or modify it
|
1664
1664
|
under the same terms as Perl itself.
|
@@ -68,7 +68,7 @@ General Imaging maker notes.
|
|
68
68
|
|
69
69
|
=head1 AUTHOR
|
70
70
|
|
71
|
-
Copyright 2003-
|
71
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
72
72
|
|
73
73
|
This library is free software; you can redistribute it and/or modify it
|
74
74
|
under the same terms as Perl itself.
|
@@ -537,7 +537,7 @@ write GIF meta information.
|
|
537
537
|
|
538
538
|
=head1 AUTHOR
|
539
539
|
|
540
|
-
Copyright 2003-
|
540
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
541
541
|
|
542
542
|
This library is free software; you can redistribute it and/or modify it
|
543
543
|
under the same terms as Perl itself.
|
@@ -270,7 +270,7 @@ GIMP software.
|
|
270
270
|
|
271
271
|
=head1 AUTHOR
|
272
272
|
|
273
|
-
Copyright 2003-
|
273
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
274
274
|
|
275
275
|
This library is free software; you can redistribute it and/or modify it
|
276
276
|
under the same terms as Perl itself.
|
@@ -564,7 +564,7 @@ GPS (Global Positioning System) meta information in EXIF data.
|
|
564
564
|
|
565
565
|
=head1 AUTHOR
|
566
566
|
|
567
|
-
Copyright 2003-
|
567
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
568
568
|
|
569
569
|
This library is free software; you can redistribute it and/or modify it
|
570
570
|
under the same terms as Perl itself.
|
@@ -2242,7 +2242,7 @@ coordinates.
|
|
2242
2242
|
|
2243
2243
|
=head1 AUTHOR
|
2244
2244
|
|
2245
|
-
Copyright 2003-
|
2245
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
2246
2246
|
|
2247
2247
|
This library is free software; you can redistribute it and/or modify it
|
2248
2248
|
under the same terms as Perl itself.
|
@@ -13,6 +13,7 @@
|
|
13
13
|
# 2016/07/13 - PH Added ability to geotag date/time only
|
14
14
|
# 2019/07/02 - PH Added ability to read IMU CSV files
|
15
15
|
# 2019/11/10 - PH Also write pitch to CameraElevationAngle
|
16
|
+
# 2020/12/01 - PH Added ability to read DJI CSV log files
|
16
17
|
#
|
17
18
|
# References: 1) http://www.topografix.com/GPX/1/1/
|
18
19
|
# 2) http://www.gpsinformation.org/dale/nmea.htm#GSA
|
@@ -27,7 +28,7 @@ use vars qw($VERSION);
|
|
27
28
|
use Image::ExifTool qw(:Public);
|
28
29
|
use Image::ExifTool::GPS;
|
29
30
|
|
30
|
-
$VERSION = '1.
|
31
|
+
$VERSION = '1.64';
|
31
32
|
|
32
33
|
sub JITTER() { return 2 } # maximum time jitter
|
33
34
|
|
@@ -133,7 +134,7 @@ sub LoadTrackLog($$;$)
|
|
133
134
|
my ($et, $val) = @_;
|
134
135
|
my ($raf, $from, $time, $isDate, $noDate, $noDateChanged, $lastDate, $dateFlarm);
|
135
136
|
my ($nmeaStart, $fixSecs, @fixTimes, $lastFix, %nmea, @csvHeadings);
|
136
|
-
my ($canCut, $cutPDOP, $cutHDOP, $cutSats, $e0, $e1, @tmp);
|
137
|
+
my ($canCut, $cutPDOP, $cutHDOP, $cutSats, $e0, $e1, @tmp, $trackFile, $trackTime);
|
137
138
|
|
138
139
|
unless (eval { require Time::Local }) {
|
139
140
|
return 'Geotag feature requires Time::Local installed';
|
@@ -159,6 +160,7 @@ sub LoadTrackLog($$;$)
|
|
159
160
|
} else {
|
160
161
|
# $val is track file name
|
161
162
|
if ($et->Open(\*EXIFTOOL_TRKFILE, $val)) {
|
163
|
+
$trackFile = $val;
|
162
164
|
$raf = new File::RandomAccess(\*EXIFTOOL_TRKFILE);
|
163
165
|
unless ($raf->Read($_, 256)) {
|
164
166
|
close EXIFTOOL_TRKFILE;
|
@@ -201,6 +203,8 @@ sub LoadTrackLog($$;$)
|
|
201
203
|
my $skipped = 0;
|
202
204
|
my $lastSecs = 0;
|
203
205
|
my $fix = { };
|
206
|
+
my $csvDelim = $et->Options('CSVDelim');
|
207
|
+
$csvDelim = ',' unless defined $csvDelim;
|
204
208
|
my (@saveFix, $timeSpan);
|
205
209
|
for (;;) {
|
206
210
|
$raf->ReadLine($_) or last;
|
@@ -230,19 +234,31 @@ sub LoadTrackLog($$;$)
|
|
230
234
|
$format = 'Winplus';
|
231
235
|
} elsif (/^\s*\d+\s+.*\sypr\s*$/ and (@tmp=split) == 12) {
|
232
236
|
$format = 'Bramor';
|
233
|
-
} elsif (/\b(GPS)?Date/i and /\b(GPS)?(Date)?Time/i and
|
237
|
+
} elsif (((/\b(GPS)?Date/i and /\b(GPS)?(Date)?Time/i) or /\bTime\(seconds\)/i) and /\Q$csvDelim/) {
|
234
238
|
chomp;
|
235
|
-
@csvHeadings = split
|
239
|
+
@csvHeadings = split /\Q$csvDelim/;
|
236
240
|
$format = 'CSV';
|
237
241
|
# convert recognized headings to our parameter names
|
238
242
|
foreach (@csvHeadings) {
|
239
243
|
my $param;
|
240
244
|
s/^GPS ?//; # remove leading "GPS" to simplify regex patterns
|
241
|
-
if (/^
|
245
|
+
if (/^Time ?\(seconds\)$/i) { # DJI
|
246
|
+
# DJI CSV log files have a column "Time(seconds)" which is seconds since
|
247
|
+
# the start of the flight. The date/time is obtained from the file name.
|
248
|
+
$param = 'runtime';
|
249
|
+
if ($trackFile and $trackFile =~ /(\d{4})-(\d{2})-(\d{2})[^\/]+(\d{2})-(\d{2})-(\d{2})[^\/]*$/) {
|
250
|
+
$trackTime = Image::ExifTool::TimeLocal($6,$5,$4,$3,$2-1,$1);
|
251
|
+
my $utc = PrintFixTime($trackTime);
|
252
|
+
my $tzs = Image::ExifTool::TimeZoneString([$6,$5,$4,$3,$2-1,$1-1900],$trackTime);
|
253
|
+
$et->VPrint(2, " DJI start time: $utc (local timezone is $tzs)\n");
|
254
|
+
} else {
|
255
|
+
return 'Error getting start time from file name for DJI CSV track file';
|
256
|
+
}
|
257
|
+
} elsif (/^Date ?Time/i) { # ExifTool addition
|
242
258
|
$param = 'datetime';
|
243
259
|
} elsif (/^Date/i) {
|
244
260
|
$param = 'date';
|
245
|
-
} elsif (/^Time/i) {
|
261
|
+
} elsif (/^Time(?! ?\(text\))/i) { # (ignore DJI "Time(text)" column)
|
246
262
|
$param = 'time';
|
247
263
|
} elsif (/^(Pos)?Lat/i) {
|
248
264
|
$param = 'lat';
|
@@ -423,7 +439,7 @@ DoneFix: $isDate = 1;
|
|
423
439
|
goto DoneFix; # save this fix
|
424
440
|
} elsif ($format eq 'CSV') {
|
425
441
|
chomp;
|
426
|
-
my @vals = split
|
442
|
+
my @vals = split /\Q$csvDelim/;
|
427
443
|
#
|
428
444
|
# CSV format output of GPS/IMU POS system
|
429
445
|
# Date* - date in DD/MM/YYYY format
|
@@ -435,7 +451,7 @@ DoneFix: $isDate = 1;
|
|
435
451
|
# [Angle]Pitch* - pitch angle in degrees
|
436
452
|
# [Angle]Roll* - roll angle in degrees
|
437
453
|
# (ExifTool enhancements allow for standard tag names or descriptions as the column headings,
|
438
|
-
# add support for time zones and flexible coordinates, and allow
|
454
|
+
# add support for time zones and flexible coordinates, and allow new DateTime and Shift columns)
|
439
455
|
#
|
440
456
|
my ($param, $date, $secs);
|
441
457
|
foreach $param (@csvHeadings) {
|
@@ -463,6 +479,9 @@ DoneFix: $isDate = 1;
|
|
463
479
|
}
|
464
480
|
} elsif ($param eq 'lat' or $param eq 'lon') {
|
465
481
|
$$fix{$param} = Image::ExifTool::GPS::ToDegrees($val, 1);
|
482
|
+
} elsif ($param eq 'runtime') {
|
483
|
+
$date = $trackTime;
|
484
|
+
$secs = $val;
|
466
485
|
} else {
|
467
486
|
$$fix{$param} = $val;
|
468
487
|
}
|
@@ -1378,8 +1397,8 @@ This module is used by Image::ExifTool
|
|
1378
1397
|
This module loads GPS track logs, interpolates to determine position based
|
1379
1398
|
on time, and sets new GPS values for geotagging images. Currently supported
|
1380
1399
|
formats are GPX, NMEA RMC/GGA/GLL, KML, IGC, Garmin XML and TCX, Magellan
|
1381
|
-
PMGNTRK, Honeywell PTNTHPR, Winplus Beacon text, IMU CSV,
|
1382
|
-
files.
|
1400
|
+
PMGNTRK, Honeywell PTNTHPR, Winplus Beacon text, IMU CSV, DJI CSV, and
|
1401
|
+
Bramor gEO log files.
|
1383
1402
|
|
1384
1403
|
Methods in this module should not be called directly. Instead, the Geotag
|
1385
1404
|
feature is accessed by writing the values of the ExifTool Geotag, Geosync
|
@@ -1393,7 +1412,7 @@ user-defined tag GPSRoll, must be active.
|
|
1393
1412
|
|
1394
1413
|
=head1 AUTHOR
|
1395
1414
|
|
1396
|
-
Copyright 2003-
|
1415
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
1397
1416
|
|
1398
1417
|
This library is free software; you can redistribute it and/or modify it
|
1399
1418
|
under the same terms as Perl itself.
|
@@ -718,7 +718,7 @@ metadata from GoPro MP4 videos.
|
|
718
718
|
|
719
719
|
=head1 AUTHOR
|
720
720
|
|
721
|
-
Copyright 2003-
|
721
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
722
722
|
|
723
723
|
This library is free software; you can redistribute it and/or modify it
|
724
724
|
under the same terms as Perl itself.
|
@@ -1108,7 +1108,7 @@ information from H.264 video streams.
|
|
1108
1108
|
|
1109
1109
|
=head1 AUTHOR
|
1110
1110
|
|
1111
|
-
Copyright 2003-
|
1111
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
1112
1112
|
|
1113
1113
|
This library is free software; you can redistribute it and/or modify it
|
1114
1114
|
under the same terms as Perl itself.
|
@@ -250,7 +250,7 @@ Hewlett-Packard maker notes.
|
|
250
250
|
|
251
251
|
=head1 AUTHOR
|
252
252
|
|
253
|
-
Copyright 2003-
|
253
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
254
254
|
|
255
255
|
This library is free software; you can redistribute it and/or modify it
|
256
256
|
under the same terms as Perl itself.
|
@@ -555,7 +555,7 @@ meta information from HTML documents.
|
|
555
555
|
|
556
556
|
=head1 AUTHOR
|
557
557
|
|
558
|
-
Copyright 2003-
|
558
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
559
559
|
|
560
560
|
This library is free software; you can redistribute it and/or modify it
|
561
561
|
under the same terms as Perl itself.
|
@@ -917,7 +917,7 @@ page.
|
|
917
917
|
|
918
918
|
=head1 AUTHOR
|
919
919
|
|
920
|
-
Copyright 2003-
|
920
|
+
Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
|
921
921
|
|
922
922
|
This library is free software; you can redistribute it and/or modify it
|
923
923
|
under the same terms as Perl itself.
|