exiftool-vendored.pl 12.31.0 → 12.39.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 +10 -3
- package/bin/Changes +130 -4
- package/bin/MANIFEST +3 -0
- package/bin/META.json +1 -1
- package/bin/META.yml +1 -1
- package/bin/README +45 -45
- package/bin/arg_files/xmp2exif.args +2 -1
- package/bin/exiftool +128 -96
- package/bin/lib/File/RandomAccess.pm +1 -1
- package/bin/lib/File/RandomAccess.pod +2 -2
- package/bin/lib/Image/ExifTool/AES.pm +1 -1
- package/bin/lib/Image/ExifTool/AFCP.pm +1 -1
- package/bin/lib/Image/ExifTool/AIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/APE.pm +1 -1
- package/bin/lib/Image/ExifTool/APP12.pm +1 -1
- package/bin/lib/Image/ExifTool/ASF.pm +1 -1
- package/bin/lib/Image/ExifTool/Apple.pm +1 -1
- package/bin/lib/Image/ExifTool/Audible.pm +1 -1
- package/bin/lib/Image/ExifTool/BMP.pm +1 -1
- package/bin/lib/Image/ExifTool/BPG.pm +1 -1
- package/bin/lib/Image/ExifTool/BZZ.pm +1 -1
- package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/BuildTagLookup.pm +17 -5
- package/bin/lib/Image/ExifTool/CBOR.pm +331 -0
- package/bin/lib/Image/ExifTool/Canon.pm +171 -13
- package/bin/lib/Image/ExifTool/CanonCustom.pm +13 -3
- package/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
- package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- package/bin/lib/Image/ExifTool/Casio.pm +1 -1
- package/bin/lib/Image/ExifTool/Charset.pm +3 -1
- package/bin/lib/Image/ExifTool/DICOM.pm +1 -1
- package/bin/lib/Image/ExifTool/DJI.pm +1 -1
- package/bin/lib/Image/ExifTool/DNG.pm +1 -1
- package/bin/lib/Image/ExifTool/DPX.pm +1 -1
- package/bin/lib/Image/ExifTool/DV.pm +1 -1
- package/bin/lib/Image/ExifTool/DarwinCore.pm +3 -3
- package/bin/lib/Image/ExifTool/DjVu.pm +1 -1
- package/bin/lib/Image/ExifTool/EXE.pm +1 -1
- package/bin/lib/Image/ExifTool/Exif.pm +118 -4
- package/bin/lib/Image/ExifTool/FITS.pm +1 -1
- package/bin/lib/Image/ExifTool/FLAC.pm +1 -1
- package/bin/lib/Image/ExifTool/FLIF.pm +1 -1
- package/bin/lib/Image/ExifTool/FLIR.pm +48 -11
- package/bin/lib/Image/ExifTool/Fixup.pm +1 -1
- package/bin/lib/Image/ExifTool/Flash.pm +1 -1
- package/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
- package/bin/lib/Image/ExifTool/Font.pm +1 -1
- package/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
- package/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
- package/bin/lib/Image/ExifTool/GE.pm +1 -1
- package/bin/lib/Image/ExifTool/GIF.pm +6 -2
- package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
- package/bin/lib/Image/ExifTool/GPS.pm +15 -11
- package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
- package/bin/lib/Image/ExifTool/Geotag.pm +14 -3
- package/bin/lib/Image/ExifTool/GoPro.pm +1 -1
- package/bin/lib/Image/ExifTool/H264.pm +1 -1
- package/bin/lib/Image/ExifTool/HP.pm +1 -1
- package/bin/lib/Image/ExifTool/HTML.pm +1 -1
- package/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
- package/bin/lib/Image/ExifTool/ICC_Profile.pm +97 -5
- package/bin/lib/Image/ExifTool/ID3.pm +1 -1
- package/bin/lib/Image/ExifTool/IPTC.pm +1 -1
- package/bin/lib/Image/ExifTool/ISO.pm +1 -1
- package/bin/lib/Image/ExifTool/ITC.pm +1 -1
- package/bin/lib/Image/ExifTool/Import.pm +1 -1
- package/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- package/bin/lib/Image/ExifTool/JPEG.pm +6 -2
- package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- package/bin/lib/Image/ExifTool/JSON.pm +8 -4
- package/bin/lib/Image/ExifTool/JVC.pm +1 -1
- package/bin/lib/Image/ExifTool/Jpeg2000.pm +155 -25
- package/bin/lib/Image/ExifTool/Kodak.pm +1 -1
- package/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/LIF.pm +1 -1
- package/bin/lib/Image/ExifTool/LNK.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
- package/bin/lib/Image/ExifTool/Leaf.pm +1 -1
- package/bin/lib/Image/ExifTool/Lytro.pm +1 -1
- package/bin/lib/Image/ExifTool/M2TS.pm +1 -1
- package/bin/lib/Image/ExifTool/MIE.pm +1 -1
- package/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
- package/bin/lib/Image/ExifTool/MIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/MNG.pm +1 -1
- package/bin/lib/Image/ExifTool/MOI.pm +1 -1
- package/bin/lib/Image/ExifTool/MPC.pm +1 -1
- package/bin/lib/Image/ExifTool/MPEG.pm +1 -1
- package/bin/lib/Image/ExifTool/MPF.pm +1 -1
- package/bin/lib/Image/ExifTool/MRC.pm +1 -1
- package/bin/lib/Image/ExifTool/MWG.pm +1 -1
- package/bin/lib/Image/ExifTool/MXF.pm +1 -1
- package/bin/lib/Image/ExifTool/MacOS.pm +3 -3
- package/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
- package/bin/lib/Image/ExifTool/Matroska.pm +9 -5
- package/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
- package/bin/lib/Image/ExifTool/Minolta.pm +1 -1
- package/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
- package/bin/lib/Image/ExifTool/Nikon.pm +1895 -74
- package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- package/bin/lib/Image/ExifTool/NikonCustom.pm +523 -6
- package/bin/lib/Image/ExifTool/NikonSettings.pm +150 -87
- package/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
- package/bin/lib/Image/ExifTool/OOXML.pm +1 -1
- package/bin/lib/Image/ExifTool/Ogg.pm +1 -1
- package/bin/lib/Image/ExifTool/Olympus.pm +6 -2
- package/bin/lib/Image/ExifTool/OpenEXR.pm +5 -3
- package/bin/lib/Image/ExifTool/Opus.pm +1 -1
- package/bin/lib/Image/ExifTool/Other.pm +1 -1
- package/bin/lib/Image/ExifTool/PCX.pm +1 -1
- package/bin/lib/Image/ExifTool/PDF.pm +6 -4
- package/bin/lib/Image/ExifTool/PGF.pm +1 -1
- package/bin/lib/Image/ExifTool/PICT.pm +1 -1
- package/bin/lib/Image/ExifTool/PLIST.pm +1 -1
- package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
- package/bin/lib/Image/ExifTool/PNG.pm +29 -8
- package/bin/lib/Image/ExifTool/PPM.pm +1 -1
- package/bin/lib/Image/ExifTool/PSP.pm +1 -1
- package/bin/lib/Image/ExifTool/Palm.pm +1 -1
- package/bin/lib/Image/ExifTool/Panasonic.pm +3 -3
- package/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
- package/bin/lib/Image/ExifTool/Pentax.pm +4 -2
- package/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
- package/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
- package/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
- package/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
- package/bin/lib/Image/ExifTool/PostScript.pm +1 -1
- package/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
- package/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
- package/bin/lib/Image/ExifTool/QuickTime.pm +25 -4
- package/bin/lib/Image/ExifTool/QuickTimeStream.pl +125 -81
- package/bin/lib/Image/ExifTool/README +9 -2
- package/bin/lib/Image/ExifTool/RIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/RSRC.pm +1 -1
- package/bin/lib/Image/ExifTool/RTF.pm +1 -1
- package/bin/lib/Image/ExifTool/Radiance.pm +1 -1
- package/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
- package/bin/lib/Image/ExifTool/Real.pm +1 -1
- package/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
- package/bin/lib/Image/ExifTool/Red.pm +1 -1
- package/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
- package/bin/lib/Image/ExifTool/Samsung.pm +1 -1
- package/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
- package/bin/lib/Image/ExifTool/Scalado.pm +1 -1
- package/bin/lib/Image/ExifTool/Shift.pl +3 -1
- package/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
- package/bin/lib/Image/ExifTool/Sigma.pm +1 -1
- package/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/Sony.pm +34 -14
- package/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
- package/bin/lib/Image/ExifTool/Stim.pm +1 -1
- package/bin/lib/Image/ExifTool/TagInfoXML.pm +11 -6
- package/bin/lib/Image/ExifTool/TagLookup.pm +6589 -5877
- package/bin/lib/Image/ExifTool/TagNames.pod +1681 -65
- package/bin/lib/Image/ExifTool/Text.pm +1 -1
- package/bin/lib/Image/ExifTool/Theora.pm +1 -1
- package/bin/lib/Image/ExifTool/Torrent.pm +1 -1
- package/bin/lib/Image/ExifTool/Unknown.pm +1 -1
- package/bin/lib/Image/ExifTool/VCard.pm +1 -1
- package/bin/lib/Image/ExifTool/Validate.pm +1 -1
- package/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
- package/bin/lib/Image/ExifTool/WTV.pm +1 -1
- package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
- package/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
- package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePNG.pl +30 -10
- package/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
- package/bin/lib/Image/ExifTool/WriteQuickTime.pl +12 -1
- package/bin/lib/Image/ExifTool/WriteXMP.pl +11 -12
- package/bin/lib/Image/ExifTool/Writer.pl +56 -10
- package/bin/lib/Image/ExifTool/XMP.pm +164 -52
- package/bin/lib/Image/ExifTool/XMP2.pl +6 -3
- package/bin/lib/Image/ExifTool/XMPStruct.pl +4 -2
- package/bin/lib/Image/ExifTool/ZIP.pm +10 -2
- package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- package/bin/lib/Image/ExifTool/iWork.pm +1 -1
- package/bin/lib/Image/ExifTool.pm +98 -23
- package/bin/lib/Image/ExifTool.pod +76 -67
- package/bin/perl-Image-ExifTool.spec +43 -43
- package/bin/pp_build_exe.args +6 -5
- package/package.json +3 -3
|
@@ -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.38';
|
|
60
60
|
|
|
61
61
|
sub ProcessExif($$$);
|
|
62
62
|
sub WriteExif($$$);
|
|
@@ -265,6 +265,7 @@ sub BINARY_DATA_LIMIT { return 10 * 1024 * 1024; }
|
|
|
265
265
|
32892 => 'Sequential Color Filter', #JR (Sony ARQ)
|
|
266
266
|
34892 => 'Linear Raw', #2
|
|
267
267
|
51177 => 'Depth Map', # (DNG 1.5)
|
|
268
|
+
52527 => 'Semantic Mask', # (DNG 1.6)
|
|
268
269
|
);
|
|
269
270
|
|
|
270
271
|
%orientation = (
|
|
@@ -291,6 +292,7 @@ sub BINARY_DATA_LIMIT { return 10 * 1024 * 1024; }
|
|
|
291
292
|
9 => 'Depth map of reduced-resolution image', # (DNG 1.5)
|
|
292
293
|
16 => 'Enhanced image data', # (DNG 1.5)
|
|
293
294
|
0x10001 => 'Alternate reduced-resolution image', # (DNG 1.2)
|
|
295
|
+
0x10004 => 'Semantic Mask', # (DNG 1.6)
|
|
294
296
|
0xffffffff => 'invalid', #(found in E5700 NEF's)
|
|
295
297
|
BITMASK => {
|
|
296
298
|
0 => 'Reduced resolution',
|
|
@@ -366,6 +368,7 @@ my %opcodeInfo = (
|
|
|
366
368
|
11 => 'DeltaPerColumn',
|
|
367
369
|
12 => 'ScalePerRow',
|
|
368
370
|
13 => 'ScalePerColumn',
|
|
371
|
+
14 => 'WarpRectilinear2', # (DNG 1.6)
|
|
369
372
|
},
|
|
370
373
|
PrintConvInv => undef, # (so the inverse conversion is not performed)
|
|
371
374
|
);
|
|
@@ -3038,12 +3041,12 @@ my %opcodeInfo = (
|
|
|
3038
3041
|
},
|
|
3039
3042
|
},
|
|
3040
3043
|
#
|
|
3041
|
-
# DNG tags 0xc6XX and
|
|
3044
|
+
# DNG tags 0xc6XX, 0xc7XX and 0xcdXX (ref 2 unless otherwise stated)
|
|
3042
3045
|
#
|
|
3043
3046
|
0xc612 => {
|
|
3044
3047
|
Name => 'DNGVersion',
|
|
3045
3048
|
Notes => q{
|
|
3046
|
-
tags 0xc612-
|
|
3049
|
+
tags 0xc612-0xcd3b are defined by the DNG specification unless otherwise
|
|
3047
3050
|
noted. See L<https://helpx.adobe.com/photoshop/digital-negative.html> for
|
|
3048
3051
|
the specification
|
|
3049
3052
|
},
|
|
@@ -4041,6 +4044,97 @@ my %opcodeInfo = (
|
|
|
4041
4044
|
Protected => 1,
|
|
4042
4045
|
WriteGroup => 'IFD0',
|
|
4043
4046
|
},
|
|
4047
|
+
0xcd2d => { # DNG 1.6
|
|
4048
|
+
Name => 'ProfileGainTableMap',
|
|
4049
|
+
Writable => 'undef',
|
|
4050
|
+
WriteGroup => 'SubIFD',
|
|
4051
|
+
Protected => 1,
|
|
4052
|
+
Binary => 1,
|
|
4053
|
+
},
|
|
4054
|
+
0xcd2e => { # DNG 1.6
|
|
4055
|
+
Name => 'SemanticName',
|
|
4056
|
+
# Writable => 'string',
|
|
4057
|
+
WriteGroup => 'SubIFD' #? (NC) Semantic Mask IFD (only for Validate)
|
|
4058
|
+
},
|
|
4059
|
+
0xcd30 => { # DNG 1.6
|
|
4060
|
+
Name => 'SemanticInstanceIFD',
|
|
4061
|
+
# Writable => 'string',
|
|
4062
|
+
WriteGroup => 'SubIFD' #? (NC) Semantic Mask IFD (only for Validate)
|
|
4063
|
+
},
|
|
4064
|
+
0xcd31 => { # DNG 1.6
|
|
4065
|
+
Name => 'CalibrationIlluminant3',
|
|
4066
|
+
Writable => 'int16u',
|
|
4067
|
+
WriteGroup => 'IFD0',
|
|
4068
|
+
Protected => 1,
|
|
4069
|
+
SeparateTable => 'LightSource',
|
|
4070
|
+
PrintConv => \%lightSource,
|
|
4071
|
+
},
|
|
4072
|
+
0xcd32 => { # DNG 1.6
|
|
4073
|
+
Name => 'CameraCalibration3',
|
|
4074
|
+
Writable => 'rational64s',
|
|
4075
|
+
WriteGroup => 'IFD0',
|
|
4076
|
+
Count => -1,
|
|
4077
|
+
Protected => 1,
|
|
4078
|
+
},
|
|
4079
|
+
0xcd33 => { # DNG 1.6
|
|
4080
|
+
Name => 'ColorMatrix3',
|
|
4081
|
+
Writable => 'rational64s',
|
|
4082
|
+
WriteGroup => 'IFD0',
|
|
4083
|
+
Count => -1,
|
|
4084
|
+
Protected => 1,
|
|
4085
|
+
},
|
|
4086
|
+
0xcd34 => { # DNG 1.6
|
|
4087
|
+
Name => 'ForwardMatrix3',
|
|
4088
|
+
Writable => 'rational64s',
|
|
4089
|
+
WriteGroup => 'IFD0',
|
|
4090
|
+
Count => -1,
|
|
4091
|
+
Protected => 1,
|
|
4092
|
+
},
|
|
4093
|
+
0xcd35 => { # DNG 1.6
|
|
4094
|
+
Name => 'IlluminantData1',
|
|
4095
|
+
Writable => 'undef',
|
|
4096
|
+
WriteGroup => 'IFD0',
|
|
4097
|
+
Protected => 1,
|
|
4098
|
+
},
|
|
4099
|
+
0xcd36 => { # DNG 1.6
|
|
4100
|
+
Name => 'IlluminantData2',
|
|
4101
|
+
Writable => 'undef',
|
|
4102
|
+
WriteGroup => 'IFD0',
|
|
4103
|
+
Protected => 1,
|
|
4104
|
+
},
|
|
4105
|
+
0xcd37 => { # DNG 1.6
|
|
4106
|
+
Name => 'IlluminantData3',
|
|
4107
|
+
Writable => 'undef',
|
|
4108
|
+
WriteGroup => 'IFD0',
|
|
4109
|
+
Protected => 1,
|
|
4110
|
+
},
|
|
4111
|
+
0xcd38 => { # DNG 1.6
|
|
4112
|
+
Name => 'MaskSubArea',
|
|
4113
|
+
# Writable => 'int32u',
|
|
4114
|
+
WriteGroup => 'SubIFD', #? (NC) Semantic Mask IFD (only for Validate)
|
|
4115
|
+
Count => 4,
|
|
4116
|
+
},
|
|
4117
|
+
0xcd39 => { # DNG 1.6
|
|
4118
|
+
Name => 'ProfileHueSatMapData3',
|
|
4119
|
+
%longBin,
|
|
4120
|
+
Writable => 'float',
|
|
4121
|
+
WriteGroup => 'IFD0',
|
|
4122
|
+
Count => -1,
|
|
4123
|
+
Protected => 1,
|
|
4124
|
+
},
|
|
4125
|
+
0xcd3a => { # DNG 1.6
|
|
4126
|
+
Name => 'ReductionMatrix3',
|
|
4127
|
+
Writable => 'rational64s',
|
|
4128
|
+
WriteGroup => 'IFD0',
|
|
4129
|
+
Count => -1,
|
|
4130
|
+
Protected => 1,
|
|
4131
|
+
},
|
|
4132
|
+
0xcd3b => { # DNG 1.6
|
|
4133
|
+
Name => 'RGBTables',
|
|
4134
|
+
Writable => 'undef',
|
|
4135
|
+
WriteGroup => 'IFD0',
|
|
4136
|
+
Protected => 1,
|
|
4137
|
+
},
|
|
4044
4138
|
0xea1c => { #13
|
|
4045
4139
|
Name => 'Padding',
|
|
4046
4140
|
Binary => 1,
|
|
@@ -4722,11 +4816,31 @@ my %subSecConv = (
|
|
|
4722
4816
|
},
|
|
4723
4817
|
GPSPosition => {
|
|
4724
4818
|
Groups => { 2 => 'Location' },
|
|
4819
|
+
Writable => 1,
|
|
4820
|
+
Protected => 1,
|
|
4821
|
+
WriteAlso => {
|
|
4822
|
+
GPSLatitude => '$val =~ /(.*?)( ?[NS])?,/ ? $1 : undef',
|
|
4823
|
+
GPSLatitudeRef => '$val =~ /(-?)(.*?) ?([NS]?),/ ? ($3 || ($1 ? "S" : "N")) : undef',
|
|
4824
|
+
GPSLongitude => '$val =~ /, ?(.*?)( ?[EW]?)$/ ? $1 : undef',
|
|
4825
|
+
GPSLongitudeRef => '$val =~ /, ?(-?)(.*?) ?([EW]?)$/ ? ($3 || ($1 ? "W" : "E")) : undef',
|
|
4826
|
+
},
|
|
4827
|
+
PrintConvInv => q{
|
|
4828
|
+
return undef unless $val =~ /(.*? ?[NS]?), ?(.*? ?[EW]?)$/;
|
|
4829
|
+
my ($lat, $lon) = ($1, $2);
|
|
4830
|
+
$lat = Image::ExifTool::GPS::ToDegrees($lat, 1, "lat");
|
|
4831
|
+
$lon = Image::ExifTool::GPS::ToDegrees($lon, 1, "lon");
|
|
4832
|
+
return "$lat, $lon";
|
|
4833
|
+
},
|
|
4725
4834
|
Require => {
|
|
4726
4835
|
0 => 'GPSLatitude',
|
|
4727
4836
|
1 => 'GPSLongitude',
|
|
4728
4837
|
},
|
|
4729
4838
|
Priority => 0,
|
|
4839
|
+
Notes => q{
|
|
4840
|
+
when written, writes GPSLatitude, GPSLatitudeRef, GPSLongitude and
|
|
4841
|
+
GPSLongitudeRef. This tag may be written using the same coordinate
|
|
4842
|
+
format as provided by Google Maps when right-clicking on a location
|
|
4843
|
+
},
|
|
4730
4844
|
ValueConv => '(length($val[0]) or length($val[1])) ? "$val[0] $val[1]" : undef',
|
|
4731
4845
|
PrintConv => '"$prt[0], $prt[1]"',
|
|
4732
4846
|
},
|
|
@@ -6637,7 +6751,7 @@ EXIF and TIFF meta information.
|
|
|
6637
6751
|
|
|
6638
6752
|
=head1 AUTHOR
|
|
6639
6753
|
|
|
6640
|
-
Copyright 2003-
|
|
6754
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
6641
6755
|
|
|
6642
6756
|
This library is free software; you can redistribute it and/or modify it
|
|
6643
6757
|
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.
|
|
@@ -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-2022, 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-2022, 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.
|
|
@@ -24,7 +24,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
|
24
24
|
use Image::ExifTool::Exif;
|
|
25
25
|
use Image::ExifTool::GPS;
|
|
26
26
|
|
|
27
|
-
$VERSION = '1.
|
|
27
|
+
$VERSION = '1.20';
|
|
28
28
|
|
|
29
29
|
sub ProcessFLIR($$;$);
|
|
30
30
|
sub ProcessFLIRText($$$);
|
|
@@ -99,7 +99,7 @@ my %float8g = ( Format => 'float', PrintConv => 'sprintf("%.8g",$val)' );
|
|
|
99
99
|
NOTES => q{
|
|
100
100
|
Information extracted from FLIR FFF images and the APP1 FLIR segment of JPEG
|
|
101
101
|
images. These tags may also be extracted from the first frame of an FLIR
|
|
102
|
-
SEQ file.
|
|
102
|
+
SEQ file, or all frames if the ExtractEmbedded option is used.
|
|
103
103
|
},
|
|
104
104
|
"_header" => {
|
|
105
105
|
Name => 'FFFHeader',
|
|
@@ -691,7 +691,15 @@ my %float8g = ( Format => 'float', PrintConv => 'sprintf("%.8g",$val)' );
|
|
|
691
691
|
T => 'True North',
|
|
692
692
|
},
|
|
693
693
|
},
|
|
694
|
-
|
|
694
|
+
0x48 => { #PH (NC)
|
|
695
|
+
Name => 'GPSImgDirectionRef',
|
|
696
|
+
Format => 'string[2]',
|
|
697
|
+
RawConv => 'length($val) ? $val : undef',
|
|
698
|
+
PrintConv => {
|
|
699
|
+
M => 'Magnetic North',
|
|
700
|
+
T => 'True North',
|
|
701
|
+
},
|
|
702
|
+
},
|
|
695
703
|
0x4c => {
|
|
696
704
|
Name => 'GPSSpeed',
|
|
697
705
|
%float2f,
|
|
@@ -702,7 +710,11 @@ my %float8g = ( Format => 'float', PrintConv => 'sprintf("%.8g",$val)' );
|
|
|
702
710
|
%float2f,
|
|
703
711
|
RawConv => '$val < 0 ? undef : $val',
|
|
704
712
|
},
|
|
705
|
-
|
|
713
|
+
0x54 => {
|
|
714
|
+
Name => 'GPSImgDirection',
|
|
715
|
+
%float2f,
|
|
716
|
+
RawConv => '$val < 0 ? undef : $val',
|
|
717
|
+
},
|
|
706
718
|
0x58 => {
|
|
707
719
|
Name => 'GPSMapDatum',
|
|
708
720
|
Format => 'string[16]',
|
|
@@ -1457,6 +1469,7 @@ sub ProcessFLIR($$;$)
|
|
|
1457
1469
|
my $raf = $$dirInfo{RAF} || new File::RandomAccess($$dirInfo{DataPt});
|
|
1458
1470
|
my $verbose = $et->Options('Verbose');
|
|
1459
1471
|
my $out = $et->Options('TextOut');
|
|
1472
|
+
my $base = $raf->Tell();
|
|
1460
1473
|
my ($i, $hdr, $buff, $rec);
|
|
1461
1474
|
|
|
1462
1475
|
# read and verify FFF header
|
|
@@ -1485,15 +1498,18 @@ sub ProcessFLIR($$;$)
|
|
|
1485
1498
|
my $ver = Get32u(\$hdr, 0x14);
|
|
1486
1499
|
last if $ver >= 100 and $ver < 200; # (have seen 100 and 101 - PH)
|
|
1487
1500
|
ToggleByteOrder();
|
|
1488
|
-
|
|
1501
|
+
next unless $i;
|
|
1502
|
+
return 0 if $$et{DOC_NUM};
|
|
1503
|
+
$et->Warn("Unsupported FLIR $type version");
|
|
1504
|
+
return 1;
|
|
1489
1505
|
}
|
|
1490
1506
|
|
|
1491
1507
|
# read the FLIR record directory
|
|
1492
1508
|
my $pos = Get32u(\$hdr, 0x18);
|
|
1493
1509
|
my $num = Get32u(\$hdr, 0x1c);
|
|
1494
|
-
unless ($raf->Seek($pos) and $raf->Read($buff, $num * 0x20) == $num * 0x20) {
|
|
1510
|
+
unless ($raf->Seek($base+$pos) and $raf->Read($buff, $num * 0x20) == $num * 0x20) {
|
|
1495
1511
|
$et->Warn('Truncated FLIR FFF directory');
|
|
1496
|
-
return 1;
|
|
1512
|
+
return $$et{DOC_NUM} ? 0 : 1;
|
|
1497
1513
|
}
|
|
1498
1514
|
|
|
1499
1515
|
unless ($tagTablePtr) {
|
|
@@ -1504,6 +1520,7 @@ sub ProcessFLIR($$;$)
|
|
|
1504
1520
|
# process the header data
|
|
1505
1521
|
$et->HandleTag($tagTablePtr, '_header', $hdr);
|
|
1506
1522
|
|
|
1523
|
+
my $success = 1;
|
|
1507
1524
|
my $oldIndent = $$et{INDENT};
|
|
1508
1525
|
$$et{INDENT} .= '| ';
|
|
1509
1526
|
$et->VerboseDir($type, $num);
|
|
@@ -1533,12 +1550,22 @@ sub ProcessFLIR($$;$)
|
|
|
1533
1550
|
$verbose and printf $out "%s%d) FLIR Record 0x%.2x, offset 0x%.4x, length 0x%.4x\n",
|
|
1534
1551
|
$$et{INDENT}, $i, $recType, $recPos, $recLen;
|
|
1535
1552
|
|
|
1536
|
-
|
|
1537
|
-
|
|
1553
|
+
# skip RawData records for embedded documents
|
|
1554
|
+
if ($recType == 1 and $$et{DOC_NUM}) {
|
|
1555
|
+
$raf->Seek($base+$recPos+$recLen) or $success = 0, last;
|
|
1556
|
+
next;
|
|
1557
|
+
}
|
|
1558
|
+
unless ($raf->Seek($base+$recPos) and $raf->Read($rec, $recLen) == $recLen) {
|
|
1559
|
+
if ($$et{DOC_NUM}) {
|
|
1560
|
+
$success = 0; # abort processing more documents
|
|
1561
|
+
} else {
|
|
1562
|
+
$et->Warn('Invalid FLIR record');
|
|
1563
|
+
}
|
|
1538
1564
|
last;
|
|
1539
1565
|
}
|
|
1540
1566
|
if ($$tagTablePtr{$recType}) {
|
|
1541
1567
|
$et->HandleTag($tagTablePtr, $recType, undef,
|
|
1568
|
+
Base => $base,
|
|
1542
1569
|
DataPt => \$rec,
|
|
1543
1570
|
DataPos => $recPos,
|
|
1544
1571
|
Start => 0,
|
|
@@ -1550,7 +1577,17 @@ sub ProcessFLIR($$;$)
|
|
|
1550
1577
|
}
|
|
1551
1578
|
delete $$et{SET_GROUP0};
|
|
1552
1579
|
$$et{INDENT} = $oldIndent;
|
|
1553
|
-
|
|
1580
|
+
|
|
1581
|
+
# extract information from subsequent frames in SEQ file if ExtractEmbedded is used
|
|
1582
|
+
if ($$dirInfo{RAF} and $et->Options('ExtractEmbedded') and not $$et{DOC_NUM}) {
|
|
1583
|
+
for (;;) {
|
|
1584
|
+
$$et{DOC_NUM} = $$et{DOC_COUNT} + 1;
|
|
1585
|
+
last unless ProcessFLIR($et, $dirInfo, $tagTablePtr);
|
|
1586
|
+
# (DOC_COUNT will be incremented automatically if we extracted any tags)
|
|
1587
|
+
}
|
|
1588
|
+
delete $$et{DOC_NUM};
|
|
1589
|
+
}
|
|
1590
|
+
return $success;
|
|
1554
1591
|
}
|
|
1555
1592
|
|
|
1556
1593
|
#------------------------------------------------------------------------------
|
|
@@ -1594,7 +1631,7 @@ Systems Inc. thermal image files (FFF, FPF and JPEG format).
|
|
|
1594
1631
|
|
|
1595
1632
|
=head1 AUTHOR
|
|
1596
1633
|
|
|
1597
|
-
Copyright 2003-
|
|
1634
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
1598
1635
|
|
|
1599
1636
|
This library is free software; you can redistribute it and/or modify it
|
|
1600
1637
|
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-2022, 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-2022, 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.
|
|
@@ -2395,7 +2395,7 @@ JPEG images.
|
|
|
2395
2395
|
|
|
2396
2396
|
=head1 AUTHOR
|
|
2397
2397
|
|
|
2398
|
-
Copyright 2003-
|
|
2398
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
2399
2399
|
|
|
2400
2400
|
This library is free software; you can redistribute it and/or modify it
|
|
2401
2401
|
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-2022, 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-2022, 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.
|
|
@@ -1670,7 +1670,7 @@ FujiFilm maker notes in EXIF information, and to read/write FujiFilm RAW
|
|
|
1670
1670
|
|
|
1671
1671
|
=head1 AUTHOR
|
|
1672
1672
|
|
|
1673
|
-
Copyright 2003-
|
|
1673
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
1674
1674
|
|
|
1675
1675
|
This library is free software; you can redistribute it and/or modify it
|
|
1676
1676
|
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-2022, 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.
|
|
@@ -20,7 +20,7 @@ use strict;
|
|
|
20
20
|
use vars qw($VERSION);
|
|
21
21
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
22
22
|
|
|
23
|
-
$VERSION = '1.
|
|
23
|
+
$VERSION = '1.19';
|
|
24
24
|
|
|
25
25
|
# road map of directory locations in GIF images
|
|
26
26
|
my %gifMap = (
|
|
@@ -54,6 +54,7 @@ my %gifMap = (
|
|
|
54
54
|
Extensions => { # (for documentation only)
|
|
55
55
|
SubDirectory => { TagTable => 'Image::ExifTool::GIF::Extensions' },
|
|
56
56
|
},
|
|
57
|
+
TransparentColor => { },
|
|
57
58
|
);
|
|
58
59
|
|
|
59
60
|
# GIF89a application extensions:
|
|
@@ -475,6 +476,9 @@ Block:
|
|
|
475
476
|
my $delay = Get16u(\$buff, 1);
|
|
476
477
|
$delayTime += $delay;
|
|
477
478
|
$verbose and printf $out "Graphic Control: delay=%.2f\n", $delay / 100;
|
|
479
|
+
# get transparent colour
|
|
480
|
+
my $bits = Get8u(\$buff, 0);
|
|
481
|
+
$et->HandleTag($tagTablePtr, 'TransparentColor', Get8u(\$buff,3)) if $bits & 0x01;
|
|
478
482
|
$raf->Seek(-$length, 1) or last;
|
|
479
483
|
|
|
480
484
|
} elsif ($a == 0x01 and $length == 12) { # plain text extension
|
|
@@ -537,7 +541,7 @@ write GIF meta information.
|
|
|
537
541
|
|
|
538
542
|
=head1 AUTHOR
|
|
539
543
|
|
|
540
|
-
Copyright 2003-
|
|
544
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
541
545
|
|
|
542
546
|
This library is free software; you can redistribute it and/or modify it
|
|
543
547
|
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-2022, 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.
|
|
@@ -137,22 +137,26 @@ my %coordConv = (
|
|
|
137
137
|
my ($v, $et) = @_;
|
|
138
138
|
$v = $et->TimeNow() if lc($v) eq 'now';
|
|
139
139
|
my @tz;
|
|
140
|
-
if ($v =~ s/([-+])(
|
|
140
|
+
if ($v =~ s/([-+])(\d{1,2}):?(\d{2})\s*(DST)?$//i) { # remove timezone
|
|
141
141
|
my $s = $1 eq '-' ? 1 : -1; # opposite sign to convert back to UTC
|
|
142
142
|
my $t = $2;
|
|
143
|
-
@tz = ($s*$
|
|
143
|
+
@tz = ($s*$2, $s*$3);
|
|
144
144
|
}
|
|
145
|
-
|
|
146
|
-
|
|
145
|
+
# (note: we must allow '.' as a time separator, eg. '10.30.00', with is tricky due to decimal seconds)
|
|
146
|
+
# YYYYmmddHHMMSS[.ss] format
|
|
147
|
+
my @a = ($v =~ /^[^\d]*\d{4}[^\d]*\d{1,2}[^\d]*\d{1,2}[^\d]*(\d{1,2})[^\d]*(\d{2})[^\d]*(\d{2}(?:\.\d+)?)[^\d]*$/);
|
|
148
|
+
# HHMMSS[.ss] format
|
|
149
|
+
@a or @a = ($v =~ /^[^\d]*(\d{1,2})[^\d]*(\d{2})[^\d]*(\d{2}(?:\.\d+)?)[^\d]*$/);
|
|
150
|
+
@a or warn('Invalid time (use HH:MM:SS[.ss][+/-HH:MM|Z])'), return undef;
|
|
147
151
|
if (@tz) {
|
|
148
152
|
# adjust to UTC
|
|
149
|
-
$a[
|
|
150
|
-
$a[
|
|
151
|
-
while ($a[
|
|
152
|
-
while ($a[
|
|
153
|
-
$a[
|
|
153
|
+
$a[1] += $tz[1];
|
|
154
|
+
$a[0] += $tz[0];
|
|
155
|
+
while ($a[1] >= 60) { $a[1] -= 60; ++$a[0] }
|
|
156
|
+
while ($a[1] < 0) { $a[1] += 60; --$a[0] }
|
|
157
|
+
$a[0] = ($a[0] + 24) % 24;
|
|
154
158
|
}
|
|
155
|
-
return
|
|
159
|
+
return join(':', @a);
|
|
156
160
|
},
|
|
157
161
|
},
|
|
158
162
|
0x0008 => {
|
|
@@ -575,7 +579,7 @@ GPS (Global Positioning System) meta information in EXIF data.
|
|
|
575
579
|
|
|
576
580
|
=head1 AUTHOR
|
|
577
581
|
|
|
578
|
-
Copyright 2003-
|
|
582
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
579
583
|
|
|
580
584
|
This library is free software; you can redistribute it and/or modify it
|
|
581
585
|
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-2022, 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.
|
|
@@ -28,7 +28,7 @@ use vars qw($VERSION);
|
|
|
28
28
|
use Image::ExifTool qw(:Public);
|
|
29
29
|
use Image::ExifTool::GPS;
|
|
30
30
|
|
|
31
|
-
$VERSION = '1.
|
|
31
|
+
$VERSION = '1.65';
|
|
32
32
|
|
|
33
33
|
sub JITTER() { return 2 } # maximum time jitter
|
|
34
34
|
|
|
@@ -262,8 +262,10 @@ sub LoadTrackLog($$;$)
|
|
|
262
262
|
$param = 'time';
|
|
263
263
|
} elsif (/^(Pos)?Lat/i) {
|
|
264
264
|
$param = 'lat';
|
|
265
|
+
/ref$/i and $param .= 'ref';
|
|
265
266
|
} elsif (/^(Pos)?Lon/i) {
|
|
266
267
|
$param = 'lon';
|
|
268
|
+
/ref$/i and $param .= 'ref';
|
|
267
269
|
} elsif (/^(Pos)?Alt/i) {
|
|
268
270
|
$param = 'alt';
|
|
269
271
|
} elsif (/^(Angle)?(Heading|Track)/i) {
|
|
@@ -453,7 +455,7 @@ DoneFix: $isDate = 1;
|
|
|
453
455
|
# (ExifTool enhancements allow for standard tag names or descriptions as the column headings,
|
|
454
456
|
# add support for time zones and flexible coordinates, and allow new DateTime and Shift columns)
|
|
455
457
|
#
|
|
456
|
-
my ($param, $date, $secs);
|
|
458
|
+
my ($param, $date, $secs, %neg);
|
|
457
459
|
foreach $param (@csvHeadings) {
|
|
458
460
|
my $val = shift @vals;
|
|
459
461
|
last unless defined $val;
|
|
@@ -479,6 +481,10 @@ DoneFix: $isDate = 1;
|
|
|
479
481
|
}
|
|
480
482
|
} elsif ($param eq 'lat' or $param eq 'lon') {
|
|
481
483
|
$$fix{$param} = Image::ExifTool::GPS::ToDegrees($val, 1);
|
|
484
|
+
} elsif ($param eq 'latref') {
|
|
485
|
+
$neg{lat} = 1 if $val =~ /^S/i;
|
|
486
|
+
} elsif ($param eq 'lonref') {
|
|
487
|
+
$neg{lon} = 1 if $val =~ /^W/i;
|
|
482
488
|
} elsif ($param eq 'runtime') {
|
|
483
489
|
$date = $trackTime;
|
|
484
490
|
$secs = $val;
|
|
@@ -486,6 +492,11 @@ DoneFix: $isDate = 1;
|
|
|
486
492
|
$$fix{$param} = $val;
|
|
487
493
|
}
|
|
488
494
|
}
|
|
495
|
+
# make coordinate negative according to reference direction if necessary
|
|
496
|
+
foreach $param (keys %neg) {
|
|
497
|
+
next unless defined $$fix{$param};
|
|
498
|
+
$$fix{$param} = -abs($$fix{$param});
|
|
499
|
+
}
|
|
489
500
|
if ($date and defined $secs and defined $$fix{lat} and defined $$fix{lon}) {
|
|
490
501
|
$time = $date + $secs;
|
|
491
502
|
$$has{alt} = 1 if defined $$fix{alt};
|
|
@@ -1412,7 +1423,7 @@ user-defined tag GPSRoll, must be active.
|
|
|
1412
1423
|
|
|
1413
1424
|
=head1 AUTHOR
|
|
1414
1425
|
|
|
1415
|
-
Copyright 2003-
|
|
1426
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
1416
1427
|
|
|
1417
1428
|
This library is free software; you can redistribute it and/or modify it
|
|
1418
1429
|
under the same terms as Perl itself.
|
|
@@ -733,7 +733,7 @@ metadata from GoPro MP4 videos.
|
|
|
733
733
|
|
|
734
734
|
=head1 AUTHOR
|
|
735
735
|
|
|
736
|
-
Copyright 2003-
|
|
736
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
737
737
|
|
|
738
738
|
This library is free software; you can redistribute it and/or modify it
|
|
739
739
|
under the same terms as Perl itself.
|
|
@@ -1123,7 +1123,7 @@ information from H.264 video streams.
|
|
|
1123
1123
|
|
|
1124
1124
|
=head1 AUTHOR
|
|
1125
1125
|
|
|
1126
|
-
Copyright 2003-
|
|
1126
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
1127
1127
|
|
|
1128
1128
|
This library is free software; you can redistribute it and/or modify it
|
|
1129
1129
|
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-2022, 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-2022, 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-2022, 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.
|