exiftool_vendored 12.41.0 → 12.42.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/Changes +21 -1
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +4 -3
- data/bin/lib/Image/ExifTool/Canon.pm +12 -3
- data/bin/lib/Image/ExifTool/DJI.pm +59 -1
- data/bin/lib/Image/ExifTool/DNG.pm +8 -2
- data/bin/lib/Image/ExifTool/Exif.pm +9 -0
- data/bin/lib/Image/ExifTool/ICC_Profile.pm +10 -8
- data/bin/lib/Image/ExifTool/ID3.pm +5 -5
- data/bin/lib/Image/ExifTool/MakerNotes.pm +5 -0
- data/bin/lib/Image/ExifTool/Nikon.pm +6 -1
- data/bin/lib/Image/ExifTool/NikonCustom.pm +4 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +21 -2
- data/bin/lib/Image/ExifTool/PDF.pm +2 -1
- data/bin/lib/Image/ExifTool/Panasonic.pm +10 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +1 -1
- data/bin/lib/Image/ExifTool/Photoshop.pm +6 -5
- data/bin/lib/Image/ExifTool/Samsung.pm +233 -2
- data/bin/lib/Image/ExifTool/Shortcuts.pm +2 -1
- data/bin/lib/Image/ExifTool/TagLookup.pm +16 -0
- data/bin/lib/Image/ExifTool/TagNames.pod +58 -27
- data/bin/lib/Image/ExifTool/Writer.pl +1 -1
- data/bin/lib/Image/ExifTool.pm +10 -10
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f04f379fa443cf663ef664f3df6f25a51f3f10032e77df170b4acfdb1caf25a0
|
4
|
+
data.tar.gz: 5f5915a880562b0113657c7105cd394d78bccef7da9858573baf6fdbf624853f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '08ac6468381fc32451778b63d29469a676adc963eda607bafe0493766d4eb52151ca825385fdb689ecac4e6b01faf6441914d985716d57646331a3ffa437b5dd'
|
7
|
+
data.tar.gz: 489352e145414a723380fdf952310050d95f7f4a466f00a8b4ce50fd02134ed650d9d5468c5a2c9fb83e828e240bf2279dec821157f58c22e73cea5928080f5d
|
data/bin/Changes
CHANGED
@@ -4,9 +4,29 @@ ExifTool Version History
|
|
4
4
|
|
5
5
|
RSS feed: https://exiftool.org/rss.xml
|
6
6
|
|
7
|
-
Note: The most recent production release is Version 12.
|
7
|
+
Note: The most recent production release is Version 12.42. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
9
9
|
|
10
|
+
June 1, 2022 - Version 12.42 (production release)
|
11
|
+
|
12
|
+
- Added support for reading maker notes from Panasonic DC-GH6 videos
|
13
|
+
- Added conversion for Samsung MCCData
|
14
|
+
- Added a new Nikon LensID (thanks Chris)
|
15
|
+
- Added a few new Canon LensType values
|
16
|
+
- Added a couple of new Olympus StackedImage values (thanks Eberhard)
|
17
|
+
- Added a few new values for some Nikon Settings tags (thanks Warren Hatch)
|
18
|
+
- Added a "lang:" element to the -json output for alternate language tags when
|
19
|
+
-D, -H or -t is used
|
20
|
+
- Update DNG writer to not issue an error when writing DNG 1.6 files
|
21
|
+
- Decode information from DJI "ae_dbg_info" maker notes
|
22
|
+
- Decode Olympus AISubjectTrackingMode
|
23
|
+
- Changed ExifTool FileSize print conversion to use kB/MB/GB units instead of
|
24
|
+
KiB/MiB/GiB
|
25
|
+
- Changed "is not shiftable" warning to appear in -v (instead of just -v3)
|
26
|
+
output
|
27
|
+
- Patched to allow PDF Encrypt object to be "null"
|
28
|
+
- Fixed bug reading ICC_Profile 'meta' tags
|
29
|
+
|
10
30
|
Apr. 7, 2022 - Version 12.41
|
11
31
|
|
12
32
|
- Added support for "OM SYSTEM" maker notes
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -107,8 +107,8 @@ your home directory, then you would type the following commands in a
|
|
107
107
|
terminal window to extract and run ExifTool:
|
108
108
|
|
109
109
|
cd ~/Desktop
|
110
|
-
gzip -dc Image-ExifTool-12.
|
111
|
-
cd Image-ExifTool-12.
|
110
|
+
gzip -dc Image-ExifTool-12.42.tar.gz | tar -xf -
|
111
|
+
cd Image-ExifTool-12.42
|
112
112
|
./exiftool t/images/ExifTool.jpg
|
113
113
|
|
114
114
|
Note: These commands extract meta information from one of the test images.
|
data/bin/exiftool
CHANGED
@@ -11,7 +11,7 @@ use strict;
|
|
11
11
|
use warnings;
|
12
12
|
require 5.004;
|
13
13
|
|
14
|
-
my $version = '12.
|
14
|
+
my $version = '12.42';
|
15
15
|
|
16
16
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
17
17
|
BEGIN {
|
@@ -2554,8 +2554,9 @@ TAG: foreach $tag (@foundTags) {
|
|
2554
2554
|
if ($showTagID or $outFormat < 0) {
|
2555
2555
|
$val = { val => $val };
|
2556
2556
|
if ($showTagID) {
|
2557
|
-
my $id = $et->GetTagID($tag);
|
2557
|
+
my ($id, $lang) = $et->GetTagID($tag);
|
2558
2558
|
$id = sprintf('0x%.4x', $id) if $showTagID eq 'H' and $id =~ /^\d+$/;
|
2559
|
+
$$val{lang} = $lang if $lang;
|
2559
2560
|
$$val{id} = $id;
|
2560
2561
|
}
|
2561
2562
|
if ($tabFormat) {
|
@@ -5466,7 +5467,7 @@ with this command:
|
|
5466
5467
|
|
5467
5468
|
produces output like this:
|
5468
5469
|
|
5469
|
-
-- Generated by ExifTool 12.
|
5470
|
+
-- Generated by ExifTool 12.42 --
|
5470
5471
|
File: a.jpg - 2003:10:31 15:44:19
|
5471
5472
|
(f/5.6, 1/60s, ISO 100)
|
5472
5473
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
88
88
|
sub ProcessExifInfo($$$);
|
89
89
|
sub SwapWords($);
|
90
90
|
|
91
|
-
$VERSION = '4.
|
91
|
+
$VERSION = '4.58';
|
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)
|
@@ -197,6 +197,7 @@ $VERSION = '4.57';
|
|
197
197
|
44 => 'Canon EF 90-300mm f/4.5-5.6', #32
|
198
198
|
45 => 'Canon EF-S 18-55mm f/3.5-5.6 [II]', #PH (same ID for version II, ref 20)
|
199
199
|
46 => 'Canon EF 28-90mm f/4-5.6', #32
|
200
|
+
# 46 => 'Tamron 28-300mm f/3.5-6.3 Di VC PZD (A010)', # (also possibly?)
|
200
201
|
47 => 'Zeiss Milvus 35mm f/2 or 50mm f/2', #IB
|
201
202
|
47.1 => 'Zeiss Milvus 50mm f/2 Makro', #IB
|
202
203
|
47.2 => 'Zeiss Milvus 135mm f/2 ZE', #IB
|
@@ -571,7 +572,9 @@ $VERSION = '4.57';
|
|
571
572
|
61494 => 'Canon CN-E 85mm T1.3 L F', #PH
|
572
573
|
61495 => 'Canon CN-E 135mm T2.2 L F', #PH
|
573
574
|
61496 => 'Canon CN-E 35mm T1.5 L F', #PH
|
574
|
-
|
575
|
+
#
|
576
|
+
# see RFLensType tag for master list of 61182 RF lenses
|
577
|
+
#
|
575
578
|
61182 => 'Canon RF 50mm F1.2L USM or other Canon RF Lens',
|
576
579
|
61182.1 => 'Canon RF 24-105mm F4L IS USM',
|
577
580
|
61182.2 => 'Canon RF 28-70mm F2L USM',
|
@@ -603,7 +606,12 @@ $VERSION = '4.57';
|
|
603
606
|
'61182.28' => 'Canon RF 400mm F2.8L IS USM', #IB
|
604
607
|
'61182.29' => 'Canon RF 400mm F2.8L IS USM + RF1.4x', #IB
|
605
608
|
'61182.30' => 'Canon RF 400mm F2.8L IS USM + RF2x', #IB
|
606
|
-
|
609
|
+
'61182.31' => 'Canon RF 600mm F4L IS USM', #GiaZopatti
|
610
|
+
# we need the RFLensType values for the following...
|
611
|
+
'61182.32' => 'Canon RF 800mm F5.6L IS USM', #PH (NC)
|
612
|
+
'61182.33' => 'Canon RF 1200mm F8L IS USM', #PH (NC)
|
613
|
+
'61182.34' => 'Canon RF 5.2mm F2.8L Dual Fisheye 3D VR', #PH (NC)
|
614
|
+
'61182.35' => 'Canon RF 100mm F2.8L MACRO IS USM', #(NC)
|
607
615
|
65535 => 'n/a',
|
608
616
|
);
|
609
617
|
|
@@ -6804,6 +6812,7 @@ my %ciMaxFocal = (
|
|
6804
6812
|
289 => 'Canon RF 400mm F2.8L IS USM', #IB
|
6805
6813
|
290 => 'Canon RF 400mm F2.8L IS USM + RF1.4x', #IB
|
6806
6814
|
291 => 'Canon RF 400mm F2.8L IS USM + RF2x', #IB
|
6815
|
+
292 => 'Canon RF 600mm F4L IS USM', #GiaZopatti
|
6807
6816
|
#xxx => 'Canon RF 100mm F2.8L MACRO IS USM',
|
6808
6817
|
# Note: add new RF lenses to %canonLensTypes with ID 61182
|
6809
6818
|
},
|
@@ -11,11 +11,14 @@ package Image::ExifTool::DJI;
|
|
11
11
|
|
12
12
|
use strict;
|
13
13
|
use vars qw($VERSION);
|
14
|
+
use Image::ExifTool qw(:DataAccess :Utils);
|
14
15
|
use Image::ExifTool::Exif;
|
15
16
|
use Image::ExifTool::XMP;
|
16
17
|
use Image::ExifTool::GPS;
|
17
18
|
|
18
|
-
$VERSION = '1.
|
19
|
+
$VERSION = '1.05';
|
20
|
+
|
21
|
+
sub ProcessDJIInfo($$$);
|
19
22
|
|
20
23
|
my %convFloat2 = (
|
21
24
|
PrintConv => 'sprintf("%+.2f", $val)',
|
@@ -44,6 +47,29 @@ my %convFloat2 = (
|
|
44
47
|
0x0b => { Name => 'CameraRoll', Writable => 'float', %convFloat2 },
|
45
48
|
);
|
46
49
|
|
50
|
+
# DJI debug maker notes
|
51
|
+
%Image::ExifTool::DJI::Info = (
|
52
|
+
PROCESS_PROC => \&ProcessDJIInfo,
|
53
|
+
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
54
|
+
NOTES => 'Tags written by some DJI drones.',
|
55
|
+
VARS => { LONG_TAGS => 2 },
|
56
|
+
ae_dbg_info => { Name => 'AEDebugInfo' },
|
57
|
+
ae_histogram_info => { Name => 'AEHistogramInfo' },
|
58
|
+
ae_local_histogram => { Name => 'AELocalHistogram' },
|
59
|
+
ae_liveview_histogram_info => { Name => 'AELiveViewHistogramInfo' },
|
60
|
+
ae_liveview_local_histogram => { Name => 'AELiveViewLocalHistogram' },
|
61
|
+
awb_dbg_info => { Name => 'AWBDebugInfo' },
|
62
|
+
af_dbg_info => { Name => 'AFDebugInfo' },
|
63
|
+
hiso => { Name => 'Histogram' },
|
64
|
+
xidiri => { Name => 'Xidiri' },
|
65
|
+
'GimbalDegree(Y,P,R)'=> { Name => 'GimbalDegree' },
|
66
|
+
'FlightDegree(Y,P,R)'=> { Name => 'FlightDegree' },
|
67
|
+
adj_dbg_info => { Name => 'ADJDebugInfo' },
|
68
|
+
sensor_id => { Name => 'SensorID' },
|
69
|
+
'FlightSpeed(X,Y,Z)' => { Name => 'FlightSpeed' },
|
70
|
+
hyperlapse_dbg_info => { Name => 'HyperlapsDebugInfo' },
|
71
|
+
);
|
72
|
+
|
47
73
|
# thermal parameters in APP4 of DJI ZH20T images (ref forum11401)
|
48
74
|
%Image::ExifTool::DJI::ThermalParams = (
|
49
75
|
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
@@ -134,6 +160,38 @@ my %convFloat2 = (
|
|
134
160
|
},
|
135
161
|
);
|
136
162
|
|
163
|
+
#------------------------------------------------------------------------------
|
164
|
+
# Process DJI infor (ref PH)
|
165
|
+
# Inputs: 0) ExifTool ref, 1) dirInfo ref, 2) tag table ref
|
166
|
+
# Returns: 1 on success
|
167
|
+
sub ProcessDJIInfo($$$)
|
168
|
+
{
|
169
|
+
my ($et, $dirInfo, $tagTbl) = @_;
|
170
|
+
my $dataPt = $$dirInfo{DataPt};
|
171
|
+
my $dirStart = $$dirInfo{DirStart} || 0;
|
172
|
+
my $dirLen = $$dirInfo{DirLen} || (length($$dataPt) - $dirStart);
|
173
|
+
if ($dirStart) {
|
174
|
+
my $buff = substr($$dataPt, $dirStart, $dirLen);
|
175
|
+
$dataPt = \$buff;
|
176
|
+
}
|
177
|
+
while ($$dataPt =~ /\G\[(.*?)\](?=(\[|$))/sg) {
|
178
|
+
my ($tag, $val) = split /:/, $1, 2;
|
179
|
+
if ($val =~ /^([\x20-\x7f]+)\0*$/) {
|
180
|
+
$val = $1;
|
181
|
+
} else {
|
182
|
+
my $buff = $val;
|
183
|
+
$val = \$buff;
|
184
|
+
}
|
185
|
+
if (not $$tagTbl{$tag} and $tag=~ /^[-_a-zA-Z0-9]+$/) {
|
186
|
+
my $name = $tag;
|
187
|
+
$name =~ s/_([a-z])/_\U$1/g;
|
188
|
+
AddTagToTable($tagTbl, $tag, { Name => Image::ExifTool::MakeTagName($name) });
|
189
|
+
}
|
190
|
+
$et->HandleTag($tagTbl, $tag, $val);
|
191
|
+
}
|
192
|
+
return 1;
|
193
|
+
}
|
194
|
+
|
137
195
|
__END__
|
138
196
|
|
139
197
|
=head1 NAME
|
@@ -680,8 +680,14 @@ sub ProcessAdobeMakN($$$)
|
|
680
680
|
my $dataPos = $$dirInfo{DataPos};
|
681
681
|
my $hdrLen = 6;
|
682
682
|
|
683
|
-
# hack for extra 12 bytes in MakN header of JPEG converted to DNG
|
684
|
-
# (4 bytes "00 00 00 01" followed by 8 unknown bytes)
|
683
|
+
# 2018-09-27: hack for extra 12 bytes in MakN header of JPEG converted to DNG
|
684
|
+
# by Adobe Camera Raw (4 bytes "00 00 00 01" followed by 8 unknown bytes)
|
685
|
+
# - this is because CameraRaw copies the maker notes from the wrong location
|
686
|
+
# in a JPG image (off by 12 bytes presumably due to the JPEG headers)
|
687
|
+
# - this hack won't work in most cases because the extra bytes are not consistent
|
688
|
+
# since they are just the data that existed in the JPG before the maker notes
|
689
|
+
# - also, the last 12 bytes of the maker notes will be missing
|
690
|
+
# - 2022-04-26: this bug still exists in Camera Raw 14.3
|
685
691
|
$hdrLen += 12 if $len >= 18 and substr($$dataPt, $start+6, 4) eq "\0\0\0\x01";
|
686
692
|
|
687
693
|
my $dirStart = $start + $hdrLen; # pointer to maker note directory
|
@@ -3397,6 +3397,15 @@ my %opcodeInfo = (
|
|
3397
3397
|
},
|
3398
3398
|
# the DJI FC2103 writes some interesting stuff here (with sections labelled
|
3399
3399
|
# awb_dbg_info, ae_dbg_info, ae_histogram_info, af_dbg_info, hiso, xidiri) - PH
|
3400
|
+
{
|
3401
|
+
Name => 'MakerNoteDJIInfo',
|
3402
|
+
Condition => '$$valPt =~ /^\[ae_dbg_info:/',
|
3403
|
+
MakerNotes => 1,
|
3404
|
+
Binary => 1,
|
3405
|
+
WriteGroup => 'IFD0', # (for Validate)
|
3406
|
+
SubDirectory => { TagTable => 'Image::ExifTool::DJI::Info' },
|
3407
|
+
Format => 'undef',
|
3408
|
+
},
|
3400
3409
|
{
|
3401
3410
|
Name => 'DNGPrivateData',
|
3402
3411
|
Flags => [ 'Binary', 'Protected' ],
|
@@ -25,7 +25,7 @@ use strict;
|
|
25
25
|
use vars qw($VERSION);
|
26
26
|
use Image::ExifTool qw(:DataAccess :Utils);
|
27
27
|
|
28
|
-
$VERSION = '1.
|
28
|
+
$VERSION = '1.39';
|
29
29
|
|
30
30
|
sub ProcessICC($$);
|
31
31
|
sub ProcessICC_Profile($$$);
|
@@ -522,11 +522,11 @@ my %manuSig = ( #6
|
|
522
522
|
prmg => 'Perceptual Reference Medium Gamut',
|
523
523
|
},
|
524
524
|
},
|
525
|
-
meta => { #5
|
525
|
+
meta => { #5
|
526
526
|
Name => 'Metadata',
|
527
527
|
SubDirectory => {
|
528
528
|
TagTable => 'Image::ExifTool::ICC_Profile::Metadata',
|
529
|
-
Validate => '$type eq "
|
529
|
+
Validate => '$type eq "dict"',
|
530
530
|
},
|
531
531
|
},
|
532
532
|
|
@@ -891,6 +891,7 @@ my %manuSig = ( #6
|
|
891
891
|
ManufacturerName => { },
|
892
892
|
MediaColor => { },
|
893
893
|
MediaWeight => { },
|
894
|
+
CreatorApp => { },
|
894
895
|
);
|
895
896
|
|
896
897
|
#------------------------------------------------------------------------------
|
@@ -1000,7 +1001,7 @@ sub FormatICCTag($$$)
|
|
1000
1001
|
}
|
1001
1002
|
|
1002
1003
|
#------------------------------------------------------------------------------
|
1003
|
-
# Process ICC metadata record (ref 5)
|
1004
|
+
# Process ICC metadata record (ref 5)
|
1004
1005
|
# Inputs: 0) ExifTool ref, 1) dirInfo ref, 2) tag table ref
|
1005
1006
|
# Returns: 1 on success
|
1006
1007
|
sub ProcessMetadata($$$)
|
@@ -1032,7 +1033,7 @@ sub ProcessMetadata($$$)
|
|
1032
1033
|
my $namePtr = Get32u($dataPt, $entry);
|
1033
1034
|
my $nameLen = Get32u($dataPt, $entry + 4);
|
1034
1035
|
my $valuePtr = Get32u($dataPt, $entry + 8);
|
1035
|
-
my $valueLen = Get32u($dataPt, $entry +
|
1036
|
+
my $valueLen = Get32u($dataPt, $entry + 12);
|
1036
1037
|
next unless $namePtr and $valuePtr; # ignore if offsets are zero
|
1037
1038
|
if ($namePtr < $minPtr or $namePtr + $nameLen > $dirLen or
|
1038
1039
|
$valuePtr < $minPtr or $valuePtr + $valueLen > $dirLen)
|
@@ -1040,8 +1041,8 @@ sub ProcessMetadata($$$)
|
|
1040
1041
|
$et->Warn('Corrupted ICC meta dictionary');
|
1041
1042
|
last;
|
1042
1043
|
}
|
1043
|
-
my $tag = substr(
|
1044
|
-
my $val = substr(
|
1044
|
+
my $tag = substr($$dataPt, $dirStart + $namePtr, $nameLen);
|
1045
|
+
my $val = substr($$dataPt, $dirStart + $valuePtr, $valueLen);
|
1045
1046
|
$tag = $et->Decode($tag, 'UTF16', 'MM', 'UTF8');
|
1046
1047
|
$val = $et->Decode($val, 'UTF16', 'MM');
|
1047
1048
|
# generate tagInfo if it doesn't exist
|
@@ -1050,6 +1051,7 @@ sub ProcessMetadata($$$)
|
|
1050
1051
|
$name =~ s/\s+(.)/\u$1/g;
|
1051
1052
|
$name =~ tr/-_a-zA-Z0-9//dc;
|
1052
1053
|
next unless length $name;
|
1054
|
+
$et->VPrint(0, $$et{INDENT}, "[adding $tag]\n");
|
1053
1055
|
AddTagToTable($tagTablePtr, $tag, { Name => $name });
|
1054
1056
|
}
|
1055
1057
|
$et->HandleTag($tagTablePtr, $tag, $val);
|
@@ -1312,7 +1314,7 @@ sub ProcessICC_Profile($$$)
|
|
1312
1314
|
DirName => $name,
|
1313
1315
|
Parent => $$dirInfo{DirName},
|
1314
1316
|
);
|
1315
|
-
my $type =
|
1317
|
+
my $type = $fmt;
|
1316
1318
|
#### eval Validate ($type)
|
1317
1319
|
if (defined $$subdir{Validate} and not eval $$subdir{Validate}) {
|
1318
1320
|
$et->Warn("Invalid ICC $name data");
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# Revisions: 09/12/2005 - P. Harvey Created
|
7
7
|
# 09/08/2020 - PH Added Lyrics3 support
|
8
8
|
#
|
9
|
-
# References: 1) http://www.id3.org/
|
9
|
+
# References: 1) http://www.id3.org/ (now https://id3.org)
|
10
10
|
# 2) http://www.mp3-tech.org/
|
11
11
|
# 3) http://www.fortunecity.com/underworld/sonic/3/id3tag.html
|
12
12
|
# 4) https://id3.org/Lyrics3
|
@@ -76,9 +76,9 @@ my %dateTimeConv = (
|
|
76
76
|
OGG, FLAC, APE, MPC and RealAudio files. ID3v2 tags which support multiple
|
77
77
|
languages (eg. Comment and Lyrics) are extracted by specifying the tag name,
|
78
78
|
followed by a dash ('-'), then a 3-character ISO 639-2 language code (eg.
|
79
|
-
"Comment-spa"). See L<
|
80
|
-
|
81
|
-
|
79
|
+
"Comment-spa"). See L<https://id3.org/> for the official ID3 specification
|
80
|
+
and L<http://www.loc.gov/standards/iso639-2/php/code_list.php> for a list of
|
81
|
+
ISO 639-2 language codes.
|
82
82
|
},
|
83
83
|
ID3v1 => {
|
84
84
|
Name => 'ID3v1',
|
@@ -1661,7 +1661,7 @@ under the same terms as Perl itself.
|
|
1661
1661
|
|
1662
1662
|
=over 4
|
1663
1663
|
|
1664
|
-
=item L<
|
1664
|
+
=item L<https://id3.org/>
|
1665
1665
|
|
1666
1666
|
=item L<http://www.mp3-tech.org/>
|
1667
1667
|
|
@@ -89,6 +89,11 @@ my $debug; # set to 1 to enable debugging code
|
|
89
89
|
FixBase => 1, # necessary for AVI and MOV videos
|
90
90
|
},
|
91
91
|
},
|
92
|
+
{
|
93
|
+
Name => 'MakerNoteDJIInfo',
|
94
|
+
Condition => '$$valPt =~ /^\[ae_dbg_info:/',
|
95
|
+
SubDirectory => { TagTable => 'Image::ExifTool::DJI::Info' },
|
96
|
+
},
|
92
97
|
{
|
93
98
|
Name => 'MakerNoteDJI',
|
94
99
|
Condition => '$$self{Make} eq "DJI" and $$valPt !~ /^...\@AMBA/s',
|
@@ -63,7 +63,7 @@ use Image::ExifTool::Exif;
|
|
63
63
|
use Image::ExifTool::GPS;
|
64
64
|
use Image::ExifTool::XMP;
|
65
65
|
|
66
|
-
$VERSION = '4.
|
66
|
+
$VERSION = '4.06';
|
67
67
|
|
68
68
|
sub LensIDConv($$$);
|
69
69
|
sub ProcessNikonAVI($$$);
|
@@ -667,6 +667,7 @@ sub GetAFPointGrid($$;$);
|
|
667
667
|
'00 54 55 55 0C 0C 00 00' => 'Voigtlander Nokton 58mm F1.4 SLII',
|
668
668
|
'00 40 64 64 2C 2C 00 00' => 'Voigtlander APO-Lanthar 90mm F3.5 SLII Close Focus',
|
669
669
|
'07 40 30 45 2D 35 03 02.2' => 'Voigtlander Ultragon 19-35mm F3.5-4.5 VMV', #NJ
|
670
|
+
'71 48 64 64 24 24 00 00' => 'Voigtlander APO-Skopar 90mm F2.8 SL IIs', #30
|
670
671
|
#
|
671
672
|
'00 40 2D 2D 2C 2C 00 00' => 'Carl Zeiss Distagon T* 3.5/18 ZF.2',
|
672
673
|
'00 48 27 27 24 24 00 00' => 'Carl Zeiss Distagon T* 2.8/15 ZF.2', #MykytaKozlov
|
@@ -8586,6 +8587,8 @@ my %nikonFocalConversions = (
|
|
8586
8587
|
4 => 'Wide (L)',
|
8587
8588
|
5 => '3D',
|
8588
8589
|
6 => 'Auto',
|
8590
|
+
12 => 'Wide (C1)',
|
8591
|
+
13 => 'Wide (C2)',
|
8589
8592
|
},
|
8590
8593
|
},
|
8591
8594
|
530 => { Name => 'VRMode', PrintConv => \%vRModeZ9},
|
@@ -8656,6 +8659,8 @@ my %nikonFocalConversions = (
|
|
8656
8659
|
2 => 'H.265 8-bit (MOV)',
|
8657
8660
|
3 => 'H.265 10-bit (MOV)',
|
8658
8661
|
4 => 'ProRes 422 HQ 10-bit (MOV)',
|
8662
|
+
5 => 'ProRes RAW HQ 12-bit (MOV)',
|
8663
|
+
6 => 'NRAW 12-bit (NEV)'
|
8659
8664
|
},
|
8660
8665
|
},
|
8661
8666
|
616 => {
|
@@ -15,7 +15,7 @@ package Image::ExifTool::NikonCustom;
|
|
15
15
|
use strict;
|
16
16
|
use vars qw($VERSION);
|
17
17
|
|
18
|
-
$VERSION = '1.
|
18
|
+
$VERSION = '1.20';
|
19
19
|
|
20
20
|
my %buttonsZ9= (
|
21
21
|
0 => 'None',
|
@@ -74,6 +74,9 @@ my %buttonsZ9= (
|
|
74
74
|
82 => 'Select To Send (PC)',
|
75
75
|
83 => 'Select To Send (FTP)',
|
76
76
|
85 => 'Control Lock',
|
77
|
+
86 => 'Save Focus Position',
|
78
|
+
87 => 'Recall Focus Position',
|
79
|
+
88 => 'Recall Shooting Functions (Hold)',
|
77
80
|
);
|
78
81
|
my %dialsZ9 = (
|
79
82
|
0 => '1 Frame',
|
@@ -40,7 +40,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
40
40
|
use Image::ExifTool::Exif;
|
41
41
|
use Image::ExifTool::APP12;
|
42
42
|
|
43
|
-
$VERSION = '2.
|
43
|
+
$VERSION = '2.78';
|
44
44
|
|
45
45
|
sub PrintLensInfo($$$);
|
46
46
|
|
@@ -1911,6 +1911,23 @@ my %indexInfo = (
|
|
1911
1911
|
Name => 'FocusBracketStepSize',
|
1912
1912
|
Writable => 'int8u',
|
1913
1913
|
},
|
1914
|
+
0x309 => { #forum13341
|
1915
|
+
Name => 'AISubjectTrackingMode',
|
1916
|
+
Writable => 'int16u',
|
1917
|
+
ValueConv => '($val >> 8) . " " . ($val & 0xff)',
|
1918
|
+
ValueConvInv => 'my @a = split " ", $val; $val = $a[0]*256 + $a[1]',
|
1919
|
+
PrintConv => [{
|
1920
|
+
0 => 'Off',
|
1921
|
+
1 => 'Motorsports',
|
1922
|
+
2 => 'Airplnes',
|
1923
|
+
3 => 'Trains',
|
1924
|
+
4 => 'Birds',
|
1925
|
+
5 => 'Dogs & Cats',
|
1926
|
+
},{
|
1927
|
+
0 => 'Object Not Found',
|
1928
|
+
1 => 'Object Found',
|
1929
|
+
}],
|
1930
|
+
},
|
1914
1931
|
0x400 => { #6
|
1915
1932
|
Name => 'FlashMode',
|
1916
1933
|
Writable => 'int16u',
|
@@ -2538,11 +2555,13 @@ my %indexInfo = (
|
|
2538
2555
|
'3 8' => 'ND8 (3EV)', #IB
|
2539
2556
|
'3 16' => 'ND16 (4EV)', #IB
|
2540
2557
|
'3 32' => 'ND32 (5EV)', #IB
|
2558
|
+
'3 64' => 'ND64 (6EV)', #forum13341
|
2541
2559
|
'5 4' => 'HDR1', #forum8906
|
2542
2560
|
'6 4' => 'HDR2', #forum8906
|
2543
2561
|
'8 8' => 'Tripod high resolution', #IB
|
2544
2562
|
'9 *' => 'Focus-stacked (* images)', #IB (* = 2-15)
|
2545
|
-
'11
|
2563
|
+
'11 12' => 'Hand-held high resolution (11 12)', #forum13341 (OM-1)
|
2564
|
+
'11 16' => 'Hand-held high resolution (11 16)', #IB (perhaps '11 15' would be possible, ref 24)
|
2546
2565
|
OTHER => sub {
|
2547
2566
|
my ($val, $inv, $conv) = @_;
|
2548
2567
|
if ($inv) {
|
@@ -21,7 +21,7 @@ use vars qw($VERSION $AUTOLOAD $lastFetched);
|
|
21
21
|
use Image::ExifTool qw(:DataAccess :Utils);
|
22
22
|
require Exporter;
|
23
23
|
|
24
|
-
$VERSION = '1.
|
24
|
+
$VERSION = '1.55';
|
25
25
|
|
26
26
|
sub FetchObject($$$$);
|
27
27
|
sub ExtractObject($$;$$);
|
@@ -2276,6 +2276,7 @@ XRef:
|
|
2276
2276
|
# load XRef stream in hybrid file if it exists
|
2277
2277
|
push @xrefOffsets, $$mainDict{XRefStm}, 'XRefStm' if $$mainDict{XRefStm};
|
2278
2278
|
$encrypt = $$mainDict{Encrypt} if $$mainDict{Encrypt};
|
2279
|
+
undef $encrypt if $encrypt and $encrypt eq 'null'; # (have seen "null")
|
2279
2280
|
if ($$mainDict{ID} and ref $$mainDict{ID} eq 'ARRAY') {
|
2280
2281
|
$id = ReadPDFValue($mainDict->{ID}->[0]);
|
2281
2282
|
}
|
@@ -37,7 +37,7 @@ use vars qw($VERSION %leicaLensTypes);
|
|
37
37
|
use Image::ExifTool qw(:DataAccess :Utils);
|
38
38
|
use Image::ExifTool::Exif;
|
39
39
|
|
40
|
-
$VERSION = '2.
|
40
|
+
$VERSION = '2.17';
|
41
41
|
|
42
42
|
sub ProcessLeicaLEIC($$$);
|
43
43
|
sub WhiteBalanceConv($;$$);
|
@@ -2472,6 +2472,15 @@ my %shootingMode = (
|
|
2472
2472
|
Start => 12,
|
2473
2473
|
},
|
2474
2474
|
},
|
2475
|
+
0x200080 => { # (GH6)
|
2476
|
+
Name => 'ExifData',
|
2477
|
+
Condition => '$$valPt =~ /^\xff\xd8\xff\xe1..Exif\0\0/s',
|
2478
|
+
SubDirectory => {
|
2479
|
+
TagTable => 'Image::ExifTool::Exif::Main',
|
2480
|
+
ProcessProc => \&Image::ExifTool::ProcessTIFF,
|
2481
|
+
Start => 12,
|
2482
|
+
},
|
2483
|
+
},
|
2475
2484
|
);
|
2476
2485
|
|
2477
2486
|
# Panasonic Composite tags
|
@@ -171,7 +171,7 @@ sub DecodeAFPoints($$$$;$);
|
|
171
171
|
'3 255.4' => 'Sigma DF EX Aspherical 28-70mm F2.8', #12
|
172
172
|
'3 255.5' => 'Sigma AF Tele 400mm F5.6 Multi-coated', #JD
|
173
173
|
'3 255.6' => 'Sigma 24-60mm F2.8 EX DG', #PH
|
174
|
-
'3 255.7' => 'Sigma 70-300mm F4-5.6 Macro', #JD
|
174
|
+
'3 255.7' => 'Sigma 70-300mm F4-5.6 Macro', #JD (also DG Macro, ref 27)
|
175
175
|
'3 255.8' => 'Sigma 55-200mm F4-5.6 DC', #JD
|
176
176
|
'3 255.9' => 'Sigma 18-50mm F2.8 EX DC', #JD (also Macro version - PH)
|
177
177
|
'4 1' => 'smc PENTAX-FA SOFT 28mm F2.8',
|
@@ -248,11 +248,12 @@ my %unicodeString = (
|
|
248
248
|
Protected => 1,
|
249
249
|
Notes => q{
|
250
250
|
this tag indicates provides a way for XMP-aware applications to indicate
|
251
|
-
that the XMP is synchronized with the IPTC.
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
251
|
+
that the XMP is synchronized with the IPTC. The MWG recommendation is to
|
252
|
+
ignore the XMP if IPTCDigest exists and doesn't match the CurrentIPTCDigest.
|
253
|
+
When writing, special values of "new" and "old" represent the digests of the
|
254
|
+
IPTC from the edited and original files respectively, and are undefined if
|
255
|
+
the IPTC does not exist in the respective file. Set this to "new" as an
|
256
|
+
indication that the XMP is synchronized with the IPTC
|
256
257
|
},
|
257
258
|
# also note the 'new' feature requires that the IPTC comes before this tag is written
|
258
259
|
ValueConv => 'unpack("H*", $val)',
|
@@ -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.52';
|
26
26
|
|
27
27
|
sub WriteSTMN($$$);
|
28
28
|
sub ProcessINFO($$$);
|
@@ -1000,7 +1000,238 @@ my %formatMinMax = (
|
|
1000
1000
|
'0x0a30' => { Name => 'EmbeddedVideoFile', Groups => { 2 => 'Video' }, Binary => 1 }, #forum7161
|
1001
1001
|
# 0x0aa1-name - seen 'MCC_Data'
|
1002
1002
|
# 0x0aa1 - seen '204','222','234','302','429'
|
1003
|
-
'0x0aa1' =>
|
1003
|
+
'0x0aa1' => {
|
1004
|
+
Name => 'MCCData',
|
1005
|
+
Groups => { 2 => 'Location' },
|
1006
|
+
PrintConv => {
|
1007
|
+
202 => 'Greece',
|
1008
|
+
204 => 'Netherlands',
|
1009
|
+
206 => 'Belgium',
|
1010
|
+
208 => 'France',
|
1011
|
+
212 => 'Monaco',
|
1012
|
+
213 => 'Andorra',
|
1013
|
+
214 => 'Spain',
|
1014
|
+
216 => 'Hungary',
|
1015
|
+
218 => 'Bosnia & Herzegov.',
|
1016
|
+
219 => 'Croatia',
|
1017
|
+
220 => 'Serbia',
|
1018
|
+
221 => 'Kosovo',
|
1019
|
+
222 => 'Italy',
|
1020
|
+
226 => 'Romania',
|
1021
|
+
228 => 'Switzerland',
|
1022
|
+
230 => 'Czech Rep.',
|
1023
|
+
231 => 'Slovakia',
|
1024
|
+
232 => 'Austria',
|
1025
|
+
234 => 'United Kingdom',
|
1026
|
+
235 => 'United Kingdom',
|
1027
|
+
238 => 'Denmark',
|
1028
|
+
240 => 'Sweden',
|
1029
|
+
242 => 'Norway',
|
1030
|
+
244 => 'Finland',
|
1031
|
+
246 => 'Lithuania',
|
1032
|
+
247 => 'Latvia',
|
1033
|
+
248 => 'Estonia',
|
1034
|
+
250 => 'Russian Federation',
|
1035
|
+
255 => 'Ukraine',
|
1036
|
+
257 => 'Belarus',
|
1037
|
+
259 => 'Moldova',
|
1038
|
+
260 => 'Poland',
|
1039
|
+
262 => 'Germany',
|
1040
|
+
266 => 'Gibraltar',
|
1041
|
+
268 => 'Portugal',
|
1042
|
+
270 => 'Luxembourg',
|
1043
|
+
272 => 'Ireland',
|
1044
|
+
274 => 'Iceland',
|
1045
|
+
276 => 'Albania',
|
1046
|
+
278 => 'Malta',
|
1047
|
+
280 => 'Cyprus',
|
1048
|
+
282 => 'Georgia',
|
1049
|
+
283 => 'Armenia',
|
1050
|
+
284 => 'Bulgaria',
|
1051
|
+
286 => 'Turkey',
|
1052
|
+
288 => 'Faroe Islands',
|
1053
|
+
289 => 'Abkhazia',
|
1054
|
+
290 => 'Greenland',
|
1055
|
+
292 => 'San Marino',
|
1056
|
+
293 => 'Slovenia',
|
1057
|
+
294 => 'Macedonia',
|
1058
|
+
295 => 'Liechtenstein',
|
1059
|
+
297 => 'Montenegro',
|
1060
|
+
302 => 'Canada',
|
1061
|
+
308 => 'St. Pierre & Miquelon',
|
1062
|
+
310 => 'United States / Guam',
|
1063
|
+
311 => 'United States / Guam',
|
1064
|
+
312 => 'United States',
|
1065
|
+
316 => 'United States',
|
1066
|
+
330 => 'Puerto Rico',
|
1067
|
+
334 => 'Mexico',
|
1068
|
+
338 => 'Jamaica',
|
1069
|
+
340 => 'French Guiana / Guadeloupe / Martinique',
|
1070
|
+
342 => 'Barbados',
|
1071
|
+
344 => 'Antigua and Barbuda',
|
1072
|
+
346 => 'Cayman Islands',
|
1073
|
+
348 => 'British Virgin Islands',
|
1074
|
+
350 => 'Bermuda',
|
1075
|
+
352 => 'Grenada',
|
1076
|
+
354 => 'Montserrat',
|
1077
|
+
356 => 'Saint Kitts and Nevis',
|
1078
|
+
358 => 'Saint Lucia',
|
1079
|
+
360 => 'St. Vincent & Gren.',
|
1080
|
+
362 => 'Bonaire, Sint Eustatius and Saba / Curacao / Netherlands Antilles',
|
1081
|
+
363 => 'Aruba',
|
1082
|
+
364 => 'Bahamas',
|
1083
|
+
365 => 'Anguilla',
|
1084
|
+
366 => 'Dominica',
|
1085
|
+
368 => 'Cuba',
|
1086
|
+
370 => 'Dominican Republic',
|
1087
|
+
372 => 'Haiti',
|
1088
|
+
374 => 'Trinidad and Tobago',
|
1089
|
+
376 => 'Turks and Caicos Islands / US Virgin Islands',
|
1090
|
+
400 => 'Azerbaijan',
|
1091
|
+
401 => 'Kazakhstan',
|
1092
|
+
402 => 'Bhutan',
|
1093
|
+
404 => 'India',
|
1094
|
+
405 => 'India',
|
1095
|
+
410 => 'Pakistan',
|
1096
|
+
412 => 'Afghanistan',
|
1097
|
+
413 => 'Sri Lanka',
|
1098
|
+
414 => 'Myanmar (Burma)',
|
1099
|
+
415 => 'Lebanon',
|
1100
|
+
416 => 'Jordan',
|
1101
|
+
417 => 'Syrian Arab Republic',
|
1102
|
+
418 => 'Iraq',
|
1103
|
+
419 => 'Kuwait',
|
1104
|
+
420 => 'Saudi Arabia',
|
1105
|
+
421 => 'Yemen',
|
1106
|
+
422 => 'Oman',
|
1107
|
+
424 => 'United Arab Emirates',
|
1108
|
+
425 => 'Israel / Palestinian Territory',
|
1109
|
+
426 => 'Bahrain',
|
1110
|
+
427 => 'Qatar',
|
1111
|
+
428 => 'Mongolia',
|
1112
|
+
429 => 'Nepal',
|
1113
|
+
430 => 'United Arab Emirates',
|
1114
|
+
431 => 'United Arab Emirates',
|
1115
|
+
432 => 'Iran',
|
1116
|
+
434 => 'Uzbekistan',
|
1117
|
+
436 => 'Tajikistan',
|
1118
|
+
437 => 'Kyrgyzstan',
|
1119
|
+
438 => 'Turkmenistan',
|
1120
|
+
440 => 'Japan',
|
1121
|
+
441 => 'Japan',
|
1122
|
+
450 => 'South Korea',
|
1123
|
+
452 => 'Viet Nam',
|
1124
|
+
454 => 'Hongkong, China',
|
1125
|
+
455 => 'Macao, China',
|
1126
|
+
456 => 'Cambodia',
|
1127
|
+
457 => 'Laos P.D.R.',
|
1128
|
+
460 => 'China',
|
1129
|
+
466 => 'Taiwan',
|
1130
|
+
467 => 'North Korea',
|
1131
|
+
470 => 'Bangladesh',
|
1132
|
+
472 => 'Maldives',
|
1133
|
+
502 => 'Malaysia',
|
1134
|
+
505 => 'Australia',
|
1135
|
+
510 => 'Indonesia',
|
1136
|
+
514 => 'Timor-Leste',
|
1137
|
+
515 => 'Philippines',
|
1138
|
+
520 => 'Thailand',
|
1139
|
+
525 => 'Singapore',
|
1140
|
+
528 => 'Brunei Darussalam',
|
1141
|
+
530 => 'New Zealand',
|
1142
|
+
537 => 'Papua New Guinea',
|
1143
|
+
539 => 'Tonga',
|
1144
|
+
540 => 'Solomon Islands',
|
1145
|
+
541 => 'Vanuatu',
|
1146
|
+
542 => 'Fiji',
|
1147
|
+
544 => 'American Samoa',
|
1148
|
+
545 => 'Kiribati',
|
1149
|
+
546 => 'New Caledonia',
|
1150
|
+
547 => 'French Polynesia',
|
1151
|
+
548 => 'Cook Islands',
|
1152
|
+
549 => 'Samoa',
|
1153
|
+
550 => 'Micronesia',
|
1154
|
+
552 => 'Palau',
|
1155
|
+
553 => 'Tuvalu',
|
1156
|
+
555 => 'Niue',
|
1157
|
+
602 => 'Egypt',
|
1158
|
+
603 => 'Algeria',
|
1159
|
+
604 => 'Morocco',
|
1160
|
+
605 => 'Tunisia',
|
1161
|
+
606 => 'Libya',
|
1162
|
+
607 => 'Gambia',
|
1163
|
+
608 => 'Senegal',
|
1164
|
+
609 => 'Mauritania',
|
1165
|
+
610 => 'Mali',
|
1166
|
+
611 => 'Guinea',
|
1167
|
+
612 => 'Ivory Coast',
|
1168
|
+
613 => 'Burkina Faso',
|
1169
|
+
614 => 'Niger',
|
1170
|
+
615 => 'Togo',
|
1171
|
+
616 => 'Benin',
|
1172
|
+
617 => 'Mauritius',
|
1173
|
+
618 => 'Liberia',
|
1174
|
+
619 => 'Sierra Leone',
|
1175
|
+
620 => 'Ghana',
|
1176
|
+
621 => 'Nigeria',
|
1177
|
+
622 => 'Chad',
|
1178
|
+
623 => 'Central African Rep.',
|
1179
|
+
624 => 'Cameroon',
|
1180
|
+
625 => 'Cape Verde',
|
1181
|
+
626 => 'Sao Tome & Principe',
|
1182
|
+
627 => 'Equatorial Guinea',
|
1183
|
+
628 => 'Gabon',
|
1184
|
+
629 => 'Congo, Republic',
|
1185
|
+
630 => 'Congo, Dem. Rep.',
|
1186
|
+
631 => 'Angola',
|
1187
|
+
632 => 'Guinea-Bissau',
|
1188
|
+
633 => 'Seychelles',
|
1189
|
+
634 => 'Sudan',
|
1190
|
+
635 => 'Rwanda',
|
1191
|
+
636 => 'Ethiopia',
|
1192
|
+
637 => 'Somalia',
|
1193
|
+
638 => 'Djibouti',
|
1194
|
+
639 => 'Kenya',
|
1195
|
+
640 => 'Tanzania',
|
1196
|
+
641 => 'Uganda',
|
1197
|
+
642 => 'Burundi',
|
1198
|
+
643 => 'Mozambique',
|
1199
|
+
645 => 'Zambia',
|
1200
|
+
646 => 'Madagascar',
|
1201
|
+
647 => 'Reunion',
|
1202
|
+
648 => 'Zimbabwe',
|
1203
|
+
649 => 'Namibia',
|
1204
|
+
650 => 'Malawi',
|
1205
|
+
651 => 'Lesotho',
|
1206
|
+
652 => 'Botswana',
|
1207
|
+
653 => 'Swaziland',
|
1208
|
+
654 => 'Comoros',
|
1209
|
+
655 => 'South Africa',
|
1210
|
+
657 => 'Eritrea',
|
1211
|
+
659 => 'South Sudan',
|
1212
|
+
702 => 'Belize',
|
1213
|
+
704 => 'Guatemala',
|
1214
|
+
706 => 'El Salvador',
|
1215
|
+
708 => 'Honduras',
|
1216
|
+
710 => 'Nicaragua',
|
1217
|
+
712 => 'Costa Rica',
|
1218
|
+
714 => 'Panama',
|
1219
|
+
716 => 'Peru',
|
1220
|
+
722 => 'Argentina Republic',
|
1221
|
+
724 => 'Brazil',
|
1222
|
+
730 => 'Chile',
|
1223
|
+
732 => 'Colombia',
|
1224
|
+
734 => 'Venezuela',
|
1225
|
+
736 => 'Bolivia',
|
1226
|
+
738 => 'Guyana',
|
1227
|
+
740 => 'Ecuador',
|
1228
|
+
744 => 'Paraguay',
|
1229
|
+
746 => 'Suriname',
|
1230
|
+
748 => 'Uruguay',
|
1231
|
+
750 => 'Falkland Islands (Malvinas)',
|
1232
|
+
901 => 'International Networks / Satellite Networks',
|
1233
|
+
},
|
1234
|
+
},
|
1004
1235
|
# 0x0ab0-name - seen 'DualShot_Meta_Info'
|
1005
1236
|
'0x0ab1-name' => {
|
1006
1237
|
Name => 'DepthMapName',
|
@@ -19,7 +19,7 @@ package Image::ExifTool::Shortcuts;
|
|
19
19
|
use strict;
|
20
20
|
use vars qw($VERSION);
|
21
21
|
|
22
|
-
$VERSION = '1.
|
22
|
+
$VERSION = '1.67';
|
23
23
|
|
24
24
|
# this is a special table used to define command-line shortcuts
|
25
25
|
# (documentation Notes may be added for these via %shortcutNotes in BuildTagLookup.pm)
|
@@ -118,6 +118,7 @@ $VERSION = '1.66';
|
|
118
118
|
'MakerNoteCasio',
|
119
119
|
'MakerNoteCasio2',
|
120
120
|
'MakerNoteDJI',
|
121
|
+
'MakerNoteDJIInfo',
|
121
122
|
'MakerNoteFLIR',
|
122
123
|
'MakerNoteFujiFilm',
|
123
124
|
'MakerNoteGE',
|
@@ -894,6 +894,7 @@ my %tagLookup = (
|
|
894
894
|
'aiservosecondimagepriority' => { 84 => 0x51a },
|
895
895
|
'aiservotrackingmethod' => { 84 => 0x504 },
|
896
896
|
'aiservotrackingsensitivity' => { 83 => 0x14, 84 => 0x502 },
|
897
|
+
'aisubjecttrackingmode' => { 297 => 0x309 },
|
897
898
|
'album' => { 372 => ['albm',"\xa9alb"], 374 => 'album', 380 => ['albm',"\xa9alb"], 503 => 'album' },
|
898
899
|
'albumartist' => { 179 => 'WM/AlbumArtist', 372 => 'aART', 380 => 'albr' },
|
899
900
|
'albumcoverurl' => { 179 => 'WM/AlbumCoverURL' },
|
@@ -4024,6 +4025,7 @@ my %tagLookup = (
|
|
4024
4025
|
'makernotecasio' => { 117 => 'MakN', 119 => 0x927c },
|
4025
4026
|
'makernotecasio2' => { 117 => 'MakN', 119 => 0x927c },
|
4026
4027
|
'makernotedji' => { 117 => 'MakN', 119 => 0x927c },
|
4028
|
+
'makernotedjiinfo' => { 117 => 'MakN', 119 => 0x927c },
|
4027
4029
|
'makernoteflir' => { 117 => 'MakN', 119 => 0x927c },
|
4028
4030
|
'makernotefujifilm' => { 117 => 'MakN', 119 => 0x927c },
|
4029
4031
|
'makernotege' => { 117 => 'MakN', 119 => 0x927c },
|
@@ -7123,6 +7125,7 @@ my %tagExists = (
|
|
7123
7125
|
'actualsoftpostpadding' => 1,
|
7124
7126
|
'actualsoftprepadding' => 1,
|
7125
7127
|
'additionalinfo' => 1,
|
7128
|
+
'adjdebuginfo' => 1,
|
7126
7129
|
'adjustedtbnimageheight' => 1,
|
7127
7130
|
'adjustedtbnimagewidth' => 1,
|
7128
7131
|
'adobe_cm' => 1,
|
@@ -7142,11 +7145,16 @@ my %tagExists = (
|
|
7142
7145
|
'advancedscenemode' => 1,
|
7143
7146
|
'adventrevision' => 1,
|
7144
7147
|
'adventscale' => 1,
|
7148
|
+
'aedebuginfo' => 1,
|
7145
7149
|
'aeflags' => 1,
|
7150
|
+
'aehistograminfo' => 1,
|
7146
7151
|
'aeinfo' => 1,
|
7147
7152
|
'aeinfo2' => 1,
|
7148
7153
|
'aeinfo3' => 1,
|
7149
7154
|
'aeinfounknown' => 1,
|
7155
|
+
'aeliveviewhistograminfo' => 1,
|
7156
|
+
'aeliveviewlocalhistogram' => 1,
|
7157
|
+
'aelocalhistogram' => 1,
|
7150
7158
|
'af-cprioritysel' => 1,
|
7151
7159
|
'af-sprioritysel' => 1,
|
7152
7160
|
'afarea' => 1,
|
@@ -7158,6 +7166,7 @@ my %tagExists = (
|
|
7158
7166
|
'afcp' => 1,
|
7159
7167
|
'afcp_iptc' => 1,
|
7160
7168
|
'afcsettings' => 1,
|
7169
|
+
'afdebuginfo' => 1,
|
7161
7170
|
'aff1' => 1,
|
7162
7171
|
'aff5' => 1,
|
7163
7172
|
'affheader' => 1,
|
@@ -7400,6 +7409,7 @@ my %tagExists = (
|
|
7400
7409
|
'avi1' => 1,
|
7401
7410
|
'avif' => 1,
|
7402
7411
|
'aviheader' => 1,
|
7412
|
+
'awbdebuginfo' => 1,
|
7403
7413
|
'awbinfo' => 1,
|
7404
7414
|
'axisdistancex' => 1,
|
7405
7415
|
'axisdistancey' => 1,
|
@@ -8100,6 +8110,7 @@ my %tagExists = (
|
|
8100
8110
|
'creatingapplication' => 1,
|
8101
8111
|
'creatingtransform' => 1,
|
8102
8112
|
'creationpathvector' => 1,
|
8113
|
+
'creatorapp' => 1,
|
8103
8114
|
'creatorapplication' => 1,
|
8104
8115
|
'creatorappversion' => 1,
|
8105
8116
|
'creatoratom' => 1,
|
@@ -8817,6 +8828,8 @@ my %tagExists = (
|
|
8817
8828
|
'flashused' => 1,
|
8818
8829
|
'flashversion' => 1,
|
8819
8830
|
'flavor' => 1,
|
8831
|
+
'flightdegree' => 1,
|
8832
|
+
'flightspeed' => 1,
|
8820
8833
|
'flipstatus' => 1,
|
8821
8834
|
'flir' => 1,
|
8822
8835
|
'flir_gps' => 1,
|
@@ -8986,6 +8999,7 @@ my %tagExists = (
|
|
8986
8999
|
'gifplaintextextension' => 1,
|
8987
9000
|
'gifversion' => 1,
|
8988
9001
|
'gimage' => 1,
|
9002
|
+
'gimbaldegree' => 1,
|
8989
9003
|
'gimbalpitch' => 1,
|
8990
9004
|
'gimbalroll' => 1,
|
8991
9005
|
'gimbalyaw' => 1,
|
@@ -9159,6 +9173,7 @@ my %tagExists = (
|
|
9159
9173
|
'huffmantablelength' => 1,
|
9160
9174
|
'huffmantablevalue' => 1,
|
9161
9175
|
'hyperfocaldistance' => 1,
|
9176
|
+
'hyperlapsdebuginfo' => 1,
|
9162
9177
|
'hyperlinkbase' => 1,
|
9163
9178
|
'hyperlinks' => 1,
|
9164
9179
|
'hyperlinkschanged' => 1,
|
@@ -12093,6 +12108,7 @@ my %tagExists = (
|
|
12093
12108
|
'xcfversion' => 1,
|
12094
12109
|
'xclippathunits' => 1,
|
12095
12110
|
'xheight' => 1,
|
12111
|
+
'xidiri' => 1,
|
12096
12112
|
'xmag' => 1,
|
12097
12113
|
'xmethod' => 1,
|
12098
12114
|
'xmldata' => 1,
|
@@ -12,7 +12,7 @@ meta information extracted from or written to a file.
|
|
12
12
|
=head1 TAG TABLES
|
13
13
|
|
14
14
|
The tables listed below give the names of all tags recognized by ExifTool.
|
15
|
-
They contain a total of
|
15
|
+
They contain a total of 25792 tags, with 16480 unique tag names.
|
16
16
|
|
17
17
|
B<Tag ID>, B<Index#> or B<Sequence> is given in the first column of each
|
18
18
|
table. A B<Tag ID> is the computer-readable equivalent of a tag name, and
|
@@ -629,6 +629,7 @@ for the official EXIF 2.32 specification.
|
|
629
629
|
MakerNoteCanon ExifIFD Canon
|
630
630
|
MakerNoteCasio ExifIFD Casio
|
631
631
|
MakerNoteCasio2 ExifIFD Casio Type2
|
632
|
+
MakerNoteDJIInfo ExifIFD DJI Info
|
632
633
|
MakerNoteDJI ExifIFD DJI
|
633
634
|
MakerNoteFLIR ExifIFD FLIR
|
634
635
|
MakerNoteFujiFilm ExifIFD FujiFilm
|
@@ -854,6 +855,7 @@ for the official EXIF 2.32 specification.
|
|
854
855
|
MakerNotePentax IFD0 Pentax
|
855
856
|
MakerNotePentax5 IFD0 Pentax
|
856
857
|
MakerNoteRicohPentax IFD0 Pentax
|
858
|
+
MakerNoteDJIInfo IFD0 DJI Info
|
857
859
|
DNGPrivateData IFD0 int8u!
|
858
860
|
0xc635 MakerNoteSafety IFD0 int16u
|
859
861
|
0xc640 RawImageSegmentation - no
|
@@ -6755,6 +6757,7 @@ Metadata tags that exist.
|
|
6755
6757
|
|
6756
6758
|
Tag Name Writable
|
6757
6759
|
-------- --------
|
6760
|
+
CreatorApp no
|
6758
6761
|
ManufacturerName no
|
6759
6762
|
MediaColor no
|
6760
6763
|
MediaWeight no
|
@@ -10651,6 +10654,30 @@ These tags belong to the ExifTool XMP-drone-dji family 1 group.
|
|
10651
10654
|
RtkStdLon real
|
10652
10655
|
SelfData string
|
10653
10656
|
|
10657
|
+
=head3 DJI Info Tags
|
10658
|
+
|
10659
|
+
Tags written by some DJI drones.
|
10660
|
+
|
10661
|
+
Tag ID Tag Name Writable
|
10662
|
+
------ -------- --------
|
10663
|
+
'FlightDegree(Y,P,R)' FlightDegree no
|
10664
|
+
'FlightSpeed(X,Y,Z)' FlightSpeed no
|
10665
|
+
'GimbalDegree(Y,P,R)' GimbalDegree no
|
10666
|
+
'adj_dbg_info' ADJDebugInfo no
|
10667
|
+
'ae_dbg_info' AEDebugInfo no
|
10668
|
+
'ae_histogram_info' AEHistogramInfo no
|
10669
|
+
'ae_liveview_histogram_info'
|
10670
|
+
AELiveViewHistogramInfo no
|
10671
|
+
'ae_liveview_local_histogram'
|
10672
|
+
AELiveViewLocalHistogram no
|
10673
|
+
'ae_local_histogram' AELocalHistogram no
|
10674
|
+
'af_dbg_info' AFDebugInfo no
|
10675
|
+
'awb_dbg_info' AWBDebugInfo no
|
10676
|
+
'hiso' Histogram no
|
10677
|
+
'hyperlapse_dbg_info' HyperlapsDebugInfo no
|
10678
|
+
'sensor_id' SensorID no
|
10679
|
+
'xidiri' Xidiri no
|
10680
|
+
|
10654
10681
|
=head3 DJI ThermalParams Tags
|
10655
10682
|
|
10656
10683
|
Thermal parameters extracted from APP4 of DJI RJPEG files from the ZH20T.
|
@@ -16641,6 +16668,7 @@ any information found here will be extracted, even if the tag is not listed.
|
|
16641
16668
|
0x0306 AFFineTune int8u
|
16642
16669
|
0x0307 AFFineTuneAdj int16s[3]
|
16643
16670
|
0x0308 FocusBracketStepSize int8u
|
16671
|
+
0x0309 AISubjectTrackingMode int16u
|
16644
16672
|
0x0400 FlashMode int16u
|
16645
16673
|
0x0401 FlashExposureComp rational64s
|
16646
16674
|
0x0403 FlashRemoteControl int16u
|
@@ -17432,29 +17460,30 @@ iPalm.
|
|
17432
17460
|
Tags extracted from the PANA and LEIC user data found in MP4 videos from
|
17433
17461
|
various Panasonic and Leica models.
|
17434
17462
|
|
17435
|
-
Index1
|
17436
|
-
------
|
17437
|
-
|
17438
|
-
|
17439
|
-
|
17440
|
-
|
17441
|
-
|
17442
|
-
|
17443
|
-
|
17444
|
-
|
17445
|
-
|
17446
|
-
|
17447
|
-
|
17448
|
-
|
17449
|
-
|
17450
|
-
|
17451
|
-
|
17452
|
-
|
17453
|
-
|
17454
|
-
|
17455
|
-
|
17456
|
-
|
17457
|
-
|
17463
|
+
Index1 Tag Name Writable
|
17464
|
+
------ -------- --------
|
17465
|
+
0 Make no
|
17466
|
+
4 Model no
|
17467
|
+
12 Model no
|
17468
|
+
16 JPEG-likeData EXIF
|
17469
|
+
22 Model no
|
17470
|
+
52 Version1 no
|
17471
|
+
62 Version2 no
|
17472
|
+
80 MakerNoteLeica5 Panasonic Leica5
|
17473
|
+
88 ThumbnailWidth no
|
17474
|
+
90 ThumbnailHeight no
|
17475
|
+
92 ThumbnailImage no
|
17476
|
+
1334 ThumbnailWidth no
|
17477
|
+
1338 ThumbnailHeight no
|
17478
|
+
1342 ThumbnailLength no
|
17479
|
+
1350 ThumbnailImage no
|
17480
|
+
1358 ThumbnailWidth no
|
17481
|
+
1362 ThumbnailHeight no
|
17482
|
+
1366 ThumbnailLength no
|
17483
|
+
1374 ThumbnailImage no
|
17484
|
+
16488 ExifData EXIF
|
17485
|
+
16512 ExifData EXIF
|
17486
|
+
0x00200080 ExifData EXIF
|
17458
17487
|
|
17459
17488
|
=head2 Pentax Tags
|
17460
17489
|
|
@@ -20955,6 +20984,7 @@ still proprietary) Adobe format.
|
|
20955
20984
|
MakerNoteCanon Canon
|
20956
20985
|
MakerNoteCasio Casio
|
20957
20986
|
MakerNoteCasio2 Casio Type2
|
20987
|
+
MakerNoteDJIInfo DJI Info
|
20958
20988
|
MakerNoteDJI DJI
|
20959
20989
|
MakerNoteFLIR FLIR
|
20960
20990
|
MakerNoteFujiFilm FujiFilm
|
@@ -26755,9 +26785,9 @@ ExifTool extracts ID3 and Lyrics3 information from MP3, MPEG, WAV, AIFF,
|
|
26755
26785
|
OGG, FLAC, APE, MPC and RealAudio files. ID3v2 tags which support multiple
|
26756
26786
|
languages (eg. Comment and Lyrics) are extracted by specifying the tag name,
|
26757
26787
|
followed by a dash ('-'), then a 3-character ISO 639-2 language code (eg.
|
26758
|
-
"Comment-spa"). See L<
|
26759
|
-
|
26760
|
-
|
26788
|
+
"Comment-spa"). See L<https://id3.org/> for the official ID3 specification
|
26789
|
+
and L<http://www.loc.gov/standards/iso639-2/php/code_list.php> for a list of
|
26790
|
+
ISO 639-2 language codes.
|
26761
26791
|
|
26762
26792
|
Tag Name Writable
|
26763
26793
|
-------- --------
|
@@ -37496,6 +37526,7 @@ for more details.
|
|
37496
37526
|
MakerNoteCasio
|
37497
37527
|
MakerNoteCasio2
|
37498
37528
|
MakerNoteDJI
|
37529
|
+
MakerNoteDJIInfo
|
37499
37530
|
MakerNoteFLIR
|
37500
37531
|
MakerNoteFujiFilm
|
37501
37532
|
MakerNoteGE
|
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
|
30
30
|
%static_vars);
|
31
31
|
|
32
|
-
$VERSION = '12.
|
32
|
+
$VERSION = '12.42';
|
33
33
|
$RELEASE = '';
|
34
34
|
@ISA = qw(Exporter);
|
35
35
|
%EXPORT_TAGS = (
|
@@ -5896,13 +5896,13 @@ sub GetUnixTime($;$)
|
|
5896
5896
|
sub ConvertFileSize($)
|
5897
5897
|
{
|
5898
5898
|
my $val = shift;
|
5899
|
-
$val <
|
5900
|
-
$val <
|
5901
|
-
$val <
|
5902
|
-
$val <
|
5903
|
-
$val <
|
5904
|
-
$val <
|
5905
|
-
return sprintf('%.0f
|
5899
|
+
$val < 2000 and return "$val bytes";
|
5900
|
+
$val < 10000 and return sprintf('%.1f kB', $val / 1000);
|
5901
|
+
$val < 2000000 and return sprintf('%.0f kB', $val / 1000);
|
5902
|
+
$val < 10000000 and return sprintf('%.1f MB', $val / 1000000);
|
5903
|
+
$val < 2000000000 and return sprintf('%.0f MB', $val / 1000000);
|
5904
|
+
$val < 10000000000 and return sprintf('%.1f GB', $val / 1000000000);
|
5905
|
+
return sprintf('%.0f GB', $val / 1000000000);
|
5906
5906
|
}
|
5907
5907
|
|
5908
5908
|
#------------------------------------------------------------------------------
|
@@ -7686,8 +7686,8 @@ sub DoProcessTIFF($$;$)
|
|
7686
7686
|
# check DNG version
|
7687
7687
|
if ($$self{DNGVersion}) {
|
7688
7688
|
my $ver = $$self{DNGVersion};
|
7689
|
-
# currently support up to DNG version 1.
|
7690
|
-
unless ($ver =~ /^(\d+) (\d+)/ and "$1.$2" <= 1.
|
7689
|
+
# currently support up to DNG version 1.6
|
7690
|
+
unless ($ver =~ /^(\d+) (\d+)/ and "$1.$2" <= 1.6) {
|
7691
7691
|
$ver =~ tr/ /./;
|
7692
7692
|
$self->Error("DNG Version $ver not yet tested", 1);
|
7693
7693
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exiftool_vendored
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 12.
|
4
|
+
version: 12.42.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew McEachen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-06-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|