exiftool-vendored.pl 13.0.1 → 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.
- package/bin/Changes +269 -20
- package/bin/MANIFEST +10 -0
- package/bin/META.json +1 -1
- package/bin/META.yml +1 -1
- package/bin/README +3 -3
- package/bin/arg_files/exif2xmp.args +4 -0
- package/bin/arg_files/xmp2exif.args +2 -1
- package/bin/build_geolocation +1 -1
- package/bin/exiftool +356 -213
- package/bin/lib/File/RandomAccess.pm +1 -1
- package/bin/lib/File/RandomAccess.pod +2 -2
- package/bin/lib/Image/ExifTool/AAC.pm +1 -1
- package/bin/lib/Image/ExifTool/AES.pm +1 -1
- package/bin/lib/Image/ExifTool/AFCP.pm +6 -6
- package/bin/lib/Image/ExifTool/AIFF.pm +2 -2
- package/bin/lib/Image/ExifTool/APE.pm +2 -2
- package/bin/lib/Image/ExifTool/APP12.pm +1 -1
- package/bin/lib/Image/ExifTool/ASF.pm +2 -2
- package/bin/lib/Image/ExifTool/Apple.pm +11 -9
- package/bin/lib/Image/ExifTool/Audible.pm +1 -1
- package/bin/lib/Image/ExifTool/BMP.pm +1 -1
- package/bin/lib/Image/ExifTool/BPG.pm +1 -1
- package/bin/lib/Image/ExifTool/BZZ.pm +1 -1
- package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/BuildTagLookup.pm +46 -26
- package/bin/lib/Image/ExifTool/CBOR.pm +5 -2
- package/bin/lib/Image/ExifTool/Canon.pm +68 -28
- package/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
- package/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
- package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- package/bin/lib/Image/ExifTool/Casio.pm +1 -1
- package/bin/lib/Image/ExifTool/Charset.pm +1 -1
- package/bin/lib/Image/ExifTool/DICOM.pm +1 -1
- package/bin/lib/Image/ExifTool/DJI.pm +196 -30
- package/bin/lib/Image/ExifTool/DNG.pm +1 -1
- package/bin/lib/Image/ExifTool/DPX.pm +1 -1
- package/bin/lib/Image/ExifTool/DV.pm +1 -1
- package/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
- package/bin/lib/Image/ExifTool/DjVu.pm +1 -1
- package/bin/lib/Image/ExifTool/EXE.pm +138 -33
- package/bin/lib/Image/ExifTool/Exif.pm +29 -16
- package/bin/lib/Image/ExifTool/FITS.pm +3 -3
- package/bin/lib/Image/ExifTool/FLAC.pm +1 -1
- package/bin/lib/Image/ExifTool/FLIF.pm +3 -3
- package/bin/lib/Image/ExifTool/FLIR.pm +1 -1
- package/bin/lib/Image/ExifTool/Fixup.pm +1 -1
- package/bin/lib/Image/ExifTool/Flash.pm +1 -1
- package/bin/lib/Image/ExifTool/FlashPix.pm +17 -21
- package/bin/lib/Image/ExifTool/Font.pm +2 -2
- package/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
- package/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
- package/bin/lib/Image/ExifTool/GE.pm +1 -1
- package/bin/lib/Image/ExifTool/GIF.pm +144 -93
- package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
- package/bin/lib/Image/ExifTool/GM.pm +1 -1
- package/bin/lib/Image/ExifTool/GPS.pm +34 -30
- package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
- package/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
- package/bin/lib/Image/ExifTool/Geolocation.pm +19 -9
- package/bin/lib/Image/ExifTool/Geotag.pm +46 -12
- package/bin/lib/Image/ExifTool/GoPro.pm +120 -8
- package/bin/lib/Image/ExifTool/H264.pm +1 -1
- package/bin/lib/Image/ExifTool/HP.pm +2 -2
- package/bin/lib/Image/ExifTool/HTML.pm +1 -1
- package/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
- package/bin/lib/Image/ExifTool/ICC_Profile.pm +81 -2
- package/bin/lib/Image/ExifTool/ICO.pm +1 -1
- package/bin/lib/Image/ExifTool/ID3.pm +8 -8
- package/bin/lib/Image/ExifTool/IPTC.pm +10 -7
- package/bin/lib/Image/ExifTool/ISO.pm +1 -1
- package/bin/lib/Image/ExifTool/ITC.pm +1 -1
- package/bin/lib/Image/ExifTool/Import.pm +5 -4
- package/bin/lib/Image/ExifTool/InDesign.pm +2 -2
- package/bin/lib/Image/ExifTool/InfiRay.pm +1 -1
- package/bin/lib/Image/ExifTool/JPEG.pm +38 -5
- package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- package/bin/lib/Image/ExifTool/JSON.pm +1 -1
- package/bin/lib/Image/ExifTool/JVC.pm +1 -1
- package/bin/lib/Image/ExifTool/Jpeg2000.pm +10 -9
- package/bin/lib/Image/ExifTool/Kodak.pm +1 -1
- package/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/LIF.pm +1 -1
- package/bin/lib/Image/ExifTool/LNK.pm +2 -2
- package/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/sk.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
- package/bin/lib/Image/ExifTool/Leaf.pm +1 -1
- package/bin/lib/Image/ExifTool/LigoGPS.pm +409 -0
- package/bin/lib/Image/ExifTool/Lytro.pm +1 -1
- package/bin/lib/Image/ExifTool/M2TS.pm +57 -18
- package/bin/lib/Image/ExifTool/MIE.pm +15 -6
- package/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
- package/bin/lib/Image/ExifTool/MIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/MISB.pm +1 -1
- package/bin/lib/Image/ExifTool/MNG.pm +1 -1
- package/bin/lib/Image/ExifTool/MOI.pm +1 -1
- package/bin/lib/Image/ExifTool/MPC.pm +1 -1
- package/bin/lib/Image/ExifTool/MPEG.pm +1 -1
- package/bin/lib/Image/ExifTool/MPF.pm +1 -1
- package/bin/lib/Image/ExifTool/MRC.pm +1 -1
- package/bin/lib/Image/ExifTool/MWG.pm +1 -1
- package/bin/lib/Image/ExifTool/MXF.pm +3 -3
- package/bin/lib/Image/ExifTool/MacOS.pm +3 -2
- package/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
- package/bin/lib/Image/ExifTool/Matroska.pm +22 -6
- package/bin/lib/Image/ExifTool/Microsoft.pm +2 -2
- package/bin/lib/Image/ExifTool/Minolta.pm +1 -1
- package/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
- package/bin/lib/Image/ExifTool/Nikon.pm +457 -103
- package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- package/bin/lib/Image/ExifTool/NikonCustom.pm +6 -6
- package/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
- package/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
- package/bin/lib/Image/ExifTool/OOXML.pm +8 -8
- package/bin/lib/Image/ExifTool/Ogg.pm +1 -1
- package/bin/lib/Image/ExifTool/Olympus.pm +1 -1
- package/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
- package/bin/lib/Image/ExifTool/Opus.pm +1 -1
- package/bin/lib/Image/ExifTool/Other.pm +1 -1
- package/bin/lib/Image/ExifTool/PCX.pm +1 -1
- package/bin/lib/Image/ExifTool/PDF.pm +49 -18
- package/bin/lib/Image/ExifTool/PGF.pm +1 -1
- package/bin/lib/Image/ExifTool/PICT.pm +1 -1
- package/bin/lib/Image/ExifTool/PLIST.pm +4 -4
- package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
- package/bin/lib/Image/ExifTool/PNG.pm +20 -8
- package/bin/lib/Image/ExifTool/PPM.pm +12 -3
- package/bin/lib/Image/ExifTool/PSP.pm +1 -1
- package/bin/lib/Image/ExifTool/Palm.pm +1 -1
- package/bin/lib/Image/ExifTool/Panasonic.pm +27 -3
- package/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
- package/bin/lib/Image/ExifTool/Pentax.pm +1 -1
- package/bin/lib/Image/ExifTool/PhaseOne.pm +4 -4
- package/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
- package/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
- package/bin/lib/Image/ExifTool/Photoshop.pm +65 -4
- package/bin/lib/Image/ExifTool/PostScript.pm +1 -1
- package/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
- package/bin/lib/Image/ExifTool/Protobuf.pm +270 -0
- package/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
- package/bin/lib/Image/ExifTool/QuickTime.pm +327 -88
- package/bin/lib/Image/ExifTool/QuickTimeStream.pl +199 -195
- package/bin/lib/Image/ExifTool/README +12 -2
- package/bin/lib/Image/ExifTool/RIFF.pm +21 -6
- package/bin/lib/Image/ExifTool/RSRC.pm +1 -1
- package/bin/lib/Image/ExifTool/RTF.pm +2 -2
- package/bin/lib/Image/ExifTool/Radiance.pm +1 -1
- package/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
- package/bin/lib/Image/ExifTool/Real.pm +1 -1
- package/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
- package/bin/lib/Image/ExifTool/Red.pm +1 -1
- package/bin/lib/Image/ExifTool/Ricoh.pm +4 -4
- package/bin/lib/Image/ExifTool/Samsung.pm +6 -2
- package/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
- package/bin/lib/Image/ExifTool/Scalado.pm +1 -1
- package/bin/lib/Image/ExifTool/Shift.pl +1 -1
- package/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
- package/bin/lib/Image/ExifTool/Sigma.pm +1 -1
- package/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/Sony.pm +6 -5
- package/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
- package/bin/lib/Image/ExifTool/Stim.pm +1 -1
- package/bin/lib/Image/ExifTool/TagInfoXML.pm +6 -5
- package/bin/lib/Image/ExifTool/TagLookup.pm +7028 -6968
- package/bin/lib/Image/ExifTool/TagNames.pod +12079 -11630
- package/bin/lib/Image/ExifTool/Text.pm +4 -3
- package/bin/lib/Image/ExifTool/Theora.pm +1 -1
- package/bin/lib/Image/ExifTool/Torrent.pm +3 -3
- package/bin/lib/Image/ExifTool/Trailer.pm +318 -0
- package/bin/lib/Image/ExifTool/Unknown.pm +1 -1
- package/bin/lib/Image/ExifTool/VCard.pm +3 -3
- package/bin/lib/Image/ExifTool/Validate.pm +6 -6
- package/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
- package/bin/lib/Image/ExifTool/WPG.pm +1 -1
- package/bin/lib/Image/ExifTool/WTV.pm +1 -1
- package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
- package/bin/lib/Image/ExifTool/WriteExif.pl +3 -3
- package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
- package/bin/lib/Image/ExifTool/WriteQuickTime.pl +170 -79
- package/bin/lib/Image/ExifTool/WriteRIFF.pl +17 -6
- package/bin/lib/Image/ExifTool/WriteXMP.pl +3 -3
- package/bin/lib/Image/ExifTool/Writer.pl +89 -96
- package/bin/lib/Image/ExifTool/XISF.pm +1 -1
- package/bin/lib/Image/ExifTool/XMP.pm +28 -13
- package/bin/lib/Image/ExifTool/XMP2.pl +106 -3
- package/bin/lib/Image/ExifTool/XMPStruct.pl +2 -3
- package/bin/lib/Image/ExifTool/ZIP.pm +2 -2
- package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- package/bin/lib/Image/ExifTool/iWork.pm +1 -1
- package/bin/lib/Image/ExifTool.pm +467 -228
- package/bin/lib/Image/ExifTool.pod +118 -72
- package/bin/perl-Image-ExifTool.spec +1 -1
- package/bin/windows_exiftool.txt +96 -51
- package/package.json +6 -6
|
@@ -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,66 +1546,62 @@ my %afPoints81 = (
|
|
|
1546
1546
|
17 => 'H6', 34 => 'G7', 51 => 'F8', 68 => 'A9',
|
|
1547
1547
|
);
|
|
1548
1548
|
|
|
1549
|
-
# AF point indices for
|
|
1550
|
-
# - Auto Area AF
|
|
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
|
+
# - 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 @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)
|
|
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
|
|
1551
1567
|
#
|
|
1552
|
-
my
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
225 => 'I9', 252 => 'J9', 279 => 'K9', 306 => 'L9', 333 => 'M9', 360 => 'N9', 387 => 'O9',
|
|
1590
|
-
226 => 'I10', 253 => 'J10', 280 => 'K10', 307 => 'L10', 334 => 'M10', 361 => 'N10', 388 => 'O10',
|
|
1591
|
-
227 => 'I11', 254 => 'J11', 281 => 'K11', 308 => 'L11', 335 => 'M11', 362 => 'N11', 389 => 'O11',
|
|
1592
|
-
228 => 'I12', 255 => 'J12', 282 => 'K12', 309 => 'L12', 336 => 'M12', 363 => 'N12', 390 => 'O12',
|
|
1593
|
-
229 => 'I13', 256 => 'J13', 283 => 'K13', 310 => 'L13', 337 => 'M13', 364 => 'N13', 391 => 'O13',
|
|
1594
|
-
230 => 'I14', 257 => 'J14', 284 => 'K14', 311 => 'L14', 338 => 'M14', 365 => 'N14', 392 => 'O14',
|
|
1595
|
-
231 => 'I15', 258 => 'J15', 285 => 'K15', 312 => 'L15', 339 => 'M15', 366 => 'N15', 393 => 'O15',
|
|
1596
|
-
232 => 'I16', 259 => 'J16', 286 => 'K16', 313 => 'L16', 340 => 'M16', 367 => 'N16', 394 => 'O16',
|
|
1597
|
-
233 => 'I17', 260 => 'J17', 287 => 'K17', 314 => 'L17', 341 => 'M17', 368 => 'N17', 395 => 'O17',
|
|
1598
|
-
234 => 'I18', 261 => 'J18', 288 => 'K18', 315 => 'L18', 342 => 'M18', 369 => 'N18', 396 => 'O18',
|
|
1599
|
-
235 => 'I19', 262 => 'J19', 289 => 'K19', 316 => 'L19', 343 => 'M19', 370 => 'N19', 397 => 'O19',
|
|
1600
|
-
236 => 'I20', 263 => 'J20', 290 => 'K20', 317 => 'L20', 344 => 'M20', 371 => 'N20', 398 => 'O20',
|
|
1601
|
-
237 => 'I21', 264 => 'J21', 291 => 'K21', 318 => 'L21', 345 => 'M21', 372 => 'N21', 399 => 'O21',
|
|
1602
|
-
238 => 'I22', 265 => 'J22', 292 => 'K22', 319 => 'L22', 346 => 'M22', 373 => 'N22', 400 => 'O22',
|
|
1603
|
-
239 => 'I23', 266 => 'J23', 293 => 'K23', 320 => 'L23', 347 => 'M23', 374 => 'N23', 401 => 'O23',
|
|
1604
|
-
240 => 'I24', 267 => 'J24', 294 => 'K24', 321 => 'L24', 348 => 'M24', 375 => 'N24', 402 => 'O24',
|
|
1605
|
-
241 => 'I25', 268 => 'J25', 295 => 'K25', 322 => 'L25', 349 => 'M25', 376 => 'N25', 403 => 'O25',
|
|
1606
|
-
242 => 'I26', 269 => 'J26', 296 => 'K26', 323 => 'L26', 350 => 'M26', 377 => 'N26', 404 => 'O26',
|
|
1607
|
-
243 => 'I27', 270 => 'J27', 297 => 'K27', 324 => 'L27', 351 => 'M27', 378 => 'N27', 405 => 'O27',
|
|
1608
|
-
);
|
|
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)
|
|
1586
|
+
#
|
|
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
|
+
));
|
|
1604
|
+
|
|
1609
1605
|
my %cropHiSpeed = ( #IB
|
|
1610
1606
|
0 => 'Off',
|
|
1611
1607
|
1 => '1.3x Crop', # (1.3x Crop, Large)
|
|
@@ -3011,7 +3007,9 @@ my %base64coord = (
|
|
|
3011
3007
|
},
|
|
3012
3008
|
0x00b7 => [{
|
|
3013
3009
|
Name => 'AFInfo2',
|
|
3014
|
-
|
|
3010
|
+
# Expeed 7 processor models - Z8 & Z9 (AFInfo2Version 0400), Z6iii & Zf (AFInfo2Version 0401)
|
|
3011
|
+
# and Z50ii (AFInfo2Version 0402)
|
|
3012
|
+
Condition => '$$valPt =~ /^040[012]/',
|
|
3015
3013
|
SubDirectory => { TagTable => 'Image::ExifTool::Nikon::AFInfo2V0400' },
|
|
3016
3014
|
},{ #JD
|
|
3017
3015
|
Name => 'AFInfo2',
|
|
@@ -4413,6 +4411,7 @@ my %base64coord = (
|
|
|
4413
4411
|
{ #PH (Z7)
|
|
4414
4412
|
Name => 'PrimaryAFPoint',
|
|
4415
4413
|
Condition => '$$self{PhaseDetectAF} == 8 and $$self{AFInfo2Version} =~ /^03/',
|
|
4414
|
+
PrintConvColumns => 5,
|
|
4416
4415
|
PrintConv => {
|
|
4417
4416
|
0 => '(none)',
|
|
4418
4417
|
%afPoints81,
|
|
@@ -4697,10 +4696,14 @@ my %base64coord = (
|
|
|
4697
4696
|
},
|
|
4698
4697
|
);
|
|
4699
4698
|
|
|
4700
|
-
%Image::ExifTool::Nikon::AFInfo2V0400 = (
|
|
4699
|
+
%Image::ExifTool::Nikon::AFInfo2V0400 = (
|
|
4701
4700
|
%binaryDataAttrs,
|
|
4702
4701
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
|
4703
|
-
DATAMEMBER => [ 0 ],
|
|
4702
|
+
DATAMEMBER => [ 0, 5 ],
|
|
4703
|
+
NOTES => q{
|
|
4704
|
+
AF information for Nikon cameras with the Expeed 7 processor: The Zf, Z6_3,
|
|
4705
|
+
Z8, Z9 and Z50_3.
|
|
4706
|
+
},
|
|
4704
4707
|
0 => {
|
|
4705
4708
|
Name => 'AFInfo2Version',
|
|
4706
4709
|
Format => 'undef[4]',
|
|
@@ -4709,6 +4712,7 @@ my %base64coord = (
|
|
|
4709
4712
|
},
|
|
4710
4713
|
5 => { #28
|
|
4711
4714
|
Name => 'AFAreaMode', #reflects the mode active when the shutter is tripped, not the position of the Focus Mode button (which is recorded in MenuSettingsZ9 tag also named AfAreaMode)
|
|
4715
|
+
RawConv => '$$self{AFAreaModeUsed} = $val',
|
|
4712
4716
|
PrintConv => {
|
|
4713
4717
|
192 => 'Pinpoint',
|
|
4714
4718
|
193 => 'Single',
|
|
@@ -4722,16 +4726,35 @@ my %base64coord = (
|
|
|
4722
4726
|
208 => 'Wide (C1/C2)',
|
|
4723
4727
|
},
|
|
4724
4728
|
},
|
|
4725
|
-
10 => {
|
|
4726
|
-
|
|
4727
|
-
|
|
4728
|
-
|
|
4729
|
-
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4733
|
-
|
|
4734
|
-
|
|
4729
|
+
10 => [{
|
|
4730
|
+
# valid only for AFAreaModes where the camera selects the focus point (i.e., AutoArea & 3D-Tracking)
|
|
4731
|
+
# and the camera has yet to determine a focus target (in these cases tags AFAreaXPosition and AFAreaYPosition will be zeroes)
|
|
4732
|
+
Name => 'AFPointsUsed', # Z8 and Z9 (AFInfo2Version 0400)
|
|
4733
|
+
Condition => '$$self{Model} =~ /^NIKON (Z 8|Z 9)\b/i and ($$self{AFAreaModeUsed} == 197 or $$self{AFAreaModeUsed} == 207)',
|
|
4734
|
+
Format => 'undef[51]',
|
|
4735
|
+
Notes => 'either AFPointsUsed or AFAreaX/YPosition will be set, but not both',
|
|
4736
|
+
ValueConv => 'join(" ", unpack("H2"x51, $val))',
|
|
4737
|
+
ValueConvInv => '$val=~tr/ //d; pack("H*",$val)',
|
|
4738
|
+
PrintConv => sub { PrintAFPoints(shift, \@afPoints405); },
|
|
4739
|
+
PrintConvInv => sub { PrintAFPointsInv(shift, \@afPoints405); },
|
|
4740
|
+
},{
|
|
4741
|
+
Name => 'AFPointsUsed', # Z6iii and Zf (AFInfo2Version 0401)
|
|
4742
|
+
Condition => '$$self{Model} =~ /^NIKON (Z6_3|Z f)\b/i and ($$self{AFAreaModeUsed} == 197 or $$self{AFAreaModeUsed} == 207)',
|
|
4743
|
+
Format => 'undef[38]',
|
|
4744
|
+
ValueConv => 'join(" ", unpack("H2"x38, $val))',
|
|
4745
|
+
ValueConvInv => '$val=~tr/ //d; pack("H*",$val)',
|
|
4746
|
+
PrintConv => sub { PrintAFPoints(shift, \@afPoints299); },
|
|
4747
|
+
PrintConvInv => sub { PrintAFPointsInv(shift, \@afPoints299); },
|
|
4748
|
+
},{
|
|
4749
|
+
Name => 'AFPointsUsed', # Z50ii (AFInfo2Version 0402)
|
|
4750
|
+
Condition => '$$self{Model} =~ /^NIKON Z50_2\b/i and ($$self{AFAreaModeUsed} == 197 or $$self{AFAreaModeUsed} == 207)',
|
|
4751
|
+
Format => 'undef[29]',
|
|
4752
|
+
ValueConv => 'join(" ", unpack("H2"x29, $val))',
|
|
4753
|
+
ValueConvInv => '$val=~tr/ //d; pack("H*",$val)',
|
|
4754
|
+
PrintConv => sub { PrintAFPoints(shift, \@afPoints231); },
|
|
4755
|
+
PrintConvInv => sub { PrintAFPointsInv(shift, \@afPoints231); },
|
|
4756
|
+
}],
|
|
4757
|
+
62 => {
|
|
4735
4758
|
Name => 'AFImageWidth',
|
|
4736
4759
|
Format => 'int16u',
|
|
4737
4760
|
},
|
|
@@ -4744,27 +4767,27 @@ my %base64coord = (
|
|
|
4744
4767
|
Format => 'int16u', # (decodes same byte as 0x43)
|
|
4745
4768
|
RawConv => '$val ? $val : undef',
|
|
4746
4769
|
},
|
|
4747
|
-
0x43 => {
|
|
4748
|
-
|
|
4749
|
-
|
|
4750
|
-
|
|
4751
|
-
|
|
4752
|
-
|
|
4753
|
-
|
|
4754
|
-
|
|
4755
|
-
|
|
4756
|
-
|
|
4757
|
-
},
|
|
4770
|
+
#0x43 => {
|
|
4771
|
+
# Name => 'FocusPositionHorizontal',
|
|
4772
|
+
# Notes => q{
|
|
4773
|
+
# the focus points form a 29x17 grid, but the X,Y coordinate values run from 1,1
|
|
4774
|
+
# to 30,19. The horizontal coordinate 11R (5) and the vertical coordinates 6U
|
|
4775
|
+
# (4) and 2D (12) are not used for some reason
|
|
4776
|
+
# },
|
|
4777
|
+
# # 493 focus points for Z9 fall in a 30x19 grid
|
|
4778
|
+
# # (the 11R (5) position is not used, for a total of 29 columns, ref AlbertShan email)
|
|
4779
|
+
# PrintConv => sub { my ($val) = @_; PrintAFPointsLeftRight($val, 29); },
|
|
4780
|
+
#},
|
|
4758
4781
|
0x44 => { #28
|
|
4759
4782
|
Name => 'AFAreaYPosition',
|
|
4760
4783
|
Format => 'int16u', # (decodes same byte as 0x45)
|
|
4761
4784
|
RawConv => '$val ? $val : undef',
|
|
4762
4785
|
},
|
|
4763
|
-
0x45 => {
|
|
4764
|
-
|
|
4765
|
-
|
|
4766
|
-
|
|
4767
|
-
},
|
|
4786
|
+
#0x45 => {
|
|
4787
|
+
# Name => 'FocusPositionVertical',
|
|
4788
|
+
# # (the 6U (4) and 2D (12) are not used, for a total of 17 rows, ref AlbertShan email)
|
|
4789
|
+
# PrintConv => sub { my ($val) = @_; PrintAFPointsUpDown($val, 17); },
|
|
4790
|
+
#},
|
|
4768
4791
|
0x46 => {
|
|
4769
4792
|
Name => 'AFAreaWidth',
|
|
4770
4793
|
Format => 'int16u',
|
|
@@ -5581,15 +5604,17 @@ my %nikonFocalConversions = (
|
|
|
5581
5604
|
45 => 'Nikkor Z 600mm f/6.3 VR S', #28
|
|
5582
5605
|
46 => 'Nikkor Z 135mm f/1.8 S Plena', #28
|
|
5583
5606
|
48 => 'Nikkor Z 28-400mm f/4-8 VR', #30
|
|
5607
|
+
51 => 'Nikkor Z 35mm f/1.4', #28
|
|
5608
|
+
52 => 'Nikkor Z 50mm f/1.4', #28
|
|
5584
5609
|
2305 => 'Laowa FFII 10mm F2.8 C&D Dreamer', #30
|
|
5585
5610
|
32768 => 'Nikkor Z 400mm f/2.8 TC VR S TC-1.4x', #28
|
|
5586
5611
|
32769 => 'Nikkor Z 600mm f/4 TC VR S TC-1.4x', #28
|
|
5587
5612
|
},
|
|
5588
5613
|
},
|
|
5589
5614
|
0x34 => { #28
|
|
5590
|
-
Name => 'LensFirmwareVersion',
|
|
5615
|
+
Name => 'LensFirmwareVersion',
|
|
5591
5616
|
Condition => '$$self{LensID} and $$self{LensID} != 0', #only valid for Z-mount lenses
|
|
5592
|
-
Format => 'int16u', #4 bits each for version, release amd modification in VRM scheme.
|
|
5617
|
+
Format => 'int16u', #4 bits each for version, release amd modification in VRM scheme.
|
|
5593
5618
|
PrintConv => q{
|
|
5594
5619
|
my $version = int($val / 256);
|
|
5595
5620
|
my $release = int(($val - 256 * $version)/16);
|
|
@@ -8395,7 +8420,7 @@ my %nikonFocalConversions = (
|
|
|
8395
8420
|
TagTable => 'Image::ExifTool::Nikon::MenuSettingsZ6III',
|
|
8396
8421
|
Start => '$val',
|
|
8397
8422
|
},
|
|
8398
|
-
},
|
|
8423
|
+
},
|
|
8399
8424
|
);
|
|
8400
8425
|
|
|
8401
8426
|
# shot information for the Z7II firmware 1.00 (encrypted) - ref 28
|
|
@@ -8940,13 +8965,23 @@ my %nikonFocalConversions = (
|
|
|
8940
8965
|
},
|
|
8941
8966
|
{
|
|
8942
8967
|
Name => 'MenuSettingsOffsetZ9v4',
|
|
8943
|
-
|
|
8968
|
+
Condition => '$$self{FirmwareVersion} and $$self{FirmwareVersion} lt "05.01"',
|
|
8969
|
+
Notes => 'Firmware versions 4.x and 5.0',
|
|
8944
8970
|
Format => 'int32u',
|
|
8945
8971
|
SubDirectory => {
|
|
8946
8972
|
TagTable => 'Image::ExifTool::Nikon::MenuSettingsZ9v4',
|
|
8947
8973
|
Start => '$dirStart + $val',
|
|
8948
8974
|
},
|
|
8949
8975
|
},
|
|
8976
|
+
{
|
|
8977
|
+
Name => 'MenuSettingsOffsetZ9v4',
|
|
8978
|
+
Notes => 'Firmware versions 4.x and 5.0',
|
|
8979
|
+
Format => 'int32u',
|
|
8980
|
+
SubDirectory => {
|
|
8981
|
+
TagTable => 'Image::ExifTool::Nikon::MenuSettingsZ9v5',
|
|
8982
|
+
Start => '$dirStart + $val',
|
|
8983
|
+
},
|
|
8984
|
+
},
|
|
8950
8985
|
],
|
|
8951
8986
|
);
|
|
8952
8987
|
|
|
@@ -9191,7 +9226,7 @@ my %nikonFocalConversions = (
|
|
|
9191
9226
|
720 => { Name => 'FlickerReductionShooting',PrintConv => \%offOn },
|
|
9192
9227
|
722 => { Name => 'NikonMeteringMode', PrintConv => \%meteringModeZ7},
|
|
9193
9228
|
724 => {
|
|
9194
|
-
Name => 'FlashControlMode',
|
|
9229
|
+
Name => 'FlashControlMode',
|
|
9195
9230
|
RawConv => '$$self{FlashControlMode} = $val',
|
|
9196
9231
|
PrintConv => \%flashControlModeZ7,
|
|
9197
9232
|
},
|
|
@@ -10454,12 +10489,13 @@ my %nikonFocalConversions = (
|
|
|
10454
10489
|
#1936 FocusPointDisplayOption3DTrackingColor CSa11-d 0=> 'White', 1= => 'Red'
|
|
10455
10490
|
);
|
|
10456
10491
|
|
|
10492
|
+
# firmware version 4.x menu settings (ref 28)
|
|
10457
10493
|
%Image::ExifTool::Nikon::MenuSettingsZ9v4 = (
|
|
10458
10494
|
%binaryDataAttrs,
|
|
10459
10495
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
|
10460
10496
|
DATAMEMBER => [ 154, 204, 208, 248, 328, 444, 548, 554, 570, 596 ],
|
|
10461
10497
|
IS_SUBDIR => [ 847 ],
|
|
10462
|
-
NOTES => 'These tags are used by the Z9 firmware 4.0.0 and 4.1.0',
|
|
10498
|
+
NOTES => 'These tags are used by the Z9 firmware 4.0.0 and 4.1.0.',
|
|
10463
10499
|
72 => {
|
|
10464
10500
|
Name => 'HighFrameRate', #CH and C30/C60/C120 but not CL
|
|
10465
10501
|
PrintConv => \%highFrameRateZ9,
|
|
@@ -10765,6 +10801,318 @@ my %nikonFocalConversions = (
|
|
|
10765
10801
|
2072 => { Name => 'FlashModeButtonPlaybackMode', %buttonsZ9}, #CSf2
|
|
10766
10802
|
);
|
|
10767
10803
|
|
|
10804
|
+
# menu settings for the Z9 with firmware version 5.1 (ref 28)
|
|
10805
|
+
%Image::ExifTool::Nikon::MenuSettingsZ9v5 = (
|
|
10806
|
+
%binaryDataAttrs,
|
|
10807
|
+
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
|
10808
|
+
DATAMEMBER => [ 158, 208, 212, 252, 332, 448, 552, 558, 574, 600 ],
|
|
10809
|
+
IS_SUBDIR => [ 851 ],
|
|
10810
|
+
NOTES => 'These tags are used by the Z9 firmware 5.1.',
|
|
10811
|
+
72 => {
|
|
10812
|
+
Name => 'HighFrameRate', #CH and C30/C60/C120 but not CL
|
|
10813
|
+
PrintConv => \%highFrameRateZ9,
|
|
10814
|
+
},
|
|
10815
|
+
158 => {
|
|
10816
|
+
Name => 'MultipleExposureMode',
|
|
10817
|
+
RawConv => '$$self{MultipleExposureMode} = $val',
|
|
10818
|
+
PrintConv => \%multipleExposureModeZ9,
|
|
10819
|
+
},
|
|
10820
|
+
160 => {Name => 'MultiExposureShots', Condition => '$$self{MultipleExposureMode} != 0'}, #range 2-9
|
|
10821
|
+
208 => {
|
|
10822
|
+
Name => 'Intervals',
|
|
10823
|
+
Format => 'int32u',
|
|
10824
|
+
RawConv => '$$self{IntervalShootingIntervals} = $val',
|
|
10825
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{IntervalShooting} > 0', #not valid for C30/C60/C120
|
|
10826
|
+
},
|
|
10827
|
+
212 => {
|
|
10828
|
+
Name => 'ShotsPerInterval',
|
|
10829
|
+
Format => 'int32u',
|
|
10830
|
+
RawConv => '$$self{IntervalShootingShotsPerInterval} = $val',
|
|
10831
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{IntervalShooting} > 0', #not valid for C30/C60/C120
|
|
10832
|
+
},
|
|
10833
|
+
252 => {
|
|
10834
|
+
Name => 'FocusShiftNumberShots', #1-300
|
|
10835
|
+
RawConv => '$$self{FocusShiftNumberShots} = $val',
|
|
10836
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
|
10837
|
+
},
|
|
10838
|
+
256 => {
|
|
10839
|
+
Name => 'FocusShiftStepWidth', #1(Narrow) to 10 (Wide)
|
|
10840
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
|
10841
|
+
},
|
|
10842
|
+
260 => {
|
|
10843
|
+
Name => 'FocusShiftInterval',
|
|
10844
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
|
10845
|
+
PrintConv => '$val == 1? "1 Second" : sprintf("%.0f Seconds",$val)',
|
|
10846
|
+
},
|
|
10847
|
+
264 => {
|
|
10848
|
+
Name => 'FocusShiftExposureLock',
|
|
10849
|
+
Unknown => 1,
|
|
10850
|
+
PrintConv => \%offOn,
|
|
10851
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
|
10852
|
+
},
|
|
10853
|
+
294 => { Name => 'PhotoShootingMenuBank', PrintConv => \%banksZ9 },
|
|
10854
|
+
296 => { Name => 'ExtendedMenuBanks', PrintConv => \%offOn }, # single tag from both Photo & Video menus
|
|
10855
|
+
332 => { Name => 'PhotoShootingMenuBankImageArea', RawConv => '$$self{ImageArea} = $val', PrintConv => \%imageAreaZ9 },
|
|
10856
|
+
#338 JPGCompression 0 => 'Size Priority', 1 => 'Optimal Quality',
|
|
10857
|
+
346 => { Name => 'AutoISO', PrintConv => \%offOn },
|
|
10858
|
+
348 => {
|
|
10859
|
+
Name => 'ISOAutoHiLimit',
|
|
10860
|
+
Format => 'int16u',
|
|
10861
|
+
Unknown => 1,
|
|
10862
|
+
ValueConv => '($val-104)/8',
|
|
10863
|
+
ValueConvInv => '8 * ($val + 104)',
|
|
10864
|
+
PrintConv => \%iSOAutoHiLimitZ7,
|
|
10865
|
+
},
|
|
10866
|
+
350 => {
|
|
10867
|
+
Name => 'ISOAutoFlashLimit',
|
|
10868
|
+
Format => 'int16u',
|
|
10869
|
+
Unknown => 1,
|
|
10870
|
+
ValueConv => '($val-104)/8',
|
|
10871
|
+
ValueConvInv => '8 * ($val + 104)',
|
|
10872
|
+
PrintConv => \%iSOAutoHiLimitZ7,
|
|
10873
|
+
},
|
|
10874
|
+
358 => {
|
|
10875
|
+
Name => 'ISOAutoShutterTime', # shutter speed is 2 ** (-$val/24)
|
|
10876
|
+
ValueConv => '$val / 8',
|
|
10877
|
+
Format => 'int16s',
|
|
10878
|
+
PrintConv => \%iSOAutoShutterTimeZ9,
|
|
10879
|
+
},
|
|
10880
|
+
440 => { Name => 'MovieVignetteControl', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
|
|
10881
|
+
442 => { Name => 'DiffractionCompensation', PrintConv => \%offOn }, # value can be set from both the Photo Shoot Menu and the Video Shooting Menu
|
|
10882
|
+
444 => { Name => 'FlickerReductionShooting',PrintConv => \%offOn },
|
|
10883
|
+
448 => {
|
|
10884
|
+
Name => 'FlashControlMode', # this and nearby tag values for flash may be set from either the Photo Shooting Menu or using the Flash unit menu
|
|
10885
|
+
RawConv => '$$self{FlashControlMode} = $val',
|
|
10886
|
+
PrintConv => \%flashControlModeZ7,
|
|
10887
|
+
},
|
|
10888
|
+
450 => {
|
|
10889
|
+
Name => 'FlashMasterCompensation',
|
|
10890
|
+
Format => 'int8s',
|
|
10891
|
+
Unknown => 1,
|
|
10892
|
+
ValueConv => '$val/6',
|
|
10893
|
+
ValueConvInv => '6 * $val',
|
|
10894
|
+
PrintConv => '$val ? sprintf("%+.1f",$val) : 0',
|
|
10895
|
+
PrintConvInv => '$val',
|
|
10896
|
+
},
|
|
10897
|
+
454 => {
|
|
10898
|
+
Name => 'FlashGNDistance',
|
|
10899
|
+
Condition => '$$self{FlashControlMode} == 2',
|
|
10900
|
+
Unknown => 1,
|
|
10901
|
+
ValueConv => '$val + 3',
|
|
10902
|
+
PrintConv => \%flashGNDistance,
|
|
10903
|
+
},
|
|
10904
|
+
458 => {
|
|
10905
|
+
Name => 'FlashOutput', # range[0,24] with 0=>Full; 1=>50%; then decreasing flash power in 1/3 stops to 0.39% (1/256 full power). also found in FlashInfoUnknown at offset 0x0a (with different mappings)
|
|
10906
|
+
Condition => '$$self{FlashControlMode} >= 3',
|
|
10907
|
+
Unknown => 1,
|
|
10908
|
+
ValueConv => '2 ** (-$val/3)',
|
|
10909
|
+
ValueConvInv => '$val>0 ? -3*log($val)/log(2) : 0',
|
|
10910
|
+
PrintConv => '$val>0.99 ? "Full" : sprintf("%.1f%%",$val*100)',
|
|
10911
|
+
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
|
10912
|
+
},
|
|
10913
|
+
#466 flash wireless control 0=> 'Off' 1=> 'Optical AWL'
|
|
10914
|
+
#468 => { Name => 'FlashRemoteControl', PrintConv => \%flashRemoteControlZ7, Unknown => 1 },
|
|
10915
|
+
#480 => { Name => 'FlashWirelessOption', PrintConv => \%flashWirelessOptionZ7, Unknown => 1 },
|
|
10916
|
+
552 => { Name => 'AFAreaMode', RawConv => '$$self{AFAreaMode} = $val', PrintConv => \%aFAreaModeZ9},
|
|
10917
|
+
554 => { Name => 'VRMode', PrintConv => \%vRModeZ9},
|
|
10918
|
+
558 => {
|
|
10919
|
+
Name => 'BracketSet',
|
|
10920
|
+
RawConv => '$$self{BracketSet} = $val',
|
|
10921
|
+
PrintConv => \%bracketSetZ9,
|
|
10922
|
+
},
|
|
10923
|
+
560 => {
|
|
10924
|
+
Name => 'BracketProgram',
|
|
10925
|
+
Condition => '$$self{BracketSet} < 3',
|
|
10926
|
+
Notes => 'AE and/or Flash Bracketing',
|
|
10927
|
+
PrintConv => \%bracketProgramZ9,
|
|
10928
|
+
},
|
|
10929
|
+
562 => {
|
|
10930
|
+
Name => 'BracketIncrement',
|
|
10931
|
+
Condition => '$$self{BracketSet} < 3',
|
|
10932
|
+
Notes => 'AE and/or Flash Bracketing',
|
|
10933
|
+
PrintConv => \%bracketIncrementZ9,
|
|
10934
|
+
},
|
|
10935
|
+
574 => { Name => 'HDR', RawConv => '$$self{HDR} = $val', PrintConv => \%multipleExposureModeZ9 },
|
|
10936
|
+
580 => { Name => 'SecondarySlotFunction', PrintConv => \%secondarySlotFunctionZ9 },
|
|
10937
|
+
586 => { Name => 'HDRLevel', Condition => '$$self{HDR} ne 0', PrintConv => \%hdrLevelZ8 },
|
|
10938
|
+
590 => { Name => 'Slot2JpgSize', PrintConv => { 0 => 'Large (8256x5504)', 1 => 'Medium (6192x4128)', 2 => 'Small (4128x2752)' }, Unknown => 1},
|
|
10939
|
+
596 => { Name => 'DXCropAlert', PrintConv => \%offOn },
|
|
10940
|
+
598 => { Name => 'SubjectDetection', PrintConv => \%subjectDetectionZ9 },
|
|
10941
|
+
600 => {
|
|
10942
|
+
Name => 'DynamicAFAreaSize',
|
|
10943
|
+
Condition => '$$self{AFAreaMode} == 2',
|
|
10944
|
+
RawConv => '$$self{DynamicAFAreaSize} = $val',
|
|
10945
|
+
PrintConv => \%dynamicAfAreaModesZ9,
|
|
10946
|
+
},
|
|
10947
|
+
640 => { Name => 'HighFrequencyFlickerReduction', PrintConv => \%offOn, Unknown => 1 }, # new with firmware 3.0
|
|
10948
|
+
650 => {
|
|
10949
|
+
Name => 'MovieImageArea',
|
|
10950
|
+
Unknown => 1,
|
|
10951
|
+
Mask => 0x01, # without the mask 4 => 'FX' 5 => DX only the 2nd Z-series field encountered with a mask.
|
|
10952
|
+
PrintConv => \%imageAreaZ9b,
|
|
10953
|
+
},
|
|
10954
|
+
660 => { Name => 'MovieType', PrintConv => \%movieTypeZ9, Unknown => 1 },
|
|
10955
|
+
662 => {
|
|
10956
|
+
Name => 'MovieISOAutoHiLimit',
|
|
10957
|
+
Format => 'int16u',
|
|
10958
|
+
Unknown => 1,
|
|
10959
|
+
ValueConv => '($val-104)/8',
|
|
10960
|
+
ValueConvInv => '8 * ($val + 104)',
|
|
10961
|
+
PrintConv => \%iSOAutoHiLimitZ7,
|
|
10962
|
+
},
|
|
10963
|
+
664 => { Name => 'MovieISOAutoControlManualMode', PrintConv => \%offOn, Unknown => 1 },
|
|
10964
|
+
666 => {
|
|
10965
|
+
Name => 'MovieISOAutoManualMode',
|
|
10966
|
+
Format => 'int16u',
|
|
10967
|
+
Unknown => 1,
|
|
10968
|
+
ValueConv => '($val-104)/8',
|
|
10969
|
+
ValueConvInv => '8 * ($val + 104)',
|
|
10970
|
+
PrintConv => \%iSOAutoHiLimitZ7,
|
|
10971
|
+
},
|
|
10972
|
+
740 => { Name => 'MovieActiveD-Lighting', PrintConv => \%activeDLightingZ7, Unknown => 1 },
|
|
10973
|
+
742 => { Name => 'MovieHighISONoiseReduction', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
|
|
10974
|
+
748 => { Name => 'MovieFlickerReduction', PrintConv => \%movieFlickerReductionZ9 },
|
|
10975
|
+
750 => { Name => 'MovieMeteringMode', PrintConv => \%meteringModeZ7, Unknown => 1 },
|
|
10976
|
+
752 => { Name => 'MovieFocusMode', PrintConv => \%focusModeZ7, Unknown => 1 },
|
|
10977
|
+
754 => { Name => 'MovieAFAreaMode', PrintConv => \%aFAreaModeZ9 },
|
|
10978
|
+
756 => { Name => 'MovieVRMode', PrintConv => \%vRModeZ9, Unknown => 1 },
|
|
10979
|
+
760 => { Name => 'MovieElectronicVR', PrintConv => \%offOn, Unknown => 1 }, # distinct from MoveieVRMode
|
|
10980
|
+
762 => { Name => 'MovieSoundRecording', PrintConv => { 0 => 'Off', 1 => 'Auto', 2 => 'Manual' }, Unknown => 1 },
|
|
10981
|
+
764 => { Name => 'MicrophoneSensitivity', Unknown => 1 }, # 1-20
|
|
10982
|
+
766 => { Name => 'MicrophoneAttenuator', PrintConv => \%offOn, Unknown => 1 }, # distinct from MoveieVRMode
|
|
10983
|
+
768 => { Name => 'MicrophoneFrequencyResponse',PrintConv => { 0 => 'Wide Range', 1 => 'Vocal Range' }, Unknown => 1 },
|
|
10984
|
+
770 => { Name => 'WindNoiseReduction', PrintConv => \%offOn, Unknown => 1 },
|
|
10985
|
+
792 => { Name => 'MovieToneMap', PrintConv => \%movieToneMapZ9, Unknown => 1 },
|
|
10986
|
+
798 => { Name => 'MovieFrameSize', PrintConv => \%movieFrameSizeZ9, Unknown => 1 },
|
|
10987
|
+
800 => { Name => 'MovieFrameRate', PrintConv => \%movieFrameRateZ7, Unknown => 1 },
|
|
10988
|
+
806 => { Name => 'MicrophoneJackPower', PrintConv => \%offOn, Unknown => 1 },
|
|
10989
|
+
807 => { Name => 'MovieDXCropAlert', PrintConv => \%offOn, Unknown => 1 },
|
|
10990
|
+
808 => { Name => 'MovieSubjectDetection', PrintConv => \%subjectDetectionZ9, Unknown => 1 },
|
|
10991
|
+
816 => { Name => 'MovieHighResZoom', PrintConv => \%offOn, Unknown => 1 },
|
|
10992
|
+
851 => {
|
|
10993
|
+
Name => 'CustomSettingsZ9v4',
|
|
10994
|
+
Format => 'undef[632]',
|
|
10995
|
+
SubDirectory => { TagTable => 'Image::ExifTool::NikonCustom::SettingsZ9v4' },
|
|
10996
|
+
},
|
|
10997
|
+
1502 => { Name => 'Language', PrintConv => \%languageZ9, Unknown => 1 },
|
|
10998
|
+
1504 => { Name => 'TimeZone', PrintConv => \%timeZoneZ9 },
|
|
10999
|
+
1510 => { Name => 'MonitorBrightness', PrintConv => \%monitorBrightnessZ9, Unknown => 1 }, # settings: -5 to +5. Added with firmware 3.0: Lo1, Lo2, Hi1, Hi2
|
|
11000
|
+
1532 => { Name => 'AFFineTune', PrintConv => \%offOn, Unknown => 1 },
|
|
11001
|
+
1536 => { Name => 'NonCPULens1FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1}, #should probably hide altogther if $val is 0
|
|
11002
|
+
1540 => { Name => 'NonCPULens2FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11003
|
+
1542 => { Name => 'NonCPULens3FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11004
|
+
1548 => { Name => 'NonCPULens4FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11005
|
+
1552 => { Name => 'NonCPULens5FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11006
|
+
1556 => { Name => 'NonCPULens6FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11007
|
+
1560 => { Name => 'NonCPULens7FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11008
|
+
1564 => { Name => 'NonCPULens8FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11009
|
+
1568 => { Name => 'NonCPULens9FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11010
|
+
1572 => { Name => 'NonCPULens10FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11011
|
+
1576 => { Name => 'NonCPULens11FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11012
|
+
1580 => { Name => 'NonCPULens12FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11013
|
+
1584 => { Name => 'NonCPULens13FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11014
|
+
1588 => { Name => 'NonCPULens14FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11015
|
+
1592 => { Name => 'NonCPULens15FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11016
|
+
1596 => { Name => 'NonCPULens16FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11017
|
+
1600 => { Name => 'NonCPULens17FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11018
|
+
1604 => { Name => 'NonCPULens18FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11019
|
+
1608 => { Name => 'NonCPULens19FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11020
|
+
1612 => { Name => 'NonCPULens20FocalLength', Format => 'int16s', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
|
11021
|
+
1616 => { Name => 'NonCPULens1MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1}, #non-CPU aperture interface, values and storage differ from the Z8
|
|
11022
|
+
1620 => { Name => 'NonCPULens2MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11023
|
+
1624 => { Name => 'NonCPULens3MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11024
|
+
1628 => { Name => 'NonCPULens4MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11025
|
+
1632 => { Name => 'NonCPULens5MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11026
|
+
1636 => { Name => 'NonCPULens6MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11027
|
+
1640 => { Name => 'NonCPULens7MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11028
|
+
1644 => { Name => 'NonCPULens8MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11029
|
+
1648 => { Name => 'NonCPULens9MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11030
|
+
1652 => { Name => 'NonCPULens10MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11031
|
+
1656 => { Name => 'NonCPULens11MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11032
|
+
1660 => { Name => 'NonCPULens12MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11033
|
+
1664 => { Name => 'NonCPULens13MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11034
|
+
1668 => { Name => 'NonCPULens14MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11035
|
+
1672 => { Name => 'NonCPULens15MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11036
|
+
1676 => { Name => 'NonCPULens16MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11037
|
+
1680 => { Name => 'NonCPULens17MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11038
|
+
1684 => { Name => 'NonCPULens18MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11039
|
+
1688 => { Name => 'NonCPULens19MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11040
|
+
1692 => { Name => 'NonCPULens20MaxAperture', Format => 'int16s', PrintConv => 'sprintf("f/%.1f",$val/100)', Unknown => 1},
|
|
11041
|
+
1708 => { Name => 'HDMIOutputResolution', PrintConv => \%hDMIOutputResolutionZ9 },
|
|
11042
|
+
1721 => { Name => 'SetClockFromLocationData', PrintConv => \%offOn, Unknown => 1 },
|
|
11043
|
+
1728 => { Name => 'AirplaneMode', PrintConv => \%offOn, Unknown => 1 },
|
|
11044
|
+
1729 => { Name => 'EmptySlotRelease', PrintConv => { 0 => 'Disable Release', 1 => 'Enable Release' }, Unknown => 1 },
|
|
11045
|
+
1764 => { Name => 'EnergySavingMode', PrintConv => \%offOn, Unknown => 1 },
|
|
11046
|
+
1788 => { Name => 'RecordLocationData', PrintConv => \%offOn, Unknown => 1 },
|
|
11047
|
+
1792 => { Name => 'USBPowerDelivery', PrintConv => \%offOn, Unknown => 1 },
|
|
11048
|
+
1801 => { Name => 'SensorShield', PrintConv => { 0 => 'Stays Open', 1 => 'Closes' }, Unknown => 1 },
|
|
11049
|
+
1866 => {
|
|
11050
|
+
Name => 'AutoCapturePreset',
|
|
11051
|
+
PrintConv => {
|
|
11052
|
+
0 => '1',
|
|
11053
|
+
1 => '2',
|
|
11054
|
+
2 => '3',
|
|
11055
|
+
3 => '4',
|
|
11056
|
+
4 => '5',
|
|
11057
|
+
},
|
|
11058
|
+
},
|
|
11059
|
+
1868 => {
|
|
11060
|
+
Name => 'FocusShiftAutoReset',
|
|
11061
|
+
Unknown => 1,
|
|
11062
|
+
PrintConv => \%offOn,
|
|
11063
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
|
11064
|
+
},
|
|
11065
|
+
1926 => { #CSd4-a
|
|
11066
|
+
Name => 'PreReleaseBurstLength',
|
|
11067
|
+
PrintConv => {
|
|
11068
|
+
0 => 'None',
|
|
11069
|
+
1 => '0.3 Sec',
|
|
11070
|
+
2 => '0.5 Sec',
|
|
11071
|
+
3 => '1 Sec',
|
|
11072
|
+
},
|
|
11073
|
+
},
|
|
11074
|
+
1928 => { #CSd4-b
|
|
11075
|
+
Name => 'PostReleaseBurstLength',
|
|
11076
|
+
PrintConv => {
|
|
11077
|
+
0 => '1 Sec',
|
|
11078
|
+
1 => '2 Sec',
|
|
11079
|
+
2 => '3 Sec',
|
|
11080
|
+
3 => 'Max',
|
|
11081
|
+
},
|
|
11082
|
+
},
|
|
11083
|
+
1942 => { Name => 'VerticalISOButton', %buttonsZ9}, #CSf2
|
|
11084
|
+
1944 => { Name => 'ExposureCompensationButton', %buttonsZ9}, #CSf2
|
|
11085
|
+
1946 => { Name => 'ISOButton', %buttonsZ9}, #CSf2
|
|
11086
|
+
2006 => { Name => 'ViewModeShowEffectsOfSettings', PrintConv => { 0=>'Always', 1=> 'Only When Flash Not Used'}, Unknown => 1 }, #CSd9-a
|
|
11087
|
+
2008 => { Name => 'DispButton', %buttonsZ9}, #CSf2
|
|
11088
|
+
2052 => { #CSd6
|
|
11089
|
+
Name => 'ExposureDelay',
|
|
11090
|
+
Format => 'fixed32u',
|
|
11091
|
+
PrintConv => '$val ? sprintf("%.1f sec",$val/1000) : "Off"',
|
|
11092
|
+
},
|
|
11093
|
+
2056 => { #CSf2-m3
|
|
11094
|
+
Name => 'CommandDialFrameAdvanceZoom',
|
|
11095
|
+
Condition => '$$self{FirmwareVersion} and $$self{FirmwareVersion} ge "05.00"',
|
|
11096
|
+
PrintConv => \%dialsFrameAdvanceZoomPositionZ9,
|
|
11097
|
+
Unknown => 1
|
|
11098
|
+
},
|
|
11099
|
+
2058 => { #CSf2-n3
|
|
11100
|
+
Name => 'SubCommandDialFrameAdvanceZoom',
|
|
11101
|
+
Condition => '$$self{FirmwareVersion} and $$self{FirmwareVersion} ge "05.00"',
|
|
11102
|
+
PrintConv => \%dialsFrameAdvanceZoomPositionZ9,
|
|
11103
|
+
Unknown => 1
|
|
11104
|
+
},
|
|
11105
|
+
2060 => { Name => 'PlaybackButton', %buttonsZ9}, #CSf2
|
|
11106
|
+
2062 => { Name => 'WBButton', %buttonsZ9}, #CSf2
|
|
11107
|
+
2064 => { Name => 'BracketButton', %buttonsZ9}, #CSf2
|
|
11108
|
+
2066 => { Name => 'FlashModeButton', %buttonsZ9}, #CSf2
|
|
11109
|
+
2068 => { Name => 'LensFunc1ButtonPlaybackMode', %buttonsZ9}, #CSf2
|
|
11110
|
+
2070 => { Name => 'LensFunc2ButtonPlaybackMode', %buttonsZ9}, #CSf2
|
|
11111
|
+
2072 => { Name => 'PlaybackButtonPlaybackMode', %buttonsZ9}, #CSf2
|
|
11112
|
+
2074 => { Name => 'BracketButtonPlaybackMode', %buttonsZ9}, #CSf2
|
|
11113
|
+
2076 => { Name => 'FlashModeButtonPlaybackMode', %buttonsZ9}, #CSf2
|
|
11114
|
+
);
|
|
11115
|
+
|
|
10768
11116
|
# Flash information (ref JD)
|
|
10769
11117
|
%Image::ExifTool::Nikon::FlashInfo0100 = (
|
|
10770
11118
|
%binaryDataAttrs,
|
|
@@ -12100,7 +12448,6 @@ my %nikonFocalConversions = (
|
|
|
12100
12448
|
3 => 'On (Required)',
|
|
12101
12449
|
},
|
|
12102
12450
|
},
|
|
12103
|
-
#0x10 Degree of radial distortion correction polynomial? (always 4? - decodes for the first 3 coefficients follow, the 4th at 0x2c/0x30 seems to always be 0)
|
|
12104
12451
|
0x14 => {
|
|
12105
12452
|
Name => 'RadialDistortionCoefficient1',
|
|
12106
12453
|
Format => 'rational64s',
|
|
@@ -13158,7 +13505,7 @@ sub ProcessNikonAVI($$$)
|
|
|
13158
13505
|
#------------------------------------------------------------------------------
|
|
13159
13506
|
# Print conversion for Nikon AF points
|
|
13160
13507
|
# Inputs: 0) value to convert (as a string of hex bytes),
|
|
13161
|
-
# 1) lookup for AF point bit number (starting at 1)
|
|
13508
|
+
# 1) lookup for AF point bit number (starting at 1), or array ref
|
|
13162
13509
|
sub PrintAFPoints($$)
|
|
13163
13510
|
{
|
|
13164
13511
|
my ($val, $afPoints) = @_;
|
|
@@ -13170,7 +13517,7 @@ sub PrintAFPoints($$)
|
|
|
13170
13517
|
next unless $dat[$i];
|
|
13171
13518
|
for ($j=0; $j<8; ++$j) {
|
|
13172
13519
|
next unless $dat[$i] & (1 << $j);
|
|
13173
|
-
my $point = $$afPoints{$i*8
|
|
13520
|
+
my $point = ref $afPoints eq 'HASH' ? $$afPoints{$i*8+$j+1} : $$afPoints[$i*8+$j];
|
|
13174
13521
|
push @points, $point if defined $point;
|
|
13175
13522
|
}
|
|
13176
13523
|
}
|
|
@@ -13185,17 +13532,21 @@ sub PrintAFPoints($$)
|
|
|
13185
13532
|
|
|
13186
13533
|
#------------------------------------------------------------------------------
|
|
13187
13534
|
# Inverse print conversion for AF points
|
|
13188
|
-
# Inputs: 0) AF point string, 1) AF point
|
|
13535
|
+
# Inputs: 0) AF point string, 1) AF point hash or array ref
|
|
13189
13536
|
# Returns: AF point data as a string of hex bytes
|
|
13190
13537
|
sub PrintAFPointsInv($$)
|
|
13191
13538
|
{
|
|
13192
13539
|
my ($val, $afPoints) = @_;
|
|
13193
13540
|
my @points = ($val =~ /[A-Za-z]\d+/g);
|
|
13194
|
-
my $size = int((scalar(keys %$afPoints) + 7) / 8);
|
|
13541
|
+
my $size = int((scalar(ref $afPoints eq 'HASH' ? keys %$afPoints : @$afPoints) + 7) / 8);
|
|
13195
13542
|
my @dat = (0) x $size;
|
|
13196
13543
|
if (@points) {
|
|
13197
13544
|
my (%bitNum, $point);
|
|
13198
|
-
|
|
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
|
+
}
|
|
13199
13550
|
foreach $point (@points) {
|
|
13200
13551
|
my $bitNum = $bitNum{uc $point} or next;
|
|
13201
13552
|
my $byte = int(($bitNum - 1) / 8);
|
|
@@ -13609,7 +13960,10 @@ sub ProcessNikonMOV($$$)
|
|
|
13609
13960
|
Size => $size,
|
|
13610
13961
|
Base => $$dirInfo{Base},
|
|
13611
13962
|
);
|
|
13612
|
-
|
|
13963
|
+
if ($key) {
|
|
13964
|
+
$$et{TAG_EXTRA}{$key}{Rational} = $rational if $rational;
|
|
13965
|
+
$$et{TAG_EXTRA}{$key}{BinVal} = substr($$dataPt, $pos, $size) if $$et{OPTIONS}{SaveBin};
|
|
13966
|
+
}
|
|
13613
13967
|
} elsif (exists $needTags{$tag}) {
|
|
13614
13968
|
$needTags{$tag} = ReadValue($dataPt, $pos, $fmtStr, $count, $size);
|
|
13615
13969
|
$$et{NikonSerialKey} = SerialKey($et, $needTags{0x110a431});
|
|
@@ -14088,7 +14442,7 @@ Nikon maker notes in EXIF information.
|
|
|
14088
14442
|
|
|
14089
14443
|
=head1 AUTHOR
|
|
14090
14444
|
|
|
14091
|
-
Copyright 2003-
|
|
14445
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
14092
14446
|
|
|
14093
14447
|
This library is free software; you can redistribute it and/or modify it
|
|
14094
14448
|
under the same terms as Perl itself.
|