exiftool_vendored 12.50.0 → 12.54.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/Changes +69 -3
- data/bin/MANIFEST +2 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +3 -3
- data/bin/exiftool +12 -9
- data/bin/lib/File/RandomAccess.pm +1 -1
- data/bin/lib/File/RandomAccess.pod +2 -2
- data/bin/lib/Image/ExifTool/AES.pm +1 -1
- data/bin/lib/Image/ExifTool/AFCP.pm +1 -1
- data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/APE.pm +1 -1
- data/bin/lib/Image/ExifTool/APP12.pm +1 -1
- data/bin/lib/Image/ExifTool/ASF.pm +1 -1
- data/bin/lib/Image/ExifTool/Apple.pm +197 -27
- data/bin/lib/Image/ExifTool/Audible.pm +1 -1
- data/bin/lib/Image/ExifTool/BMP.pm +1 -1
- data/bin/lib/Image/ExifTool/BPG.pm +1 -1
- data/bin/lib/Image/ExifTool/BZZ.pm +1 -1
- data/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +3 -3
- data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
- data/bin/lib/Image/ExifTool/Canon.pm +14 -2
- data/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
- data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/CanonVRD.pm +9 -9
- data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- data/bin/lib/Image/ExifTool/Casio.pm +4 -4
- data/bin/lib/Image/ExifTool/Charset.pm +1 -1
- data/bin/lib/Image/ExifTool/DICOM.pm +1 -1
- data/bin/lib/Image/ExifTool/DJI.pm +1 -1
- data/bin/lib/Image/ExifTool/DNG.pm +1 -1
- data/bin/lib/Image/ExifTool/DPX.pm +1 -1
- data/bin/lib/Image/ExifTool/DV.pm +1 -1
- data/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
- data/bin/lib/Image/ExifTool/DjVu.pm +1 -1
- data/bin/lib/Image/ExifTool/EXE.pm +1 -1
- data/bin/lib/Image/ExifTool/Exif.pm +5 -16
- data/bin/lib/Image/ExifTool/FITS.pm +1 -1
- data/bin/lib/Image/ExifTool/FLAC.pm +1 -1
- data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
- data/bin/lib/Image/ExifTool/FLIR.pm +7 -6
- data/bin/lib/Image/ExifTool/Fixup.pm +1 -1
- data/bin/lib/Image/ExifTool/Flash.pm +1 -1
- data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
- data/bin/lib/Image/ExifTool/Font.pm +1 -1
- data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
- data/bin/lib/Image/ExifTool/FujiFilm.pm +20 -13
- data/bin/lib/Image/ExifTool/GE.pm +1 -1
- data/bin/lib/Image/ExifTool/GIF.pm +1 -1
- data/bin/lib/Image/ExifTool/GIMP.pm +1 -1
- data/bin/lib/Image/ExifTool/GPS.pm +12 -6
- data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
- data/bin/lib/Image/ExifTool/Geotag.pm +13 -5
- data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
- data/bin/lib/Image/ExifTool/H264.pm +1 -1
- data/bin/lib/Image/ExifTool/HP.pm +1 -1
- data/bin/lib/Image/ExifTool/HTML.pm +1 -1
- data/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
- data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
- data/bin/lib/Image/ExifTool/ICO.pm +1 -1
- data/bin/lib/Image/ExifTool/ID3.pm +1 -1
- data/bin/lib/Image/ExifTool/IPTC.pm +1 -1
- data/bin/lib/Image/ExifTool/ISO.pm +1 -1
- data/bin/lib/Image/ExifTool/ITC.pm +1 -1
- data/bin/lib/Image/ExifTool/Import.pm +1 -1
- data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- data/bin/lib/Image/ExifTool/JPEG.pm +2 -1
- data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- data/bin/lib/Image/ExifTool/JSON.pm +1 -1
- data/bin/lib/Image/ExifTool/JVC.pm +1 -1
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +35 -8
- data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
- data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/LIF.pm +1 -1
- data/bin/lib/Image/ExifTool/LNK.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/de.pm +2 -2
- data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/fr.pm +6016 -760
- data/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/sk.pm +1806 -0
- data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
- data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
- data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
- data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
- data/bin/lib/Image/ExifTool/M2TS.pm +1 -1
- data/bin/lib/Image/ExifTool/MIE.pm +1 -1
- data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
- data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/MISB.pm +1 -1
- data/bin/lib/Image/ExifTool/MNG.pm +1 -1
- data/bin/lib/Image/ExifTool/MOI.pm +1 -1
- data/bin/lib/Image/ExifTool/MPC.pm +1 -1
- data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
- data/bin/lib/Image/ExifTool/MPF.pm +1 -1
- data/bin/lib/Image/ExifTool/MRC.pm +1 -1
- data/bin/lib/Image/ExifTool/MWG.pm +1 -1
- data/bin/lib/Image/ExifTool/MXF.pm +1 -1
- data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
- data/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
- data/bin/lib/Image/ExifTool/Matroska.pm +262 -46
- data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
- data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
- data/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
- data/bin/lib/Image/ExifTool/Nikon.pm +658 -276
- data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- data/bin/lib/Image/ExifTool/NikonCustom.pm +140 -107
- data/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
- data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
- data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
- data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +4 -3
- data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
- data/bin/lib/Image/ExifTool/Opus.pm +1 -1
- data/bin/lib/Image/ExifTool/Other.pm +1 -1
- data/bin/lib/Image/ExifTool/PCX.pm +1 -1
- data/bin/lib/Image/ExifTool/PDF.pm +1 -1
- data/bin/lib/Image/ExifTool/PGF.pm +1 -1
- data/bin/lib/Image/ExifTool/PICT.pm +1 -1
- data/bin/lib/Image/ExifTool/PLIST.pm +12 -7
- data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
- data/bin/lib/Image/ExifTool/PNG.pm +9 -2
- data/bin/lib/Image/ExifTool/PPM.pm +1 -1
- data/bin/lib/Image/ExifTool/PSP.pm +1 -1
- data/bin/lib/Image/ExifTool/Palm.pm +1 -1
- data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
- data/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +1 -1
- data/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
- data/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
- data/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
- data/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
- data/bin/lib/Image/ExifTool/PostScript.pm +1 -1
- data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
- data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +8 -4
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +63 -15
- data/bin/lib/Image/ExifTool/README +2 -1
- data/bin/lib/Image/ExifTool/RIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
- data/bin/lib/Image/ExifTool/RTF.pm +1 -1
- data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
- data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
- data/bin/lib/Image/ExifTool/Real.pm +1 -1
- data/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
- data/bin/lib/Image/ExifTool/Red.pm +1 -1
- data/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
- data/bin/lib/Image/ExifTool/Samsung.pm +3 -1
- data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
- data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
- data/bin/lib/Image/ExifTool/Shift.pl +1 -1
- data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
- data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
- data/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
- data/bin/lib/Image/ExifTool/Sony.pm +7 -7
- data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
- data/bin/lib/Image/ExifTool/Stim.pm +1 -1
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +13 -8
- data/bin/lib/Image/ExifTool/TagLookup.pm +4599 -4505
- data/bin/lib/Image/ExifTool/TagNames.pod +313 -39
- data/bin/lib/Image/ExifTool/Text.pm +1 -1
- data/bin/lib/Image/ExifTool/Theora.pm +1 -1
- data/bin/lib/Image/ExifTool/Torrent.pm +1 -1
- data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
- data/bin/lib/Image/ExifTool/VCard.pm +1 -1
- data/bin/lib/Image/ExifTool/Validate.pm +1 -1
- data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
- data/bin/lib/Image/ExifTool/WTV.pm +1 -1
- data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteExif.pl +14 -1
- data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePDF.pl +5 -1
- data/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +30 -14
- data/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteXMP.pl +16 -2
- data/bin/lib/Image/ExifTool/Writer.pl +35 -15
- data/bin/lib/Image/ExifTool/XMP.pm +23 -3
- data/bin/lib/Image/ExifTool/XMP2.pl +20 -1
- data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- data/bin/lib/Image/ExifTool/ZIP.pm +20 -8
- data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- data/bin/lib/Image/ExifTool/iWork.pm +1 -1
- data/bin/lib/Image/ExifTool.pm +38 -16
- data/bin/lib/Image/ExifTool.pod +39 -38
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +3 -2
@@ -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.
|