exiftool-vendored.exe 13.43.0 → 13.45.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 +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Apple.pm +0 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +2 -1
- package/bin/exiftool_files/lib/Image/ExifTool/CanonCustom.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DarwinCore.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/EXE.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +4 -2
- package/bin/exiftool_files/lib/Image/ExifTool/FLIR.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.dat +0 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Google.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/ICC_Profile.pm +0 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Import.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/JPEG.pm +5 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Kandao.pm +399 -0
- package/bin/exiftool_files/lib/Image/ExifTool/LNK.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MRC.pm +4 -4
- package/bin/exiftool_files/lib/Image/ExifTool/MWG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MacOS.pm +1 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Matroska.pm +56 -15
- package/bin/exiftool_files/lib/Image/ExifTool/Microsoft.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +13 -15
- package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +10 -8
- package/bin/exiftool_files/lib/Image/ExifTool/OpenEXR.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PPM.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +18 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +9 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PhaseOne.pm +17 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Plot.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Protobuf.pm +42 -16
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +25 -5
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/README +5 -5
- package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Reconyx.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +28 -3
- package/bin/exiftool_files/lib/Image/ExifTool/TNEF.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +18 -2
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +246 -110
- 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/WriteQuickTime.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +9 -5
- package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +4 -2
- package/bin/exiftool_files/lib/Image/ExifTool/ZIP.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool.pm +33 -26
- package/bin/exiftool_files/lib/Image/ExifTool.pod +88 -79
- package/bin/exiftool_files/windows_exiftool.txt +62 -54
- package/package.json +5 -5
package/bin/exiftool.exe
CHANGED
|
Binary file
|
|
@@ -11,7 +11,7 @@ use strict;
|
|
|
11
11
|
use warnings;
|
|
12
12
|
require 5.004;
|
|
13
13
|
|
|
14
|
-
my $version = '13.
|
|
14
|
+
my $version = '13.45';
|
|
15
15
|
|
|
16
16
|
$^W = 1; # enable global warnings
|
|
17
17
|
|
|
@@ -3288,7 +3288,7 @@ sub SetImageInfo($$$)
|
|
|
3288
3288
|
}
|
|
3289
3289
|
}
|
|
3290
3290
|
next;
|
|
3291
|
-
}
|
|
3291
|
+
}
|
|
3292
3292
|
my @exclTags = @csvExclude;
|
|
3293
3293
|
foreach (@exclTags) {
|
|
3294
3294
|
tr/-0-9a-zA-Z_:#?*//dc; # remove illegal characters
|
|
@@ -116,7 +116,6 @@ sub ConvertPLIST($$);
|
|
|
116
116
|
# - changed in 12.19 to MediaGroupUUID, NealKrawetz private communication
|
|
117
117
|
# - changed back to ContentIdentifier since Apple writes this to Keys content.identifier (forum14874)
|
|
118
118
|
Writable => 'string',
|
|
119
|
-
|
|
120
119
|
},
|
|
121
120
|
# 0x0012 - (QRMOutputType, ref 2)
|
|
122
121
|
# 0x0013 - (SphereExternalForceOffset, ref 2)
|
|
@@ -35,7 +35,7 @@ use Image::ExifTool::Sony;
|
|
|
35
35
|
use Image::ExifTool::Validate;
|
|
36
36
|
use Image::ExifTool::MacOS;
|
|
37
37
|
|
|
38
|
-
$VERSION = '3.
|
|
38
|
+
$VERSION = '3.64';
|
|
39
39
|
@ISA = qw(Exporter);
|
|
40
40
|
|
|
41
41
|
sub NumbersFirst($$);
|
|
@@ -346,7 +346,7 @@ or "Rights-en-US"). (See L<http://www.ietf.org/rfc/rfc3066.txt> for the RFC
|
|
|
346
346
|
3066 specification.) A C<lang-alt> tag with no language code accesses the
|
|
347
347
|
"x-default" language, but causes other languages for this tag to be deleted
|
|
348
348
|
when writing. The "x-default" language code may be specified when writing
|
|
349
|
-
to preserve other existing languages (eg. "XMP-dc:Description-x-default").
|
|
349
|
+
to preserve other existing languages (eg. "XMP-dc:Description-x-default").
|
|
350
350
|
When reading, "x-default" is not specified.
|
|
351
351
|
|
|
352
352
|
The XMP tags are organized according to schema B<Namespace> in the following
|
|
@@ -555,7 +555,7 @@ Pentax, Ricoh, Samsung, Sanyo, SeaLife, Sony, Supra and Vivitar.
|
|
|
555
555
|
These tags are used in Panasonic/Leica cameras.
|
|
556
556
|
},
|
|
557
557
|
Pentax => q{
|
|
558
|
-
These tags are used in Pentax/Asahi cameras.
|
|
558
|
+
These tags are used in Pentax/Asahi/Ricoh cameras.
|
|
559
559
|
},
|
|
560
560
|
CanonRaw => q{
|
|
561
561
|
These tags apply to CRW-format Canon RAW files and information in the APP0
|
|
@@ -629,7 +629,7 @@ and RPM).
|
|
|
629
629
|
Extra => q{
|
|
630
630
|
The extra tags provide extra features or extra information extracted or
|
|
631
631
|
generated by ExifTool that is not directly associated with another tag
|
|
632
|
-
group. The B<Group> column lists the family 1 group name when reading.
|
|
632
|
+
group. The B<Group> column lists the family 1 group name when reading.
|
|
633
633
|
Tags with a "-" in this column are write-only.
|
|
634
634
|
|
|
635
635
|
Tags in the family 1 "System" group are referred to as "pseudo" tags because
|
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
|
88
88
|
sub ProcessExifInfo($$$);
|
|
89
89
|
sub SwapWords($);
|
|
90
90
|
|
|
91
|
-
$VERSION = '5.
|
|
91
|
+
$VERSION = '5.01';
|
|
92
92
|
|
|
93
93
|
# Note: Removed 'USM' from 'L' lenses since it is redundant - PH
|
|
94
94
|
# (or is it? Ref 32 shows 5 non-USM L-type lenses)
|
|
@@ -9397,6 +9397,7 @@ my %filterConv = (
|
|
|
9397
9397
|
0 => 'Initial Priority',
|
|
9398
9398
|
1 => 'On Subject',
|
|
9399
9399
|
2 => 'Switch Subject',
|
|
9400
|
+
0x7fffffff => 'n/a',
|
|
9400
9401
|
},
|
|
9401
9402
|
},
|
|
9402
9403
|
24 => { #forum16068 #KG extensions for 'left' and 'right'
|
|
@@ -1362,7 +1362,7 @@ my %convPFn = ( PrintConv => \&ConvertPfn, PrintConvInv => \&ConvertPfnInv );
|
|
|
1362
1362
|
PrintConvInv => '$val=~/0x([\dA-F]+)/i ? hex($1) : undef',
|
|
1363
1363
|
},{
|
|
1364
1364
|
Name => 'UsableMeteringModes',
|
|
1365
|
-
Count => 2,
|
|
1365
|
+
Count => 2,
|
|
1366
1366
|
PrintConv => [
|
|
1367
1367
|
\%disableEnable,
|
|
1368
1368
|
'sprintf("Flags 0x%x",$val)', # (evaluative,partial,spot,center-weighted average)
|
|
@@ -296,7 +296,7 @@ my %event = (
|
|
|
296
296
|
taxonomicStatus => { },
|
|
297
297
|
verbatimTaxonRank => { },
|
|
298
298
|
vernacularName => { Writable => 'lang-alt' },
|
|
299
|
-
superFamily => { }, # dwc.tdwg.org added 2023
|
|
299
|
+
superFamily => { }, # dwc.tdwg.org added 2023
|
|
300
300
|
subFamily => { }, # dwc.tdwg.org added 2023
|
|
301
301
|
tribe => { }, # dwc.tdwg.org added 2023
|
|
302
302
|
subTribe => { }, # dwc.tdwg.org added 2023
|
|
@@ -332,7 +332,7 @@ my %event = (
|
|
|
332
332
|
georeferenceProtocol => { },
|
|
333
333
|
georeferenceRemarks => { },
|
|
334
334
|
georeferenceSources => { },
|
|
335
|
-
georeferenceVerificationStatus => { }, # dwc.tdwg.org removed 2023
|
|
335
|
+
georeferenceVerificationStatus => { }, # dwc.tdwg.org removed 2023
|
|
336
336
|
higherGeography => { },
|
|
337
337
|
higherGeographyID => { },
|
|
338
338
|
island => { },
|
|
@@ -1113,7 +1113,7 @@ sub ProcessPEResources($$)
|
|
|
1113
1113
|
#------------------------------------------------------------------------------
|
|
1114
1114
|
# Process Windows PE file data dictionary
|
|
1115
1115
|
# Inputs: 0) ExifTool object ref, 1) dirInfo ref
|
|
1116
|
-
# Returns: true on success or if the PE resources didn't exist, or false on error
|
|
1116
|
+
# Returns: true on success or if the PE resources didn't exist, or false on error
|
|
1117
1117
|
# processing the PE resources
|
|
1118
1118
|
sub ProcessPEDict($$)
|
|
1119
1119
|
{
|
|
@@ -57,7 +57,7 @@ use vars qw($VERSION $AUTOLOAD @formatSize @formatName %formatNumber %intFormat
|
|
|
57
57
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
58
58
|
use Image::ExifTool::MakerNotes;
|
|
59
59
|
|
|
60
|
-
$VERSION = '4.
|
|
60
|
+
$VERSION = '4.63';
|
|
61
61
|
|
|
62
62
|
sub ProcessExif($$$);
|
|
63
63
|
sub WriteExif($$$);
|
|
@@ -213,7 +213,7 @@ $formatName[129] = 'utf8'; # (Exif 3.0)
|
|
|
213
213
|
10 => 'JBIG Color', #3
|
|
214
214
|
99 => 'JPEG', #16
|
|
215
215
|
262 => 'Kodak 262', #16
|
|
216
|
-
32766 => 'Next', #3
|
|
216
|
+
32766 => 'Next or Sony ARW Compressed 2', #3/Milos
|
|
217
217
|
32767 => 'Sony ARW Compressed', #16
|
|
218
218
|
32769 => 'Packed RAW', #PH (used by Epson, Nikon, Samsung)
|
|
219
219
|
32770 => 'Samsung SRW Compressed', #PH
|
|
@@ -1598,6 +1598,7 @@ my %opcodeInfo = (
|
|
|
1598
1598
|
2 => 'Sony Compressed RAW', # (lossy, ref IB)
|
|
1599
1599
|
3 => 'Sony Lossless Compressed RAW', #IB
|
|
1600
1600
|
4 => 'Sony Lossless Compressed RAW 2', #JR (ILCE-1)
|
|
1601
|
+
6 => 'Sony Compressed RAW 2', # ILCE-7M5
|
|
1601
1602
|
},
|
|
1602
1603
|
},
|
|
1603
1604
|
# 0x7001 - int16u[1] (in SubIFD of Sony ARW images) - values: 0,1
|
|
@@ -3590,6 +3591,7 @@ my %opcodeInfo = (
|
|
|
3590
3591
|
Condition => '$$valPt =~ /^\[ae_dbg_info:/',
|
|
3591
3592
|
MakerNotes => 1,
|
|
3592
3593
|
Binary => 1,
|
|
3594
|
+
NotIFD => 1,
|
|
3593
3595
|
WriteGroup => 'IFD0', # (for Validate)
|
|
3594
3596
|
SubDirectory => { TagTable => 'Image::ExifTool::DJI::Info' },
|
|
3595
3597
|
Format => 'undef',
|
|
@@ -479,7 +479,7 @@ my %float8g = ( Format => 'float', PrintConv => 'sprintf("%.8g",$val)' );
|
|
|
479
479
|
VARS => { ID_FMT => 'none' },
|
|
480
480
|
NOTES => q{
|
|
481
481
|
Tags listed below are only for the first measurement tool, however multiple
|
|
482
|
-
measurements may be added, and information is extracted for all of them.
|
|
482
|
+
measurements may be added, and information is extracted for all of them.
|
|
483
483
|
Tags for subsequent measurements are generated as required with the prefixes
|
|
484
484
|
"Meas2", "Meas3", etc.
|
|
485
485
|
},
|
|
@@ -1454,7 +1454,7 @@ sub ProcessContents($$$)
|
|
|
1454
1454
|
my ($w, $h) = unpack('V2',$2);
|
|
1455
1455
|
$et->FoundTag(ImageWidth => $w);
|
|
1456
1456
|
$et->FoundTag(ImageHeight => $h);
|
|
1457
|
-
$et->HandleTag($tagTablePtr, OriginalFileName => $name);
|
|
1457
|
+
$et->HandleTag($tagTablePtr, OriginalFileName => $name);
|
|
1458
1458
|
if ($$dataPt =~ /\G\x01\0{4}(.{12})/sg) {
|
|
1459
1459
|
# (first 4 bytes seem to be number of objects, next 4 bytes are zero, then ICC size)
|
|
1460
1460
|
my $size = unpack('x8V', $1);
|
|
@@ -876,7 +876,7 @@ my %faceCategories = (
|
|
|
876
876
|
0x144a => { Name => 'WBRed', Writable => 'int16u' },
|
|
877
877
|
0x144b => { Name => 'WBGreen', Writable => 'int16u' },
|
|
878
878
|
0x144c => { Name => 'WBBlue', Writable => 'int16u' },
|
|
879
|
-
|
|
879
|
+
|
|
880
880
|
0x144d => { Name => 'RollAngle', Writable => 'rational64s' }, #forum14319
|
|
881
881
|
0x3803 => { #forum10037
|
|
882
882
|
Name => 'VideoRecordingMode',
|
|
@@ -1942,7 +1942,7 @@ sub ProcessRAF($$)
|
|
|
1942
1942
|
$et->SetFileType() unless $$et{DOC_NUM};
|
|
1943
1943
|
my $tbl = GetTagTable('Image::ExifTool::FujiFilm::RAFHeader');
|
|
1944
1944
|
$et->ProcessDirectory({ DataPt => \$buff, DirName => 'RAFHeader', Base => $base }, $tbl);
|
|
1945
|
-
|
|
1945
|
+
|
|
1946
1946
|
# extract information from embedded JPEG
|
|
1947
1947
|
my %dirInfo = (
|
|
1948
1948
|
Parent => 'RAF',
|
|
Binary file
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# Notes: Set $Image::ExifTool::Geolocation::geoDir to override the
|
|
13
13
|
# default directory containing the database file Geolocation.dat
|
|
14
14
|
# and the GeoLang directory with the alternate language files.
|
|
15
|
-
# If set, this directory is
|
|
15
|
+
# If set, this directory is
|
|
16
16
|
#
|
|
17
17
|
# AltNames.dat may be loaded from a different directory by
|
|
18
18
|
# specifying $Image::ExifTool::Geolocation::altDir. This
|
|
@@ -35,7 +35,7 @@ use vars qw($VERSION);
|
|
|
35
35
|
use Image::ExifTool qw(:Public);
|
|
36
36
|
use Image::ExifTool::GPS;
|
|
37
37
|
|
|
38
|
-
$VERSION = '1.
|
|
38
|
+
$VERSION = '1.84';
|
|
39
39
|
|
|
40
40
|
sub JITTER() { return 2 } # maximum time jitter
|
|
41
41
|
|
|
@@ -1269,7 +1269,7 @@ Category: foreach $category (qw{pos track alt orient atemp err dop}) {
|
|
|
1269
1269
|
my $tag = ($$nvHash{WantGroup} ? "$$nvHash{WantGroup}:" : '') . 'Geolocate';
|
|
1270
1270
|
# pass along any regular expressions to qualify geolocation search
|
|
1271
1271
|
my $parms = join ',', grep m(/), split /\s*,\s*/, $geoloc;
|
|
1272
|
-
$parms and $parms = ",$parms,both";
|
|
1272
|
+
$parms and $parms = ",$parms,both";
|
|
1273
1273
|
$et->SetNewValue($tag => "$$fix{lat},$$fix{lon}$parms");
|
|
1274
1274
|
# (the Geolocate tag will be restored to its original value
|
|
1275
1275
|
# by RestoreNewValues before the next file in batch processing)
|
|
@@ -1530,7 +1530,7 @@ sub PrintFixTime($)
|
|
|
1530
1530
|
{
|
|
1531
1531
|
my $time = $_[0] + 0.0005; # round off to nearest ms
|
|
1532
1532
|
my $fsec = int(($time - int($time)) * 1000);
|
|
1533
|
-
return
|
|
1533
|
+
return Image::ExifTool::ConvertUnixTime($time, undef, 3) . ' UTC';
|
|
1534
1534
|
}
|
|
1535
1535
|
|
|
1536
1536
|
#------------------------------------------------------------------------------
|
|
@@ -47,7 +47,7 @@ my %sEarthPose = (
|
|
|
47
47
|
NAMESPACE => { EarthPose => 'http://ns.google.com/photos/dd/1.0/earthpose/' },
|
|
48
48
|
Latitude => {
|
|
49
49
|
Writable => 'real',
|
|
50
|
-
Groups => { 2 => 'Location' },
|
|
50
|
+
Groups => { 2 => 'Location' },
|
|
51
51
|
ValueConv => 'Image::ExifTool::GPS::ToDegrees($val, 1)',
|
|
52
52
|
ValueConvInv => '$val',
|
|
53
53
|
PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")',
|
|
@@ -512,7 +512,7 @@ my %sAppInfo = (
|
|
|
512
512
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
|
513
513
|
TAG_PREFIX => 'HDRPlusMakerNote',
|
|
514
514
|
PROCESS_PROC => \&ProcessHDRP,
|
|
515
|
-
VARS => {
|
|
515
|
+
VARS => {
|
|
516
516
|
ID_FMT => 'str',
|
|
517
517
|
SORT_PROC => sub {
|
|
518
518
|
my ($a,$b) = @_;
|
|
@@ -335,7 +335,7 @@ Read CSV or JSON file into a database hash.
|
|
|
335
335
|
|
|
336
336
|
1) Hash reference for database object.
|
|
337
337
|
|
|
338
|
-
2) Optional string used to represent an undefined (missing) tag value.
|
|
338
|
+
2) Optional string used to represent an undefined (missing) tag value.
|
|
339
339
|
(Used for deleting tags.)
|
|
340
340
|
|
|
341
341
|
3) For ReadCSV this gives the delimiter for CSV entries, with a default of
|
|
@@ -11,7 +11,7 @@ use strict;
|
|
|
11
11
|
use vars qw($VERSION);
|
|
12
12
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
13
13
|
|
|
14
|
-
$VERSION = '1.
|
|
14
|
+
$VERSION = '1.40';
|
|
15
15
|
|
|
16
16
|
sub ProcessOcad($$$);
|
|
17
17
|
sub ProcessJPEG_HDR($$$);
|
|
@@ -212,6 +212,10 @@ sub ProcessJPEG_HDR($$$);
|
|
|
212
212
|
Name => 'Pentax',
|
|
213
213
|
Condition => '$$valPt =~ /^PENTAX \0/',
|
|
214
214
|
SubDirectory => { TagTable => 'Image::ExifTool::Pentax::Main' },
|
|
215
|
+
}, {
|
|
216
|
+
Name => 'Ricoh',
|
|
217
|
+
Condition => '$$valPt =~ /^RICOH\0/',
|
|
218
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Pentax::Main' },
|
|
215
219
|
}, {
|
|
216
220
|
Name => 'Huawei',
|
|
217
221
|
Condition => '$$valPt =~ /^HUAWEI\0\0/',
|
|
@@ -132,7 +132,7 @@ my %j2cMarker = (
|
|
|
132
132
|
NOTES => q{
|
|
133
133
|
The tags below are found in JPEG 2000 images and the C2PA CAI JUMBF metadata
|
|
134
134
|
in various file types (see below). Note that ExifTool currently writes only
|
|
135
|
-
EXIF, IPTC and XMP tags in Jpeg2000 images, and EXIF and XMP in JXL images.
|
|
135
|
+
EXIF, IPTC and XMP tags in Jpeg2000 images, and EXIF and XMP in JXL images.
|
|
136
136
|
ExifTool will read/write Brotli-compressed EXIF and XMP in JXL images, but
|
|
137
137
|
the API L<Compress|../ExifTool.html#Compress> option must be set to create new EXIF and XMP in compressed
|
|
138
138
|
format.
|