exiftool-vendored.pl 12.72.0 → 12.76.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/bin/Changes +64 -1
- package/bin/META.json +1 -1
- package/bin/META.yml +1 -1
- package/bin/README +47 -46
- package/bin/exiftool +123 -96
- package/bin/lib/File/RandomAccess.pm +32 -6
- package/bin/lib/File/RandomAccess.pod +6 -6
- package/bin/lib/Image/ExifTool/7Z.pm +3 -3
- package/bin/lib/Image/ExifTool/AAC.pm +8 -6
- package/bin/lib/Image/ExifTool/AES.pm +1 -1
- package/bin/lib/Image/ExifTool/AFCP.pm +3 -3
- 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 +3 -3
- package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/BuildTagLookup.pm +9 -9
- package/bin/lib/Image/ExifTool/CBOR.pm +1 -1
- package/bin/lib/Image/ExifTool/Canon.pm +7 -6
- package/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
- package/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/CanonVRD.pm +3 -3
- 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 +1 -1
- package/bin/lib/Image/ExifTool/DICOM.pm +3 -3
- package/bin/lib/Image/ExifTool/DJI.pm +1 -1
- package/bin/lib/Image/ExifTool/DNG.pm +5 -5
- 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 +1 -1
- 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 +4 -3
- 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 +3 -3
- package/bin/lib/Image/ExifTool/Fixup.pm +4 -4
- package/bin/lib/Image/ExifTool/Flash.pm +1 -1
- package/bin/lib/Image/ExifTool/FlashPix.pm +61 -8
- 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 +9 -4
- package/bin/lib/Image/ExifTool/GE.pm +1 -1
- package/bin/lib/Image/ExifTool/GIF.pm +1 -1
- package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
- package/bin/lib/Image/ExifTool/GPS.pm +1 -1
- package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
- package/bin/lib/Image/ExifTool/Geotag.pm +4 -4
- 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 +7 -5
- package/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
- package/bin/lib/Image/ExifTool/ICO.pm +1 -1
- package/bin/lib/Image/ExifTool/ID3.pm +3 -3
- 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 +6 -6
- package/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- package/bin/lib/Image/ExifTool/InfiRay.pm +1 -1
- package/bin/lib/Image/ExifTool/JPEG.pm +5 -2
- package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- package/bin/lib/Image/ExifTool/JSON.pm +3 -3
- package/bin/lib/Image/ExifTool/JVC.pm +3 -3
- package/bin/lib/Image/ExifTool/Jpeg2000.pm +67 -17
- 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 +4 -4
- package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/fr.pm +4 -5
- package/bin/lib/Image/ExifTool/Lang/it.pm +3 -3
- 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/sk.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 +3 -3
- 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 +5 -5
- package/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
- package/bin/lib/Image/ExifTool/MIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/MISB.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 +1 -1
- package/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
- package/bin/lib/Image/ExifTool/Matroska.pm +1 -1
- 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 +3 -3
- package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
- package/bin/lib/Image/ExifTool/Nikon.pm +11 -8
- package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- package/bin/lib/Image/ExifTool/NikonCustom.pm +4 -4
- package/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
- 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 +3 -3
- package/bin/lib/Image/ExifTool/Olympus.pm +1 -1
- package/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
- 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 +55 -5
- 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 +4 -4
- package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
- package/bin/lib/Image/ExifTool/PNG.pm +24 -2
- 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 +27 -2
- package/bin/lib/Image/ExifTool/PanasonicRaw.pm +4 -4
- package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
- package/bin/lib/Image/ExifTool/Pentax.pm +32 -11
- package/bin/lib/Image/ExifTool/PhaseOne.pm +6 -6
- 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 +4 -4
- package/bin/lib/Image/ExifTool/PostScript.pm +3 -3
- 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 +55 -101
- package/bin/lib/Image/ExifTool/QuickTimeStream.pl +97 -7
- package/bin/lib/Image/ExifTool/RIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/RSRC.pm +3 -3
- 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 +3 -3
- package/bin/lib/Image/ExifTool/Samsung.pm +5 -5
- 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 +2 -3
- 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 +4 -4
- package/bin/lib/Image/ExifTool/Sony.pm +5 -5
- 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 +4 -4
- package/bin/lib/Image/ExifTool/TagLookup.pm +3879 -3862
- package/bin/lib/Image/ExifTool/TagNames.pod +11439 -11374
- 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/WPG.pm +1 -1
- package/bin/lib/Image/ExifTool/WTV.pm +1 -1
- package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +2 -2
- package/bin/lib/Image/ExifTool/WriteExif.pl +27 -24
- package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePDF.pl +2 -2
- package/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
- 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 +5 -2
- package/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
- package/bin/lib/Image/ExifTool/WriteXMP.pl +9 -5
- package/bin/lib/Image/ExifTool/Writer.pl +74 -45
- package/bin/lib/Image/ExifTool/XISF.pm +1 -1
- package/bin/lib/Image/ExifTool/XMP.pm +20 -3
- package/bin/lib/Image/ExifTool/XMP2.pl +10 -1
- package/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- package/bin/lib/Image/ExifTool/ZIP.pm +7 -7
- package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- package/bin/lib/Image/ExifTool/iWork.pm +1 -1
- package/bin/lib/Image/ExifTool.pm +59 -28
- package/bin/lib/Image/ExifTool.pod +81 -68
- package/bin/perl-Image-ExifTool.spec +45 -44
- package/bin/pp_build_exe.args +5 -5
- package/package.json +5 -5
|
@@ -109,11 +109,13 @@ my %insvLimit = (
|
|
|
109
109
|
The tags below are extracted from timed metadata in QuickTime and other
|
|
110
110
|
formats of video files when the ExtractEmbedded option is used. Although
|
|
111
111
|
most of these tags are combined into the single table below, ExifTool
|
|
112
|
-
currently reads
|
|
112
|
+
currently reads 68 different formats of timed GPS metadata from video files.
|
|
113
113
|
},
|
|
114
114
|
VARS => { NO_ID => 1 },
|
|
115
115
|
GPSLatitude => { PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")', RawConv => '$$self{FoundGPSLatitude} = 1; $val' },
|
|
116
116
|
GPSLongitude => { PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "E")' },
|
|
117
|
+
GPSLatitude2 => { PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")' },
|
|
118
|
+
GPSLongitude2=> { PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "E")' },
|
|
117
119
|
GPSAltitude => { PrintConv => '(sprintf("%.4f", $val) + 0) . " m"' }, # round to 4 decimals
|
|
118
120
|
GPSSpeed => { PrintConv => 'sprintf("%.4f", $val) + 0', Notes => 'in km/h unless GPSSpeedRef says otherwise' },
|
|
119
121
|
GPSSpeedRef => { PrintConv => { K => 'km/h', M => 'mph', N => 'knots' } },
|
|
@@ -125,6 +127,11 @@ my %insvLimit = (
|
|
|
125
127
|
RawConv => '$$self{FoundGPSDateTime} = 1; $val',
|
|
126
128
|
PrintConv => '$self->ConvertDateTime($val)',
|
|
127
129
|
},
|
|
130
|
+
DateTimeOriginal => {
|
|
131
|
+
Groups => { 2 => 'Time' },
|
|
132
|
+
Description => 'Date/Time Original',
|
|
133
|
+
PrintConv => '$self->ConvertDateTime($val)',
|
|
134
|
+
},
|
|
128
135
|
GPSTimeStamp => { PrintConv => 'Image::ExifTool::GPS::PrintTimeStamp($val)', Groups => { 2 => 'Time' } },
|
|
129
136
|
GPSSatellites=> { },
|
|
130
137
|
GPSDOP => { Description => 'GPS Dilution Of Precision' },
|
|
@@ -841,11 +848,11 @@ sub FoundSomething($$;$$)
|
|
|
841
848
|
#------------------------------------------------------------------------------
|
|
842
849
|
# Approximate GPSDateTime value from sample time and CreateDate
|
|
843
850
|
# Inputs: 0) ExifTool ref, 1) tag table ptr, 2) sample time (s)
|
|
844
|
-
# 3) true if CreateDate is at end of video
|
|
851
|
+
# 3) true if CreateDate is at end of video, 4) flag if CreateDate is UTC
|
|
845
852
|
# Notes: Uses ExifTool CreateDateAtEnd as flag to subtract video duration
|
|
846
|
-
sub SetGPSDateTime(
|
|
853
|
+
sub SetGPSDateTime($$$;$)
|
|
847
854
|
{
|
|
848
|
-
my ($et, $tagTbl, $sampleTime) = @_;
|
|
855
|
+
my ($et, $tagTbl, $sampleTime, $isUTC) = @_;
|
|
849
856
|
my $value = $$et{VALUE};
|
|
850
857
|
if (defined $sampleTime and $$value{CreateDate}) {
|
|
851
858
|
$sampleTime += $$value{CreateDate}; # adjust sample time to seconds since the epoch
|
|
@@ -856,7 +863,9 @@ sub SetGPSDateTime($$$)
|
|
|
856
863
|
} else {
|
|
857
864
|
$et->WarnOnce('Approximating GPSDateTime as CreateDate + SampleTime', 1);
|
|
858
865
|
}
|
|
859
|
-
|
|
866
|
+
my $utc = $et->Options('QuickTimeUTC');
|
|
867
|
+
$utc = $isUTC unless defined $utc; # (allow QuickTimeUTC=0 to override $isUTC default)
|
|
868
|
+
unless ($utc) {
|
|
860
869
|
my $tzOff = $$et{tzOff}; # use previously calculated offset
|
|
861
870
|
unless (defined $tzOff) {
|
|
862
871
|
# adjust to UTC, assuming time is local
|
|
@@ -1337,7 +1346,7 @@ Sample: for ($i=0; ; ) {
|
|
|
1337
1346
|
$et->HandleTag($tagTbl, GPSLatitude => Get32s(\$buff, 12+$n) * 180/0x80000000);
|
|
1338
1347
|
$et->HandleTag($tagTbl, GPSLongitude => Get32s(\$buff, 16+$n) * 180/0x80000000);
|
|
1339
1348
|
$et->HandleTag($tagTbl, GPSSpeed => Get16u(\$buff, 8+$n) * $mphToKph);
|
|
1340
|
-
SetGPSDateTime($et, $tagTbl, $time[$i]);
|
|
1349
|
+
SetGPSDateTime($et, $tagTbl, $time[$i], 1);
|
|
1341
1350
|
next; # all done (don't store/process as text)
|
|
1342
1351
|
}
|
|
1343
1352
|
unless (defined $val) {
|
|
@@ -2426,6 +2435,83 @@ sub Process_gsen($$$)
|
|
|
2426
2435
|
return 1;
|
|
2427
2436
|
}
|
|
2428
2437
|
|
|
2438
|
+
#------------------------------------------------------------------------------
|
|
2439
|
+
# Process LIGOGPS JSON-format GPS from Yada RoadCam Pro 4K BT58189
|
|
2440
|
+
# Inputs: 0) ExifTool ref, 1) dirInfo ref, 2) tag table ref
|
|
2441
|
+
# Returns: 1 on success
|
|
2442
|
+
# Sample data (chained 512-byte records starting like this):
|
|
2443
|
+
# 0000: 4c 49 47 4f 47 50 53 49 4e 46 4f 20 7b 22 48 6f [LIGOGPSINFO {"Ho]
|
|
2444
|
+
# 0010: 75 72 22 3a 20 22 32 33 22 2c 20 22 4d 69 6e 75 [ur": "23", "Minu]
|
|
2445
|
+
# 0020: 74 65 22 3a 20 22 31 30 22 2c 20 22 53 65 63 6f [te": "10", "Seco]
|
|
2446
|
+
# 0030: 6e 64 22 3a 20 22 32 32 22 2c 20 22 59 65 61 72 [nd": "22", "Year]
|
|
2447
|
+
# 0040: 22 3a 20 22 32 30 32 33 22 2c 20 22 4d 6f 6e 74 [": "2023", "Mont]
|
|
2448
|
+
# 0050: 68 22 3a 20 22 31 32 22 2c 20 22 44 61 79 22 3a [h": "12", "Day":]
|
|
2449
|
+
# 0060: 20 22 32 38 22 2c 20 22 73 74 61 74 75 73 22 3a [ "28", "status":]
|
|
2450
|
+
sub ProcessLIGO_JSON($$$)
|
|
2451
|
+
{
|
|
2452
|
+
my ($et, $dirInfo, $tagTbl) = @_;
|
|
2453
|
+
my $dataPt = $$dirInfo{DataPt};
|
|
2454
|
+
my $dirLen = $$dirInfo{DirLen};
|
|
2455
|
+
require Image::ExifTool::Import;
|
|
2456
|
+
$et->VerboseDir('LIGO_JSON', undef, length($$dataPt));
|
|
2457
|
+
while ($$dataPt =~ /LIGOGPSINFO (\{.*?\})/g) {
|
|
2458
|
+
my $json = $1;
|
|
2459
|
+
my $raf = File::RandomAccess->new(\$json);
|
|
2460
|
+
my %dbase;
|
|
2461
|
+
Image::ExifTool::Import::ReadJSON($raf, \%dbase);
|
|
2462
|
+
my $info = $dbase{'*'} or next;
|
|
2463
|
+
# my sample contains the following JSON fields (in this order):
|
|
2464
|
+
# Hour Minute Second Year Month Day (GPS UTC time)
|
|
2465
|
+
# status NS EW Latitude Longitude Speed (speed in knots)
|
|
2466
|
+
# GsensorX GsensorY GsensorZ (units? - only seen "000" for all)
|
|
2467
|
+
# MHour MMinute MSecond MYear MMonth MDay (local dashcam clock time)
|
|
2468
|
+
# OLatitude OLongitude (? same values as Latitude/Longitude)
|
|
2469
|
+
next unless defined $$info{status} and $$info{status} eq 'A'; # only read if GPS is active
|
|
2470
|
+
$$et{DOC_NUM} = ++$$et{DOC_COUNT};
|
|
2471
|
+
my $num = 0;
|
|
2472
|
+
defined $$info{$_} and ++$num foreach qw(Year Month Day Hour Minute Second);
|
|
2473
|
+
if ($num == 6) {
|
|
2474
|
+
# this is the GPS time in UTC
|
|
2475
|
+
my $time = sprintf('%.4d:%.2d:%.2d %.2d:%.2d:%.2dZ',@$info{qw{Year Month Day Hour Minute Second}});
|
|
2476
|
+
$et->HandleTag($tagTbl, GPSDateTime => $time);
|
|
2477
|
+
}
|
|
2478
|
+
if ($$info{Latitude} and $$info{Longitude}) {
|
|
2479
|
+
my $lat = $$info{Latitude};
|
|
2480
|
+
$lat = -$lat if $$info{NS} and $$info{NS} eq 'S';
|
|
2481
|
+
my $lon = $$info{Longitude};
|
|
2482
|
+
$lon = -$lon if $$info{EW} and $$info{EW} eq 'W';
|
|
2483
|
+
$et->HandleTag($tagTbl, GPSLatitude => $lat);
|
|
2484
|
+
$et->HandleTag($tagTbl, GPSLongitude => $lon);
|
|
2485
|
+
}
|
|
2486
|
+
$et->HandleTag($tagTbl, GPSSpeed => $$info{Speed} * $knotsToKph) if defined $$info{Speed};
|
|
2487
|
+
if (defined $$info{GsensorX} and defined $$info{GsensorY} and defined $$info{GsensorZ}) {
|
|
2488
|
+
# (don't know conversion factor for accel data, so leave it raw for now)
|
|
2489
|
+
$et->HandleTag($tagTbl, Accelerometer => "$$info{GsensorX} $$info{GsensorY} $$info{GsensorZ}");
|
|
2490
|
+
}
|
|
2491
|
+
$num = 0;
|
|
2492
|
+
defined $$info{$_} and ++$num foreach qw(MYear MMonth MDay MHour MMinute MSecond);
|
|
2493
|
+
if ($num == 6) {
|
|
2494
|
+
# this is the dashcam clock time (local time zone)
|
|
2495
|
+
my $time = sprintf('%.4d:%.2d:%.2d %.2d:%.2d:%.2d',@$info{qw{MYear MMonth MDay MHour MMinute MSecond}});
|
|
2496
|
+
$et->HandleTag($tagTbl, DateTimeOriginal => $time);
|
|
2497
|
+
}
|
|
2498
|
+
if (defined $$info{OLatitude} and defined $$info{OLongitude}) {
|
|
2499
|
+
my $lat = $$info{OLatitude};
|
|
2500
|
+
$lat = -$lat if $$info{NS} and $$info{NS} eq 'S';
|
|
2501
|
+
my $lon = $$info{OLongitude};
|
|
2502
|
+
$lon = -$lon if $$info{EW} and $$info{EW} eq 'W';
|
|
2503
|
+
$et->HandleTag($tagTbl, GPSLatitude2 => $lat);
|
|
2504
|
+
$et->HandleTag($tagTbl, GPSLongitude2 => $lon);
|
|
2505
|
+
}
|
|
2506
|
+
unless ($et->Options('ExtractEmbedded')) {
|
|
2507
|
+
$et->WarnOnce('Use the ExtractEmbedded option to extract all timed GPS',3);
|
|
2508
|
+
last;
|
|
2509
|
+
}
|
|
2510
|
+
}
|
|
2511
|
+
delete $$et{DOC_NUM};
|
|
2512
|
+
return 1;
|
|
2513
|
+
}
|
|
2514
|
+
|
|
2429
2515
|
#------------------------------------------------------------------------------
|
|
2430
2516
|
# Process Kenwood drv-a301w dashcam 'udta' atom (ref PH)
|
|
2431
2517
|
# Inputs: 0) ExifTool ref, 1) dirInfo ref, 2) tag table ref
|
|
@@ -2464,6 +2550,10 @@ sub ProcessKenwood($$$)
|
|
|
2464
2550
|
push @acc, $1/1000, $2/1000, $3/1000;
|
|
2465
2551
|
}
|
|
2466
2552
|
$et->HandleTag($tagTbl, Accelerometer => "@acc") if @acc;
|
|
2553
|
+
unless ($et->Options('ExtractEmbedded')) {
|
|
2554
|
+
$et->WarnOnce('Use the ExtractEmbedded option to extract all timed GPS',3);
|
|
2555
|
+
last;
|
|
2556
|
+
}
|
|
2467
2557
|
}
|
|
2468
2558
|
delete $$et{DOC_NUM};
|
|
2469
2559
|
return 1;
|
|
@@ -3221,7 +3311,7 @@ information like GPS tracks from MOV, MP4 and INSV media data.
|
|
|
3221
3311
|
|
|
3222
3312
|
=head1 AUTHOR
|
|
3223
3313
|
|
|
3224
|
-
Copyright 2003-
|
|
3314
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
3225
3315
|
|
|
3226
3316
|
This library is free software; you can redistribute it and/or modify it
|
|
3227
3317
|
under the same terms as Perl itself.
|
|
@@ -2199,7 +2199,7 @@ including AVI videos, WAV audio files and WEBP images.
|
|
|
2199
2199
|
|
|
2200
2200
|
=head1 AUTHOR
|
|
2201
2201
|
|
|
2202
|
-
Copyright 2003-
|
|
2202
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
2203
2203
|
|
|
2204
2204
|
This library is free software; you can redistribute it and/or modify it
|
|
2205
2205
|
under the same terms as Perl itself.
|
|
@@ -14,7 +14,7 @@ use strict;
|
|
|
14
14
|
use vars qw($VERSION);
|
|
15
15
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
16
16
|
|
|
17
|
-
$VERSION = '1.
|
|
17
|
+
$VERSION = '1.10';
|
|
18
18
|
|
|
19
19
|
sub ProcessRSRC($$);
|
|
20
20
|
|
|
@@ -70,7 +70,7 @@ sub ProcessRSRC($$)
|
|
|
70
70
|
my ($hdr, $map, $buff, $i, $j);
|
|
71
71
|
|
|
72
72
|
# allow access with data reference
|
|
73
|
-
$raf or $raf =
|
|
73
|
+
$raf or $raf = File::RandomAccess->new($$dirInfo{DataPt});
|
|
74
74
|
|
|
75
75
|
# attempt to validate the format as thoroughly as practical
|
|
76
76
|
return 0 unless $raf->Read($hdr, 30) == 30;
|
|
@@ -225,7 +225,7 @@ resource files.
|
|
|
225
225
|
|
|
226
226
|
=head1 AUTHOR
|
|
227
227
|
|
|
228
|
-
Copyright 2003-
|
|
228
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
229
229
|
|
|
230
230
|
This library is free software; you can redistribute it and/or modify it
|
|
231
231
|
under the same terms as Perl itself.
|
|
@@ -366,7 +366,7 @@ information from RTF (Rich Text Format) documents.
|
|
|
366
366
|
|
|
367
367
|
=head1 AUTHOR
|
|
368
368
|
|
|
369
|
-
Copyright 2003-
|
|
369
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
370
370
|
|
|
371
371
|
This library is free software; you can redistribute it and/or modify it
|
|
372
372
|
under the same terms as Perl itself.
|
|
@@ -125,7 +125,7 @@ images are a type of high dynamic-range image.
|
|
|
125
125
|
|
|
126
126
|
=head1 AUTHOR
|
|
127
127
|
|
|
128
|
-
Copyright 2003-
|
|
128
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
129
129
|
|
|
130
130
|
This library is free software; you can redistribute it and/or modify it
|
|
131
131
|
under the same terms as Perl itself.
|
|
@@ -168,7 +168,7 @@ information from Rawzor compressed images.
|
|
|
168
168
|
|
|
169
169
|
=head1 AUTHOR
|
|
170
170
|
|
|
171
|
-
Copyright 2003-
|
|
171
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
172
172
|
|
|
173
173
|
This library is free software; you can redistribute it and/or modify it
|
|
174
174
|
under the same terms as Perl itself.
|
|
@@ -715,7 +715,7 @@ little-endian, but the Real format is big-endian.
|
|
|
715
715
|
|
|
716
716
|
=head1 AUTHOR
|
|
717
717
|
|
|
718
|
-
Copyright 2003-
|
|
718
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
719
719
|
|
|
720
720
|
This library is free software; you can redistribute it and/or modify it
|
|
721
721
|
under the same terms as Perl itself.
|
|
@@ -431,7 +431,7 @@ maker notes in images from Reconyx cameras.
|
|
|
431
431
|
|
|
432
432
|
=head1 AUTHOR
|
|
433
433
|
|
|
434
|
-
Copyright 2003-
|
|
434
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
435
435
|
|
|
436
436
|
This library is free software; you can redistribute it and/or modify it
|
|
437
437
|
under the same terms as Perl itself.
|
|
@@ -303,7 +303,7 @@ from Redcode R3D version 1 and 2 video files.
|
|
|
303
303
|
|
|
304
304
|
=head1 AUTHOR
|
|
305
305
|
|
|
306
|
-
Copyright 2003-
|
|
306
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
307
307
|
|
|
308
308
|
This library is free software; you can redistribute it and/or modify it
|
|
309
309
|
under the same terms as Perl itself.
|
|
@@ -21,7 +21,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
|
21
21
|
use Image::ExifTool::Exif;
|
|
22
22
|
use Image::ExifTool::GPS;
|
|
23
23
|
|
|
24
|
-
$VERSION = '1.
|
|
24
|
+
$VERSION = '1.38';
|
|
25
25
|
|
|
26
26
|
sub ProcessRicohText($$$);
|
|
27
27
|
sub ProcessRicohRMETA($$$);
|
|
@@ -1078,7 +1078,7 @@ sub ProcessRicohText($$$)
|
|
|
1078
1078
|
$tagInfo = {
|
|
1079
1079
|
Name => "Ricoh_Text_$tag",
|
|
1080
1080
|
Unknown => 1,
|
|
1081
|
-
PrintConv =>
|
|
1081
|
+
PrintConv => \&Image::ExifTool::LimitLongValues,
|
|
1082
1082
|
};
|
|
1083
1083
|
# add tag information to table
|
|
1084
1084
|
AddTagToTable($tagTablePtr, $tag, $tagInfo);
|
|
@@ -1252,7 +1252,7 @@ interpret Ricoh maker notes EXIF meta information.
|
|
|
1252
1252
|
|
|
1253
1253
|
=head1 AUTHOR
|
|
1254
1254
|
|
|
1255
|
-
Copyright 2003-
|
|
1255
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
1256
1256
|
|
|
1257
1257
|
This library is free software; you can redistribute it and/or modify it
|
|
1258
1258
|
under the same terms as Perl itself.
|
|
@@ -22,7 +22,7 @@ use vars qw($VERSION %samsungLensTypes);
|
|
|
22
22
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
23
23
|
use Image::ExifTool::Exif;
|
|
24
24
|
|
|
25
|
-
$VERSION = '1.
|
|
25
|
+
$VERSION = '1.56';
|
|
26
26
|
|
|
27
27
|
sub WriteSTMN($$$);
|
|
28
28
|
sub ProcessINFO($$$);
|
|
@@ -1546,7 +1546,7 @@ sub ProcessSamsung($$$)
|
|
|
1546
1546
|
my ($buff, $buf2, $index, $offsetPos, $audioNOff, $audioSize);
|
|
1547
1547
|
|
|
1548
1548
|
unless ($raf) {
|
|
1549
|
-
$raf =
|
|
1549
|
+
$raf = File::RandomAccess->new($$dirInfo{DataPt});
|
|
1550
1550
|
$et->VerboseDir('SamsungTrailer');
|
|
1551
1551
|
}
|
|
1552
1552
|
return 0 unless $raf->Seek(-6-$offset, 2) and $raf->Read($buff, 6) == 6 and
|
|
@@ -1675,7 +1675,7 @@ SamBlock:
|
|
|
1675
1675
|
# add a fixup so the calling routine can apply further shifts if necessary
|
|
1676
1676
|
require Image::ExifTool::Fixup;
|
|
1677
1677
|
my $fixup = $$dirInfo{Fixup};
|
|
1678
|
-
$fixup or $fixup = $$dirInfo{Fixup} =
|
|
1678
|
+
$fixup or $fixup = $$dirInfo{Fixup} = Image::ExifTool::Fixup->new;
|
|
1679
1679
|
$fixup->AddFixup(length($buff) - $offsetPos);
|
|
1680
1680
|
$fixup->AddFixup(length($buff) - $offsetPos + 4);
|
|
1681
1681
|
}
|
|
@@ -1697,7 +1697,7 @@ sub WriteSTMN($$$)
|
|
|
1697
1697
|
{
|
|
1698
1698
|
my ($et, $dirInfo, $tagTablePtr) = @_;
|
|
1699
1699
|
# create a Fixup for the PreviewImage
|
|
1700
|
-
$$dirInfo{Fixup} =
|
|
1700
|
+
$$dirInfo{Fixup} = Image::ExifTool::Fixup->new;
|
|
1701
1701
|
my $val = Image::ExifTool::WriteBinaryData($et, $dirInfo, $tagTablePtr);
|
|
1702
1702
|
# force PreviewImage into the trailer even if it fits in EXIF segment
|
|
1703
1703
|
$$et{PREVIEW_INFO}{IsTrailer} = 1 if $$et{PREVIEW_INFO};
|
|
@@ -1723,7 +1723,7 @@ Samsung maker notes in EXIF information.
|
|
|
1723
1723
|
|
|
1724
1724
|
=head1 AUTHOR
|
|
1725
1725
|
|
|
1726
|
-
Copyright 2003-
|
|
1726
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
1727
1727
|
|
|
1728
1728
|
This library is free software; you can redistribute it and/or modify it
|
|
1729
1729
|
under the same terms as Perl itself.
|
|
@@ -419,7 +419,7 @@ Sanyo maker notes in EXIF information.
|
|
|
419
419
|
|
|
420
420
|
=head1 AUTHOR
|
|
421
421
|
|
|
422
|
-
Copyright 2003-
|
|
422
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
423
423
|
|
|
424
424
|
This library is free software; you can redistribute it and/or modify it
|
|
425
425
|
under the same terms as Perl itself.
|
|
@@ -128,7 +128,7 @@ metadata from the JPEG APP4 SCALADO segment.
|
|
|
128
128
|
|
|
129
129
|
=head1 AUTHOR
|
|
130
130
|
|
|
131
|
-
Copyright 2003-
|
|
131
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
132
132
|
|
|
133
133
|
This library is free software; you can redistribute it and/or modify it
|
|
134
134
|
under the same terms as Perl itself.
|
|
@@ -361,7 +361,7 @@ sub ShiftTime($;$$$)
|
|
|
361
361
|
};
|
|
362
362
|
# not a problem if we failed here since we'll just try again next time,
|
|
363
363
|
# so don't return error message
|
|
364
|
-
unless (
|
|
364
|
+
unless ($@) {
|
|
365
365
|
my $mode;
|
|
366
366
|
if (defined $time[0]) {
|
|
367
367
|
$mode = defined $time[3] ? 'DateTime' : 'Date';
|
|
@@ -403,7 +403,6 @@ sub ShiftTime($;$$$)
|
|
|
403
403
|
};
|
|
404
404
|
$@ and return CleanWarning($@);
|
|
405
405
|
$tm += $$shiftOffset{$mode}; # apply the shift
|
|
406
|
-
$tm < 0 and return 'Shift results in negative time';
|
|
407
406
|
# save fractional seconds in shifted time
|
|
408
407
|
$frac = $tm - int($tm);
|
|
409
408
|
if ($frac) {
|
|
@@ -632,7 +631,7 @@ limited to the range 1970 to 2038 on 32-bit systems.
|
|
|
632
631
|
|
|
633
632
|
=head1 AUTHOR
|
|
634
633
|
|
|
635
|
-
Copyright 2003-
|
|
634
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
636
635
|
|
|
637
636
|
This library is free software; you can redistribute it and/or modify it
|
|
638
637
|
under the same terms as Perl itself.
|
|
@@ -344,7 +344,7 @@ name prefix.
|
|
|
344
344
|
|
|
345
345
|
=head1 AUTHOR
|
|
346
346
|
|
|
347
|
-
Copyright 2003-
|
|
347
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
348
348
|
|
|
349
349
|
This library is free software; you can redistribute it and/or modify it
|
|
350
350
|
under the same terms as Perl itself.
|
|
@@ -864,7 +864,7 @@ Sigma and Foveon maker notes in EXIF information.
|
|
|
864
864
|
|
|
865
865
|
=head1 AUTHOR
|
|
866
866
|
|
|
867
|
-
Copyright 2003-
|
|
867
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
868
868
|
|
|
869
869
|
This library is free software; you can redistribute it and/or modify it
|
|
870
870
|
under the same terms as Perl itself.
|
|
@@ -16,7 +16,7 @@ use vars qw($VERSION);
|
|
|
16
16
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
17
17
|
use Image::ExifTool::Sigma;
|
|
18
18
|
|
|
19
|
-
$VERSION = '1.
|
|
19
|
+
$VERSION = '1.32';
|
|
20
20
|
|
|
21
21
|
sub ProcessX3FHeader($$$);
|
|
22
22
|
sub ProcessX3FDirectory($$$);
|
|
@@ -460,7 +460,7 @@ sub WriteX3F($$)
|
|
|
460
460
|
my $newData;
|
|
461
461
|
my %jpegInfo = (
|
|
462
462
|
Parent => 'X3F',
|
|
463
|
-
RAF =>
|
|
463
|
+
RAF => File::RandomAccess->new(\$buff),
|
|
464
464
|
OutFile => \$newData,
|
|
465
465
|
);
|
|
466
466
|
$$et{FILE_TYPE} = 'JPEG';
|
|
@@ -575,7 +575,7 @@ sub ProcessX3FDirectory($$$)
|
|
|
575
575
|
if ($$tagInfo{Name} eq 'JpgFromRaw') {
|
|
576
576
|
my %dirInfo = (
|
|
577
577
|
Parent => 'X3F',
|
|
578
|
-
RAF =>
|
|
578
|
+
RAF => File::RandomAccess->new(\$buff),
|
|
579
579
|
);
|
|
580
580
|
$$et{BASE} += $offset;
|
|
581
581
|
$et->ProcessJPEG(\%dirInfo);
|
|
@@ -680,7 +680,7 @@ Sigma and Foveon X3F images.
|
|
|
680
680
|
|
|
681
681
|
=head1 AUTHOR
|
|
682
682
|
|
|
683
|
-
Copyright 2003-
|
|
683
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
684
684
|
|
|
685
685
|
This library is free software; you can redistribute it and/or modify it
|
|
686
686
|
under the same terms as Perl itself.
|
|
@@ -34,7 +34,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
|
34
34
|
use Image::ExifTool::Exif;
|
|
35
35
|
use Image::ExifTool::Minolta;
|
|
36
36
|
|
|
37
|
-
$VERSION = '3.
|
|
37
|
+
$VERSION = '3.67';
|
|
38
38
|
|
|
39
39
|
sub ProcessSRF($$$);
|
|
40
40
|
sub ProcessSR2($$$);
|
|
@@ -597,7 +597,7 @@ my %unknownCipherData = (
|
|
|
597
597
|
Hidden => 1, # doesn't appear in Tag Name documentation
|
|
598
598
|
RawConv => sub { Decipher(\$_[0]); return $_[0] },
|
|
599
599
|
ValueConv => 'PrintHex($val)', # print as hex
|
|
600
|
-
PrintConv =>
|
|
600
|
+
PrintConv => \&Image::ExifTool::LimitLongValues,
|
|
601
601
|
);
|
|
602
602
|
|
|
603
603
|
my %meterInfo1 = (
|
|
@@ -859,7 +859,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
859
859
|
# must construct 0x20-byte header which contains length, width and height
|
|
860
860
|
ValueConvInv => q{
|
|
861
861
|
return 'none' unless $val;
|
|
862
|
-
my $e =
|
|
862
|
+
my $e = Image::ExifTool->new;
|
|
863
863
|
my $info = $e->ImageInfo(\$val,'ImageWidth','ImageHeight');
|
|
864
864
|
return undef unless $$info{ImageWidth} and $$info{ImageHeight};
|
|
865
865
|
my $size = Set32u($$info{ImageWidth}) . Set32u($$info{ImageHeight});
|
|
@@ -11640,7 +11640,7 @@ sub ProcessSR2($$$)
|
|
|
11640
11640
|
);
|
|
11641
11641
|
my $subTable = GetTagTable('Image::ExifTool::Sony::SR2SubIFD');
|
|
11642
11642
|
if ($outfile) {
|
|
11643
|
-
my $fixup =
|
|
11643
|
+
my $fixup = Image::ExifTool::Fixup->new;
|
|
11644
11644
|
$dirInfo{Fixup} = $fixup;
|
|
11645
11645
|
$result = $et->WriteDirectory(\%dirInfo, $subTable);
|
|
11646
11646
|
return undef unless $result;
|
|
@@ -11734,7 +11734,7 @@ Minolta.
|
|
|
11734
11734
|
|
|
11735
11735
|
=head1 AUTHOR
|
|
11736
11736
|
|
|
11737
|
-
Copyright 2003-
|
|
11737
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
11738
11738
|
|
|
11739
11739
|
This library is free software; you can redistribute it and/or modify it
|
|
11740
11740
|
under the same terms as Perl itself.
|
|
@@ -379,7 +379,7 @@ write Sony Image Data Converter version 3.0 metadata in ARW images.
|
|
|
379
379
|
|
|
380
380
|
=head1 AUTHOR
|
|
381
381
|
|
|
382
|
-
Copyright 2003-
|
|
382
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
383
383
|
|
|
384
384
|
This library is free software; you can redistribute it and/or modify it
|
|
385
385
|
under the same terms as Perl itself.
|
|
@@ -174,7 +174,7 @@ information.
|
|
|
174
174
|
|
|
175
175
|
=head1 AUTHOR
|
|
176
176
|
|
|
177
|
-
Copyright 2003-
|
|
177
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
178
178
|
|
|
179
179
|
This library is free software; you can redistribute it and/or modify it
|
|
180
180
|
under the same terms as Perl itself.
|
|
@@ -15,7 +15,7 @@ use vars qw($VERSION @ISA $makeMissing);
|
|
|
15
15
|
use Image::ExifTool qw(:Utils :Vars);
|
|
16
16
|
use Image::ExifTool::XMP;
|
|
17
17
|
|
|
18
|
-
$VERSION = '1.
|
|
18
|
+
$VERSION = '1.36';
|
|
19
19
|
@ISA = qw(Exporter);
|
|
20
20
|
|
|
21
21
|
# set this to a language code to generate Lang module with 'MISSING' entries
|
|
@@ -74,7 +74,7 @@ sub Write(;$$%)
|
|
|
74
74
|
{
|
|
75
75
|
local ($_, *PTIFILE);
|
|
76
76
|
my ($file, $group, %opts) = @_;
|
|
77
|
-
my $et =
|
|
77
|
+
my $et = Image::ExifTool->new;
|
|
78
78
|
my ($fp, $tableName, %langInfo, @langs, $defaultLang, @groups);
|
|
79
79
|
@groups = split ':', $group if $group;
|
|
80
80
|
|
|
@@ -650,7 +650,7 @@ and values.
|
|
|
650
650
|
|
|
651
651
|
~head1 AUTHOR
|
|
652
652
|
|
|
653
|
-
Copyright 2003-
|
|
653
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
654
654
|
|
|
655
655
|
This library is free software; you can redistribute it and/or modify it
|
|
656
656
|
under the same terms as Perl itself.
|
|
@@ -834,7 +834,7 @@ Number of modules updated, or negative on error.
|
|
|
834
834
|
|
|
835
835
|
=head1 AUTHOR
|
|
836
836
|
|
|
837
|
-
Copyright 2003-
|
|
837
|
+
Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
|
|
838
838
|
|
|
839
839
|
This library is free software; you can redistribute it and/or modify it
|
|
840
840
|
under the same terms as Perl itself.
|