exiftool-vendored.exe 13.36.0 → 13.38.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/exiftool.exe +0 -0
- package/bin/exiftool_files/exiftool.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Audible.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BMP.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +16 -9
- package/bin/exiftool_files/lib/Image/ExifTool/CBOR.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +59 -5
- package/bin/exiftool_files/lib/Image/ExifTool/CanonVRD.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/CaptureOne.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DJI.pm +5 -5
- package/bin/exiftool_files/lib/Image/ExifTool/DSF.pm +138 -0
- package/bin/exiftool_files/lib/Image/ExifTool/DV.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/EXE.pm +5 -2
- package/bin/exiftool_files/lib/Image/ExifTool/FLIF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FLIR.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +5 -4
- package/bin/exiftool_files/lib/Image/ExifTool/GIF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/GM.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.pm +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +13 -3
- package/bin/exiftool_files/lib/Image/ExifTool/GoPro.pm +11 -8
- package/bin/exiftool_files/lib/Image/ExifTool/Google.pm +814 -0
- package/bin/exiftool_files/lib/Image/ExifTool/H264.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ICC_Profile.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ID3.pm +14 -13
- package/bin/exiftool_files/lib/Image/ExifTool/JPEG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/LIF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/LNK.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Lytro.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +34 -25
- package/bin/exiftool_files/lib/Image/ExifTool/MIEUnits.pod +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MPEG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MWG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MXF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MacOS.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/MakerNotes.pm +30 -7
- package/bin/exiftool_files/lib/Image/ExifTool/Microsoft.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/OOXML.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Ogg.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +2 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Other.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +18 -7
- package/bin/exiftool_files/lib/Image/ExifTool/Protobuf.pm +12 -6
- package/bin/exiftool_files/lib/Image/ExifTool/Qualcomm.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +30 -8
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +2 -0
- package/bin/exiftool_files/lib/Image/ExifTool/README +7 -6
- package/bin/exiftool_files/lib/Image/ExifTool/Rawzor.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Reconyx.pm +375 -91
- package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Shortcuts.pm +8 -5
- package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +22 -7
- package/bin/exiftool_files/lib/Image/ExifTool/TagInfoXML.pm +3 -2
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +5753 -5696
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +707 -518
- package/bin/exiftool_files/lib/Image/ExifTool/Text.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Trailer.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WPG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WTV.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WavPack.pm +144 -0
- package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +43 -37
- package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +0 -482
- package/bin/exiftool_files/lib/Image/ExifTool/ZIP.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/iWork.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool.pm +42 -27
- package/bin/exiftool_files/lib/Image/ExifTool.pod +60 -59
- package/bin/exiftool_files/windows_exiftool.txt +66 -64
- package/package.json +3 -3
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
# 2024/11/26 - PH Also write GPSMeasureMode and GPSDOP
|
|
21
21
|
# 2024/11/05 - PH Added support for Google Maps "Export timeline data"
|
|
22
22
|
# JSON format
|
|
23
|
+
# 2025/09/22 - PH Added ability to read Columbus CSV log files
|
|
23
24
|
#
|
|
24
25
|
# References: 1) http://www.topografix.com/GPX/1/1/
|
|
25
26
|
# 2) http://www.gpsinformation.org/dale/nmea.htm#GSA
|
|
@@ -34,7 +35,7 @@ use vars qw($VERSION);
|
|
|
34
35
|
use Image::ExifTool qw(:Public);
|
|
35
36
|
use Image::ExifTool::GPS;
|
|
36
37
|
|
|
37
|
-
$VERSION = '1.
|
|
38
|
+
$VERSION = '1.82';
|
|
38
39
|
|
|
39
40
|
sub JITTER() { return 2 } # maximum time jitter
|
|
40
41
|
|
|
@@ -275,6 +276,7 @@ sub LoadTrackLog($$;$)
|
|
|
275
276
|
} elsif (((/\b(GPS)?Date/i and /\b(GPS)?(Date)?Time/i) or /\bTime\(seconds\)/i) and /\Q$csvDelim/) {
|
|
276
277
|
chomp;
|
|
277
278
|
@csvHeadings = split /\Q$csvDelim/;
|
|
279
|
+
my $isColumbus = ($csvHeadings[0] and $csvHeadings[0] eq 'INDEX'); # (Columbus GPS logger)
|
|
278
280
|
$format = 'CSV';
|
|
279
281
|
# convert recognized headings to our parameter names
|
|
280
282
|
foreach (@csvHeadings) {
|
|
@@ -306,7 +308,7 @@ sub LoadTrackLog($$;$)
|
|
|
306
308
|
} elsif (/^(Pos)?Lon/i) {
|
|
307
309
|
$param = 'lon';
|
|
308
310
|
/ref$/i and $param .= 'ref';
|
|
309
|
-
} elsif (/^(Pos)?Alt/i) {
|
|
311
|
+
} elsif (/^(Pos)?(Alt|Height)/i) {
|
|
310
312
|
$param = 'alt';
|
|
311
313
|
} elsif (/^Speed/i) {
|
|
312
314
|
$param = 'speed';
|
|
@@ -314,6 +316,9 @@ sub LoadTrackLog($$;$)
|
|
|
314
316
|
if (m{\((mph|km/h|m/s)\)}) {
|
|
315
317
|
$scaleSpeed = $otherConv{$1};
|
|
316
318
|
$xtra = " in $1";
|
|
319
|
+
} elsif ($isColumbus) { # (Columbus GPS logger)
|
|
320
|
+
$scaleSpeed = $otherConv{'km/h'};
|
|
321
|
+
$xtra = " in km/h";
|
|
317
322
|
} else {
|
|
318
323
|
$xtra = ' in knots';
|
|
319
324
|
}
|
|
@@ -541,12 +546,16 @@ DoneFix: $isDate = 1;
|
|
|
541
546
|
$date = Time::Local::timegm(0,0,0,$1,$2-1,$3);
|
|
542
547
|
} elsif ($val =~ /(\d{4}).*?(\d{2}).*?(\d{2})/) {
|
|
543
548
|
$date = Time::Local::timegm(0,0,0,$3,$2-1,$1);
|
|
549
|
+
} elsif ($val =~ /^(\d{2})(\d{2})(\d{2})$/) { # (Columbus GPS logger)
|
|
550
|
+
$date = Time::Local::timegm(0,0,0,$3,$2-1,$1+2000);
|
|
544
551
|
}
|
|
545
552
|
} elsif ($param eq 'time') {
|
|
546
553
|
if ($val =~ /^(\d{1,2}):(\d{2}):(\d{2}(\.\d+)?).*?(([-+])(\d{1,2}):?(\d{2}))?/) {
|
|
547
554
|
$secs = (($1 * 60) + $2) * 60 + $3;
|
|
548
555
|
# adjust for time zone if specified
|
|
549
556
|
$secs += ($7 * 60 + $8) * ($6 eq '-' ? 60 : -60) if $5;
|
|
557
|
+
} elsif ($val =~ /^(\d{2})(\d{2})(\d{2})$/) { # (Columbus GPS logger)
|
|
558
|
+
$secs = (($1 * 60) + $2) * 60 + $3;
|
|
550
559
|
}
|
|
551
560
|
} elsif ($param eq 'lat' or $param eq 'lon') {
|
|
552
561
|
$$fix{$param} = Image::ExifTool::GPS::ToDegrees($val, 1);
|
|
@@ -1549,7 +1558,8 @@ This module loads GPS track logs, interpolates to determine position based
|
|
|
1549
1558
|
on time, and sets new GPS values for geotagging images. Currently supported
|
|
1550
1559
|
formats are GPX, NMEA RMC/GGA/GLL/GSA/ZDA, KML, IGC, Garmin XML and TCX,
|
|
1551
1560
|
Magellan PMGNTRK, Honeywell PTNTHPR, Bramor gEO, Winplus Beacon text,
|
|
1552
|
-
GPS/IMU CSV, DJI CSV
|
|
1561
|
+
GPS/IMU CSV, DJI/Columbus/ExifTool CSV format and 3 different Google JSON
|
|
1562
|
+
formats.
|
|
1553
1563
|
|
|
1554
1564
|
Methods in this module should not be called directly. Instead, the Geotag
|
|
1555
1565
|
feature is accessed by writing the values of the ExifTool Geotag, Geosync
|
|
@@ -17,7 +17,7 @@ use vars qw($VERSION);
|
|
|
17
17
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
18
18
|
use Image::ExifTool::QuickTime;
|
|
19
19
|
|
|
20
|
-
$VERSION = '1.
|
|
20
|
+
$VERSION = '1.15';
|
|
21
21
|
|
|
22
22
|
sub ProcessGoPro($$$);
|
|
23
23
|
sub ProcessString($$$);
|
|
@@ -251,7 +251,8 @@ my %noYes = ( N => 'No', Y => 'Yes' );
|
|
|
251
251
|
Notes => 'gyroscope readings in rad/s',
|
|
252
252
|
Binary => 1,
|
|
253
253
|
},
|
|
254
|
-
|
|
254
|
+
LOGS => 'HealthLogs',
|
|
255
|
+
HCTL => 'HorizonControl', #3
|
|
255
256
|
HDRV => { Name => 'HDRVideo', PrintConv => \%noYes }, #3/PH (NC)
|
|
256
257
|
# HFLG (APP6) - seen: 0
|
|
257
258
|
HSGT => 'HindsightSettings', #3
|
|
@@ -409,6 +410,7 @@ my %noYes = ( N => 'No', Y => 'Yes' );
|
|
|
409
410
|
},
|
|
410
411
|
# TOCK => { Name => 'OutTime', Unknown => 1, ValueConv => '$val/1000' }, #1 (gpmd)
|
|
411
412
|
TSMP => { Name => 'TotalSamples', Unknown => 1 }, #2 (gpmd)
|
|
413
|
+
TIMO => 'TimeOffset',
|
|
412
414
|
TYPE => { Name => 'StructureType', Unknown => 1 }, #2 (gpmd,GPMF - eg 'LLLllfFff', fmt c)
|
|
413
415
|
TZON => { # (GPMF) - seen: 60 (fmt s)
|
|
414
416
|
Name => 'TimeZone',
|
|
@@ -469,7 +471,8 @@ my %noYes = ( N => 'No', Y => 'Yes' );
|
|
|
469
471
|
AALP => { Name => 'AudioLevel', Notes => 'dBFS' },
|
|
470
472
|
GPSA => 'GPSAltitudeSystem', # (eg. 'MSLV')
|
|
471
473
|
GRAV => { Name => 'GravityVector', Binary => 1 },
|
|
472
|
-
|
|
474
|
+
# DISP - Disparity track
|
|
475
|
+
HUES => 'PredominantHue',
|
|
473
476
|
IORI => { Name => 'ImageOrientation', Binary => 1, Notes => 'quaternions 0-1' },
|
|
474
477
|
# LRVO - ? Part of LRV Frame Skip
|
|
475
478
|
# LRVS - ? Part of LRV Frame Skip
|
|
@@ -485,7 +488,7 @@ my %noYes = ( N => 'No', Y => 'Yes' );
|
|
|
485
488
|
%Image::ExifTool::GoPro::GPS5 = (
|
|
486
489
|
PROCESS_PROC => \&ProcessString,
|
|
487
490
|
GROUPS => { 1 => 'GoPro', 2 => 'Location' },
|
|
488
|
-
VARS => {
|
|
491
|
+
VARS => { ID_FMT => 'dec', ID_LABEL => 'Index' },
|
|
489
492
|
0 => { # (unit='deg')
|
|
490
493
|
Name => 'GPSLatitude',
|
|
491
494
|
PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")',
|
|
@@ -514,7 +517,7 @@ my %noYes = ( N => 'No', Y => 'Yes' );
|
|
|
514
517
|
%Image::ExifTool::GoPro::GPS9 = (
|
|
515
518
|
PROCESS_PROC => \&ProcessString,
|
|
516
519
|
GROUPS => { 1 => 'GoPro', 2 => 'Location' },
|
|
517
|
-
VARS => {
|
|
520
|
+
VARS => { ID_FMT => 'dec', ID_LABEL => 'Index' },
|
|
518
521
|
0 => { # (unit='deg')
|
|
519
522
|
Name => 'GPSLatitude',
|
|
520
523
|
PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")',
|
|
@@ -563,7 +566,7 @@ my %noYes = ( N => 'No', Y => 'Yes' );
|
|
|
563
566
|
%Image::ExifTool::GoPro::GPRI = (
|
|
564
567
|
PROCESS_PROC => \&ProcessString,
|
|
565
568
|
GROUPS => { 1 => 'GoPro', 2 => 'Location' },
|
|
566
|
-
VARS => {
|
|
569
|
+
VARS => { ID_FMT => 'dec', ID_LABEL => 'Index' },
|
|
567
570
|
0 => { # (unit='s')
|
|
568
571
|
Name => 'GPSDateTimeRaw',
|
|
569
572
|
Groups => { 2 => 'Time' },
|
|
@@ -595,7 +598,7 @@ my %noYes = ( N => 'No', Y => 'Yes' );
|
|
|
595
598
|
%Image::ExifTool::GoPro::GLPI = (
|
|
596
599
|
PROCESS_PROC => \&ProcessString,
|
|
597
600
|
GROUPS => { 1 => 'GoPro', 2 => 'Location' },
|
|
598
|
-
VARS => {
|
|
601
|
+
VARS => { ID_FMT => 'dec', ID_LABEL => 'Index' },
|
|
599
602
|
0 => { # (unit='s')
|
|
600
603
|
Name => 'GPSDateTime',
|
|
601
604
|
Groups => { 2 => 'Time' },
|
|
@@ -626,7 +629,7 @@ my %noYes = ( N => 'No', Y => 'Yes' );
|
|
|
626
629
|
%Image::ExifTool::GoPro::KBAT = (
|
|
627
630
|
PROCESS_PROC => \&ProcessString,
|
|
628
631
|
GROUPS => { 1 => 'GoPro', 2 => 'Camera' },
|
|
629
|
-
VARS => {
|
|
632
|
+
VARS => { ID_FMT => 'dec', ID_LABEL => 'Index' },
|
|
630
633
|
NOTES => 'Battery status information found in GoPro Karma videos.',
|
|
631
634
|
0 => { Name => 'BatteryCurrent', PrintConv => '"$val A"' },
|
|
632
635
|
1 => { Name => 'BatteryCapacity', PrintConv => '"$val Ah"' },
|