exiftool-vendored.pl 12.50.0 → 12.55.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 +81 -3
- package/bin/MANIFEST +2 -0
- package/bin/META.json +1 -1
- package/bin/META.yml +1 -1
- package/bin/README +3 -3
- package/bin/exiftool +15 -12
- package/bin/fmt_files/kml_track.fmt +3 -3
- package/bin/lib/File/RandomAccess.pm +1 -1
- package/bin/lib/File/RandomAccess.pod +2 -2
- package/bin/lib/Image/ExifTool/AES.pm +1 -1
- package/bin/lib/Image/ExifTool/AFCP.pm +1 -1
- package/bin/lib/Image/ExifTool/AIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/APE.pm +1 -1
- package/bin/lib/Image/ExifTool/APP12.pm +1 -1
- package/bin/lib/Image/ExifTool/ASF.pm +1 -1
- package/bin/lib/Image/ExifTool/Apple.pm +197 -27
- 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 +4 -4
- package/bin/lib/Image/ExifTool/CBOR.pm +1 -1
- package/bin/lib/Image/ExifTool/Canon.pm +14 -2
- 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 +9 -9
- package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- package/bin/lib/Image/ExifTool/Casio.pm +4 -4
- 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 +1 -1
- 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 +1 -1
- package/bin/lib/Image/ExifTool/Exif.pm +5 -16
- package/bin/lib/Image/ExifTool/FITS.pm +1 -1
- package/bin/lib/Image/ExifTool/FLAC.pm +1 -1
- package/bin/lib/Image/ExifTool/FLIF.pm +1 -1
- package/bin/lib/Image/ExifTool/FLIR.pm +7 -6
- 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 +1 -1
- package/bin/lib/Image/ExifTool/Font.pm +1 -1
- package/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
- package/bin/lib/Image/ExifTool/FujiFilm.pm +21 -13
- package/bin/lib/Image/ExifTool/GE.pm +1 -1
- package/bin/lib/Image/ExifTool/GIF.pm +1 -1
- package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
- package/bin/lib/Image/ExifTool/GPS.pm +12 -6
- package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
- package/bin/lib/Image/ExifTool/Geotag.pm +25 -8
- package/bin/lib/Image/ExifTool/GoPro.pm +1 -1
- package/bin/lib/Image/ExifTool/H264.pm +1 -1
- package/bin/lib/Image/ExifTool/HP.pm +1 -1
- 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 +1 -1
- package/bin/lib/Image/ExifTool/ICO.pm +1 -1
- package/bin/lib/Image/ExifTool/ID3.pm +1 -1
- package/bin/lib/Image/ExifTool/IPTC.pm +1 -1
- 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 +1 -1
- package/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- package/bin/lib/Image/ExifTool/JPEG.pm +2 -1
- 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 +35 -8
- 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 +1 -1
- package/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/de.pm +2 -2
- 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 +6016 -760
- 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 +1806 -0
- 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/Lytro.pm +1 -1
- package/bin/lib/Image/ExifTool/M2TS.pm +1 -1
- package/bin/lib/Image/ExifTool/MIE.pm +1 -1
- 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 +1 -1
- package/bin/lib/Image/ExifTool/MacOS.pm +1 -1
- package/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
- package/bin/lib/Image/ExifTool/Matroska.pm +262 -46
- package/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
- 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 +687 -280
- package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- package/bin/lib/Image/ExifTool/NikonCustom.pm +140 -107
- 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 +1 -1
- package/bin/lib/Image/ExifTool/Ogg.pm +1 -1
- package/bin/lib/Image/ExifTool/Olympus.pm +4 -3
- 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 +1 -1
- 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 +12 -7
- package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
- package/bin/lib/Image/ExifTool/PNG.pm +9 -2
- package/bin/lib/Image/ExifTool/PPM.pm +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/bin/lib/Image/ExifTool/PostScript.pm +1 -1
- package/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
- package/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
- package/bin/lib/Image/ExifTool/QuickTime.pm +26 -7
- package/bin/lib/Image/ExifTool/QuickTimeStream.pl +166 -39
- package/bin/lib/Image/ExifTool/README +5 -1
- package/bin/lib/Image/ExifTool/RIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/RSRC.pm +1 -1
- package/bin/lib/Image/ExifTool/RTF.pm +1 -1
- 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 +1 -1
- package/bin/lib/Image/ExifTool/Samsung.pm +3 -1
- 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 +7 -7
- 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 +13 -8
- package/bin/lib/Image/ExifTool/TagLookup.pm +4608 -4512
- package/bin/lib/Image/ExifTool/TagNames.pod +323 -43
- package/bin/lib/Image/ExifTool/Text.pm +1 -1
- package/bin/lib/Image/ExifTool/Theora.pm +1 -1
- package/bin/lib/Image/ExifTool/Torrent.pm +1 -1
- package/bin/lib/Image/ExifTool/Unknown.pm +1 -1
- package/bin/lib/Image/ExifTool/VCard.pm +1 -1
- package/bin/lib/Image/ExifTool/Validate.pm +1 -1
- package/bin/lib/Image/ExifTool/Vorbis.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 +14 -1
- package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePDF.pl +5 -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 +30 -14
- package/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
- package/bin/lib/Image/ExifTool/WriteXMP.pl +16 -2
- package/bin/lib/Image/ExifTool/Writer.pl +35 -15
- package/bin/lib/Image/ExifTool/XMP.pm +23 -3
- package/bin/lib/Image/ExifTool/XMP2.pl +20 -1
- package/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- package/bin/lib/Image/ExifTool/ZIP.pm +20 -8
- package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- package/bin/lib/Image/ExifTool/iWork.pm +1 -1
- package/bin/lib/Image/ExifTool.pm +38 -16
- package/bin/lib/Image/ExifTool.pod +39 -38
- package/bin/perl-Image-ExifTool.spec +1 -1
- package/bin/pp_build_exe.args +6 -5
- package/package.json +4 -4
|
@@ -64,7 +64,7 @@ use Image::ExifTool::Exif;
|
|
|
64
64
|
use Image::ExifTool::GPS;
|
|
65
65
|
use Image::ExifTool::XMP;
|
|
66
66
|
|
|
67
|
-
$VERSION = '4.
|
|
67
|
+
$VERSION = '4.17';
|
|
68
68
|
|
|
69
69
|
sub LensIDConv($$$);
|
|
70
70
|
sub ProcessNikonAVI($$$);
|
|
@@ -369,6 +369,7 @@ sub GetAFPointGrid($$;$);
|
|
|
369
369
|
'48 54 3E 3E 0C 0C 4B 06' => 'Sigma 30mm F1.4 EX DC HSM',
|
|
370
370
|
'F8 54 3E 3E 0C 0C 4B 06' => 'Sigma 30mm F1.4 EX DC HSM', #JD
|
|
371
371
|
'91 54 44 44 0C 0C 4B 06' => 'Sigma 35mm F1.4 DG HSM', #30
|
|
372
|
+
'BD 54 48 48 0C 0C 4B 46' => 'Sigma 40mm F1.4 DG HSM | A', #30
|
|
372
373
|
'DE 54 50 50 0C 0C 4B 06' => 'Sigma 50mm F1.4 EX DG HSM',
|
|
373
374
|
'88 54 50 50 0C 0C 4B 06' => 'Sigma 50mm F1.4 DG HSM | A',
|
|
374
375
|
'02 48 50 50 24 24 02 00' => 'Sigma Macro 50mm F2.8', #https://exiftool.org/forum/index.php/topic,4027.0.html
|
|
@@ -382,6 +383,7 @@ sub GetAFPointGrid($$;$);
|
|
|
382
383
|
'32 54 6A 6A 24 24 35 02.2' => 'Sigma Macro 105mm F2.8 EX DG', #JD
|
|
383
384
|
'E5 54 6A 6A 24 24 35 02' => 'Sigma Macro 105mm F2.8 EX DG',
|
|
384
385
|
'97 48 6A 6A 24 24 4B 0E' => 'Sigma Macro 105mm F2.8 EX DG OS HSM',
|
|
386
|
+
'BE 54 6A 6A 0C 0C 4B 46' => 'Sigma 105mm F1.4 DG HSM | A', #30
|
|
385
387
|
'48 48 76 76 24 24 4B 06' => 'Sigma APO Macro 150mm F2.8 EX DG HSM',
|
|
386
388
|
'F5 48 76 76 24 24 4B 06' => 'Sigma APO Macro 150mm F2.8 EX DG HSM', #24
|
|
387
389
|
'99 48 76 76 24 24 4B 0E' => 'Sigma APO Macro 150mm F2.8 EX DG OS HSM', #(Christian Hesse)
|
|
@@ -437,7 +439,7 @@ sub GetAFPointGrid($$;$);
|
|
|
437
439
|
'90 40 2D 80 2C 40 4B 0E' => 'Sigma 18-200mm F3.5-6.3 II DC OS HSM', #JohnHelour
|
|
438
440
|
'89 30 2D 80 2C 40 4B 0E' => 'Sigma 18-200mm F3.5-6.3 DC Macro OS HS | C', #JoeSchonberg
|
|
439
441
|
'A5 40 2D 88 2C 40 4B 0E' => 'Sigma 18-250mm F3.5-6.3 DC OS HSM',
|
|
440
|
-
|
|
442
|
+
# LensFStops varies with FocalLength for this lens (ref 2):
|
|
441
443
|
'92 2C 2D 88 2C 40 4B 0E' => 'Sigma 18-250mm F3.5-6.3 DC Macro OS HSM', #2
|
|
442
444
|
'87 2C 2D 8E 2C 40 4B 0E' => 'Sigma 18-300mm F3.5-6.3 DC Macro HSM', #30
|
|
443
445
|
# '92 2C 2D 88 2C 40 4B 0E' (250mm)
|
|
@@ -615,6 +617,7 @@ sub GetAFPointGrid($$;$);
|
|
|
615
617
|
#
|
|
616
618
|
'00 40 2B 2B 2C 2C 00 02' => 'Tokina AT-X 17 AF PRO (AF 17mm f/3.5)',
|
|
617
619
|
'00 47 44 44 24 24 00 06' => 'Tokina AT-X M35 PRO DX (AF 35mm f/2.8 Macro)',
|
|
620
|
+
'8D 54 68 68 24 24 87 02' => 'Tokina AT-X PRO 100mm F2.8 D Macro', #30
|
|
618
621
|
'00 54 68 68 24 24 00 02' => 'Tokina AT-X M100 AF PRO D (AF 100mm f/2.8 Macro)',
|
|
619
622
|
'27 48 8E 8E 30 30 1D 02' => 'Tokina AT-X 304 AF (AF 300mm f/4.0)',
|
|
620
623
|
'00 54 8E 8E 24 24 00 02' => 'Tokina AT-X 300 AF PRO (AF 300mm f/2.8)',
|
|
@@ -807,6 +810,7 @@ my %flashColorFilter = (
|
|
|
807
810
|
66 => 'Blue',
|
|
808
811
|
67 => 'Yellow',
|
|
809
812
|
68 => 'Amber',
|
|
813
|
+
128 => 'Incandescent', #SZ-4TN Incandescent
|
|
810
814
|
);
|
|
811
815
|
|
|
812
816
|
# flash control mode values (ref JD)
|
|
@@ -829,6 +833,53 @@ my %activeDLightingZ7 = (
|
|
|
829
833
|
5 => 'Extra High',
|
|
830
834
|
);
|
|
831
835
|
|
|
836
|
+
my %aFAreaModeZ9 = (
|
|
837
|
+
0 => 'Pinpoint',
|
|
838
|
+
1 => 'Single',
|
|
839
|
+
2 => 'Dynamic',
|
|
840
|
+
3 => 'Wide (S)',
|
|
841
|
+
4 => 'Wide (L)',
|
|
842
|
+
5 => '3D',
|
|
843
|
+
6 => 'Auto',
|
|
844
|
+
11 => 'Subject Tracking',
|
|
845
|
+
12 => 'Wide (C1)',
|
|
846
|
+
13 => 'Wide (C2)',
|
|
847
|
+
);
|
|
848
|
+
|
|
849
|
+
my %banksZ9 = (
|
|
850
|
+
0 => 'A',
|
|
851
|
+
1 => 'B',
|
|
852
|
+
2 => 'C',
|
|
853
|
+
3 => 'D',
|
|
854
|
+
);
|
|
855
|
+
|
|
856
|
+
my %bracketIncrementZ9 = (
|
|
857
|
+
0 => '0.3',
|
|
858
|
+
#1 => '0.5',
|
|
859
|
+
2 => '0.7',
|
|
860
|
+
3 => '1.0',
|
|
861
|
+
4 => '2.0',
|
|
862
|
+
5 => '3.0',
|
|
863
|
+
);
|
|
864
|
+
|
|
865
|
+
my %bracketSetZ9 = (
|
|
866
|
+
0 => 'AE/Flash',
|
|
867
|
+
1 => 'AE',
|
|
868
|
+
2 => 'Flash',
|
|
869
|
+
3 => 'White Balance',
|
|
870
|
+
4 => 'Active-D Lighting',
|
|
871
|
+
);
|
|
872
|
+
|
|
873
|
+
my %bracketProgramZ9 = (
|
|
874
|
+
0 => 'Disabled',
|
|
875
|
+
2 => '2F',
|
|
876
|
+
3 => '3F',
|
|
877
|
+
4 => '4F',
|
|
878
|
+
5 => '5F',
|
|
879
|
+
7 => '7F',
|
|
880
|
+
9 => '9F',
|
|
881
|
+
);
|
|
882
|
+
|
|
832
883
|
my %flashControlModeZ7 = (
|
|
833
884
|
0 => 'TTL',
|
|
834
885
|
1 => 'Auto External Flash',
|
|
@@ -857,6 +908,29 @@ my %focusModeZ7 = (
|
|
|
857
908
|
4 => 'AF-F', # full frame
|
|
858
909
|
);
|
|
859
910
|
|
|
911
|
+
my %hDMIOutputResolutionZ9 = (
|
|
912
|
+
0 => 'Auto',
|
|
913
|
+
1 => '4320p',
|
|
914
|
+
2 => '2160p',
|
|
915
|
+
3 => '1080p',
|
|
916
|
+
#4 => '1080i',
|
|
917
|
+
5 => '720p',
|
|
918
|
+
#6 => '576p',
|
|
919
|
+
#7 => '480p',
|
|
920
|
+
);
|
|
921
|
+
|
|
922
|
+
my %imageAreaZ9 = (
|
|
923
|
+
0 => 'FX',
|
|
924
|
+
1 => 'DX',
|
|
925
|
+
4 => '16:9',
|
|
926
|
+
8 => '1:1',
|
|
927
|
+
);
|
|
928
|
+
|
|
929
|
+
my %imageAreaZ9b = (
|
|
930
|
+
0 => 'FX',
|
|
931
|
+
1 => 'DX',
|
|
932
|
+
);
|
|
933
|
+
|
|
860
934
|
my %infoZSeries = (
|
|
861
935
|
Condition => '$$self{Model} =~ /^NIKON Z (5|50|6|6_2|7|7_2|fc|9)\b/i',
|
|
862
936
|
Notes => 'Z Series cameras thru December 2021',
|
|
@@ -895,6 +969,66 @@ my %iSOAutoHiLimitZ7 = (
|
|
|
895
969
|
32 => 'ISO Hi 2.0',
|
|
896
970
|
);
|
|
897
971
|
|
|
972
|
+
my %iSOAutoShutterTimeZ9 = (
|
|
973
|
+
-15 => 'Auto', #z9 firmware 1.00 maps both 'Auto' and '30 s' to -15
|
|
974
|
+
-12 => '15 s',
|
|
975
|
+
-9 => '8 s',
|
|
976
|
+
-6 => '4 s',
|
|
977
|
+
-3 => '2 s',
|
|
978
|
+
0 => '1 s',
|
|
979
|
+
1 => '1/1.3 s',
|
|
980
|
+
2 => '1/1.6 s',
|
|
981
|
+
3 => '1/2 s',
|
|
982
|
+
4 => '1/2.5 s',
|
|
983
|
+
5 => '1/3 s',
|
|
984
|
+
6 => '1/4 s',
|
|
985
|
+
7 => '1/5 s',
|
|
986
|
+
8 => '1/6 s',
|
|
987
|
+
9 => '1/8 s',
|
|
988
|
+
10 => '1/10 s',
|
|
989
|
+
11 => '1/13 s',
|
|
990
|
+
12 => '1/15 s',
|
|
991
|
+
13 => '1/20 s',
|
|
992
|
+
14 => '1/25 s',
|
|
993
|
+
15 => '1/30 s',
|
|
994
|
+
16 => '1/40 s',
|
|
995
|
+
17 => '1/50 s',
|
|
996
|
+
18 => '1/60 s',
|
|
997
|
+
19 => '1/80 s',
|
|
998
|
+
20 => '1/100 s',
|
|
999
|
+
21 => '1/120 s',
|
|
1000
|
+
22 => '1/160 s',
|
|
1001
|
+
23 => '1/200 s',
|
|
1002
|
+
24 => '1/250 s',
|
|
1003
|
+
25 => '1/320 s',
|
|
1004
|
+
26 => '1/400 s',
|
|
1005
|
+
27 => '1/500 s',
|
|
1006
|
+
28 => '1/640 s',
|
|
1007
|
+
29 => '1/800 s',
|
|
1008
|
+
30 => '1/1000 s',
|
|
1009
|
+
31 => '1/1250 s',
|
|
1010
|
+
32 => '1/1600 s',
|
|
1011
|
+
33 => '1/2000 s',
|
|
1012
|
+
34 => '1/2500 s',
|
|
1013
|
+
35 => '1/3200 s',
|
|
1014
|
+
36 => '1/4000 s',
|
|
1015
|
+
37 => '1/5000 s',
|
|
1016
|
+
37.5 => '1/6000 s',
|
|
1017
|
+
38 => '1/6400 s',
|
|
1018
|
+
39 => '1/8000 s',
|
|
1019
|
+
40 => '1/10000 s',
|
|
1020
|
+
40.5 => '1/12000 s',
|
|
1021
|
+
41 => '1/13000 s',
|
|
1022
|
+
42 => '1/16000 s',
|
|
1023
|
+
);
|
|
1024
|
+
|
|
1025
|
+
my %languageZ9 = (
|
|
1026
|
+
4 => 'English',
|
|
1027
|
+
5 => 'Spanish',
|
|
1028
|
+
7 => 'French',
|
|
1029
|
+
15 => 'Portuguese'
|
|
1030
|
+
);
|
|
1031
|
+
|
|
898
1032
|
my %meteringModeZ7 = (
|
|
899
1033
|
0 => 'Matrix',
|
|
900
1034
|
1 => 'Center',
|
|
@@ -902,6 +1036,30 @@ my %meteringModeZ7 = (
|
|
|
902
1036
|
3 => 'Highlight'
|
|
903
1037
|
);
|
|
904
1038
|
|
|
1039
|
+
my %monitorBrightnessZ9 = (
|
|
1040
|
+
0 => '-5',
|
|
1041
|
+
1 => '-4',
|
|
1042
|
+
2 => '-3',
|
|
1043
|
+
3 => '-2',
|
|
1044
|
+
4 => '-1',
|
|
1045
|
+
5 => '0',
|
|
1046
|
+
6 => '1',
|
|
1047
|
+
7 => '2',
|
|
1048
|
+
8 => '3',
|
|
1049
|
+
9 => '4',
|
|
1050
|
+
10 => '5',
|
|
1051
|
+
14 => 'Hi1',
|
|
1052
|
+
15 => 'Hi2',
|
|
1053
|
+
16 => 'Lo2',
|
|
1054
|
+
17 => 'Lo1',
|
|
1055
|
+
);
|
|
1056
|
+
|
|
1057
|
+
my %movieFlickerReductionZ9 = (
|
|
1058
|
+
0 => 'Auto',
|
|
1059
|
+
1 => '50Hz',
|
|
1060
|
+
2 => '60Hz',
|
|
1061
|
+
);
|
|
1062
|
+
|
|
905
1063
|
my %movieFrameRateZ7 = (
|
|
906
1064
|
0 => '120p',
|
|
907
1065
|
1 => '100p',
|
|
@@ -912,6 +1070,33 @@ my %movieFrameRateZ7 = (
|
|
|
912
1070
|
6 => '24p',
|
|
913
1071
|
);
|
|
914
1072
|
|
|
1073
|
+
my %movieFrameSizeZ9 = (
|
|
1074
|
+
1 => '1920x1080',
|
|
1075
|
+
2 => '3840x2160',
|
|
1076
|
+
3 => '7680x4320',
|
|
1077
|
+
);
|
|
1078
|
+
|
|
1079
|
+
my %movieToneMapZ9 = (
|
|
1080
|
+
0 => 'SDR',
|
|
1081
|
+
1 => 'HLG',
|
|
1082
|
+
2 => 'N-Log',
|
|
1083
|
+
);
|
|
1084
|
+
|
|
1085
|
+
my %movieTypeZ9 = (
|
|
1086
|
+
1 => 'H.265 8-bit (MP4)',
|
|
1087
|
+
2 => 'H.265 8-bit (MOV)',
|
|
1088
|
+
3 => 'H.265 10-bit (MOV)',
|
|
1089
|
+
4 => 'ProRes 422 HQ 10-bit (MOV)',
|
|
1090
|
+
5 => 'ProRes RAW HQ 12-bit (MOV)',
|
|
1091
|
+
6 => 'NRAW 12-bit (NEV)'
|
|
1092
|
+
);
|
|
1093
|
+
|
|
1094
|
+
my %multipleExposureModeZ9 = (
|
|
1095
|
+
0 => 'Off',
|
|
1096
|
+
1 => 'On',
|
|
1097
|
+
2 => 'On (Series)',
|
|
1098
|
+
);
|
|
1099
|
+
|
|
915
1100
|
my %offLowNormalHighZ7 = (
|
|
916
1101
|
0 => 'Off',
|
|
917
1102
|
1 => 'Low',
|
|
@@ -919,10 +1104,11 @@ my %offLowNormalHighZ7 = (
|
|
|
919
1104
|
3 => 'High',
|
|
920
1105
|
);
|
|
921
1106
|
|
|
922
|
-
my %
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
1107
|
+
my %secondarySlotFunctionZ9 = (
|
|
1108
|
+
0 => 'Overflow',
|
|
1109
|
+
1 => 'Backup',
|
|
1110
|
+
2 => 'NEF Primary + JPG Secondary',
|
|
1111
|
+
3 => 'JPG Primary + JPG Secondary',
|
|
926
1112
|
);
|
|
927
1113
|
|
|
928
1114
|
my %subjectDetectionZ9 = (
|
|
@@ -933,6 +1119,34 @@ my %subjectDetectionZ9 = (
|
|
|
933
1119
|
4 => 'Vehicles',
|
|
934
1120
|
);
|
|
935
1121
|
|
|
1122
|
+
my %timeZoneZ9 = (
|
|
1123
|
+
3 => '+10:00 (Sydney)',
|
|
1124
|
+
5 => '+09:00 (Tokyo)',
|
|
1125
|
+
6 => '+08:00 (Beijing, Honk Kong, Sinapore)',
|
|
1126
|
+
10 => '+05:45 (Kathmandu)',
|
|
1127
|
+
11 => '+05:30 (New Dehli)',
|
|
1128
|
+
12 => '+05:00 (Islamabad)',
|
|
1129
|
+
13 => '+04:30 (Kabul)',
|
|
1130
|
+
14 => '+04:00 (Abu Dhabi)',
|
|
1131
|
+
15 => '+03:30 (Tehran)',
|
|
1132
|
+
16 => '+03:00 (Moscow, Nairobi)',
|
|
1133
|
+
17 => '+02:00 (Athens, Helsinki)',
|
|
1134
|
+
18 => '+01:00 (Madrid, Paris, Berlin)',
|
|
1135
|
+
19 => '+00:00 (London)',
|
|
1136
|
+
20 => '-01:00 (Azores)',
|
|
1137
|
+
21 => '-02:00 (Fernando de Noronha)',
|
|
1138
|
+
22 => '-03:00 (Buenos Aires, Sao Paulo)',
|
|
1139
|
+
23 => '-03:30 (Newfoundland)',
|
|
1140
|
+
24 => '-04:00 (Manaus, Caracas)',
|
|
1141
|
+
25 => '-05:00 (New York, Toronto, Lima)',
|
|
1142
|
+
26 => '-06:00 (Chicago, Mexico City)',
|
|
1143
|
+
27 => '-07:00 (Denver)',
|
|
1144
|
+
28 => '-08:00 (Los Angeles, Vancouver)',
|
|
1145
|
+
29 => '-09:00 (Anchorage)',
|
|
1146
|
+
30 => '-10:00 (Hawaii)',
|
|
1147
|
+
);
|
|
1148
|
+
|
|
1149
|
+
|
|
936
1150
|
my %vRModeZ9 = (
|
|
937
1151
|
0 => 'Off',
|
|
938
1152
|
1 => 'Normal',
|
|
@@ -2091,7 +2305,7 @@ my %base64coord = (
|
|
|
2091
2305
|
TagTable => 'Image::ExifTool::Nikon::ShotInfoZ9',
|
|
2092
2306
|
DecryptStart => 4,
|
|
2093
2307
|
# TODO: eventually set the length dynamically according to actual offsets!
|
|
2094
|
-
DecryptLen => 0xec4b +
|
|
2308
|
+
DecryptLen => 0xec4b + 2196, # decoded thru end of Offset26
|
|
2095
2309
|
ByteOrder => 'LittleEndian',
|
|
2096
2310
|
},
|
|
2097
2311
|
},
|
|
@@ -4078,10 +4292,10 @@ my %base64coord = (
|
|
|
4078
4292
|
$$self{ContrastDetectAF} == 2 and $$self{AFInfo2Version} =~ /^03/ or
|
|
4079
4293
|
$$self{ContrastDetectAF} == 1 and $$self{AFInfo2Version} =~ /^0301/
|
|
4080
4294
|
},
|
|
4081
|
-
Format => 'int16u',
|
|
4295
|
+
Format => 'int16u', # (decodes same byte as 0x2f)
|
|
4082
4296
|
},
|
|
4083
4297
|
0x2f => { #28 (Z7) Still photography range 1-17 for the 493 point Z7 (arranged in a 29x17 grid. Center at x=16, y=10).
|
|
4084
|
-
Name => '
|
|
4298
|
+
Name => 'FocusPositionHorizontal',
|
|
4085
4299
|
Condition => q{
|
|
4086
4300
|
$$self{ContrastDetectAF} == 2 and $$self{AFInfo2Version} =~ /^03/ or
|
|
4087
4301
|
$$self{ContrastDetectAF} == 1 and $$self{AFInfo2Version} =~ /^0301/
|
|
@@ -4095,7 +4309,7 @@ my %base64coord = (
|
|
|
4095
4309
|
$$self{ContrastDetectAF} == 2 and $$self{AFInfo2Version} =~ /^03/ or
|
|
4096
4310
|
$$self{ContrastDetectAF} == 1 and $$self{AFInfo2Version} =~ /^0301/
|
|
4097
4311
|
},
|
|
4098
|
-
Format => 'int16u',
|
|
4312
|
+
Format => 'int16u', # (decodes same byte as 0x31)
|
|
4099
4313
|
},{ #PH (D500, see forum11190)
|
|
4100
4314
|
Name => 'AFPointsInFocus',
|
|
4101
4315
|
Condition => '$$self{AFInfo2Version} eq "0101" and $$self{PhaseDetectAF} == 7',
|
|
@@ -4108,7 +4322,7 @@ my %base64coord = (
|
|
|
4108
4322
|
},
|
|
4109
4323
|
],
|
|
4110
4324
|
0x31 => { #28 (Z7)
|
|
4111
|
-
Name => '
|
|
4325
|
+
Name => 'FocusPositionVertical',
|
|
4112
4326
|
Condition => q{
|
|
4113
4327
|
$$self{ContrastDetectAF} == 2 and $$self{AFInfo2Version} =~ /^03/ or
|
|
4114
4328
|
$$self{ContrastDetectAF} == 1 and $$self{AFInfo2Version} =~ /^0301/
|
|
@@ -4238,6 +4452,21 @@ my %base64coord = (
|
|
|
4238
4452
|
Writable => 0,
|
|
4239
4453
|
RawConv => '$$self{AFInfo2Version} = $val',
|
|
4240
4454
|
},
|
|
4455
|
+
5 => { #28
|
|
4456
|
+
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)
|
|
4457
|
+
PrintConv => {
|
|
4458
|
+
192 => 'Pinpoint',
|
|
4459
|
+
193 => 'Single',
|
|
4460
|
+
195 => 'Wide (S)',
|
|
4461
|
+
196 => 'Wide (L)',
|
|
4462
|
+
197 => 'Auto',
|
|
4463
|
+
204 => 'Dynamic Area (S)',
|
|
4464
|
+
205 => 'Dynamic Area (M)',
|
|
4465
|
+
206 => 'Dynamic Area (L)',
|
|
4466
|
+
207 => '3D-tracking',
|
|
4467
|
+
208 => 'Wide (C1/C2)',
|
|
4468
|
+
},
|
|
4469
|
+
},
|
|
4241
4470
|
0x3e => {
|
|
4242
4471
|
Name => 'AFImageWidth',
|
|
4243
4472
|
Format => 'int16u',
|
|
@@ -4246,6 +4475,11 @@ my %base64coord = (
|
|
|
4246
4475
|
Name => 'AFImageHeight',
|
|
4247
4476
|
Format => 'int16u',
|
|
4248
4477
|
},
|
|
4478
|
+
0x42 => { #28
|
|
4479
|
+
Name => 'AFAreaXPosition', #top left image corner is the origin
|
|
4480
|
+
Format => 'int16u', # (decodes same byte as 0x43)
|
|
4481
|
+
RawConv => '$val ? $val : undef',
|
|
4482
|
+
},
|
|
4249
4483
|
0x43 => {
|
|
4250
4484
|
Name => 'FocusPositionHorizontal',
|
|
4251
4485
|
Notes => q{
|
|
@@ -4257,6 +4491,11 @@ my %base64coord = (
|
|
|
4257
4491
|
# (the 11R (5) position is not used, for a total of 29 columns, ref AlbertShan email)
|
|
4258
4492
|
PrintConv => sub { my ($val) = @_; PrintAFPointsLeftRight($val, 29); },
|
|
4259
4493
|
},
|
|
4494
|
+
0x44 => { #28
|
|
4495
|
+
Name => 'AFAreaYPosition',
|
|
4496
|
+
Format => 'int16u', # (decodes same byte as 0x45)
|
|
4497
|
+
RawConv => '$val ? $val : undef',
|
|
4498
|
+
},
|
|
4260
4499
|
0x45 => {
|
|
4261
4500
|
Name => 'FocusPositionVertical',
|
|
4262
4501
|
# (the 6U (4) and 2D (12) are not used, for a total of 17 rows, ref AlbertShan email)
|
|
@@ -5053,6 +5292,7 @@ my %nikonFocalConversions = (
|
|
|
5053
5292
|
31 => 'Nikkor Z 24-120 f/4', #28
|
|
5054
5293
|
32 => 'Nikkor Z 800mm f/6.3 VR S', #28
|
|
5055
5294
|
36 => 'Nikkor Z 400mm f/4.5 VR S', #IB
|
|
5295
|
+
39 => 'Nikkor Z 17-28mm f/2.8', #IB
|
|
5056
5296
|
},
|
|
5057
5297
|
},
|
|
5058
5298
|
0x35 => { #28
|
|
@@ -8250,15 +8490,26 @@ my %nikonFocalConversions = (
|
|
|
8250
8490
|
# account for variable location of menu settings data
|
|
8251
8491
|
Hook => '$varSize = $$self{MenuSettingsZ9Offset} - 0xec4b',
|
|
8252
8492
|
},
|
|
8253
|
-
0xec4b =>
|
|
8254
|
-
|
|
8255
|
-
|
|
8256
|
-
|
|
8257
|
-
|
|
8258
|
-
|
|
8493
|
+
0xec4b => [
|
|
8494
|
+
{
|
|
8495
|
+
Name => 'MenuSettingsZ9',
|
|
8496
|
+
Condition => '$$self{FirmwareVersion} lt "03.00"',
|
|
8497
|
+
Format => 'undef[1646]',
|
|
8498
|
+
Notes => 'Firmware versions 2.11 and earlier',
|
|
8499
|
+
SubDirectory => {
|
|
8500
|
+
TagTable => 'Image::ExifTool::Nikon::MenuSettingsZ9',
|
|
8501
|
+
},
|
|
8259
8502
|
},
|
|
8260
|
-
|
|
8261
|
-
|
|
8503
|
+
{
|
|
8504
|
+
Name => 'MenuSettingsZ9',
|
|
8505
|
+
Notes => 'Firmware versions 3.0 and later',
|
|
8506
|
+
Format => 'undef[1948]',
|
|
8507
|
+
SubDirectory => {
|
|
8508
|
+
TagTable => 'Image::ExifTool::Nikon::MenuSettingsZ9Firmware3',
|
|
8509
|
+
},
|
|
8510
|
+
},
|
|
8511
|
+
],
|
|
8512
|
+
# note: DecryptLen currently set to 0xec4b + 2196
|
|
8262
8513
|
);
|
|
8263
8514
|
|
|
8264
8515
|
%Image::ExifTool::Nikon::MenuSettingsZ7II = (
|
|
@@ -8366,8 +8617,8 @@ my %nikonFocalConversions = (
|
|
|
8366
8617
|
PrintConv => '$val>0.99 ? "Full" : sprintf("%.1f%%",$val*100)',
|
|
8367
8618
|
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
|
8368
8619
|
},
|
|
8369
|
-
346 => { Name => 'FlashWirelessOption', PrintConv => \%flashWirelessOptionZ7, Unknown => 1},
|
|
8370
|
-
348 => { Name => 'FlashRemoteControl', PrintConv => \%flashRemoteControlZ7,
|
|
8620
|
+
346 => { Name => 'FlashWirelessOption', PrintConv => \%flashWirelessOptionZ7, Unknown => 1 },
|
|
8621
|
+
348 => { Name => 'FlashRemoteControl', PrintConv => \%flashRemoteControlZ7, Unknown => 1 },
|
|
8371
8622
|
352 => {
|
|
8372
8623
|
Name => 'FlashMasterControlMode', # tag name chosen for compatibility with those found in FlashInfo0102 & FlashInfo0103
|
|
8373
8624
|
RawConv => '$$self{FlashGroupOptionsMasterMode} = $val',
|
|
@@ -8392,12 +8643,12 @@ my %nikonFocalConversions = (
|
|
|
8392
8643
|
PrintConv => '$val>0.99 ? "Full" : sprintf("%.1f%%",$val*100)',
|
|
8393
8644
|
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
|
8394
8645
|
},
|
|
8395
|
-
#360 => {Name => 'FlashGroupAControlMode'
|
|
8396
|
-
#368 => {Name => 'FlashGroupBControlMode'
|
|
8397
|
-
#376 => {Name => 'FlashGroupCControlMode'
|
|
8398
|
-
#384 => {Name => 'FlashGroupDControlMode'
|
|
8399
|
-
#392 => {Name => 'FlashGroupEControlMode'
|
|
8400
|
-
#400 => {Name => 'FlashGroupFControlMode'
|
|
8646
|
+
#360 => { Name => 'FlashGroupAControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupACompensation at 362 and FlashGroupAOutput at 368
|
|
8647
|
+
#368 => { Name => 'FlashGroupBControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupBCompensation at 370 and FlashGroupBOutput at 374
|
|
8648
|
+
#376 => { Name => 'FlashGroupCControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupCCompensation at 378 and FlashGroupCOutput at 382
|
|
8649
|
+
#384 => { Name => 'FlashGroupDControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupDCompensation at 386 and FlashGroupDOutput at 390
|
|
8650
|
+
#392 => { Name => 'FlashGroupEControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupECompensation at 394 and FlashGroupEOutput at 398
|
|
8651
|
+
#400 => { Name => 'FlashGroupFControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupFCompensation at 402 and FlashGroupFOutput at 406
|
|
8401
8652
|
#434 => FocusMode
|
|
8402
8653
|
#436 => AFAreaMode
|
|
8403
8654
|
#438 => VibrationReduction
|
|
@@ -8405,8 +8656,8 @@ my %nikonFocalConversions = (
|
|
|
8405
8656
|
#444 => BracketProgram
|
|
8406
8657
|
#446 => BracketIncrement
|
|
8407
8658
|
#463 => SilentPhotography
|
|
8408
|
-
502 => { Name => 'MovieFrameSize', PrintConv => \%movieFrameSizeZ9, Unknown => 1},
|
|
8409
|
-
504 => { Name => 'MovieFrameRate',
|
|
8659
|
+
502 => { Name => 'MovieFrameSize', PrintConv => \%movieFrameSizeZ9, Unknown => 1 },
|
|
8660
|
+
504 => { Name => 'MovieFrameRate', PrintConv => \%movieFrameRateZ7, Unknown => 1 },
|
|
8410
8661
|
506 => {
|
|
8411
8662
|
Name => 'MovieSlowMotion',
|
|
8412
8663
|
Unknown => 1,
|
|
@@ -8435,9 +8686,9 @@ my %nikonFocalConversions = (
|
|
|
8435
8686
|
PrintConv => \%iSOAutoHiLimitZ7,
|
|
8436
8687
|
},
|
|
8437
8688
|
#520 => MovieWhiteBalanceSameAsPhoto
|
|
8438
|
-
568 => { Name => 'MovieActiveD-Lighting',
|
|
8439
|
-
572 => { Name => 'MovieHighISONoiseReduction', PrintConv => \%offLowNormalHighZ7, Unknown => 1},
|
|
8440
|
-
574 => { Name => 'MovieVignetteControl',
|
|
8689
|
+
568 => { Name => 'MovieActiveD-Lighting', PrintConv => \%activeDLightingZ7, Unknown => 1 },
|
|
8690
|
+
572 => { Name => 'MovieHighISONoiseReduction', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
|
|
8691
|
+
574 => { Name => 'MovieVignetteControl', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
|
|
8441
8692
|
576 => {
|
|
8442
8693
|
Name => 'MovieVignetteControlSameAsPhoto',
|
|
8443
8694
|
Unknown => 1,
|
|
@@ -8453,7 +8704,7 @@ my %nikonFocalConversions = (
|
|
|
8453
8704
|
Unknown => 1,
|
|
8454
8705
|
PrintConv => \%offOn
|
|
8455
8706
|
},
|
|
8456
|
-
584 => { Name => 'MovieFocusMode', PrintConv => \%focusModeZ7, Unknown => 1},
|
|
8707
|
+
584 => { Name => 'MovieFocusMode', PrintConv => \%focusModeZ7, Unknown => 1 },
|
|
8457
8708
|
#586 => MovieAFAreaMode
|
|
8458
8709
|
590 => {
|
|
8459
8710
|
Name => 'MovieVibrationReduction',
|
|
@@ -8493,11 +8744,7 @@ my %nikonFocalConversions = (
|
|
|
8493
8744
|
140 => {
|
|
8494
8745
|
Name => 'MultipleExposureMode',
|
|
8495
8746
|
RawConv => '$$self{MultipleExposureMode} = $val',
|
|
8496
|
-
PrintConv =>
|
|
8497
|
-
0 => 'Off',
|
|
8498
|
-
1 => 'On (Series)',
|
|
8499
|
-
2 => 'On',
|
|
8500
|
-
},
|
|
8747
|
+
PrintConv => \%multipleExposureModeZ9,
|
|
8501
8748
|
},
|
|
8502
8749
|
142 => {Name => 'MultiExposureShots', Condition => '$$self{MultipleExposureMode} != 0' }, #range 2-9
|
|
8503
8750
|
188 => {
|
|
@@ -8533,27 +8780,11 @@ my %nikonFocalConversions = (
|
|
|
8533
8780
|
PrintConv => \%offOn,
|
|
8534
8781
|
Condition => '$$self{FocusShiftShooting} > 0',
|
|
8535
8782
|
},
|
|
8536
|
-
274 => {
|
|
8537
|
-
|
|
8538
|
-
|
|
8539
|
-
0 => 'A',
|
|
8540
|
-
1 => 'B',
|
|
8541
|
-
2 => 'C',
|
|
8542
|
-
3 => 'D',
|
|
8543
|
-
},
|
|
8544
|
-
},
|
|
8545
|
-
276 => { Name => 'ExtendedMenuBanks', PrintConv => \%offOn, }, #single tag from both Photo & Video menus
|
|
8546
|
-
308 => {
|
|
8547
|
-
Name => 'PhotoShootingMenuBankImageArea',
|
|
8548
|
-
PrintConv => {
|
|
8549
|
-
0 => 'FX',
|
|
8550
|
-
1 => 'DX',
|
|
8551
|
-
4 => '16:9',
|
|
8552
|
-
8 => '1:1',
|
|
8553
|
-
},
|
|
8554
|
-
},
|
|
8783
|
+
274 => { Name => 'PhotoShootingMenuBank', PrintConv => \%banksZ9 },
|
|
8784
|
+
276 => { Name => 'ExtendedMenuBanks', PrintConv => \%offOn }, #single tag from both Photo & Video menus
|
|
8785
|
+
308 => { Name => 'PhotoShootingMenuBankImageArea', PrintConv => \%imageAreaZ9 },
|
|
8555
8786
|
#310 ImageQuality
|
|
8556
|
-
322 => { Name => 'AutoISO', PrintConv => \%offOn
|
|
8787
|
+
322 => { Name => 'AutoISO', PrintConv => \%offOn },
|
|
8557
8788
|
324 => {
|
|
8558
8789
|
Name => 'ISOAutoHiLimit',
|
|
8559
8790
|
Format => 'int16u',
|
|
@@ -8575,58 +8806,7 @@ my %nikonFocalConversions = (
|
|
|
8575
8806
|
Name => 'ISOAutoShutterTime', #shutter speed is 2 ** (-$val/24)
|
|
8576
8807
|
ValueConv => '$val / 8',
|
|
8577
8808
|
Format => 'int16s',
|
|
8578
|
-
PrintConv =>
|
|
8579
|
-
-15 => 'Auto', #z9 firmware 1.00 maps both 'Auto' and '30 s' to -15
|
|
8580
|
-
-12 => '15 s',
|
|
8581
|
-
-9 => '8 s',
|
|
8582
|
-
-6 => '4 s',
|
|
8583
|
-
-3 => '2 s',
|
|
8584
|
-
0 => '1 s',
|
|
8585
|
-
1 => '1/1.3 s',
|
|
8586
|
-
2 => '1/1.6 s',
|
|
8587
|
-
3 => '1/2 s',
|
|
8588
|
-
4 => '1/2.5 s',
|
|
8589
|
-
5 => '1/3 s',
|
|
8590
|
-
6 => '1/4 s',
|
|
8591
|
-
7 => '1/5 s',
|
|
8592
|
-
8 => '1/6 s',
|
|
8593
|
-
9 => '1/8 s',
|
|
8594
|
-
10 => '1/10 s',
|
|
8595
|
-
11 => '1/13 s',
|
|
8596
|
-
12 => '1/15 s',
|
|
8597
|
-
13 => '1/20 s',
|
|
8598
|
-
14 => '1/25 s',
|
|
8599
|
-
15 => '1/30 s',
|
|
8600
|
-
16 => '1/40 s',
|
|
8601
|
-
17 => '1/50 s',
|
|
8602
|
-
18 => '1/60 s',
|
|
8603
|
-
19 => '1/80 s',
|
|
8604
|
-
20 => '1/100 s',
|
|
8605
|
-
21 => '1/120 s',
|
|
8606
|
-
22 => '1/160 s',
|
|
8607
|
-
23 => '1/200 s',
|
|
8608
|
-
24 => '1/250 s',
|
|
8609
|
-
25 => '1/320 s',
|
|
8610
|
-
26 => '1/400 s',
|
|
8611
|
-
27 => '1/500 s',
|
|
8612
|
-
28 => '1/640 s',
|
|
8613
|
-
29 => '1/800 s',
|
|
8614
|
-
30 => '1/1000 s',
|
|
8615
|
-
31 => '1/1250 s',
|
|
8616
|
-
32 => '1/1600 s',
|
|
8617
|
-
33 => '1/2000 s',
|
|
8618
|
-
34 => '1/2500 s',
|
|
8619
|
-
35 => '1/3200 s',
|
|
8620
|
-
36 => '1/4000 s',
|
|
8621
|
-
37 => '1/5000 s',
|
|
8622
|
-
37.5 => '1/6000 s',
|
|
8623
|
-
38 => '1/6400 s',
|
|
8624
|
-
39 => '1/8000 s',
|
|
8625
|
-
40 => '1/10000 s',
|
|
8626
|
-
40.5 => '1/12000 s',
|
|
8627
|
-
41 => '1/13000 s',
|
|
8628
|
-
42 => '1/16000 s',
|
|
8629
|
-
},
|
|
8809
|
+
PrintConv => \%iSOAutoShutterTimeZ9,
|
|
8630
8810
|
},
|
|
8631
8811
|
#336 WhiteBalance
|
|
8632
8812
|
#406 PictureControl
|
|
@@ -8635,8 +8815,8 @@ my %nikonFocalConversions = (
|
|
|
8635
8815
|
#412 => { Name => 'NoiseReduction', PrintConv => \%offOn }, #Long Exposure Noise Reduction
|
|
8636
8816
|
#414 HighISONoiseReduction
|
|
8637
8817
|
#414 VignetteControl
|
|
8638
|
-
416 => { Name => 'MovieVignetteControl',
|
|
8639
|
-
418 => { Name => 'DiffractionCompensation',
|
|
8818
|
+
416 => { Name => 'MovieVignetteControl', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
|
|
8819
|
+
418 => { Name => 'DiffractionCompensation', PrintConv => \%offOn }, #value can be set from both the Photo Shoot Menu and the Video Shooting Menu
|
|
8640
8820
|
#419 AutoDistortionControl #value can be set from both the Photo Shoot Menu and the Video Shooting Menu
|
|
8641
8821
|
420 => { Name => 'FlickerReductionShooting', PrintConv => \%offOn },
|
|
8642
8822
|
#422 MeteringMode
|
|
@@ -8671,94 +8851,39 @@ my %nikonFocalConversions = (
|
|
|
8671
8851
|
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
|
8672
8852
|
},
|
|
8673
8853
|
#442 flash wirelss control 0=> 'Off' 1=> 'CMD'
|
|
8674
|
-
444 => { Name => 'FlashRemoteControl', PrintConv => \%flashRemoteControlZ7,
|
|
8675
|
-
456 => { Name => 'FlashWirelessOption', PrintConv => \%flashWirelessOptionZ7, Unknown => 1},
|
|
8854
|
+
444 => { Name => 'FlashRemoteControl', PrintConv => \%flashRemoteControlZ7, Unknown => 1 },
|
|
8855
|
+
456 => { Name => 'FlashWirelessOption', PrintConv => \%flashWirelessOptionZ7, Unknown => 1 },
|
|
8676
8856
|
#526 FocusMode
|
|
8677
|
-
528 => {
|
|
8678
|
-
|
|
8679
|
-
PrintConv => {
|
|
8680
|
-
1 => 'Single',
|
|
8681
|
-
2 => 'Dynamic',
|
|
8682
|
-
3 => 'Wide (S)',
|
|
8683
|
-
4 => 'Wide (L)',
|
|
8684
|
-
5 => '3D',
|
|
8685
|
-
6 => 'Auto',
|
|
8686
|
-
12 => 'Wide (C1)',
|
|
8687
|
-
13 => 'Wide (C2)',
|
|
8688
|
-
},
|
|
8689
|
-
},
|
|
8690
|
-
530 => { Name => 'VRMode', PrintConv => \%vRModeZ9},
|
|
8857
|
+
528 => { Name => 'AFAreaMode',PrintConv => \%aFAreaModeZ9 },
|
|
8858
|
+
530 => { Name => 'VRMode', PrintConv => \%vRModeZ9 },
|
|
8691
8859
|
534 => {
|
|
8692
8860
|
Name => 'BracketSet',
|
|
8693
8861
|
RawConv => '$$self{BracketSet} = $val',
|
|
8694
|
-
PrintConv =>
|
|
8695
|
-
0 => 'AE/Flash',
|
|
8696
|
-
1 => 'AE',
|
|
8697
|
-
2 => 'Flash',
|
|
8698
|
-
3 => 'White Balance',
|
|
8699
|
-
4 => 'Active-D Lighting',
|
|
8700
|
-
},
|
|
8862
|
+
PrintConv => \%bracketSetZ9,
|
|
8701
8863
|
},
|
|
8702
8864
|
536 => {
|
|
8703
8865
|
Name => 'BracketProgram',
|
|
8704
8866
|
Condition => '$$self{BracketSet} < 3',
|
|
8705
8867
|
Notes => 'AE and/or Flash Bracketing',
|
|
8706
|
-
PrintConv =>
|
|
8707
|
-
0 => 'Disabled',
|
|
8708
|
-
2 => '2F',
|
|
8709
|
-
3 => '3F',
|
|
8710
|
-
4 => '4F',
|
|
8711
|
-
5 => '5F',
|
|
8712
|
-
7 => '7F',
|
|
8713
|
-
9 => '9F',
|
|
8714
|
-
},
|
|
8868
|
+
PrintConv => \%bracketProgramZ9,
|
|
8715
8869
|
},
|
|
8716
8870
|
538 => {
|
|
8717
8871
|
Name => 'BracketIncrement',
|
|
8718
8872
|
Condition => '$$self{BracketSet} < 3',
|
|
8719
8873
|
Notes => 'AE and/or Flash Bracketing',
|
|
8720
|
-
PrintConv =>
|
|
8721
|
-
0 => '0.3',
|
|
8722
|
-
#1 => '0.5',
|
|
8723
|
-
2 => '0.7',
|
|
8724
|
-
3 => '1.0',
|
|
8725
|
-
4 => '2.0',
|
|
8726
|
-
5 => '3.0',
|
|
8727
|
-
},
|
|
8874
|
+
PrintConv => \%bracketIncrementZ9,
|
|
8728
8875
|
},
|
|
8729
8876
|
#544 BracketProgram for ADL
|
|
8730
|
-
556 => {
|
|
8731
|
-
|
|
8732
|
-
|
|
8733
|
-
0 => 'Overflow',
|
|
8734
|
-
1 => 'Backup',
|
|
8735
|
-
2 => 'NEF Primary + JPG Secondary',
|
|
8736
|
-
3 => 'JPG Primary + JPG Secondary',
|
|
8737
|
-
},
|
|
8738
|
-
},
|
|
8739
|
-
572 => { Name => 'DXCropAlert', PrintConv => \%offOn, },
|
|
8740
|
-
574 => { Name => 'SubjectDetection', PrintConv => \%subjectDetectionZ9},
|
|
8877
|
+
556 => { Name => 'SecondarySlotFunction', PrintConv => \%secondarySlotFunctionZ9 },
|
|
8878
|
+
572 => { Name => 'DXCropAlert', PrintConv => \%offOn },
|
|
8879
|
+
574 => { Name => 'SubjectDetection', PrintConv => \%subjectDetectionZ9 },
|
|
8741
8880
|
604 => {
|
|
8742
8881
|
Name => 'MovieImageArea',
|
|
8743
8882
|
Unknown => 1,
|
|
8744
|
-
Mask => 0x01,
|
|
8745
|
-
PrintConv =>
|
|
8746
|
-
0 => 'FX',
|
|
8747
|
-
1 => 'DX',
|
|
8748
|
-
},
|
|
8749
|
-
},
|
|
8750
|
-
614 => {
|
|
8751
|
-
Name => 'MovieType',
|
|
8752
|
-
Unknown => 1,
|
|
8753
|
-
PrintConv => {
|
|
8754
|
-
1 => 'H.265 8-bit (MP4)',
|
|
8755
|
-
2 => 'H.265 8-bit (MOV)',
|
|
8756
|
-
3 => 'H.265 10-bit (MOV)',
|
|
8757
|
-
4 => 'ProRes 422 HQ 10-bit (MOV)',
|
|
8758
|
-
5 => 'ProRes RAW HQ 12-bit (MOV)',
|
|
8759
|
-
6 => 'NRAW 12-bit (NEV)'
|
|
8760
|
-
},
|
|
8883
|
+
Mask => 0x01, # without the mask 4 => 'FX', 5 => DX. only the 2nd Z-series field encountered with a mask
|
|
8884
|
+
PrintConv => \%imageAreaZ9b,
|
|
8761
8885
|
},
|
|
8886
|
+
614 => { Name => 'MovieType', PrintConv => \%movieTypeZ9, Unknown => 1 },
|
|
8762
8887
|
616 => {
|
|
8763
8888
|
Name => 'MovieISOAutoHiLimit',
|
|
8764
8889
|
Format => 'int16u',
|
|
@@ -8767,115 +8892,44 @@ my %nikonFocalConversions = (
|
|
|
8767
8892
|
ValueConvInv => '8 * ($val + 104)',
|
|
8768
8893
|
PrintConv => \%iSOAutoHiLimitZ7,
|
|
8769
8894
|
},
|
|
8770
|
-
618 => { Name => 'MovieISOAutoControlManualMode', PrintConv => \%offOn, Unknown => 1},
|
|
8895
|
+
618 => { Name => 'MovieISOAutoControlManualMode', PrintConv => \%offOn, Unknown => 1 },
|
|
8771
8896
|
620 => {
|
|
8772
8897
|
Name => 'MovieISOAutoManualMode',
|
|
8773
8898
|
Format => 'int16u',
|
|
8774
8899
|
Unknown => 1,
|
|
8775
8900
|
ValueConv => '($val-104)/8',
|
|
8776
|
-
|
|
8901
|
+
ValueConvInv => '8 * ($val + 104)',
|
|
8777
8902
|
PrintConv => \%iSOAutoHiLimitZ7,
|
|
8778
8903
|
},
|
|
8779
|
-
696 => { Name => 'MovieActiveD-Lighting',
|
|
8780
|
-
698 => { Name => 'MovieHighISONoiseReduction', PrintConv => \%offLowNormalHighZ7, Unknown => 1},
|
|
8781
|
-
704 => {
|
|
8782
|
-
|
|
8783
|
-
|
|
8784
|
-
|
|
8785
|
-
|
|
8786
|
-
|
|
8787
|
-
|
|
8788
|
-
},
|
|
8789
|
-
|
|
8790
|
-
708 => { Name => 'MovieFocusMode', PrintConv => \%focusModeZ7, Unknown => 1},
|
|
8791
|
-
710 => {
|
|
8792
|
-
Name => 'MovieAFAreaMode',
|
|
8793
|
-
PrintConv => {
|
|
8794
|
-
1 => 'Single',
|
|
8795
|
-
3 => 'Wide (S)',
|
|
8796
|
-
4 => 'Wide (L)',
|
|
8797
|
-
6 => 'Auto',
|
|
8798
|
-
11 => 'Subject Tracking',
|
|
8799
|
-
},
|
|
8800
|
-
},
|
|
8801
|
-
712 => { Name => 'MovieVRMode', PrintConv => \%vRModeZ9, Unknown => 1},
|
|
8802
|
-
716 => { Name => 'MovieElectronicVR', PrintConv => \%offOn, Unknown => 1 }, #distinct from MoveieVRMode
|
|
8803
|
-
718 => { Name => 'MovieSoundRecording', PrintConv => { 0 => 'Off', 1 => 'On', 2 => 'On' }, Unknown => 1 }, #not sure why the unusal mapping with 2 => 'On'
|
|
8804
|
-
720 => { Name => 'MicrophoneSensitivity', Unknown => 1}, #1-20
|
|
8805
|
-
722 => { Name => 'MicrophoneAttenuator', PrintConv => \%offOn, Unknown => 1 }, #distinct from MoveieVRMode
|
|
8904
|
+
696 => { Name => 'MovieActiveD-Lighting', PrintConv => \%activeDLightingZ7, Unknown => 1 },
|
|
8905
|
+
698 => { Name => 'MovieHighISONoiseReduction', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
|
|
8906
|
+
704 => { Name => 'MovieFlickerReduction', PrintConv => \%movieFlickerReductionZ9 },
|
|
8907
|
+
706 => { Name => 'MovieMeteringMode', PrintConv => \%meteringModeZ7, Unknown => 1 },
|
|
8908
|
+
708 => { Name => 'MovieFocusMode', PrintConv => \%focusModeZ7, Unknown => 1 },
|
|
8909
|
+
710 => { Name => 'MovieAFAreaMode', PrintConv => \%aFAreaModeZ9 },
|
|
8910
|
+
712 => { Name => 'MovieVRMode', PrintConv => \%vRModeZ9, Unknown => 1 },
|
|
8911
|
+
716 => { Name => 'MovieElectronicVR', PrintConv => \%offOn, Unknown => 1 }, #distinct from MoveieVRMode
|
|
8912
|
+
718 => { Name => 'MovieSoundRecording', PrintConv => { 0 => 'Off', 1 => 'Auto', 2 => 'Manual' }, Unknown => 1 },
|
|
8913
|
+
720 => { Name => 'MicrophoneSensitivity', Unknown => 1 }, #1-20
|
|
8914
|
+
722 => { Name => 'MicrophoneAttenuator', PrintConv => \%offOn, Unknown => 1 }, #distinct from MoveieVRMode
|
|
8806
8915
|
724 => { Name => 'MicrophoneFrequencyResponse', PrintConv => { 0 => 'Wide Range', 1 => 'Vocal Range' }, Unknown => 1 },
|
|
8807
|
-
726 => { Name => 'WindNoiseReduction',
|
|
8808
|
-
748 => {
|
|
8809
|
-
|
|
8810
|
-
|
|
8811
|
-
|
|
8812
|
-
|
|
8813
|
-
|
|
8814
|
-
2 => 'N-Log',
|
|
8815
|
-
},
|
|
8816
|
-
},
|
|
8817
|
-
754 => { Name => 'MovieFrameSize', PrintConv => \%movieFrameSizeZ9, Unknown => 1},
|
|
8818
|
-
756 => { Name => 'MovieFrameRate', PrintConv => \%movieFrameRateZ7, Unknown => 1},
|
|
8819
|
-
762 => { Name => 'MicrophoneJackPower', PrintConv => \%offOn, Unknown => 1 },
|
|
8820
|
-
763 => { Name => 'MovieDXCropAlert', PrintConv => \%offOn, Unknown => 1 },
|
|
8821
|
-
764 => { Name => 'MovieSubjectDetection', PrintConv => \%subjectDetectionZ9, Unknown => 1},
|
|
8916
|
+
726 => { Name => 'WindNoiseReduction', PrintConv => \%offOn, Unknown => 1 },
|
|
8917
|
+
748 => { Name => 'MovieToneMap', PrintConv => \%movieToneMapZ9, Unknown => 1 },
|
|
8918
|
+
754 => { Name => 'MovieFrameSize', PrintConv => \%movieFrameSizeZ9, Unknown => 1 },
|
|
8919
|
+
756 => { Name => 'MovieFrameRate', PrintConv => \%movieFrameRateZ7, Unknown => 1 },
|
|
8920
|
+
762 => { Name => 'MicrophoneJackPower', PrintConv => \%offOn, Unknown => 1 },
|
|
8921
|
+
763 => { Name => 'MovieDXCropAlert', PrintConv => \%offOn, Unknown => 1 },
|
|
8922
|
+
764 => { Name => 'MovieSubjectDetection', PrintConv => \%subjectDetectionZ9, Unknown => 1 },
|
|
8822
8923
|
799 => {
|
|
8823
8924
|
Name => 'CustomSettingsZ9',
|
|
8824
8925
|
Format => 'undef[608]',
|
|
8825
8926
|
SubDirectory => { TagTable => 'Image::ExifTool::NikonCustom::SettingsZ9' },
|
|
8826
8927
|
},
|
|
8827
|
-
1426 => {
|
|
8828
|
-
|
|
8829
|
-
|
|
8830
|
-
|
|
8831
|
-
|
|
8832
|
-
5 => 'Spanish',
|
|
8833
|
-
7 => 'French',
|
|
8834
|
-
},
|
|
8835
|
-
},
|
|
8836
|
-
1428 => {
|
|
8837
|
-
Name => 'TimeZone',
|
|
8838
|
-
PrintConv => {
|
|
8839
|
-
5 => '+09:00 (Tokyo)',
|
|
8840
|
-
6 => '+08:00 (Beijing, Honk Kong, Sinapore)',
|
|
8841
|
-
10 => '+05:45 (Kathmandu)',
|
|
8842
|
-
11 => '+05:30 (New Dehli)',
|
|
8843
|
-
12 => '+05:00 (Islamabad)',
|
|
8844
|
-
13 => '+04:30 (Kabul)',
|
|
8845
|
-
14 => '+04:00 (Abu Dhabi)',
|
|
8846
|
-
15 => '+03:30 (Tehran)',
|
|
8847
|
-
16 => '+03:00 (Moscow, Nairobi)',
|
|
8848
|
-
17 => '+02:00 (Athens, Helsinki)',
|
|
8849
|
-
18 => '+01:00 (Madrid, Paris, Berlin)',
|
|
8850
|
-
19 => '+00:00 (London)',
|
|
8851
|
-
20 => '-01:00 (Azores)',
|
|
8852
|
-
21 => '-02:00 (Fernando de Noronha)',
|
|
8853
|
-
22 => '-03:00 (Buenos Aires, Sao Paulo)',
|
|
8854
|
-
23 => '-03:30 (Newfoundland)',
|
|
8855
|
-
24 => '-04:00 (Manaus, Caracas)',
|
|
8856
|
-
25 => '-05:00 (New York, Toronto, Lima)',
|
|
8857
|
-
26 => '-06:00 (Chicago, Mexico City)',
|
|
8858
|
-
27 => '-07:00 (Denver)',
|
|
8859
|
-
28 => '-08:00 (Los Angeles, Vancouver)',
|
|
8860
|
-
29 => '-09:00 (Anchorage)',
|
|
8861
|
-
30 => '-10:00 (Hawaii)',
|
|
8862
|
-
},
|
|
8863
|
-
},
|
|
8864
|
-
1434 => {Name => 'MonitorBrightness', ValueConv => '$val - 5', Unknown => 1}, # settings: -5 to +5
|
|
8865
|
-
1456 => { Name => 'AFFineTune', PrintConv => \%offOn, Unknown => 1 },
|
|
8866
|
-
1552 => {
|
|
8867
|
-
Name => 'HDMIOutputResolution',
|
|
8868
|
-
PrintConv => {
|
|
8869
|
-
0 => 'Auto',
|
|
8870
|
-
1 => '4320p',
|
|
8871
|
-
2 => '2160p',
|
|
8872
|
-
3 => '1080p',
|
|
8873
|
-
#4 => '1080i',
|
|
8874
|
-
5 => '720p',
|
|
8875
|
-
#6 => '576p',
|
|
8876
|
-
#7 => '480p',
|
|
8877
|
-
},
|
|
8878
|
-
},
|
|
8928
|
+
1426 => { Name => 'Language', PrintConv => \%languageZ9, Unknown => 1 },
|
|
8929
|
+
1428 => { Name => 'TimeZone', PrintConv => \%timeZoneZ9 },
|
|
8930
|
+
1434 => { Name => 'MonitorBrightness', ValueConv => '$val - 5', Unknown => 1 }, # settings: -5 to +5
|
|
8931
|
+
1456 => { Name => 'AFFineTune', PrintConv => \%offOn, Unknown => 1 },
|
|
8932
|
+
1552 => { Name => 'HDMIOutputResolution', PrintConv => \%hDMIOutputResolutionZ9 },
|
|
8879
8933
|
1565 => { Name => 'SetClockFromLocationData', PrintConv => \%offOn, Unknown => 1 },
|
|
8880
8934
|
1572 => { Name => 'AirplaneMode', PrintConv => \%offOn, Unknown => 1 },
|
|
8881
8935
|
1573 => { Name => 'EmptySlotRelease', PrintConv => { 0 => 'Disable Release', 1 => 'Enable Release' }, Unknown => 1 },
|
|
@@ -8884,6 +8938,210 @@ my %nikonFocalConversions = (
|
|
|
8884
8938
|
1636 => { Name => 'USBPowerDelivery', PrintConv => \%offOn, Unknown => 1 },
|
|
8885
8939
|
1645 => { Name => 'SensorShield', PrintConv => { 0 => 'Stays Open', 1 => 'Closes' }, Unknown => 1 },
|
|
8886
8940
|
);
|
|
8941
|
+
%Image::ExifTool::Nikon::MenuSettingsZ9Firmware3 = ( #starts at Offset26 + 248
|
|
8942
|
+
%binaryDataAttrs,
|
|
8943
|
+
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
|
8944
|
+
DATAMEMBER => [ 154, 204, 208, 248, 444, 554 ],
|
|
8945
|
+
IS_SUBDIR => [ 847 ],
|
|
8946
|
+
NOTES => 'These tags are used by the Z9 firmware 3.00.',
|
|
8947
|
+
154 => {
|
|
8948
|
+
Name => 'MultipleExposureMode',
|
|
8949
|
+
RawConv => '$$self{MultipleExposureMode} = $val',
|
|
8950
|
+
PrintConv => \%multipleExposureModeZ9,
|
|
8951
|
+
},
|
|
8952
|
+
156 => {Name => 'MultiExposureShots', Condition => '$$self{MultipleExposureMode} != 0'}, #range 2-9
|
|
8953
|
+
204 => {
|
|
8954
|
+
Name => 'Intervals',
|
|
8955
|
+
Format => 'int32u',
|
|
8956
|
+
RawConv => '$$self{IntervalShootingIntervals} = $val',
|
|
8957
|
+
Condition => '$$self{IntervalShooting} > 0',
|
|
8958
|
+
},
|
|
8959
|
+
208 => {
|
|
8960
|
+
Name => 'ShotsPerInterval',
|
|
8961
|
+
Format => 'int32u',
|
|
8962
|
+
RawConv => '$$self{IntervalShootingShotsPerInterval} = $val',
|
|
8963
|
+
Condition => '$$self{IntervalShooting} > 0',
|
|
8964
|
+
},
|
|
8965
|
+
248 => {
|
|
8966
|
+
Name => 'FocusShiftNumberShots', #1-300
|
|
8967
|
+
RawConv => '$$self{FocusShiftNumberShots} = $val',
|
|
8968
|
+
Condition => '$$self{FocusShiftShooting} > 0',
|
|
8969
|
+
},
|
|
8970
|
+
252 => {
|
|
8971
|
+
Name => 'FocusShiftStepWidth', #1(Narrow) to 10 (Wide)
|
|
8972
|
+
Condition => '$$self{FocusShiftShooting} > 0',
|
|
8973
|
+
},
|
|
8974
|
+
256 => {
|
|
8975
|
+
Name => 'FocusShiftInterval',
|
|
8976
|
+
Condition => '$$self{FocusShiftShooting} > 0',
|
|
8977
|
+
PrintConv => '$val == 1? "1 Second" : sprintf("%.0f Seconds",$val)',
|
|
8978
|
+
},
|
|
8979
|
+
260 => {
|
|
8980
|
+
Name => 'FocusShiftExposureLock',
|
|
8981
|
+
Unknown => 1,
|
|
8982
|
+
PrintConv => \%offOn,
|
|
8983
|
+
Condition => '$$self{FocusShiftShooting} > 0',
|
|
8984
|
+
},
|
|
8985
|
+
290 => { Name => 'PhotoShootingMenuBank', PrintConv => \%banksZ9 },
|
|
8986
|
+
292 => { Name => 'ExtendedMenuBanks', PrintConv => \%offOn }, # single tag from both Photo & Video menus
|
|
8987
|
+
328 => { Name => 'PhotoShootingMenuBankImageArea', PrintConv => \%imageAreaZ9 },
|
|
8988
|
+
342 => { Name => 'AutoISO', PrintConv => \%offOn },
|
|
8989
|
+
344 => {
|
|
8990
|
+
Name => 'ISOAutoHiLimit',
|
|
8991
|
+
Format => 'int16u',
|
|
8992
|
+
Unknown => 1,
|
|
8993
|
+
ValueConv => '($val-104)/8',
|
|
8994
|
+
ValueConvInv => '8 * ($val + 104)',
|
|
8995
|
+
PrintConv => \%iSOAutoHiLimitZ7,
|
|
8996
|
+
},
|
|
8997
|
+
346 => {
|
|
8998
|
+
Name => 'ISOAutoFlashLimit',
|
|
8999
|
+
Format => 'int16u',
|
|
9000
|
+
Unknown => 1,
|
|
9001
|
+
ValueConv => '($val-104)/8',
|
|
9002
|
+
ValueConvInv => '8 * ($val + 104)',
|
|
9003
|
+
PrintConv => \%iSOAutoHiLimitZ7,
|
|
9004
|
+
},
|
|
9005
|
+
354 => {
|
|
9006
|
+
Name => 'ISOAutoShutterTime', # shutter speed is 2 ** (-$val/24)
|
|
9007
|
+
ValueConv => '$val / 8',
|
|
9008
|
+
Format => 'int16s',
|
|
9009
|
+
PrintConv => \%iSOAutoShutterTimeZ9,
|
|
9010
|
+
},
|
|
9011
|
+
436 => { Name => 'MovieVignetteControl', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
|
|
9012
|
+
438 => { Name => 'DiffractionCompensation', PrintConv => \%offOn }, # value can be set from both the Photo Shoot Menu and the Video Shooting Menu
|
|
9013
|
+
440 => { Name => 'FlickerReductionShooting',PrintConv => \%offOn },
|
|
9014
|
+
444 => {
|
|
9015
|
+
Name => 'FlashControlMode', # this and nearby tag values for flash may be set from either the Photo Shooting Menu or using the Flash unit menu
|
|
9016
|
+
RawConv => '$$self{FlashControlMode} = $val',
|
|
9017
|
+
PrintConv => \%flashControlModeZ7,
|
|
9018
|
+
},
|
|
9019
|
+
446 => {
|
|
9020
|
+
Name => 'FlashMasterCompensation',
|
|
9021
|
+
Format => 'int8s',
|
|
9022
|
+
Unknown => 1,
|
|
9023
|
+
ValueConv => '$val/6',
|
|
9024
|
+
ValueConvInv => '6 * $val',
|
|
9025
|
+
PrintConv => '$val ? sprintf("%+.1f",$val) : 0',
|
|
9026
|
+
PrintConvInv => '$val',
|
|
9027
|
+
},
|
|
9028
|
+
450 => {
|
|
9029
|
+
Name => 'FlashGNDistance',
|
|
9030
|
+
Condition => '$$self{FlashControlMode} == 2',
|
|
9031
|
+
Unknown => 1,
|
|
9032
|
+
ValueConv => '$val + 3',
|
|
9033
|
+
PrintConv => \%flashGNDistance,
|
|
9034
|
+
},
|
|
9035
|
+
454 => {
|
|
9036
|
+
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)
|
|
9037
|
+
Condition => '$$self{FlashControlMode} >= 3',
|
|
9038
|
+
Unknown => 1,
|
|
9039
|
+
ValueConv => '2 ** (-$val/3)',
|
|
9040
|
+
ValueConvInv => '$val>0 ? -3*log($val)/log(2) : 0',
|
|
9041
|
+
PrintConv => '$val>0.99 ? "Full" : sprintf("%.1f%%",$val*100)',
|
|
9042
|
+
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
|
9043
|
+
},
|
|
9044
|
+
#462 flash wireless control 0=> 'Off' 1=> 'Optical AWL'
|
|
9045
|
+
#464 => { Name => 'FlashRemoteControl', PrintConv => \%flashRemoteControlZ7, Unknown => 1 },
|
|
9046
|
+
#476 => { Name => 'FlashWirelessOption', PrintConv => \%flashWirelessOptionZ7, Unknown => 1 },
|
|
9047
|
+
548 => { Name => 'AFAreaMode', PrintConv => \%aFAreaModeZ9},
|
|
9048
|
+
550 => { Name => 'VRMode', PrintConv => \%vRModeZ9},
|
|
9049
|
+
554 => {
|
|
9050
|
+
Name => 'BracketSet',
|
|
9051
|
+
RawConv => '$$self{BracketSet} = $val',
|
|
9052
|
+
PrintConv => \%bracketSetZ9,
|
|
9053
|
+
},
|
|
9054
|
+
556 => {
|
|
9055
|
+
Name => 'BracketProgram',
|
|
9056
|
+
Condition => '$$self{BracketSet} < 3',
|
|
9057
|
+
Notes => 'AE and/or Flash Bracketing',
|
|
9058
|
+
PrintConv => \%bracketProgramZ9,
|
|
9059
|
+
},
|
|
9060
|
+
558 => {
|
|
9061
|
+
Name => 'BracketIncrement',
|
|
9062
|
+
Condition => '$$self{BracketSet} < 3',
|
|
9063
|
+
Notes => 'AE and/or Flash Bracketing',
|
|
9064
|
+
PrintConv => \%bracketIncrementZ9,
|
|
9065
|
+
},
|
|
9066
|
+
576 => { Name => 'SecondarySlotFunction', PrintConv => \%secondarySlotFunctionZ9 },
|
|
9067
|
+
592 => { Name => 'DXCropAlert', PrintConv => \%offOn },
|
|
9068
|
+
594 => { Name => 'SubjectDetection', PrintConv => \%subjectDetectionZ9 },
|
|
9069
|
+
636 => { Name => 'HighFrequencyFlickerReductionShooting', PrintConv => \%offOn, Unknown => 1 }, # new with firmware 3.0
|
|
9070
|
+
646 => {
|
|
9071
|
+
Name => 'MovieImageArea',
|
|
9072
|
+
Unknown => 1,
|
|
9073
|
+
Mask => 0x01, # without the mask 4 => 'FX' 5 => DX only the 2nd Z-series field encountered with a mask.
|
|
9074
|
+
PrintConv => \%imageAreaZ9b,
|
|
9075
|
+
},
|
|
9076
|
+
656 => { Name => 'MovieType', PrintConv => \%movieTypeZ9, Unknown => 1 },
|
|
9077
|
+
658 => {
|
|
9078
|
+
Name => 'MovieISOAutoHiLimit',
|
|
9079
|
+
Format => 'int16u',
|
|
9080
|
+
Unknown => 1,
|
|
9081
|
+
ValueConv => '($val-104)/8',
|
|
9082
|
+
ValueConvInv => '8 * ($val + 104)',
|
|
9083
|
+
PrintConv => \%iSOAutoHiLimitZ7,
|
|
9084
|
+
},
|
|
9085
|
+
660 => { Name => 'MovieISOAutoControlManualMode', PrintConv => \%offOn, Unknown => 1 },
|
|
9086
|
+
662 => {
|
|
9087
|
+
Name => 'MovieISOAutoManualMode',
|
|
9088
|
+
Format => 'int16u',
|
|
9089
|
+
Unknown => 1,
|
|
9090
|
+
ValueConv => '($val-104)/8',
|
|
9091
|
+
ValueConvInv => '8 * ($val + 104)',
|
|
9092
|
+
PrintConv => \%iSOAutoHiLimitZ7,
|
|
9093
|
+
},
|
|
9094
|
+
736 => { Name => 'MovieActiveD-Lighting', PrintConv => \%activeDLightingZ7, Unknown => 1 },
|
|
9095
|
+
738 => { Name => 'MovieHighISONoiseReduction', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
|
|
9096
|
+
744 => { Name => 'MovieFlickerReduction', PrintConv => \%movieFlickerReductionZ9 },
|
|
9097
|
+
746 => { Name => 'MovieMeteringMode', PrintConv => \%meteringModeZ7, Unknown => 1 },
|
|
9098
|
+
748 => { Name => 'MovieFocusMode', PrintConv => \%focusModeZ7, Unknown => 1 },
|
|
9099
|
+
750 => { Name => 'MovieAFAreaMode', PrintConv => \%aFAreaModeZ9 },
|
|
9100
|
+
752 => { Name => 'MovieVRMode', PrintConv => \%vRModeZ9, Unknown => 1 },
|
|
9101
|
+
756 => { Name => 'MovieElectronicVR', PrintConv => \%offOn, Unknown => 1 }, # distinct from MoveieVRMode
|
|
9102
|
+
758 => { Name => 'MovieSoundRecording', PrintConv => { 0 => 'Off', 1 => 'Auto', 2 => 'Manual' }, Unknown => 1 },
|
|
9103
|
+
760 => { Name => 'MicrophoneSensitivity', Unknown => 1 }, # 1-20
|
|
9104
|
+
762 => { Name => 'MicrophoneAttenuator', PrintConv => \%offOn, Unknown => 1 }, # distinct from MoveieVRMode
|
|
9105
|
+
764 => { Name => 'MicrophoneFrequencyResponse',PrintConv => { 0 => 'Wide Range', 1 => 'Vocal Range' }, Unknown => 1 },
|
|
9106
|
+
766 => { Name => 'WindNoiseReduction', PrintConv => \%offOn, Unknown => 1 },
|
|
9107
|
+
788 => { Name => 'MovieToneMap', PrintConv => \%movieToneMapZ9, Unknown => 1 },
|
|
9108
|
+
794 => { Name => 'MovieFrameSize', PrintConv => \%movieFrameSizeZ9, Unknown => 1 },
|
|
9109
|
+
796 => { Name => 'MovieFrameRate', PrintConv => \%movieFrameRateZ7, Unknown => 1 },
|
|
9110
|
+
802 => { Name => 'MicrophoneJackPower', PrintConv => \%offOn, Unknown => 1 },
|
|
9111
|
+
803 => { Name => 'MovieDXCropAlert', PrintConv => \%offOn, Unknown => 1 },
|
|
9112
|
+
804 => { Name => 'MovieSubjectDetection', PrintConv => \%subjectDetectionZ9, Unknown => 1 },
|
|
9113
|
+
812 => { Name => 'MovieHighResZoom', PrintConv => \%offOn, Unknown => 1 },
|
|
9114
|
+
847 => {
|
|
9115
|
+
Name => 'CustomSettingsZ9',
|
|
9116
|
+
Format => 'undef[608]',
|
|
9117
|
+
SubDirectory => { TagTable => 'Image::ExifTool::NikonCustom::SettingsZ9' },
|
|
9118
|
+
},
|
|
9119
|
+
1474 => { Name => 'Language', PrintConv => \%languageZ9, Unknown => 1 },
|
|
9120
|
+
1476 => { Name => 'TimeZone', PrintConv => \%timeZoneZ9 },
|
|
9121
|
+
1482 => { Name => 'MonitorBrightness', PrintConv => \%monitorBrightnessZ9, Unknown => 1 }, # settings: -5 to +5. Added with firmware 3.0: Lo1, Lo2, Hi1, Hi2
|
|
9122
|
+
1504 => { Name => 'AFFineTune', PrintConv => \%offOn, Unknown => 1 },
|
|
9123
|
+
1600 => { Name => 'HDMIOutputResolution', PrintConv => \%hDMIOutputResolutionZ9 },
|
|
9124
|
+
1613 => { Name => 'SetClockFromLocationData', PrintConv => \%offOn, Unknown => 1 },
|
|
9125
|
+
1620 => { Name => 'AirplaneMode', PrintConv => \%offOn, Unknown => 1 },
|
|
9126
|
+
1621 => { Name => 'EmptySlotRelease', PrintConv => { 0 => 'Disable Release', 1 => 'Enable Release' }, Unknown => 1 },
|
|
9127
|
+
1656 => { Name => 'EnergySavingMode', PrintConv =>\%offOn, Unknown => 1 },
|
|
9128
|
+
1680 => { Name => 'RecordLocationData', PrintConv => \%offOn, Unknown => 1 },
|
|
9129
|
+
1684 => { Name => 'USBPowerDelivery', PrintConv => \%offOn, Unknown => 1 },
|
|
9130
|
+
1693 => { Name => 'SensorShield', PrintConv => { 0 => 'Stays Open', 1 => 'Closes' }, Unknown => 1 },
|
|
9131
|
+
1754 => {
|
|
9132
|
+
Name => 'FocusShiftAutoReset',
|
|
9133
|
+
Unknown => 1,
|
|
9134
|
+
PrintConv => \%offOn,
|
|
9135
|
+
Condition => '$$self{FocusShiftShooting} > 0',
|
|
9136
|
+
},
|
|
9137
|
+
#1824 ReleaseTimingIndicatorTypeADelay CSd14-b 0 => '1/200' ... 15 => '1/6'
|
|
9138
|
+
#1826 VerticalISOButton CSf2
|
|
9139
|
+
#1828 ExposureCompensationButton CSf2
|
|
9140
|
+
#1830 ISOButton CSf2
|
|
9141
|
+
#1890 ViewModeShowEffectsOfSettings CSd9-a 0=>'Always', 1=> 'Only When Flash Not Used'
|
|
9142
|
+
#1892 DispButton CSf2
|
|
9143
|
+
#1936 FocusPointDisplayOption3DTrackingColor CSa11-d 0=> 'White', 1= => 'Red'
|
|
9144
|
+
);
|
|
8887
9145
|
|
|
8888
9146
|
# Flash information (ref JD)
|
|
8889
9147
|
%Image::ExifTool::Nikon::FlashInfo0100 = (
|
|
@@ -9999,7 +10257,7 @@ my %nikonFocalConversions = (
|
|
|
9999
10257
|
},
|
|
10000
10258
|
12 => {
|
|
10001
10259
|
Name => 'FlashFocalLength',
|
|
10002
|
-
Notes => 'only valid if flash pattern is "Standard Illumination"',
|
|
10260
|
+
Notes => 'only valid if flash pattern is "Standard Illumination"', #illumination pattern no no supported starting with the SB-910
|
|
10003
10261
|
RawConv => '($val and $val != 255) ? $val : undef',
|
|
10004
10262
|
PrintConv => '"$val mm"',
|
|
10005
10263
|
PrintConvInv => '$val=~/(\d+)/; $1 || 0',
|
|
@@ -10069,7 +10327,7 @@ my %nikonFocalConversions = (
|
|
|
10069
10327
|
0x29 => [ #PH
|
|
10070
10328
|
{
|
|
10071
10329
|
Name => 'FlashGroupBOutput',
|
|
10072
|
-
Condition => '$$self{FlashGroupBControlMode} >=
|
|
10330
|
+
Condition => '$$self{FlashGroupBControlMode} >= 0x06',
|
|
10073
10331
|
ValueConv => '2 ** (-$val/6)',
|
|
10074
10332
|
ValueConvInv => '$val>0 ? -6*log($val)/log(2) : 0',
|
|
10075
10333
|
PrintConv => '$val>0.99 ? "Full" : sprintf("%.0f%%",$val*100)',
|
|
@@ -10109,6 +10367,7 @@ my %nikonFocalConversions = (
|
|
|
10109
10367
|
%Image::ExifTool::Nikon::FlashInfo0300 = (
|
|
10110
10368
|
%binaryDataAttrs,
|
|
10111
10369
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
|
10370
|
+
DATAMEMBER => [ 9.2, 17.1, 18.1, 18.2 ],
|
|
10112
10371
|
0 => {
|
|
10113
10372
|
Name => 'FlashInfoVersion',
|
|
10114
10373
|
Format => 'string[4]',
|
|
@@ -10123,15 +10382,39 @@ my %nikonFocalConversions = (
|
|
|
10123
10382
|
},
|
|
10124
10383
|
},
|
|
10125
10384
|
6 => {
|
|
10126
|
-
Format => 'int8u[2]',
|
|
10127
10385
|
Name => 'ExternalFlashFirmware',
|
|
10386
|
+
Format => 'int8u[2]',
|
|
10128
10387
|
SeparateTable => 'FlashFirmware',
|
|
10129
10388
|
PrintConv => \%flashFirmware,
|
|
10130
10389
|
},
|
|
10390
|
+
8 => {
|
|
10391
|
+
Name => 'ExternalFlashFlags',
|
|
10392
|
+
PrintConv => { BITMASK => {
|
|
10393
|
+
0 => 'Flash Ready', #flash status is 'Not Ready' when this bit is off and FlashSource is non-zero
|
|
10394
|
+
# 1 - ? (observed with SB-900)
|
|
10395
|
+
2 => 'Bounce Flash',
|
|
10396
|
+
4 => 'Wide Flash Adapter',
|
|
10397
|
+
7 => 'Zoom Override', #override takes place when the Wide Flash Adapter is dropped in place and/or the zoom level is overriden on via flash menu
|
|
10398
|
+
}},
|
|
10399
|
+
},
|
|
10400
|
+
9.1 => {
|
|
10401
|
+
Name => 'FlashCommanderMode',
|
|
10402
|
+
Mask => 0x80,
|
|
10403
|
+
PrintConv => { 0 => 'Off', 1 => 'On' },
|
|
10404
|
+
},
|
|
10405
|
+
9.2 => {
|
|
10406
|
+
Name => 'FlashControlMode',
|
|
10407
|
+
Mask => 0x7f,
|
|
10408
|
+
DataMember => 'FlashControlMode',
|
|
10409
|
+
RawConv => '$$self{FlashControlMode} = $val',
|
|
10410
|
+
PrintConv => \%flashControlMode,
|
|
10411
|
+
SeparateTable => 'FlashControlMode',
|
|
10412
|
+
},
|
|
10131
10413
|
10 => {
|
|
10132
10414
|
Name => 'FlashCompensation',
|
|
10133
10415
|
# this is the compensation from the camera (0x0012) for "Built-in" FlashType, or
|
|
10134
10416
|
# the compensation from the external unit (0x0017) for "Optional" FlashType - PH
|
|
10417
|
+
Condition => '$$self{FlashControlMode} == 0x01 or $$self{FlashControlMode} == 0x02', #only valid for TTL and TTL-BL modes
|
|
10135
10418
|
Format => 'int8s',
|
|
10136
10419
|
Priority => 0,
|
|
10137
10420
|
ValueConv => '-$val/6',
|
|
@@ -10139,6 +10422,130 @@ my %nikonFocalConversions = (
|
|
|
10139
10422
|
PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
|
|
10140
10423
|
PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
|
|
10141
10424
|
},
|
|
10425
|
+
13 => {
|
|
10426
|
+
Name => 'RepeatingFlashRate',
|
|
10427
|
+
RawConv => '($val and $val != 255) ? $val : undef',
|
|
10428
|
+
PrintConv => '"$val Hz"',
|
|
10429
|
+
PrintConvInv => '$val=~/(\d+)/; $1 || 0',
|
|
10430
|
+
},
|
|
10431
|
+
14 => {
|
|
10432
|
+
Name => 'RepeatingFlashCount',
|
|
10433
|
+
RawConv => '($val and $val != 255) ? $val : undef',
|
|
10434
|
+
},
|
|
10435
|
+
15 => {
|
|
10436
|
+
Name => 'FlashGNDistance',
|
|
10437
|
+
SeparateTable => 1,
|
|
10438
|
+
PrintConv => \%flashGNDistance,
|
|
10439
|
+
},
|
|
10440
|
+
16 => {
|
|
10441
|
+
Name => 'FlashColorFilter',
|
|
10442
|
+
SeparateTable => 1,
|
|
10443
|
+
PrintConv => \%flashColorFilter,
|
|
10444
|
+
},
|
|
10445
|
+
17.1 => { #PH
|
|
10446
|
+
Name => 'FlashGroupAControlMode',
|
|
10447
|
+
Mask => 0x0f,
|
|
10448
|
+
Notes => 'note: group A tags may apply to the built-in flash settings for some models',
|
|
10449
|
+
DataMember => 'FlashGroupAControlMode',
|
|
10450
|
+
RawConv => '$$self{FlashGroupAControlMode} = $val',
|
|
10451
|
+
PrintConv => \%flashControlMode,
|
|
10452
|
+
SeparateTable => 'FlashControlMode',
|
|
10453
|
+
},
|
|
10454
|
+
18.1 => { #PH
|
|
10455
|
+
Name => 'FlashGroupBControlMode',
|
|
10456
|
+
Mask => 0xf0,
|
|
10457
|
+
Notes => 'note: group B tags may apply to group A settings for some models',
|
|
10458
|
+
DataMember => 'FlashGroupBControlMode',
|
|
10459
|
+
RawConv => '$$self{FlashGroupBControlMode} = $val',
|
|
10460
|
+
PrintConv => \%flashControlMode,
|
|
10461
|
+
SeparateTable => 'FlashControlMode',
|
|
10462
|
+
},
|
|
10463
|
+
18.2 => { #PH
|
|
10464
|
+
Name => 'FlashGroupCControlMode',
|
|
10465
|
+
Mask => 0x0f,
|
|
10466
|
+
Notes => 'note: group C tags may apply to group B settings for some models',
|
|
10467
|
+
DataMember => 'FlashGroupCControlMode',
|
|
10468
|
+
RawConv => '$$self{FlashGroupCControlMode} = $val',
|
|
10469
|
+
PrintConv => \%flashControlMode,
|
|
10470
|
+
SeparateTable => 'FlashControlMode',
|
|
10471
|
+
},
|
|
10472
|
+
33 => {
|
|
10473
|
+
Name => 'FlashOutput',
|
|
10474
|
+
Condition => '$$self{FlashControlMode} >= 0x06', #only valid for M mode
|
|
10475
|
+
ValueConv => '2 ** (-$val/6)',
|
|
10476
|
+
ValueConvInv => '$val>0 ? -6*log($val)/log(2) : 0',
|
|
10477
|
+
PrintConv => '$val>0.99 ? "Full" : sprintf("%.0f%%",$val*100)',
|
|
10478
|
+
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
|
10479
|
+
},
|
|
10480
|
+
37 => {
|
|
10481
|
+
Name => 'FlashIlluminationPattern',
|
|
10482
|
+
PrintConv => {
|
|
10483
|
+
0 => 'Standard',
|
|
10484
|
+
1 => 'Center-weighted',
|
|
10485
|
+
2 => 'Even',
|
|
10486
|
+
},
|
|
10487
|
+
},
|
|
10488
|
+
38 => {
|
|
10489
|
+
Name => 'FlashFocalLength',
|
|
10490
|
+
Notes => 'only valid if flash pattern is "Standard Illumination"',
|
|
10491
|
+
RawConv => '($val and $val != 255) ? $val : undef',
|
|
10492
|
+
PrintConv => '"$val mm"',
|
|
10493
|
+
PrintConvInv => '$val=~/(\d+)/; $1 || 0',
|
|
10494
|
+
},
|
|
10495
|
+
40 => [ #PH
|
|
10496
|
+
{
|
|
10497
|
+
Name => 'FlashGroupAOutput',
|
|
10498
|
+
Condition => '$$self{FlashGroupAControlMode} >= 0x06',
|
|
10499
|
+
ValueConv => '2 ** (-$val/6)',
|
|
10500
|
+
ValueConvInv => '$val>0 ? -6*log($val)/log(2) : 0',
|
|
10501
|
+
PrintConv => '$val>0.99 ? "Full" : sprintf("%.0f%%",$val*100)',
|
|
10502
|
+
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
|
10503
|
+
},
|
|
10504
|
+
{
|
|
10505
|
+
Name => 'FlashGroupACompensation',
|
|
10506
|
+
Format => 'int8s',
|
|
10507
|
+
ValueConv => '-($val-2)/6',
|
|
10508
|
+
ValueConvInv => '-6 * $val + 2',
|
|
10509
|
+
PrintConv => '$val ? sprintf("%+.1f",$val) : 0',
|
|
10510
|
+
PrintConvInv => '$val',
|
|
10511
|
+
},
|
|
10512
|
+
],
|
|
10513
|
+
41 => [ #PH
|
|
10514
|
+
{
|
|
10515
|
+
Name => 'FlashGroupBOutput',
|
|
10516
|
+
Condition => '$$self{FlashGroupBControlMode} >= 0x06',
|
|
10517
|
+
ValueConv => '2 ** (-$val/6)',
|
|
10518
|
+
ValueConvInv => '$val>0 ? -6*log($val)/log(2) : 0',
|
|
10519
|
+
PrintConv => '$val>0.99 ? "Full" : sprintf("%.0f%%",$val*100)',
|
|
10520
|
+
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
|
10521
|
+
},
|
|
10522
|
+
{
|
|
10523
|
+
Name => 'FlashGroupBCompensation',
|
|
10524
|
+
Format => 'int8s',
|
|
10525
|
+
ValueConv => '-($val-2)/6',
|
|
10526
|
+
ValueConvInv => '-6 * $val + 2',
|
|
10527
|
+
PrintConv => '$val ? sprintf("%+.1f",$val) : 0',
|
|
10528
|
+
PrintConvInv => '$val',
|
|
10529
|
+
},
|
|
10530
|
+
],
|
|
10531
|
+
42 => [ #PH
|
|
10532
|
+
{
|
|
10533
|
+
Name => 'FlashGroupCOutput',
|
|
10534
|
+
Condition => '$$self{FlashGroupCControlMode} >= 0x06',
|
|
10535
|
+
ValueConv => '2 ** (-$val/6)',
|
|
10536
|
+
ValueConvInv => '$val>0 ? -6*log($val)/log(2) : 0',
|
|
10537
|
+
PrintConv => '$val>0.99 ? "Full" : sprintf("%.0f%%",$val*100)',
|
|
10538
|
+
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
|
10539
|
+
},
|
|
10540
|
+
{
|
|
10541
|
+
Name => 'FlashGroupCCompensation',
|
|
10542
|
+
Format => 'int8s',
|
|
10543
|
+
ValueConv => '-($val-2)/6',
|
|
10544
|
+
ValueConvInv => '-6 * $val + 2',
|
|
10545
|
+
PrintConv => '$val ? sprintf("%+.1f",$val) : 0',
|
|
10546
|
+
PrintConvInv => '$val',
|
|
10547
|
+
},
|
|
10548
|
+
],
|
|
10142
10549
|
);
|
|
10143
10550
|
# Unknown Flash information
|
|
10144
10551
|
%Image::ExifTool::Nikon::FlashInfoUnknown = (
|
|
@@ -12103,7 +12510,7 @@ Nikon maker notes in EXIF information.
|
|
|
12103
12510
|
|
|
12104
12511
|
=head1 AUTHOR
|
|
12105
12512
|
|
|
12106
|
-
Copyright 2003-
|
|
12513
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
|
12107
12514
|
|
|
12108
12515
|
This library is free software; you can redistribute it and/or modify it
|
|
12109
12516
|
under the same terms as Perl itself.
|