exiftool_vendored 13.16.0 → 13.17.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.
- checksums.yaml +4 -4
- data/bin/Changes +15 -0
- data/bin/MANIFEST +2 -2
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +3 -3
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +14 -8
- data/bin/lib/Image/ExifTool/Canon.pm +3 -2
- data/bin/lib/Image/ExifTool/JPEG.pm +7 -1
- data/bin/lib/Image/ExifTool/Nikon.pm +72 -174
- data/bin/lib/Image/ExifTool/NikonCustom.pm +4 -4
- data/bin/lib/Image/ExifTool/QuickTime.pm +2 -1
- data/bin/lib/Image/ExifTool/Samsung.pm +4 -0
- data/bin/lib/Image/ExifTool/Sony.pm +1 -1
- data/bin/lib/Image/ExifTool/TagLookup.pm +5 -0
- data/bin/lib/Image/ExifTool/TagNames.pod +7677 -7644
- data/bin/lib/Image/ExifTool/Trailer.pm +318 -0
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +4 -0
- data/bin/lib/Image/ExifTool/XMP2.pl +3 -2
- data/bin/lib/Image/ExifTool.pm +136 -69
- data/bin/lib/Image/ExifTool.pod +38 -38
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +3 -3
- data/bin/lib/Image/ExifTool/Vivo.pm +0 -124
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 861018287a20c9c313a1fbaae7c77019fb9875a096936c68a61818e5d5cbda48
|
4
|
+
data.tar.gz: 1e0cc71de8847a24053b2fa9b569fdbf48b720aa70e027c6c984d6faabcde10a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ddf18669ddb544c1360868fd79cf7b5a0664d838f7986a43db8b15d1c21b4fbe30f516efdc2f55c6a4af21b29312e99c7ef2d28acce3eacba9aa77a65b219e7
|
7
|
+
data.tar.gz: b47c09c393c4b62543b458b2d57f2a3fee3868b0ed37da38954f7a8958746cf7566c76ff93eb839ffad0ddf9ea77c7a09663eaff8266a8b0f5067153e2579340
|
data/bin/Changes
CHANGED
@@ -7,6 +7,21 @@ RSS feed: https://exiftool.org/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 13.10. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
9
9
|
|
10
|
+
Jan. 29, 2025 - Version 13.17
|
11
|
+
|
12
|
+
- Added support for reading more embedded images and videos written in the
|
13
|
+
JPEG trailer by some phones
|
14
|
+
- Added support for reading JPEG trailer written by some OnePlus phones
|
15
|
+
- Added a -validate warning for QuickTime 'wide' atoms with an invalid size
|
16
|
+
- Added a new CanonLensType
|
17
|
+
- Extract more embedded videos and depth/gain maps from JPEG images written
|
18
|
+
- Avoid decoding Sony 0x9050 data for the ILCE-1M2 because the encoding has
|
19
|
+
changed since the ILCE-1 and the new encoding is not yet known
|
20
|
+
- Fixed issue that could cause runtime error when using -j with -b
|
21
|
+
- Fixed some issues decoding AFPointsUsed for some newer Nikon models
|
22
|
+
- Fixed problem corrupting QuickTime-format videos when writing if they
|
23
|
+
contain a 'wide' atom with an invalid size
|
24
|
+
|
10
25
|
Jan. 25, 2025 - Version 13.16
|
11
26
|
|
12
27
|
- Added a couple of new Nikon Z lenses (thanks Warren Hatch)
|
data/bin/MANIFEST
CHANGED
@@ -178,9 +178,9 @@ html/TagNames/Stim.html
|
|
178
178
|
html/TagNames/Text.html
|
179
179
|
html/TagNames/Theora.html
|
180
180
|
html/TagNames/Torrent.html
|
181
|
+
html/TagNames/Trailer.html
|
181
182
|
html/TagNames/Unknown.html
|
182
183
|
html/TagNames/VCard.html
|
183
|
-
html/TagNames/Vivo.html
|
184
184
|
html/TagNames/Vorbis.html
|
185
185
|
html/TagNames/WPG.html
|
186
186
|
html/TagNames/WTV.html
|
@@ -429,10 +429,10 @@ lib/Image/ExifTool/TagNames.pod
|
|
429
429
|
lib/Image/ExifTool/Text.pm
|
430
430
|
lib/Image/ExifTool/Theora.pm
|
431
431
|
lib/Image/ExifTool/Torrent.pm
|
432
|
+
lib/Image/ExifTool/Trailer.pm
|
432
433
|
lib/Image/ExifTool/Unknown.pm
|
433
434
|
lib/Image/ExifTool/VCard.pm
|
434
435
|
lib/Image/ExifTool/Validate.pm
|
435
|
-
lib/Image/ExifTool/Vivo.pm
|
436
436
|
lib/Image/ExifTool/Vorbis.pm
|
437
437
|
lib/Image/ExifTool/WPG.pm
|
438
438
|
lib/Image/ExifTool/WTV.pm
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -109,8 +109,8 @@ your home directory, then you would type the following commands in a
|
|
109
109
|
terminal window to extract and run ExifTool:
|
110
110
|
|
111
111
|
cd ~/Desktop
|
112
|
-
gzip -dc Image-ExifTool-13.
|
113
|
-
cd Image-ExifTool-13.
|
112
|
+
gzip -dc Image-ExifTool-13.17.tar.gz | tar -xf -
|
113
|
+
cd Image-ExifTool-13.17
|
114
114
|
./exiftool t/images/ExifTool.jpg
|
115
115
|
|
116
116
|
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 = '13.
|
14
|
+
my $version = '13.17';
|
15
15
|
|
16
16
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
17
17
|
my $exePath;
|
@@ -1525,7 +1525,7 @@ if (($tagOut or defined $diff) and ($csv or $json or %printFmt or $tabFormat or
|
|
1525
1525
|
}
|
1526
1526
|
|
1527
1527
|
if ($csv and $csv eq 'CSV' and not $isWriting) {
|
1528
|
-
|
1528
|
+
$json = 0; # (not compatible)
|
1529
1529
|
if ($textOut) {
|
1530
1530
|
Warn "Sorry, -w may not be combined with -csv\n";
|
1531
1531
|
$rtnVal = 1;
|
@@ -5984,7 +5984,7 @@ with this command:
|
|
5984
5984
|
|
5985
5985
|
produces output like this:
|
5986
5986
|
|
5987
|
-
-- Generated by ExifTool 13.
|
5987
|
+
-- Generated by ExifTool 13.17 --
|
5988
5988
|
File: a.jpg - 2003:10:31 15:44:19
|
5989
5989
|
(f/5.6, 1/60s, ISO 100)
|
5990
5990
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -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.62';
|
39
39
|
@ISA = qw(Exporter);
|
40
40
|
|
41
41
|
sub NumbersFirst($$);
|
@@ -74,26 +74,32 @@ my %tweakOrder = (
|
|
74
74
|
DJI => 'Casio',
|
75
75
|
FLIR => 'DJI',
|
76
76
|
FujiFilm => 'FLIR',
|
77
|
+
GoPro => 'GE',
|
77
78
|
Kodak => 'JVC',
|
78
79
|
Leaf => 'Kodak',
|
79
|
-
|
80
|
+
Lytro => 'Leaf',
|
81
|
+
Minolta => 'Lytro',
|
80
82
|
Motorola => 'Minolta',
|
81
83
|
Nikon => 'Motorola',
|
82
|
-
|
83
|
-
|
84
|
-
|
84
|
+
NikonCapture => 'Nikon',
|
85
|
+
NikonCustom => 'NikonCapture',
|
86
|
+
NikonSettings => 'NikonCustom',
|
87
|
+
Nintendo => 'NikonSettings',
|
88
|
+
Panasonic => 'Olympus',
|
85
89
|
Pentax => 'Panasonic',
|
90
|
+
Ricoh => 'Reconyx',
|
91
|
+
Samsung => 'Ricoh',
|
86
92
|
SonyIDC => 'Sony',
|
87
|
-
|
88
|
-
Unknown => 'Vivo',
|
93
|
+
Unknown => 'SonyIDC',
|
89
94
|
DNG => 'Unknown',
|
90
95
|
PrintIM => 'ICC_Profile',
|
91
96
|
Vorbis => 'Ogg',
|
92
97
|
ID3 => 'PostScript',
|
93
98
|
MinoltaRaw => 'KyoceraRaw',
|
94
99
|
KyoceraRaw => 'CanonRaw',
|
100
|
+
MinoltaRaw => 'KyoceraRaw',
|
101
|
+
PanasonicRaw => 'MinoltaRaw',
|
95
102
|
SigmaRaw => 'PanasonicRaw',
|
96
|
-
Lytro => 'SigmaRaw',
|
97
103
|
PhotoMechanic => 'FotoStation',
|
98
104
|
Microsoft => 'PhotoMechanic',
|
99
105
|
GIMP => 'Microsoft',
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
88
88
|
sub ProcessExifInfo($$$);
|
89
89
|
sub SwapWords($);
|
90
90
|
|
91
|
-
$VERSION = '4.
|
91
|
+
$VERSION = '4.89';
|
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)
|
@@ -527,7 +527,8 @@ $VERSION = '4.88';
|
|
527
527
|
748 => 'Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x or Tamron Lens', #JR (1.4x Mk III)
|
528
528
|
748.1 => 'Tamron 100-400mm f/4.5-6.3 Di VC USD A035E + 1.4x', #IB
|
529
529
|
748.2 => 'Tamron 70-210mm f/4 Di VC USD (A034) + 2x', #IB
|
530
|
-
749 => '
|
530
|
+
749 => 'Canon EF 100-400mm f/4.5-5.6L IS II USM + 2x or Tamron Lens', #PH
|
531
|
+
749.1 => 'Tamron 100-400mm f/4.5-6.3 Di VC USD A035E + 2x', #IB
|
531
532
|
750 => 'Canon EF 35mm f/1.4L II USM or Tamron Lens', #42
|
532
533
|
750.1 => 'Tamron SP 85mm f/1.8 Di VC USD (F016)', #Exiv2#1072
|
533
534
|
750.2 => 'Tamron SP 45mm f/1.8 Di VC USD (F013)', #PH
|
@@ -350,7 +350,13 @@ sub ProcessJPEG_HDR($$$);
|
|
350
350
|
}, {
|
351
351
|
Name => 'Vivo',
|
352
352
|
Condition => '$$valPt =~ /^(streamdata|vivo\{")/',
|
353
|
-
SubDirectory => { TagTable => 'Image::ExifTool::Vivo
|
353
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Trailer::Vivo' },
|
354
|
+
}, {
|
355
|
+
Name => 'OnePlus',
|
356
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Trailer::OnePlus' },
|
357
|
+
}, {
|
358
|
+
Name => 'Google',
|
359
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Trailer::Google' },
|
354
360
|
}, {
|
355
361
|
Name => 'EmbeddedVideo',
|
356
362
|
Notes => 'extracted only when ExtractEmbedded option is used',
|
@@ -65,7 +65,7 @@ use Image::ExifTool::Exif;
|
|
65
65
|
use Image::ExifTool::GPS;
|
66
66
|
use Image::ExifTool::XMP;
|
67
67
|
|
68
|
-
$VERSION = '4.
|
68
|
+
$VERSION = '4.42';
|
69
69
|
|
70
70
|
sub LensIDConv($$$);
|
71
71
|
sub ProcessNikonAVI($$$);
|
@@ -1546,167 +1546,61 @@ my %afPoints81 = (
|
|
1546
1546
|
17 => 'H6', 34 => 'G7', 51 => 'F8', 68 => 'A9',
|
1547
1547
|
);
|
1548
1548
|
|
1549
|
-
# AF point indices for 209 focus point(single-point AF) cameras equipped with Expeed 7 processor eg. Z50ii). Single-point AF array is 11 rows x 19 columns. (ref 28)
|
1549
|
+
# AF point indices for 209/231 focus point(single-point AF) cameras equipped with Expeed 7 processor eg. Z50ii). Single-point AF array is 11 rows x 19 columns. (ref 28)
|
1550
1550
|
# - Auto Area AF has 2 additional columns available and provides 231 focus points. Uses 11 rows (A-K) and 21 columns (1-21), center is F11
|
1551
|
-
my
|
1552
|
-
|
1553
|
-
|
1554
|
-
|
1555
|
-
|
1556
|
-
|
1557
|
-
|
1558
|
-
|
1559
|
-
|
1560
|
-
|
1561
|
-
|
1562
|
-
|
1563
|
-
|
1564
|
-
|
1565
|
-
|
1566
|
-
15 => 'A15', 36 => 'B15', 57 => 'C15', 78 => 'D15', 99 => 'E15', 120 => 'F15', 141 => 'G15', 162 => 'H15',
|
1567
|
-
16 => 'A16', 37 => 'B16' , 58 => 'C16', 79 => 'D16', 100 => 'E16', 121 => 'F16', 142 => 'G16', 163 => 'H16',
|
1568
|
-
17 => 'A17', 38 => 'B17', 59 => 'C17', 80 => 'D17', 101 => 'E17', 122 => 'F17', 143 => 'G17', 164 => 'H17',
|
1569
|
-
18 => 'A18', 39 => 'B18', 60 => 'C18', 81 => 'D18', 102 => 'E18', 123 => 'F18', 144 => 'G18', 165 => 'H18',
|
1570
|
-
19 => 'A19', 40 => 'B19', 61 => 'C19', 82 => 'D19', 103 => 'E19', 124 => 'F19', 145 => 'G19', 166 => 'H19',
|
1571
|
-
20 => 'A20', 41 => 'B20', 62 => 'C20', 83 => 'D20', 104 => 'E20', 125 => 'F20', 146 => 'G20', 167 => 'H20',
|
1572
|
-
21 => 'A21', 42 => 'B21', 63 => 'C21', 84 => 'D21', 105 => 'E21', 126 => 'F21', 147 => 'G21', 168 => 'H21',
|
1573
|
-
|
1574
|
-
169 => 'I1', 190 => 'J1', 211 => 'K1',
|
1575
|
-
170 => 'I2', 191 => 'J2', 212 => 'K2',
|
1576
|
-
171 => 'I3', 192 => 'J3', 213 => 'K3',
|
1577
|
-
172 => 'I4', 193 => 'J4', 214 => 'K4',
|
1578
|
-
173 => 'I5', 194 => 'J5', 215 => 'K5',
|
1579
|
-
174 => 'I6', 195 => 'J6', 216 => 'K6',
|
1580
|
-
175 => 'I7', 196 => 'J7', 217 => 'K7',
|
1581
|
-
176 => 'I8', 197 => 'J8', 218 => 'K8',
|
1582
|
-
177 => 'I9', 198 => 'J9', 219 => 'K9',
|
1583
|
-
178 => 'I10', 199 => 'J10', 220 => 'K10',
|
1584
|
-
179 => 'I11', 200 => 'J11', 221 => 'K11',
|
1585
|
-
180 => 'I12', 201 => 'J12', 222 => 'K12',
|
1586
|
-
181 => 'I13', 202 => 'J13', 223 => 'K13',
|
1587
|
-
182 => 'I14', 203 => 'J14', 224 => 'K14',
|
1588
|
-
183 => 'I15', 204 => 'J15', 225 => 'K15',
|
1589
|
-
184 => 'I16', 205 => 'J16', 226 => 'K16',
|
1590
|
-
185 => 'I17', 206 => 'J17', 227 => 'K17',
|
1591
|
-
186 => 'I18', 207 => 'J18', 228 => 'K18',
|
1592
|
-
187 => 'I19', 208 => 'J19', 229 => 'K19',
|
1593
|
-
188 => 'I20', 209 => 'J20', 230 => 'K20',
|
1594
|
-
189 => 'I21', 210 => 'J21', 231 => 'K21',
|
1595
|
-
);
|
1596
|
-
|
1597
|
-
# AF point indices for 273 focus point (single-point AF) cameras equipped with Expeed 7 processor (eg. Z6iii and Zf). Single-point AF array is 13 rows x 21 columns (ref 28)
|
1551
|
+
my @afPoints231 = (qw(
|
1552
|
+
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21
|
1553
|
+
B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 B16 B17 B18 B19 B20 B21
|
1554
|
+
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 C17 C18 C19 C20 C21
|
1555
|
+
D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D20 D21
|
1556
|
+
E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 E14 E15 E16 E17 E18 E19 E20 E21
|
1557
|
+
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21
|
1558
|
+
G1 G2 G3 G4 G5 G6 G7 G8 G9 G10 G11 G12 G13 G14 G15 G16 G17 G18 G19 G20 G21
|
1559
|
+
H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 H13 H14 H15 H16 H17 H18 H19 H20 H21
|
1560
|
+
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 I13 I14 I15 I16 I17 I18 I19 I20 I21
|
1561
|
+
J1 J2 J3 J4 J5 J6 J7 J8 J9 J10 J11 J12 J13 J14 J15 J16 J17 J18 J19 J20 J21
|
1562
|
+
K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 K20 K21
|
1563
|
+
));
|
1564
|
+
|
1565
|
+
# AF point indices for 273/299 focus point (single-point AF) cameras equipped with Expeed 7 processor (eg. Z6iii and Zf). Single-point AF array is 13 rows x 21 columns (ref 28)
|
1598
1566
|
# - Auto Area AF has 2 additional columns available and provides 299 focus points. Uses 13 rows (A-M) and 23 columns (1-23), center is G12
|
1599
1567
|
#
|
1600
|
-
my
|
1601
|
-
|
1602
|
-
|
1603
|
-
|
1604
|
-
|
1605
|
-
|
1606
|
-
|
1607
|
-
|
1608
|
-
|
1609
|
-
|
1610
|
-
|
1611
|
-
|
1612
|
-
|
1613
|
-
|
1614
|
-
|
1615
|
-
|
1616
|
-
|
1617
|
-
|
1618
|
-
18 => 'A18', 41 => 'B18', 64 => 'C18', 87 => 'D18', 110 => 'E18', 133 => 'F18', 156 => 'G18', 179 => 'H18',
|
1619
|
-
19 => 'A19', 42 => 'B19', 65 => 'C19', 88 => 'D19', 111 => 'E19', 134 => 'F19', 157 => 'G19', 180 => 'H19',
|
1620
|
-
20 => 'A20', 43 => 'B20', 66 => 'C20', 89 => 'D20', 112 => 'E20', 135 => 'F20', 158 => 'G20', 181 => 'H20',
|
1621
|
-
21 => 'A21', 44 => 'B21', 67 => 'C21', 90 => 'D21', 113 => 'E21', 136 => 'F21', 159 => 'G21', 182 => 'H21',
|
1622
|
-
22 => 'A22', 45 => 'B22', 68 => 'C22', 91 => 'D22', 114 => 'E22', 137 => 'F22', 160 => 'G22', 183 => 'H22',
|
1623
|
-
23 => 'A23', 46 => 'B23', 69 => 'C23', 92 => 'D23', 115 => 'E23', 138 => 'F23', 161 => 'G23', 184 => 'H23',
|
1624
|
-
|
1625
|
-
185 => 'I1', 208 => 'J1', 231 => 'K1', 254 => 'L1', 277 => 'M1',
|
1626
|
-
186 => 'I2', 209 => 'J2', 232 => 'K2', 255 => 'L2', 278 => 'M2',
|
1627
|
-
187 => 'I3', 210 => 'J3', 233 => 'K3', 256 => 'L3', 279 => 'M3',
|
1628
|
-
188 => 'I4', 211 => 'J4', 234 => 'K4', 257 => 'L4', 280 => 'M4',
|
1629
|
-
189 => 'I5', 212 => 'J5', 235 => 'K5', 258 => 'L5', 281 => 'M5',
|
1630
|
-
190 => 'I6', 213 => 'J6', 236 => 'K6', 259 => 'L6', 282 => 'M6',
|
1631
|
-
191 => 'I7', 214 => 'J7', 237 => 'K7', 260 => 'L7', 283 => 'M7',
|
1632
|
-
192 => 'I8', 215 => 'J8', 238 => 'K8', 261 => 'L8', 284 => 'M8',
|
1633
|
-
193 => 'I9', 216 => 'J9', 239 => 'K9', 262 => 'L9', 285 => 'M9',
|
1634
|
-
194 => 'I10', 217 => 'J10', 240 => 'K10', 263 => 'L10', 286 => 'M10',
|
1635
|
-
195 => 'I11', 218 => 'J11', 241 => 'K11', 264 => 'L11', 287 => 'M11',
|
1636
|
-
196 => 'I12', 219 => 'J12', 242 => 'K12', 265 => 'L12', 288 => 'M12',
|
1637
|
-
197 => 'I13', 220 => 'J13', 243 => 'K13', 266 => 'L13', 289 => 'M13',
|
1638
|
-
198 => 'I14', 221 => 'J14', 244 => 'K14', 267 => 'L14', 290 => 'M14',
|
1639
|
-
199 => 'I15', 222 => 'J15', 245 => 'K15', 268 => 'L15', 291 => 'M15',
|
1640
|
-
200 => 'I16', 223 => 'J16', 246 => 'K16', 269 => 'L16', 292 => 'M16',
|
1641
|
-
201 => 'I17', 224 => 'J17', 247 => 'K17', 270 => 'L17', 293 => 'M17',
|
1642
|
-
202 => 'I18', 225 => 'J18', 248 => 'K18', 271 => 'L18', 294 => 'M18',
|
1643
|
-
203 => 'I19', 226 => 'J19', 249 => 'K19', 272 => 'L19', 295 => 'M19',
|
1644
|
-
204 => 'I20', 227 => 'J20', 250 => 'K20', 273 => 'L20', 296 => 'M20',
|
1645
|
-
205 => 'I21', 228 => 'J21', 251 => 'K21', 274 => 'L21', 297 => 'M21',
|
1646
|
-
206 => 'I22', 229 => 'J22', 252 => 'K22', 275 => 'L22', 298 => 'M22',
|
1647
|
-
208 => 'I23', 230 => 'J23', 253 => 'K23', 276 => 'L23', 299 => 'M23',
|
1648
|
-
);
|
1649
|
-
|
1650
|
-
# AF point indices for 493 focus point (single-point AF) cameras equipped with Expeed 7 processor (eg. Z8 and Z9). Single-point AF array is 17 rows x 29 columns (ref 28)
|
1651
|
-
# - Auto Area AF uses 15 of the 17 rows (A-Q) and 27 of the 29 columns (1-27), center is H14 (405 of the 493 focus points can be used by Auto-area AF)
|
1568
|
+
my @afPoints299 = (qw(
|
1569
|
+
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22 A23
|
1570
|
+
B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 B16 B17 B18 B19 B20 B21 B22 B23
|
1571
|
+
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 C17 C18 C19 C20 C21 C22 C23
|
1572
|
+
D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D20 D21 D22 D23
|
1573
|
+
E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 E14 E15 E16 E17 E18 E19 E20 E21 E22 E23
|
1574
|
+
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23
|
1575
|
+
G1 G2 G3 G4 G5 G6 G7 G8 G9 G10 G11 G12 G13 G14 G15 G16 G17 G18 G19 G20 G21 G22 G23
|
1576
|
+
H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 H13 H14 H15 H16 H17 H18 H19 H20 H21 H22 H23
|
1577
|
+
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 I13 I14 I15 I16 I17 I18 I19 I20 I21 I22 I23
|
1578
|
+
J1 J2 J3 J4 J5 J6 J7 J8 J9 J10 J11 J12 J13 J14 J15 J16 J17 J18 J19 J20 J21 J22 J23
|
1579
|
+
K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 K20 K21 K22 K23
|
1580
|
+
L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 L15 L16 L17 L18 L19 L20 L21 L22 L23
|
1581
|
+
M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13 M14 M15 M16 M17 M18 M19 M20 M21 M22 M23
|
1582
|
+
));
|
1583
|
+
|
1584
|
+
# AF point indices for 405/493 focus point (single-point AF) cameras equipped with Expeed 7 processor (eg. Z8 and Z9). Single-point AF array is 17 rows x 29 columns (ref 28)
|
1585
|
+
# - Auto Area AF uses 15 of the 17 rows (A-O) and 27 of the 29 columns (1-27), center is H14 (405 of the 493 focus points can be used by Auto-area AF)
|
1652
1586
|
#
|
1653
|
-
my
|
1654
|
-
|
1655
|
-
|
1656
|
-
|
1657
|
-
|
1658
|
-
|
1659
|
-
|
1660
|
-
|
1661
|
-
|
1662
|
-
|
1663
|
-
|
1664
|
-
|
1665
|
-
|
1666
|
-
|
1667
|
-
|
1668
|
-
|
1669
|
-
|
1670
|
-
17 => 'A17', 44 => 'B17', 71 => 'C17', 98 => 'D17', 125 => 'E17', 152 => 'F17', 179 => 'G17', 206 => 'H17',
|
1671
|
-
18 => 'A18', 45 => 'B18', 72 => 'C18', 99 => 'D18', 126 => 'E18', 153 => 'F18', 180 => 'G18', 207 => 'H18',
|
1672
|
-
19 => 'A19', 46 => 'B19', 73 => 'C19', 100 => 'D19', 127 => 'E19', 154 => 'F19', 181 => 'G19', 208 => 'H19',
|
1673
|
-
20 => 'A20', 47 => 'B20', 74 => 'C20', 101 => 'D20', 128 => 'E20', 155 => 'F20', 182 => 'G20', 209 => 'H20',
|
1674
|
-
21 => 'A21', 48 => 'B21', 75 => 'C21', 102 => 'D21', 129 => 'E21', 156 => 'F21', 183 => 'G21', 210 => 'H21',
|
1675
|
-
22 => 'A22', 49 => 'B22', 76 => 'C22', 103 => 'D22', 130 => 'E22', 157 => 'F22', 184 => 'G22', 211 => 'H22',
|
1676
|
-
23 => 'A23', 50 => 'B23', 77 => 'C23', 104 => 'D23', 131 => 'E23', 158 => 'F23', 185 => 'G23', 212 => 'H23',
|
1677
|
-
24 => 'A24', 51 => 'B24', 78 => 'C24', 105 => 'D24', 132 => 'E24', 159 => 'F24', 186 => 'G24', 213 => 'H24',
|
1678
|
-
25 => 'A25', 52 => 'B25', 79 => 'C25', 106 => 'D25', 133 => 'E25', 160 => 'F25', 187 => 'G25', 214 => 'H25',
|
1679
|
-
26 => 'A26', 53 => 'B26', 80 => 'C26', 107 => 'D26', 134 => 'E26', 161 => 'F26', 188 => 'G26', 215 => 'H26',
|
1680
|
-
27 => 'A27', 54 => 'B27', 81 => 'C27', 108 => 'D27', 135 => 'E27', 162 => 'F27', 189 => 'G27', 216 => 'H27',
|
1681
|
-
|
1682
|
-
217 => 'I1', 244 => 'J1', 271 => 'K1', 298 => 'L1', 325 => 'M1', 352 => 'N1', 379 => 'O1',
|
1683
|
-
218 => 'I2', 245 => 'J2', 272 => 'K2', 299 => 'L2', 326 => 'M2', 353 => 'N2', 380 => 'O2',
|
1684
|
-
219 => 'I3', 246 => 'J3', 273 => 'K3', 300 => 'L3', 327 => 'M3', 354 => 'N3', 381 => 'O3',
|
1685
|
-
220 => 'I4', 247 => 'J4', 274 => 'K4', 301 => 'L4', 328 => 'M4', 355 => 'N4', 382 => 'O4',
|
1686
|
-
221 => 'I5', 248 => 'J5', 275 => 'K5', 302 => 'L5', 329 => 'M5', 356 => 'N5', 383 => 'O5',
|
1687
|
-
222 => 'I6', 249 => 'J6', 276 => 'K6', 303 => 'L6', 330 => 'M6', 357 => 'N6', 384 => 'O6',
|
1688
|
-
223 => 'I7', 250 => 'J7', 277 => 'K7', 304 => 'L7', 331 => 'M7', 358 => 'N7', 385 => 'O7',
|
1689
|
-
224 => 'I8', 251 => 'J8', 278 => 'K8', 305 => 'L8', 332 => 'M8', 359 => 'N8', 386 => 'O8',
|
1690
|
-
225 => 'I9', 252 => 'J9', 279 => 'K9', 306 => 'L9', 333 => 'M9', 360 => 'N9', 387 => 'O9',
|
1691
|
-
226 => 'I10', 253 => 'J10', 280 => 'K10', 307 => 'L10', 334 => 'M10', 361 => 'N10', 388 => 'O10',
|
1692
|
-
227 => 'I11', 254 => 'J11', 281 => 'K11', 308 => 'L11', 335 => 'M11', 362 => 'N11', 389 => 'O11',
|
1693
|
-
228 => 'I12', 255 => 'J12', 282 => 'K12', 309 => 'L12', 336 => 'M12', 363 => 'N12', 390 => 'O12',
|
1694
|
-
229 => 'I13', 256 => 'J13', 283 => 'K13', 310 => 'L13', 337 => 'M13', 364 => 'N13', 391 => 'O13',
|
1695
|
-
230 => 'I14', 257 => 'J14', 284 => 'K14', 311 => 'L14', 338 => 'M14', 365 => 'N14', 392 => 'O14',
|
1696
|
-
231 => 'I15', 258 => 'J15', 285 => 'K15', 312 => 'L15', 339 => 'M15', 366 => 'N15', 393 => 'O15',
|
1697
|
-
232 => 'I16', 259 => 'J16', 286 => 'K16', 313 => 'L16', 340 => 'M16', 367 => 'N16', 394 => 'O16',
|
1698
|
-
233 => 'I17', 260 => 'J17', 287 => 'K17', 314 => 'L17', 341 => 'M17', 368 => 'N17', 395 => 'O17',
|
1699
|
-
234 => 'I18', 261 => 'J18', 288 => 'K18', 315 => 'L18', 342 => 'M18', 369 => 'N18', 396 => 'O18',
|
1700
|
-
235 => 'I19', 262 => 'J19', 289 => 'K19', 316 => 'L19', 343 => 'M19', 370 => 'N19', 397 => 'O19',
|
1701
|
-
236 => 'I20', 263 => 'J20', 290 => 'K20', 317 => 'L20', 344 => 'M20', 371 => 'N20', 398 => 'O20',
|
1702
|
-
237 => 'I21', 264 => 'J21', 291 => 'K21', 318 => 'L21', 345 => 'M21', 372 => 'N21', 399 => 'O21',
|
1703
|
-
238 => 'I22', 265 => 'J22', 292 => 'K22', 319 => 'L22', 346 => 'M22', 373 => 'N22', 400 => 'O22',
|
1704
|
-
239 => 'I23', 266 => 'J23', 293 => 'K23', 320 => 'L23', 347 => 'M23', 374 => 'N23', 401 => 'O23',
|
1705
|
-
240 => 'I24', 267 => 'J24', 294 => 'K24', 321 => 'L24', 348 => 'M24', 375 => 'N24', 402 => 'O24',
|
1706
|
-
241 => 'I25', 268 => 'J25', 295 => 'K25', 322 => 'L25', 349 => 'M25', 376 => 'N25', 403 => 'O25',
|
1707
|
-
242 => 'I26', 269 => 'J26', 296 => 'K26', 323 => 'L26', 350 => 'M26', 377 => 'N26', 404 => 'O26',
|
1708
|
-
243 => 'I27', 270 => 'J27', 297 => 'K27', 324 => 'L27', 351 => 'M27', 378 => 'N27', 405 => 'O27',
|
1709
|
-
);
|
1587
|
+
my @afPoints405 = (qw(
|
1588
|
+
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27
|
1589
|
+
B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 B16 B17 B18 B19 B20 B21 B22 B23 B24 B25 B26 B27
|
1590
|
+
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 C17 C18 C19 C20 C21 C22 C23 C24 C25 C26 C27
|
1591
|
+
D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 D18 D19 D20 D21 D22 D23 D24 D25 D26 D27
|
1592
|
+
E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 E14 E15 E16 E17 E18 E19 E20 E21 E22 E23 E24 E25 E26 E27
|
1593
|
+
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27
|
1594
|
+
G1 G2 G3 G4 G5 G6 G7 G8 G9 G10 G11 G12 G13 G14 G15 G16 G17 G18 G19 G20 G21 G22 G23 G24 G25 G26 G27
|
1595
|
+
H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 H13 H14 H15 H16 H17 H18 H19 H20 H21 H22 H23 H24 H25 H26 H27
|
1596
|
+
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 I13 I14 I15 I16 I17 I18 I19 I20 I21 I22 I23 I24 I25 I26 I27
|
1597
|
+
J1 J2 J3 J4 J5 J6 J7 J8 J9 J10 J11 J12 J13 J14 J15 J16 J17 J18 J19 J20 J21 J22 J23 J24 J25 J26 J27
|
1598
|
+
K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 K11 K12 K13 K14 K15 K16 K17 K18 K19 K20 K21 K22 K23 K24 K25 K26 K27
|
1599
|
+
L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 L15 L16 L17 L18 L19 L20 L21 L22 L23 L24 L25 L26 L27
|
1600
|
+
M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13 M14 M15 M16 M17 M18 M19 M20 M21 M22 M23 M24 M25 M26 M27
|
1601
|
+
N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13 N14 N15 N16 N17 N18 N19 N20 N21 N22 N23 N24 N25 N26 N27
|
1602
|
+
O1 O2 O3 O4 O5 O6 O7 O8 O9 O10 O11 O12 O13 O14 O15 O16 O17 O18 O19 O20 O21 O22 O23 O24 O25 O26 O27
|
1603
|
+
));
|
1710
1604
|
|
1711
1605
|
my %cropHiSpeed = ( #IB
|
1712
1606
|
0 => 'Off',
|
@@ -4841,26 +4735,26 @@ my %base64coord = (
|
|
4841
4735
|
Notes => 'either AFPointsUsed or AFAreaX/YPosition will be set, but not both',
|
4842
4736
|
ValueConv => 'join(" ", unpack("H2"x51, $val))',
|
4843
4737
|
ValueConvInv => '$val=~tr/ //d; pack("H*",$val)',
|
4844
|
-
PrintConv => sub { PrintAFPoints(shift,
|
4845
|
-
PrintConvInv => sub { PrintAFPointsInv(shift,
|
4738
|
+
PrintConv => sub { PrintAFPoints(shift, \@afPoints405); },
|
4739
|
+
PrintConvInv => sub { PrintAFPointsInv(shift, \@afPoints405); },
|
4846
4740
|
},{
|
4847
4741
|
Name => 'AFPointsUsed', # Z6iii and Zf (AFInfo2Version 0401)
|
4848
4742
|
Condition => '$$self{Model} =~ /^NIKON (Z6_3|Z f)\b/i and ($$self{AFAreaModeUsed} == 197 or $$self{AFAreaModeUsed} == 207)',
|
4849
|
-
Format => 'undef[
|
4850
|
-
ValueConv => 'join(" ", unpack("H2"
|
4743
|
+
Format => 'undef[38]',
|
4744
|
+
ValueConv => 'join(" ", unpack("H2"x38, $val))',
|
4851
4745
|
ValueConvInv => '$val=~tr/ //d; pack("H*",$val)',
|
4852
|
-
PrintConv => sub { PrintAFPoints(shift,
|
4853
|
-
PrintConvInv => sub { PrintAFPointsInv(shift,
|
4746
|
+
PrintConv => sub { PrintAFPoints(shift, \@afPoints299); },
|
4747
|
+
PrintConvInv => sub { PrintAFPointsInv(shift, \@afPoints299); },
|
4854
4748
|
},{
|
4855
4749
|
Name => 'AFPointsUsed', # Z50ii (AFInfo2Version 0402)
|
4856
4750
|
Condition => '$$self{Model} =~ /^NIKON Z50_2\b/i and ($$self{AFAreaModeUsed} == 197 or $$self{AFAreaModeUsed} == 207)',
|
4857
|
-
Format => 'undef[
|
4858
|
-
ValueConv => 'join(" ", unpack("H2"
|
4751
|
+
Format => 'undef[29]',
|
4752
|
+
ValueConv => 'join(" ", unpack("H2"x29, $val))',
|
4859
4753
|
ValueConvInv => '$val=~tr/ //d; pack("H*",$val)',
|
4860
|
-
PrintConv => sub { PrintAFPoints(shift,
|
4861
|
-
PrintConvInv => sub { PrintAFPointsInv(shift,
|
4754
|
+
PrintConv => sub { PrintAFPoints(shift, \@afPoints231); },
|
4755
|
+
PrintConvInv => sub { PrintAFPointsInv(shift, \@afPoints231); },
|
4862
4756
|
}],
|
4863
|
-
|
4757
|
+
62 => {
|
4864
4758
|
Name => 'AFImageWidth',
|
4865
4759
|
Format => 'int16u',
|
4866
4760
|
},
|
@@ -13611,7 +13505,7 @@ sub ProcessNikonAVI($$$)
|
|
13611
13505
|
#------------------------------------------------------------------------------
|
13612
13506
|
# Print conversion for Nikon AF points
|
13613
13507
|
# Inputs: 0) value to convert (as a string of hex bytes),
|
13614
|
-
# 1) lookup for AF point bit number (starting at 1)
|
13508
|
+
# 1) lookup for AF point bit number (starting at 1), or array ref
|
13615
13509
|
sub PrintAFPoints($$)
|
13616
13510
|
{
|
13617
13511
|
my ($val, $afPoints) = @_;
|
@@ -13623,7 +13517,7 @@ sub PrintAFPoints($$)
|
|
13623
13517
|
next unless $dat[$i];
|
13624
13518
|
for ($j=0; $j<8; ++$j) {
|
13625
13519
|
next unless $dat[$i] & (1 << $j);
|
13626
|
-
my $point = $$afPoints{$i*8
|
13520
|
+
my $point = ref $afPoints eq 'HASH' ? $$afPoints{$i*8+$j+1} : $$afPoints[$i*8+$j];
|
13627
13521
|
push @points, $point if defined $point;
|
13628
13522
|
}
|
13629
13523
|
}
|
@@ -13638,17 +13532,21 @@ sub PrintAFPoints($$)
|
|
13638
13532
|
|
13639
13533
|
#------------------------------------------------------------------------------
|
13640
13534
|
# Inverse print conversion for AF points
|
13641
|
-
# Inputs: 0) AF point string, 1) AF point
|
13535
|
+
# Inputs: 0) AF point string, 1) AF point hash or array ref
|
13642
13536
|
# Returns: AF point data as a string of hex bytes
|
13643
13537
|
sub PrintAFPointsInv($$)
|
13644
13538
|
{
|
13645
13539
|
my ($val, $afPoints) = @_;
|
13646
13540
|
my @points = ($val =~ /[A-Za-z]\d+/g);
|
13647
|
-
my $size = int((scalar(keys %$afPoints) + 7) / 8);
|
13541
|
+
my $size = int((scalar(ref $afPoints eq 'HASH' ? keys %$afPoints : @$afPoints) + 7) / 8);
|
13648
13542
|
my @dat = (0) x $size;
|
13649
13543
|
if (@points) {
|
13650
13544
|
my (%bitNum, $point);
|
13651
|
-
|
13545
|
+
if (ref $afPoints eq 'HASH') {
|
13546
|
+
$bitNum{$$afPoints{$_}} = $_ foreach keys %$afPoints; # build reverse lookup
|
13547
|
+
} else {
|
13548
|
+
$bitNum{$$afPoints[$_]} = $_ + 1 foreach 0..$#$afPoints;
|
13549
|
+
}
|
13652
13550
|
foreach $point (@points) {
|
13653
13551
|
my $bitNum = $bitNum{uc $point} or next;
|
13654
13552
|
my $byte = int(($bitNum - 1) / 8);
|
@@ -9838,7 +9838,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
|
|
9838
9838
|
5 => '5 (Delayed)',
|
9839
9839
|
},
|
9840
9840
|
},
|
9841
|
-
11 => {Name => 'AFPointSel',PrintConv => { 0 => 'Use All',1 => 'Use Half' }}, # CSa4
|
9841
|
+
11 => { Name => 'AFPointSel',PrintConv => { 0 => 'Use All',1 => 'Use Half' }}, # CSa4
|
9842
9842
|
13 => { # CSa5
|
9843
9843
|
Name => 'StoreByOrientation',
|
9844
9844
|
PrintConv => {
|
@@ -10149,7 +10149,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
|
|
10149
10149
|
5 => '5 (Delayed)',
|
10150
10150
|
},
|
10151
10151
|
},
|
10152
|
-
11 => {Name => 'AFPointSel',PrintConv => { 0 => 'Use All',1 => 'Use Half' }}, # CSa4
|
10152
|
+
11 => { Name => 'AFPointSel',PrintConv => { 0 => 'Use All',1 => 'Use Half' }}, # CSa4
|
10153
10153
|
13 => { # CSa5
|
10154
10154
|
Name => 'StoreByOrientation',
|
10155
10155
|
PrintConv => {
|
@@ -10547,7 +10547,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
|
|
10547
10547
|
5 => '5 (Delayed)',
|
10548
10548
|
},
|
10549
10549
|
},
|
10550
|
-
11 => {Name => 'AFPointSel',PrintConv => { 0 => 'Use All',1 => 'Use Half' }}, # CSa4
|
10550
|
+
11 => { Name => 'AFPointSel',PrintConv => { 0 => 'Use All',1 => 'Use Half' }}, # CSa4
|
10551
10551
|
13 => { # CSa5
|
10552
10552
|
Name => 'StoreByOrientation',
|
10553
10553
|
PrintConv => {
|
@@ -10957,7 +10957,7 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
|
|
10957
10957
|
5 => '5 (Delayed)',
|
10958
10958
|
},
|
10959
10959
|
},
|
10960
|
-
11 => {Name => 'AFPointSel',PrintConv => { 0 => 'Use All',1 => 'Use Half' }}, # CSa4
|
10960
|
+
11 => { Name => 'AFPointSel',PrintConv => { 0 => 'Use All',1 => 'Use Half' }}, # CSa4
|
10961
10961
|
13 => { # CSa5
|
10962
10962
|
Name => 'StoreByOrientation',
|
10963
10963
|
PrintConv => {
|
@@ -48,7 +48,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
48
48
|
use Image::ExifTool::Exif;
|
49
49
|
use Image::ExifTool::GPS;
|
50
50
|
|
51
|
-
$VERSION = '3.
|
51
|
+
$VERSION = '3.12';
|
52
52
|
|
53
53
|
sub ProcessMOV($$;$);
|
54
54
|
sub ProcessKeys($$$);
|
@@ -9856,6 +9856,7 @@ sub ProcessMOV($$;$)
|
|
9856
9856
|
$size -= 8;
|
9857
9857
|
}
|
9858
9858
|
if ($validate) {
|
9859
|
+
$et->Warn("Invalid 'wide' atom size") if $tag eq 'wide' and $size;
|
9859
9860
|
$$et{ValidatePath} or $$et{ValidatePath} = { };
|
9860
9861
|
my $path = join('-', @{$$et{PATH}}, $tag);
|
9861
9862
|
$path =~ s/-Track-/-$$et{SET_GROUP1}-/ if $$et{SET_GROUP1};
|