exiftool-vendored.pl 12.50.0 → 12.54.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 +69 -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 +12 -9
- 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 +3 -3
- 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 +20 -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 +13 -5
- 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 +658 -276
- 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 +8 -4
- package/bin/lib/Image/ExifTool/QuickTimeStream.pl +63 -15
- package/bin/lib/Image/ExifTool/README +2 -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 +4599 -4505
- package/bin/lib/Image/ExifTool/TagNames.pod +313 -39
- 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 +3 -3
|
@@ -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.16';
|
|
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
|
},
|
|
@@ -5053,6 +5267,7 @@ my %nikonFocalConversions = (
|
|
|
5053
5267
|
31 => 'Nikkor Z 24-120 f/4', #28
|
|
5054
5268
|
32 => 'Nikkor Z 800mm f/6.3 VR S', #28
|
|
5055
5269
|
36 => 'Nikkor Z 400mm f/4.5 VR S', #IB
|
|
5270
|
+
39 => 'Nikkor Z 17-28mm f/2.8', #IB
|
|
5056
5271
|
},
|
|
5057
5272
|
},
|
|
5058
5273
|
0x35 => { #28
|
|
@@ -8250,15 +8465,26 @@ my %nikonFocalConversions = (
|
|
|
8250
8465
|
# account for variable location of menu settings data
|
|
8251
8466
|
Hook => '$varSize = $$self{MenuSettingsZ9Offset} - 0xec4b',
|
|
8252
8467
|
},
|
|
8253
|
-
0xec4b =>
|
|
8254
|
-
|
|
8255
|
-
|
|
8256
|
-
|
|
8257
|
-
|
|
8258
|
-
|
|
8468
|
+
0xec4b => [
|
|
8469
|
+
{
|
|
8470
|
+
Name => 'MenuSettingsZ9',
|
|
8471
|
+
Condition => '$$self{FirmwareVersion} lt "03.00"',
|
|
8472
|
+
Format => 'undef[1646]',
|
|
8473
|
+
Notes => 'Firmware versions 2.11 and earlier',
|
|
8474
|
+
SubDirectory => {
|
|
8475
|
+
TagTable => 'Image::ExifTool::Nikon::MenuSettingsZ9',
|
|
8476
|
+
},
|
|
8259
8477
|
},
|
|
8260
|
-
|
|
8261
|
-
|
|
8478
|
+
{
|
|
8479
|
+
Name => 'MenuSettingsZ9',
|
|
8480
|
+
Notes => 'Firmware versions 3.0 and later',
|
|
8481
|
+
Format => 'undef[1948]',
|
|
8482
|
+
SubDirectory => {
|
|
8483
|
+
TagTable => 'Image::ExifTool::Nikon::MenuSettingsZ9Firmware3',
|
|
8484
|
+
},
|
|
8485
|
+
},
|
|
8486
|
+
],
|
|
8487
|
+
# note: DecryptLen currently set to 0xec4b + 2196
|
|
8262
8488
|
);
|
|
8263
8489
|
|
|
8264
8490
|
%Image::ExifTool::Nikon::MenuSettingsZ7II = (
|
|
@@ -8366,8 +8592,8 @@ my %nikonFocalConversions = (
|
|
|
8366
8592
|
PrintConv => '$val>0.99 ? "Full" : sprintf("%.1f%%",$val*100)',
|
|
8367
8593
|
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
|
8368
8594
|
},
|
|
8369
|
-
346 => { Name => 'FlashWirelessOption', PrintConv => \%flashWirelessOptionZ7, Unknown => 1},
|
|
8370
|
-
348 => { Name => 'FlashRemoteControl', PrintConv => \%flashRemoteControlZ7,
|
|
8595
|
+
346 => { Name => 'FlashWirelessOption', PrintConv => \%flashWirelessOptionZ7, Unknown => 1 },
|
|
8596
|
+
348 => { Name => 'FlashRemoteControl', PrintConv => \%flashRemoteControlZ7, Unknown => 1 },
|
|
8371
8597
|
352 => {
|
|
8372
8598
|
Name => 'FlashMasterControlMode', # tag name chosen for compatibility with those found in FlashInfo0102 & FlashInfo0103
|
|
8373
8599
|
RawConv => '$$self{FlashGroupOptionsMasterMode} = $val',
|
|
@@ -8392,12 +8618,12 @@ my %nikonFocalConversions = (
|
|
|
8392
8618
|
PrintConv => '$val>0.99 ? "Full" : sprintf("%.1f%%",$val*100)',
|
|
8393
8619
|
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
|
8394
8620
|
},
|
|
8395
|
-
#360 => {Name => 'FlashGroupAControlMode'
|
|
8396
|
-
#368 => {Name => 'FlashGroupBControlMode'
|
|
8397
|
-
#376 => {Name => 'FlashGroupCControlMode'
|
|
8398
|
-
#384 => {Name => 'FlashGroupDControlMode'
|
|
8399
|
-
#392 => {Name => 'FlashGroupEControlMode'
|
|
8400
|
-
#400 => {Name => 'FlashGroupFControlMode'
|
|
8621
|
+
#360 => { Name => 'FlashGroupAControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupACompensation at 362 and FlashGroupAOutput at 368
|
|
8622
|
+
#368 => { Name => 'FlashGroupBControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupBCompensation at 370 and FlashGroupBOutput at 374
|
|
8623
|
+
#376 => { Name => 'FlashGroupCControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupCCompensation at 378 and FlashGroupCOutput at 382
|
|
8624
|
+
#384 => { Name => 'FlashGroupDControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupDCompensation at 386 and FlashGroupDOutput at 390
|
|
8625
|
+
#392 => { Name => 'FlashGroupEControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupECompensation at 394 and FlashGroupEOutput at 398
|
|
8626
|
+
#400 => { Name => 'FlashGroupFControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupFCompensation at 402 and FlashGroupFOutput at 406
|
|
8401
8627
|
#434 => FocusMode
|
|
8402
8628
|
#436 => AFAreaMode
|
|
8403
8629
|
#438 => VibrationReduction
|
|
@@ -8405,8 +8631,8 @@ my %nikonFocalConversions = (
|
|
|
8405
8631
|
#444 => BracketProgram
|
|
8406
8632
|
#446 => BracketIncrement
|
|
8407
8633
|
#463 => SilentPhotography
|
|
8408
|
-
502 => { Name => 'MovieFrameSize', PrintConv => \%movieFrameSizeZ9, Unknown => 1},
|
|
8409
|
-
504 => { Name => 'MovieFrameRate',
|
|
8634
|
+
502 => { Name => 'MovieFrameSize', PrintConv => \%movieFrameSizeZ9, Unknown => 1 },
|
|
8635
|
+
504 => { Name => 'MovieFrameRate', PrintConv => \%movieFrameRateZ7, Unknown => 1 },
|
|
8410
8636
|
506 => {
|
|
8411
8637
|
Name => 'MovieSlowMotion',
|
|
8412
8638
|
Unknown => 1,
|
|
@@ -8435,9 +8661,9 @@ my %nikonFocalConversions = (
|
|
|
8435
8661
|
PrintConv => \%iSOAutoHiLimitZ7,
|
|
8436
8662
|
},
|
|
8437
8663
|
#520 => MovieWhiteBalanceSameAsPhoto
|
|
8438
|
-
568 => { Name => 'MovieActiveD-Lighting',
|
|
8439
|
-
572 => { Name => 'MovieHighISONoiseReduction', PrintConv => \%offLowNormalHighZ7, Unknown => 1},
|
|
8440
|
-
574 => { Name => 'MovieVignetteControl',
|
|
8664
|
+
568 => { Name => 'MovieActiveD-Lighting', PrintConv => \%activeDLightingZ7, Unknown => 1 },
|
|
8665
|
+
572 => { Name => 'MovieHighISONoiseReduction', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
|
|
8666
|
+
574 => { Name => 'MovieVignetteControl', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
|
|
8441
8667
|
576 => {
|
|
8442
8668
|
Name => 'MovieVignetteControlSameAsPhoto',
|
|
8443
8669
|
Unknown => 1,
|
|
@@ -8453,7 +8679,7 @@ my %nikonFocalConversions = (
|
|
|
8453
8679
|
Unknown => 1,
|
|
8454
8680
|
PrintConv => \%offOn
|
|
8455
8681
|
},
|
|
8456
|
-
584 => { Name => 'MovieFocusMode', PrintConv => \%focusModeZ7, Unknown => 1},
|
|
8682
|
+
584 => { Name => 'MovieFocusMode', PrintConv => \%focusModeZ7, Unknown => 1 },
|
|
8457
8683
|
#586 => MovieAFAreaMode
|
|
8458
8684
|
590 => {
|
|
8459
8685
|
Name => 'MovieVibrationReduction',
|
|
@@ -8493,11 +8719,7 @@ my %nikonFocalConversions = (
|
|
|
8493
8719
|
140 => {
|
|
8494
8720
|
Name => 'MultipleExposureMode',
|
|
8495
8721
|
RawConv => '$$self{MultipleExposureMode} = $val',
|
|
8496
|
-
PrintConv =>
|
|
8497
|
-
0 => 'Off',
|
|
8498
|
-
1 => 'On (Series)',
|
|
8499
|
-
2 => 'On',
|
|
8500
|
-
},
|
|
8722
|
+
PrintConv => \%multipleExposureModeZ9,
|
|
8501
8723
|
},
|
|
8502
8724
|
142 => {Name => 'MultiExposureShots', Condition => '$$self{MultipleExposureMode} != 0' }, #range 2-9
|
|
8503
8725
|
188 => {
|
|
@@ -8533,27 +8755,11 @@ my %nikonFocalConversions = (
|
|
|
8533
8755
|
PrintConv => \%offOn,
|
|
8534
8756
|
Condition => '$$self{FocusShiftShooting} > 0',
|
|
8535
8757
|
},
|
|
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
|
-
},
|
|
8758
|
+
274 => { Name => 'PhotoShootingMenuBank', PrintConv => \%banksZ9 },
|
|
8759
|
+
276 => { Name => 'ExtendedMenuBanks', PrintConv => \%offOn }, #single tag from both Photo & Video menus
|
|
8760
|
+
308 => { Name => 'PhotoShootingMenuBankImageArea', PrintConv => \%imageAreaZ9 },
|
|
8555
8761
|
#310 ImageQuality
|
|
8556
|
-
322 => { Name => 'AutoISO', PrintConv => \%offOn
|
|
8762
|
+
322 => { Name => 'AutoISO', PrintConv => \%offOn },
|
|
8557
8763
|
324 => {
|
|
8558
8764
|
Name => 'ISOAutoHiLimit',
|
|
8559
8765
|
Format => 'int16u',
|
|
@@ -8575,58 +8781,7 @@ my %nikonFocalConversions = (
|
|
|
8575
8781
|
Name => 'ISOAutoShutterTime', #shutter speed is 2 ** (-$val/24)
|
|
8576
8782
|
ValueConv => '$val / 8',
|
|
8577
8783
|
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
|
-
},
|
|
8784
|
+
PrintConv => \%iSOAutoShutterTimeZ9,
|
|
8630
8785
|
},
|
|
8631
8786
|
#336 WhiteBalance
|
|
8632
8787
|
#406 PictureControl
|
|
@@ -8635,8 +8790,8 @@ my %nikonFocalConversions = (
|
|
|
8635
8790
|
#412 => { Name => 'NoiseReduction', PrintConv => \%offOn }, #Long Exposure Noise Reduction
|
|
8636
8791
|
#414 HighISONoiseReduction
|
|
8637
8792
|
#414 VignetteControl
|
|
8638
|
-
416 => { Name => 'MovieVignetteControl',
|
|
8639
|
-
418 => { Name => 'DiffractionCompensation',
|
|
8793
|
+
416 => { Name => 'MovieVignetteControl', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
|
|
8794
|
+
418 => { Name => 'DiffractionCompensation', PrintConv => \%offOn }, #value can be set from both the Photo Shoot Menu and the Video Shooting Menu
|
|
8640
8795
|
#419 AutoDistortionControl #value can be set from both the Photo Shoot Menu and the Video Shooting Menu
|
|
8641
8796
|
420 => { Name => 'FlickerReductionShooting', PrintConv => \%offOn },
|
|
8642
8797
|
#422 MeteringMode
|
|
@@ -8671,94 +8826,39 @@ my %nikonFocalConversions = (
|
|
|
8671
8826
|
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
|
8672
8827
|
},
|
|
8673
8828
|
#442 flash wirelss control 0=> 'Off' 1=> 'CMD'
|
|
8674
|
-
444 => { Name => 'FlashRemoteControl', PrintConv => \%flashRemoteControlZ7,
|
|
8675
|
-
456 => { Name => 'FlashWirelessOption', PrintConv => \%flashWirelessOptionZ7, Unknown => 1},
|
|
8829
|
+
444 => { Name => 'FlashRemoteControl', PrintConv => \%flashRemoteControlZ7, Unknown => 1 },
|
|
8830
|
+
456 => { Name => 'FlashWirelessOption', PrintConv => \%flashWirelessOptionZ7, Unknown => 1 },
|
|
8676
8831
|
#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},
|
|
8832
|
+
528 => { Name => 'AFAreaMode',PrintConv => \%aFAreaModeZ9 },
|
|
8833
|
+
530 => { Name => 'VRMode', PrintConv => \%vRModeZ9 },
|
|
8691
8834
|
534 => {
|
|
8692
8835
|
Name => 'BracketSet',
|
|
8693
8836
|
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
|
-
},
|
|
8837
|
+
PrintConv => \%bracketSetZ9,
|
|
8701
8838
|
},
|
|
8702
8839
|
536 => {
|
|
8703
8840
|
Name => 'BracketProgram',
|
|
8704
8841
|
Condition => '$$self{BracketSet} < 3',
|
|
8705
8842
|
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
|
-
},
|
|
8843
|
+
PrintConv => \%bracketProgramZ9,
|
|
8715
8844
|
},
|
|
8716
8845
|
538 => {
|
|
8717
8846
|
Name => 'BracketIncrement',
|
|
8718
8847
|
Condition => '$$self{BracketSet} < 3',
|
|
8719
8848
|
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
|
-
},
|
|
8849
|
+
PrintConv => \%bracketIncrementZ9,
|
|
8728
8850
|
},
|
|
8729
8851
|
#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},
|
|
8852
|
+
556 => { Name => 'SecondarySlotFunction', PrintConv => \%secondarySlotFunctionZ9 },
|
|
8853
|
+
572 => { Name => 'DXCropAlert', PrintConv => \%offOn },
|
|
8854
|
+
574 => { Name => 'SubjectDetection', PrintConv => \%subjectDetectionZ9 },
|
|
8741
8855
|
604 => {
|
|
8742
8856
|
Name => 'MovieImageArea',
|
|
8743
8857
|
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
|
-
},
|
|
8858
|
+
Mask => 0x01, # without the mask 4 => 'FX', 5 => DX. only the 2nd Z-series field encountered with a mask
|
|
8859
|
+
PrintConv => \%imageAreaZ9b,
|
|
8761
8860
|
},
|
|
8861
|
+
614 => { Name => 'MovieType', PrintConv => \%movieTypeZ9, Unknown => 1 },
|
|
8762
8862
|
616 => {
|
|
8763
8863
|
Name => 'MovieISOAutoHiLimit',
|
|
8764
8864
|
Format => 'int16u',
|
|
@@ -8767,115 +8867,44 @@ my %nikonFocalConversions = (
|
|
|
8767
8867
|
ValueConvInv => '8 * ($val + 104)',
|
|
8768
8868
|
PrintConv => \%iSOAutoHiLimitZ7,
|
|
8769
8869
|
},
|
|
8770
|
-
618 => { Name => 'MovieISOAutoControlManualMode', PrintConv => \%offOn, Unknown => 1},
|
|
8870
|
+
618 => { Name => 'MovieISOAutoControlManualMode', PrintConv => \%offOn, Unknown => 1 },
|
|
8771
8871
|
620 => {
|
|
8772
8872
|
Name => 'MovieISOAutoManualMode',
|
|
8773
8873
|
Format => 'int16u',
|
|
8774
8874
|
Unknown => 1,
|
|
8775
8875
|
ValueConv => '($val-104)/8',
|
|
8776
|
-
|
|
8876
|
+
ValueConvInv => '8 * ($val + 104)',
|
|
8777
8877
|
PrintConv => \%iSOAutoHiLimitZ7,
|
|
8778
8878
|
},
|
|
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
|
|
8879
|
+
696 => { Name => 'MovieActiveD-Lighting', PrintConv => \%activeDLightingZ7, Unknown => 1 },
|
|
8880
|
+
698 => { Name => 'MovieHighISONoiseReduction', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
|
|
8881
|
+
704 => { Name => 'MovieFlickerReduction', PrintConv => \%movieFlickerReductionZ9 },
|
|
8882
|
+
706 => { Name => 'MovieMeteringMode', PrintConv => \%meteringModeZ7, Unknown => 1 },
|
|
8883
|
+
708 => { Name => 'MovieFocusMode', PrintConv => \%focusModeZ7, Unknown => 1 },
|
|
8884
|
+
710 => { Name => 'MovieAFAreaMode', PrintConv => \%aFAreaModeZ9 },
|
|
8885
|
+
712 => { Name => 'MovieVRMode', PrintConv => \%vRModeZ9, Unknown => 1 },
|
|
8886
|
+
716 => { Name => 'MovieElectronicVR', PrintConv => \%offOn, Unknown => 1 }, #distinct from MoveieVRMode
|
|
8887
|
+
718 => { Name => 'MovieSoundRecording', PrintConv => { 0 => 'Off', 1 => 'Auto', 2 => 'Manual' }, Unknown => 1 },
|
|
8888
|
+
720 => { Name => 'MicrophoneSensitivity', Unknown => 1 }, #1-20
|
|
8889
|
+
722 => { Name => 'MicrophoneAttenuator', PrintConv => \%offOn, Unknown => 1 }, #distinct from MoveieVRMode
|
|
8806
8890
|
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},
|
|
8891
|
+
726 => { Name => 'WindNoiseReduction', PrintConv => \%offOn, Unknown => 1 },
|
|
8892
|
+
748 => { Name => 'MovieToneMap', PrintConv => \%movieToneMapZ9, Unknown => 1 },
|
|
8893
|
+
754 => { Name => 'MovieFrameSize', PrintConv => \%movieFrameSizeZ9, Unknown => 1 },
|
|
8894
|
+
756 => { Name => 'MovieFrameRate', PrintConv => \%movieFrameRateZ7, Unknown => 1 },
|
|
8895
|
+
762 => { Name => 'MicrophoneJackPower', PrintConv => \%offOn, Unknown => 1 },
|
|
8896
|
+
763 => { Name => 'MovieDXCropAlert', PrintConv => \%offOn, Unknown => 1 },
|
|
8897
|
+
764 => { Name => 'MovieSubjectDetection', PrintConv => \%subjectDetectionZ9, Unknown => 1 },
|
|
8822
8898
|
799 => {
|
|
8823
8899
|
Name => 'CustomSettingsZ9',
|
|
8824
8900
|
Format => 'undef[608]',
|
|
8825
8901
|
SubDirectory => { TagTable => 'Image::ExifTool::NikonCustom::SettingsZ9' },
|
|
8826
8902
|
},
|
|
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
|
-
},
|
|
8903
|
+
1426 => { Name => 'Language', PrintConv => \%languageZ9, Unknown => 1 },
|
|
8904
|
+
1428 => { Name => 'TimeZone', PrintConv => \%timeZoneZ9 },
|
|
8905
|
+
1434 => { Name => 'MonitorBrightness', ValueConv => '$val - 5', Unknown => 1 }, # settings: -5 to +5
|
|
8906
|
+
1456 => { Name => 'AFFineTune', PrintConv => \%offOn, Unknown => 1 },
|
|
8907
|
+
1552 => { Name => 'HDMIOutputResolution', PrintConv => \%hDMIOutputResolutionZ9 },
|
|
8879
8908
|
1565 => { Name => 'SetClockFromLocationData', PrintConv => \%offOn, Unknown => 1 },
|
|
8880
8909
|
1572 => { Name => 'AirplaneMode', PrintConv => \%offOn, Unknown => 1 },
|
|
8881
8910
|
1573 => { Name => 'EmptySlotRelease', PrintConv => { 0 => 'Disable Release', 1 => 'Enable Release' }, Unknown => 1 },
|
|
@@ -8884,6 +8913,210 @@ my %nikonFocalConversions = (
|
|
|
8884
8913
|
1636 => { Name => 'USBPowerDelivery', PrintConv => \%offOn, Unknown => 1 },
|
|
8885
8914
|
1645 => { Name => 'SensorShield', PrintConv => { 0 => 'Stays Open', 1 => 'Closes' }, Unknown => 1 },
|
|
8886
8915
|
);
|
|
8916
|
+
%Image::ExifTool::Nikon::MenuSettingsZ9Firmware3 = ( #starts at Offset26 + 248
|
|
8917
|
+
%binaryDataAttrs,
|
|
8918
|
+
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
|
8919
|
+
DATAMEMBER => [ 154, 204, 208, 248, 444, 554 ],
|
|
8920
|
+
IS_SUBDIR => [ 847 ],
|
|
8921
|
+
NOTES => 'These tags are used by the Z9 firmware 3.00.',
|
|
8922
|
+
154 => {
|
|
8923
|
+
Name => 'MultipleExposureMode',
|
|
8924
|
+
RawConv => '$$self{MultipleExposureMode} = $val',
|
|
8925
|
+
PrintConv => \%multipleExposureModeZ9,
|
|
8926
|
+
},
|
|
8927
|
+
156 => {Name => 'MultiExposureShots', Condition => '$$self{MultipleExposureMode} != 0'}, #range 2-9
|
|
8928
|
+
204 => {
|
|
8929
|
+
Name => 'Intervals',
|
|
8930
|
+
Format => 'int32u',
|
|
8931
|
+
RawConv => '$$self{IntervalShootingIntervals} = $val',
|
|
8932
|
+
Condition => '$$self{IntervalShooting} > 0',
|
|
8933
|
+
},
|
|
8934
|
+
208 => {
|
|
8935
|
+
Name => 'ShotsPerInterval',
|
|
8936
|
+
Format => 'int32u',
|
|
8937
|
+
RawConv => '$$self{IntervalShootingShotsPerInterval} = $val',
|
|
8938
|
+
Condition => '$$self{IntervalShooting} > 0',
|
|
8939
|
+
},
|
|
8940
|
+
248 => {
|
|
8941
|
+
Name => 'FocusShiftNumberShots', #1-300
|
|
8942
|
+
RawConv => '$$self{FocusShiftNumberShots} = $val',
|
|
8943
|
+
Condition => '$$self{FocusShiftShooting} > 0',
|
|
8944
|
+
},
|
|
8945
|
+
252 => {
|
|
8946
|
+
Name => 'FocusShiftStepWidth', #1(Narrow) to 10 (Wide)
|
|
8947
|
+
Condition => '$$self{FocusShiftShooting} > 0',
|
|
8948
|
+
},
|
|
8949
|
+
256 => {
|
|
8950
|
+
Name => 'FocusShiftInterval',
|
|
8951
|
+
Condition => '$$self{FocusShiftShooting} > 0',
|
|
8952
|
+
PrintConv => '$val == 1? "1 Second" : sprintf("%.0f Seconds",$val)',
|
|
8953
|
+
},
|
|
8954
|
+
260 => {
|
|
8955
|
+
Name => 'FocusShiftExposureLock',
|
|
8956
|
+
Unknown => 1,
|
|
8957
|
+
PrintConv => \%offOn,
|
|
8958
|
+
Condition => '$$self{FocusShiftShooting} > 0',
|
|
8959
|
+
},
|
|
8960
|
+
290 => { Name => 'PhotoShootingMenuBank', PrintConv => \%banksZ9 },
|
|
8961
|
+
292 => { Name => 'ExtendedMenuBanks', PrintConv => \%offOn }, # single tag from both Photo & Video menus
|
|
8962
|
+
328 => { Name => 'PhotoShootingMenuBankImageArea', PrintConv => \%imageAreaZ9 },
|
|
8963
|
+
342 => { Name => 'AutoISO', PrintConv => \%offOn },
|
|
8964
|
+
344 => {
|
|
8965
|
+
Name => 'ISOAutoHiLimit',
|
|
8966
|
+
Format => 'int16u',
|
|
8967
|
+
Unknown => 1,
|
|
8968
|
+
ValueConv => '($val-104)/8',
|
|
8969
|
+
ValueConvInv => '8 * ($val + 104)',
|
|
8970
|
+
PrintConv => \%iSOAutoHiLimitZ7,
|
|
8971
|
+
},
|
|
8972
|
+
346 => {
|
|
8973
|
+
Name => 'ISOAutoFlashLimit',
|
|
8974
|
+
Format => 'int16u',
|
|
8975
|
+
Unknown => 1,
|
|
8976
|
+
ValueConv => '($val-104)/8',
|
|
8977
|
+
ValueConvInv => '8 * ($val + 104)',
|
|
8978
|
+
PrintConv => \%iSOAutoHiLimitZ7,
|
|
8979
|
+
},
|
|
8980
|
+
354 => {
|
|
8981
|
+
Name => 'ISOAutoShutterTime', # shutter speed is 2 ** (-$val/24)
|
|
8982
|
+
ValueConv => '$val / 8',
|
|
8983
|
+
Format => 'int16s',
|
|
8984
|
+
PrintConv => \%iSOAutoShutterTimeZ9,
|
|
8985
|
+
},
|
|
8986
|
+
436 => { Name => 'MovieVignetteControl', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
|
|
8987
|
+
438 => { Name => 'DiffractionCompensation', PrintConv => \%offOn }, # value can be set from both the Photo Shoot Menu and the Video Shooting Menu
|
|
8988
|
+
440 => { Name => 'FlickerReductionShooting',PrintConv => \%offOn },
|
|
8989
|
+
444 => {
|
|
8990
|
+
Name => 'FlashControlMode', # this and nearby tag values for flash may be set from either the Photo Shooting Menu or using the Flash unit menu
|
|
8991
|
+
RawConv => '$$self{FlashControlMode} = $val',
|
|
8992
|
+
PrintConv => \%flashControlModeZ7,
|
|
8993
|
+
},
|
|
8994
|
+
446 => {
|
|
8995
|
+
Name => 'FlashMasterCompensation',
|
|
8996
|
+
Format => 'int8s',
|
|
8997
|
+
Unknown => 1,
|
|
8998
|
+
ValueConv => '$val/6',
|
|
8999
|
+
ValueConvInv => '6 * $val',
|
|
9000
|
+
PrintConv => '$val ? sprintf("%+.1f",$val) : 0',
|
|
9001
|
+
PrintConvInv => '$val',
|
|
9002
|
+
},
|
|
9003
|
+
450 => {
|
|
9004
|
+
Name => 'FlashGNDistance',
|
|
9005
|
+
Condition => '$$self{FlashControlMode} == 2',
|
|
9006
|
+
Unknown => 1,
|
|
9007
|
+
ValueConv => '$val + 3',
|
|
9008
|
+
PrintConv => \%flashGNDistance,
|
|
9009
|
+
},
|
|
9010
|
+
454 => {
|
|
9011
|
+
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)
|
|
9012
|
+
Condition => '$$self{FlashControlMode} >= 3',
|
|
9013
|
+
Unknown => 1,
|
|
9014
|
+
ValueConv => '2 ** (-$val/3)',
|
|
9015
|
+
ValueConvInv => '$val>0 ? -3*log($val)/log(2) : 0',
|
|
9016
|
+
PrintConv => '$val>0.99 ? "Full" : sprintf("%.1f%%",$val*100)',
|
|
9017
|
+
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
|
9018
|
+
},
|
|
9019
|
+
#462 flash wireless control 0=> 'Off' 1=> 'Optical AWL'
|
|
9020
|
+
#464 => { Name => 'FlashRemoteControl', PrintConv => \%flashRemoteControlZ7, Unknown => 1 },
|
|
9021
|
+
#476 => { Name => 'FlashWirelessOption', PrintConv => \%flashWirelessOptionZ7, Unknown => 1 },
|
|
9022
|
+
548 => { Name => 'AFAreaMode', PrintConv => \%aFAreaModeZ9},
|
|
9023
|
+
550 => { Name => 'VRMode', PrintConv => \%vRModeZ9},
|
|
9024
|
+
554 => {
|
|
9025
|
+
Name => 'BracketSet',
|
|
9026
|
+
RawConv => '$$self{BracketSet} = $val',
|
|
9027
|
+
PrintConv => \%bracketSetZ9,
|
|
9028
|
+
},
|
|
9029
|
+
556 => {
|
|
9030
|
+
Name => 'BracketProgram',
|
|
9031
|
+
Condition => '$$self{BracketSet} < 3',
|
|
9032
|
+
Notes => 'AE and/or Flash Bracketing',
|
|
9033
|
+
PrintConv => \%bracketProgramZ9,
|
|
9034
|
+
},
|
|
9035
|
+
558 => {
|
|
9036
|
+
Name => 'BracketIncrement',
|
|
9037
|
+
Condition => '$$self{BracketSet} < 3',
|
|
9038
|
+
Notes => 'AE and/or Flash Bracketing',
|
|
9039
|
+
PrintConv => \%bracketIncrementZ9,
|
|
9040
|
+
},
|
|
9041
|
+
576 => { Name => 'SecondarySlotFunction', PrintConv => \%secondarySlotFunctionZ9 },
|
|
9042
|
+
592 => { Name => 'DXCropAlert', PrintConv => \%offOn },
|
|
9043
|
+
594 => { Name => 'SubjectDetection', PrintConv => \%subjectDetectionZ9 },
|
|
9044
|
+
636 => { Name => 'HighFrequencyFlickerReductionShooting', PrintConv => \%offOn, Unknown => 1 }, # new with firmware 3.0
|
|
9045
|
+
646 => {
|
|
9046
|
+
Name => 'MovieImageArea',
|
|
9047
|
+
Unknown => 1,
|
|
9048
|
+
Mask => 0x01, # without the mask 4 => 'FX' 5 => DX only the 2nd Z-series field encountered with a mask.
|
|
9049
|
+
PrintConv => \%imageAreaZ9b,
|
|
9050
|
+
},
|
|
9051
|
+
656 => { Name => 'MovieType', PrintConv => \%movieTypeZ9, Unknown => 1 },
|
|
9052
|
+
658 => {
|
|
9053
|
+
Name => 'MovieISOAutoHiLimit',
|
|
9054
|
+
Format => 'int16u',
|
|
9055
|
+
Unknown => 1,
|
|
9056
|
+
ValueConv => '($val-104)/8',
|
|
9057
|
+
ValueConvInv => '8 * ($val + 104)',
|
|
9058
|
+
PrintConv => \%iSOAutoHiLimitZ7,
|
|
9059
|
+
},
|
|
9060
|
+
660 => { Name => 'MovieISOAutoControlManualMode', PrintConv => \%offOn, Unknown => 1 },
|
|
9061
|
+
662 => {
|
|
9062
|
+
Name => 'MovieISOAutoManualMode',
|
|
9063
|
+
Format => 'int16u',
|
|
9064
|
+
Unknown => 1,
|
|
9065
|
+
ValueConv => '($val-104)/8',
|
|
9066
|
+
ValueConvInv => '8 * ($val + 104)',
|
|
9067
|
+
PrintConv => \%iSOAutoHiLimitZ7,
|
|
9068
|
+
},
|
|
9069
|
+
736 => { Name => 'MovieActiveD-Lighting', PrintConv => \%activeDLightingZ7, Unknown => 1 },
|
|
9070
|
+
738 => { Name => 'MovieHighISONoiseReduction', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
|
|
9071
|
+
744 => { Name => 'MovieFlickerReduction', PrintConv => \%movieFlickerReductionZ9 },
|
|
9072
|
+
746 => { Name => 'MovieMeteringMode', PrintConv => \%meteringModeZ7, Unknown => 1 },
|
|
9073
|
+
748 => { Name => 'MovieFocusMode', PrintConv => \%focusModeZ7, Unknown => 1 },
|
|
9074
|
+
750 => { Name => 'MovieAFAreaMode', PrintConv => \%aFAreaModeZ9 },
|
|
9075
|
+
752 => { Name => 'MovieVRMode', PrintConv => \%vRModeZ9, Unknown => 1 },
|
|
9076
|
+
756 => { Name => 'MovieElectronicVR', PrintConv => \%offOn, Unknown => 1 }, # distinct from MoveieVRMode
|
|
9077
|
+
758 => { Name => 'MovieSoundRecording', PrintConv => { 0 => 'Off', 1 => 'Auto', 2 => 'Manual' }, Unknown => 1 },
|
|
9078
|
+
760 => { Name => 'MicrophoneSensitivity', Unknown => 1 }, # 1-20
|
|
9079
|
+
762 => { Name => 'MicrophoneAttenuator', PrintConv => \%offOn, Unknown => 1 }, # distinct from MoveieVRMode
|
|
9080
|
+
764 => { Name => 'MicrophoneFrequencyResponse',PrintConv => { 0 => 'Wide Range', 1 => 'Vocal Range' }, Unknown => 1 },
|
|
9081
|
+
766 => { Name => 'WindNoiseReduction', PrintConv => \%offOn, Unknown => 1 },
|
|
9082
|
+
788 => { Name => 'MovieToneMap', PrintConv => \%movieToneMapZ9, Unknown => 1 },
|
|
9083
|
+
794 => { Name => 'MovieFrameSize', PrintConv => \%movieFrameSizeZ9, Unknown => 1 },
|
|
9084
|
+
796 => { Name => 'MovieFrameRate', PrintConv => \%movieFrameRateZ7, Unknown => 1 },
|
|
9085
|
+
802 => { Name => 'MicrophoneJackPower', PrintConv => \%offOn, Unknown => 1 },
|
|
9086
|
+
803 => { Name => 'MovieDXCropAlert', PrintConv => \%offOn, Unknown => 1 },
|
|
9087
|
+
804 => { Name => 'MovieSubjectDetection', PrintConv => \%subjectDetectionZ9, Unknown => 1 },
|
|
9088
|
+
812 => { Name => 'MovieHighResZoom', PrintConv => \%offOn, Unknown => 1 },
|
|
9089
|
+
847 => {
|
|
9090
|
+
Name => 'CustomSettingsZ9',
|
|
9091
|
+
Format => 'undef[608]',
|
|
9092
|
+
SubDirectory => { TagTable => 'Image::ExifTool::NikonCustom::SettingsZ9' },
|
|
9093
|
+
},
|
|
9094
|
+
1474 => { Name => 'Language', PrintConv => \%languageZ9, Unknown => 1 },
|
|
9095
|
+
1476 => { Name => 'TimeZone', PrintConv => \%timeZoneZ9 },
|
|
9096
|
+
1482 => { Name => 'MonitorBrightness', PrintConv => \%monitorBrightnessZ9, Unknown => 1 }, # settings: -5 to +5. Added with firmware 3.0: Lo1, Lo2, Hi1, Hi2
|
|
9097
|
+
1504 => { Name => 'AFFineTune', PrintConv => \%offOn, Unknown => 1 },
|
|
9098
|
+
1600 => { Name => 'HDMIOutputResolution', PrintConv => \%hDMIOutputResolutionZ9 },
|
|
9099
|
+
1613 => { Name => 'SetClockFromLocationData', PrintConv => \%offOn, Unknown => 1 },
|
|
9100
|
+
1620 => { Name => 'AirplaneMode', PrintConv => \%offOn, Unknown => 1 },
|
|
9101
|
+
1621 => { Name => 'EmptySlotRelease', PrintConv => { 0 => 'Disable Release', 1 => 'Enable Release' }, Unknown => 1 },
|
|
9102
|
+
1656 => { Name => 'EnergySavingMode', PrintConv =>\%offOn, Unknown => 1 },
|
|
9103
|
+
1680 => { Name => 'RecordLocationData', PrintConv => \%offOn, Unknown => 1 },
|
|
9104
|
+
1684 => { Name => 'USBPowerDelivery', PrintConv => \%offOn, Unknown => 1 },
|
|
9105
|
+
1693 => { Name => 'SensorShield', PrintConv => { 0 => 'Stays Open', 1 => 'Closes' }, Unknown => 1 },
|
|
9106
|
+
1754 => {
|
|
9107
|
+
Name => 'FocusShiftAutoReset',
|
|
9108
|
+
Unknown => 1,
|
|
9109
|
+
PrintConv => \%offOn,
|
|
9110
|
+
Condition => '$$self{FocusShiftShooting} > 0',
|
|
9111
|
+
},
|
|
9112
|
+
#1824 ReleaseTimingIndicatorTypeADelay CSd14-b 0 => '1/200' ... 15 => '1/6'
|
|
9113
|
+
#1826 VerticalISOButton CSf2
|
|
9114
|
+
#1828 ExposureCompensationButton CSf2
|
|
9115
|
+
#1830 ISOButton CSf2
|
|
9116
|
+
#1890 ViewModeShowEffectsOfSettings CSd9-a 0=>'Always', 1=> 'Only When Flash Not Used'
|
|
9117
|
+
#1892 DispButton CSf2
|
|
9118
|
+
#1936 FocusPointDisplayOption3DTrackingColor CSa11-d 0=> 'White', 1= => 'Red'
|
|
9119
|
+
);
|
|
8887
9120
|
|
|
8888
9121
|
# Flash information (ref JD)
|
|
8889
9122
|
%Image::ExifTool::Nikon::FlashInfo0100 = (
|
|
@@ -9999,7 +10232,7 @@ my %nikonFocalConversions = (
|
|
|
9999
10232
|
},
|
|
10000
10233
|
12 => {
|
|
10001
10234
|
Name => 'FlashFocalLength',
|
|
10002
|
-
Notes => 'only valid if flash pattern is "Standard Illumination"',
|
|
10235
|
+
Notes => 'only valid if flash pattern is "Standard Illumination"', #illumination pattern no no supported starting with the SB-910
|
|
10003
10236
|
RawConv => '($val and $val != 255) ? $val : undef',
|
|
10004
10237
|
PrintConv => '"$val mm"',
|
|
10005
10238
|
PrintConvInv => '$val=~/(\d+)/; $1 || 0',
|
|
@@ -10069,7 +10302,7 @@ my %nikonFocalConversions = (
|
|
|
10069
10302
|
0x29 => [ #PH
|
|
10070
10303
|
{
|
|
10071
10304
|
Name => 'FlashGroupBOutput',
|
|
10072
|
-
Condition => '$$self{FlashGroupBControlMode} >=
|
|
10305
|
+
Condition => '$$self{FlashGroupBControlMode} >= 0x06',
|
|
10073
10306
|
ValueConv => '2 ** (-$val/6)',
|
|
10074
10307
|
ValueConvInv => '$val>0 ? -6*log($val)/log(2) : 0',
|
|
10075
10308
|
PrintConv => '$val>0.99 ? "Full" : sprintf("%.0f%%",$val*100)',
|
|
@@ -10109,6 +10342,7 @@ my %nikonFocalConversions = (
|
|
|
10109
10342
|
%Image::ExifTool::Nikon::FlashInfo0300 = (
|
|
10110
10343
|
%binaryDataAttrs,
|
|
10111
10344
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
|
10345
|
+
DATAMEMBER => [ 9.2, 17.1, 18.1, 18.2 ],
|
|
10112
10346
|
0 => {
|
|
10113
10347
|
Name => 'FlashInfoVersion',
|
|
10114
10348
|
Format => 'string[4]',
|
|
@@ -10123,15 +10357,39 @@ my %nikonFocalConversions = (
|
|
|
10123
10357
|
},
|
|
10124
10358
|
},
|
|
10125
10359
|
6 => {
|
|
10126
|
-
Format => 'int8u[2]',
|
|
10127
10360
|
Name => 'ExternalFlashFirmware',
|
|
10361
|
+
Format => 'int8u[2]',
|
|
10128
10362
|
SeparateTable => 'FlashFirmware',
|
|
10129
10363
|
PrintConv => \%flashFirmware,
|
|
10130
10364
|
},
|
|
10365
|
+
8 => {
|
|
10366
|
+
Name => 'ExternalFlashFlags',
|
|
10367
|
+
PrintConv => { BITMASK => {
|
|
10368
|
+
0 => 'Flash Ready', #flash status is 'Not Ready' when this bit is off and FlashSource is non-zero
|
|
10369
|
+
# 1 - ? (observed with SB-900)
|
|
10370
|
+
2 => 'Bounce Flash',
|
|
10371
|
+
4 => 'Wide Flash Adapter',
|
|
10372
|
+
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
|
|
10373
|
+
}},
|
|
10374
|
+
},
|
|
10375
|
+
9.1 => {
|
|
10376
|
+
Name => 'FlashCommanderMode',
|
|
10377
|
+
Mask => 0x80,
|
|
10378
|
+
PrintConv => { 0 => 'Off', 1 => 'On' },
|
|
10379
|
+
},
|
|
10380
|
+
9.2 => {
|
|
10381
|
+
Name => 'FlashControlMode',
|
|
10382
|
+
Mask => 0x7f,
|
|
10383
|
+
DataMember => 'FlashControlMode',
|
|
10384
|
+
RawConv => '$$self{FlashControlMode} = $val',
|
|
10385
|
+
PrintConv => \%flashControlMode,
|
|
10386
|
+
SeparateTable => 'FlashControlMode',
|
|
10387
|
+
},
|
|
10131
10388
|
10 => {
|
|
10132
10389
|
Name => 'FlashCompensation',
|
|
10133
10390
|
# this is the compensation from the camera (0x0012) for "Built-in" FlashType, or
|
|
10134
10391
|
# the compensation from the external unit (0x0017) for "Optional" FlashType - PH
|
|
10392
|
+
Condition => '$$self{FlashControlMode} == 0x01 or $$self{FlashControlMode} == 0x02', #only valid for TTL and TTL-BL modes
|
|
10135
10393
|
Format => 'int8s',
|
|
10136
10394
|
Priority => 0,
|
|
10137
10395
|
ValueConv => '-$val/6',
|
|
@@ -10139,6 +10397,130 @@ my %nikonFocalConversions = (
|
|
|
10139
10397
|
PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
|
|
10140
10398
|
PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
|
|
10141
10399
|
},
|
|
10400
|
+
13 => {
|
|
10401
|
+
Name => 'RepeatingFlashRate',
|
|
10402
|
+
RawConv => '($val and $val != 255) ? $val : undef',
|
|
10403
|
+
PrintConv => '"$val Hz"',
|
|
10404
|
+
PrintConvInv => '$val=~/(\d+)/; $1 || 0',
|
|
10405
|
+
},
|
|
10406
|
+
14 => {
|
|
10407
|
+
Name => 'RepeatingFlashCount',
|
|
10408
|
+
RawConv => '($val and $val != 255) ? $val : undef',
|
|
10409
|
+
},
|
|
10410
|
+
15 => {
|
|
10411
|
+
Name => 'FlashGNDistance',
|
|
10412
|
+
SeparateTable => 1,
|
|
10413
|
+
PrintConv => \%flashGNDistance,
|
|
10414
|
+
},
|
|
10415
|
+
16 => {
|
|
10416
|
+
Name => 'FlashColorFilter',
|
|
10417
|
+
SeparateTable => 1,
|
|
10418
|
+
PrintConv => \%flashColorFilter,
|
|
10419
|
+
},
|
|
10420
|
+
17.1 => { #PH
|
|
10421
|
+
Name => 'FlashGroupAControlMode',
|
|
10422
|
+
Mask => 0x0f,
|
|
10423
|
+
Notes => 'note: group A tags may apply to the built-in flash settings for some models',
|
|
10424
|
+
DataMember => 'FlashGroupAControlMode',
|
|
10425
|
+
RawConv => '$$self{FlashGroupAControlMode} = $val',
|
|
10426
|
+
PrintConv => \%flashControlMode,
|
|
10427
|
+
SeparateTable => 'FlashControlMode',
|
|
10428
|
+
},
|
|
10429
|
+
18.1 => { #PH
|
|
10430
|
+
Name => 'FlashGroupBControlMode',
|
|
10431
|
+
Mask => 0xf0,
|
|
10432
|
+
Notes => 'note: group B tags may apply to group A settings for some models',
|
|
10433
|
+
DataMember => 'FlashGroupBControlMode',
|
|
10434
|
+
RawConv => '$$self{FlashGroupBControlMode} = $val',
|
|
10435
|
+
PrintConv => \%flashControlMode,
|
|
10436
|
+
SeparateTable => 'FlashControlMode',
|
|
10437
|
+
},
|
|
10438
|
+
18.2 => { #PH
|
|
10439
|
+
Name => 'FlashGroupCControlMode',
|
|
10440
|
+
Mask => 0x0f,
|
|
10441
|
+
Notes => 'note: group C tags may apply to group B settings for some models',
|
|
10442
|
+
DataMember => 'FlashGroupCControlMode',
|
|
10443
|
+
RawConv => '$$self{FlashGroupCControlMode} = $val',
|
|
10444
|
+
PrintConv => \%flashControlMode,
|
|
10445
|
+
SeparateTable => 'FlashControlMode',
|
|
10446
|
+
},
|
|
10447
|
+
33 => {
|
|
10448
|
+
Name => 'FlashOutput',
|
|
10449
|
+
Condition => '$$self{FlashControlMode} >= 0x06', #only valid for M mode
|
|
10450
|
+
ValueConv => '2 ** (-$val/6)',
|
|
10451
|
+
ValueConvInv => '$val>0 ? -6*log($val)/log(2) : 0',
|
|
10452
|
+
PrintConv => '$val>0.99 ? "Full" : sprintf("%.0f%%",$val*100)',
|
|
10453
|
+
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
|
10454
|
+
},
|
|
10455
|
+
37 => {
|
|
10456
|
+
Name => 'FlashIlluminationPattern',
|
|
10457
|
+
PrintConv => {
|
|
10458
|
+
0 => 'Standard',
|
|
10459
|
+
1 => 'Center-weighted',
|
|
10460
|
+
2 => 'Even',
|
|
10461
|
+
},
|
|
10462
|
+
},
|
|
10463
|
+
38 => {
|
|
10464
|
+
Name => 'FlashFocalLength',
|
|
10465
|
+
Notes => 'only valid if flash pattern is "Standard Illumination"',
|
|
10466
|
+
RawConv => '($val and $val != 255) ? $val : undef',
|
|
10467
|
+
PrintConv => '"$val mm"',
|
|
10468
|
+
PrintConvInv => '$val=~/(\d+)/; $1 || 0',
|
|
10469
|
+
},
|
|
10470
|
+
40 => [ #PH
|
|
10471
|
+
{
|
|
10472
|
+
Name => 'FlashGroupAOutput',
|
|
10473
|
+
Condition => '$$self{FlashGroupAControlMode} >= 0x06',
|
|
10474
|
+
ValueConv => '2 ** (-$val/6)',
|
|
10475
|
+
ValueConvInv => '$val>0 ? -6*log($val)/log(2) : 0',
|
|
10476
|
+
PrintConv => '$val>0.99 ? "Full" : sprintf("%.0f%%",$val*100)',
|
|
10477
|
+
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
|
10478
|
+
},
|
|
10479
|
+
{
|
|
10480
|
+
Name => 'FlashGroupACompensation',
|
|
10481
|
+
Format => 'int8s',
|
|
10482
|
+
ValueConv => '-($val-2)/6',
|
|
10483
|
+
ValueConvInv => '-6 * $val + 2',
|
|
10484
|
+
PrintConv => '$val ? sprintf("%+.1f",$val) : 0',
|
|
10485
|
+
PrintConvInv => '$val',
|
|
10486
|
+
},
|
|
10487
|
+
],
|
|
10488
|
+
41 => [ #PH
|
|
10489
|
+
{
|
|
10490
|
+
Name => 'FlashGroupBOutput',
|
|
10491
|
+
Condition => '$$self{FlashGroupBControlMode} >= 0x06',
|
|
10492
|
+
ValueConv => '2 ** (-$val/6)',
|
|
10493
|
+
ValueConvInv => '$val>0 ? -6*log($val)/log(2) : 0',
|
|
10494
|
+
PrintConv => '$val>0.99 ? "Full" : sprintf("%.0f%%",$val*100)',
|
|
10495
|
+
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
|
10496
|
+
},
|
|
10497
|
+
{
|
|
10498
|
+
Name => 'FlashGroupBCompensation',
|
|
10499
|
+
Format => 'int8s',
|
|
10500
|
+
ValueConv => '-($val-2)/6',
|
|
10501
|
+
ValueConvInv => '-6 * $val + 2',
|
|
10502
|
+
PrintConv => '$val ? sprintf("%+.1f",$val) : 0',
|
|
10503
|
+
PrintConvInv => '$val',
|
|
10504
|
+
},
|
|
10505
|
+
],
|
|
10506
|
+
42 => [ #PH
|
|
10507
|
+
{
|
|
10508
|
+
Name => 'FlashGroupCOutput',
|
|
10509
|
+
Condition => '$$self{FlashGroupCControlMode} >= 0x06',
|
|
10510
|
+
ValueConv => '2 ** (-$val/6)',
|
|
10511
|
+
ValueConvInv => '$val>0 ? -6*log($val)/log(2) : 0',
|
|
10512
|
+
PrintConv => '$val>0.99 ? "Full" : sprintf("%.0f%%",$val*100)',
|
|
10513
|
+
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
|
10514
|
+
},
|
|
10515
|
+
{
|
|
10516
|
+
Name => 'FlashGroupCCompensation',
|
|
10517
|
+
Format => 'int8s',
|
|
10518
|
+
ValueConv => '-($val-2)/6',
|
|
10519
|
+
ValueConvInv => '-6 * $val + 2',
|
|
10520
|
+
PrintConv => '$val ? sprintf("%+.1f",$val) : 0',
|
|
10521
|
+
PrintConvInv => '$val',
|
|
10522
|
+
},
|
|
10523
|
+
],
|
|
10142
10524
|
);
|
|
10143
10525
|
# Unknown Flash information
|
|
10144
10526
|
%Image::ExifTool::Nikon::FlashInfoUnknown = (
|
|
@@ -12103,7 +12485,7 @@ Nikon maker notes in EXIF information.
|
|
|
12103
12485
|
|
|
12104
12486
|
=head1 AUTHOR
|
|
12105
12487
|
|
|
12106
|
-
Copyright 2003-
|
|
12488
|
+
Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
|
|
12107
12489
|
|
|
12108
12490
|
This library is free software; you can redistribute it and/or modify it
|
|
12109
12491
|
under the same terms as Perl itself.
|