exiftool_vendored 12.50.0 → 12.52.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.13';
67
+ $VERSION = '4.15';
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
- # LensFStops varies with FocalLength for this lens (ref 2):
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)
@@ -829,6 +831,53 @@ my %activeDLightingZ7 = (
829
831
  5 => 'Extra High',
830
832
  );
831
833
 
834
+ my %aFAreaModeZ9 = (
835
+ 0 => 'Pinpoint',
836
+ 1 => 'Single',
837
+ 2 => 'Dynamic',
838
+ 3 => 'Wide (S)',
839
+ 4 => 'Wide (L)',
840
+ 5 => '3D',
841
+ 6 => 'Auto',
842
+ 11 => 'Subject Tracking',
843
+ 12 => 'Wide (C1)',
844
+ 13 => 'Wide (C2)',
845
+ );
846
+
847
+ my %banksZ9 = (
848
+ 0 => 'A',
849
+ 1 => 'B',
850
+ 2 => 'C',
851
+ 3 => 'D',
852
+ );
853
+
854
+ my %bracketIncrementZ9 = (
855
+ 0 => '0.3',
856
+ #1 => '0.5',
857
+ 2 => '0.7',
858
+ 3 => '1.0',
859
+ 4 => '2.0',
860
+ 5 => '3.0',
861
+ );
862
+
863
+ my %bracketSetZ9 = (
864
+ 0 => 'AE/Flash',
865
+ 1 => 'AE',
866
+ 2 => 'Flash',
867
+ 3 => 'White Balance',
868
+ 4 => 'Active-D Lighting',
869
+ );
870
+
871
+ my %bracketProgramZ9 = (
872
+ 0 => 'Disabled',
873
+ 2 => '2F',
874
+ 3 => '3F',
875
+ 4 => '4F',
876
+ 5 => '5F',
877
+ 7 => '7F',
878
+ 9 => '9F',
879
+ );
880
+
832
881
  my %flashControlModeZ7 = (
833
882
  0 => 'TTL',
834
883
  1 => 'Auto External Flash',
@@ -857,6 +906,29 @@ my %focusModeZ7 = (
857
906
  4 => 'AF-F', # full frame
858
907
  );
859
908
 
909
+ my %hDMIOutputResolutionZ9 = (
910
+ 0 => 'Auto',
911
+ 1 => '4320p',
912
+ 2 => '2160p',
913
+ 3 => '1080p',
914
+ #4 => '1080i',
915
+ 5 => '720p',
916
+ #6 => '576p',
917
+ #7 => '480p',
918
+ );
919
+
920
+ my %imageAreaZ9 = (
921
+ 0 => 'FX',
922
+ 1 => 'DX',
923
+ 4 => '16:9',
924
+ 8 => '1:1',
925
+ );
926
+
927
+ my %imageAreaZ9b = (
928
+ 0 => 'FX',
929
+ 1 => 'DX',
930
+ );
931
+
860
932
  my %infoZSeries = (
861
933
  Condition => '$$self{Model} =~ /^NIKON Z (5|50|6|6_2|7|7_2|fc|9)\b/i',
862
934
  Notes => 'Z Series cameras thru December 2021',
@@ -895,6 +967,66 @@ my %iSOAutoHiLimitZ7 = (
895
967
  32 => 'ISO Hi 2.0',
896
968
  );
897
969
 
970
+ my %iSOAutoShutterTimeZ9 = (
971
+ -15 => 'Auto', #z9 firmware 1.00 maps both 'Auto' and '30 s' to -15
972
+ -12 => '15 s',
973
+ -9 => '8 s',
974
+ -6 => '4 s',
975
+ -3 => '2 s',
976
+ 0 => '1 s',
977
+ 1 => '1/1.3 s',
978
+ 2 => '1/1.6 s',
979
+ 3 => '1/2 s',
980
+ 4 => '1/2.5 s',
981
+ 5 => '1/3 s',
982
+ 6 => '1/4 s',
983
+ 7 => '1/5 s',
984
+ 8 => '1/6 s',
985
+ 9 => '1/8 s',
986
+ 10 => '1/10 s',
987
+ 11 => '1/13 s',
988
+ 12 => '1/15 s',
989
+ 13 => '1/20 s',
990
+ 14 => '1/25 s',
991
+ 15 => '1/30 s',
992
+ 16 => '1/40 s',
993
+ 17 => '1/50 s',
994
+ 18 => '1/60 s',
995
+ 19 => '1/80 s',
996
+ 20 => '1/100 s',
997
+ 21 => '1/120 s',
998
+ 22 => '1/160 s',
999
+ 23 => '1/200 s',
1000
+ 24 => '1/250 s',
1001
+ 25 => '1/320 s',
1002
+ 26 => '1/400 s',
1003
+ 27 => '1/500 s',
1004
+ 28 => '1/640 s',
1005
+ 29 => '1/800 s',
1006
+ 30 => '1/1000 s',
1007
+ 31 => '1/1250 s',
1008
+ 32 => '1/1600 s',
1009
+ 33 => '1/2000 s',
1010
+ 34 => '1/2500 s',
1011
+ 35 => '1/3200 s',
1012
+ 36 => '1/4000 s',
1013
+ 37 => '1/5000 s',
1014
+ 37.5 => '1/6000 s',
1015
+ 38 => '1/6400 s',
1016
+ 39 => '1/8000 s',
1017
+ 40 => '1/10000 s',
1018
+ 40.5 => '1/12000 s',
1019
+ 41 => '1/13000 s',
1020
+ 42 => '1/16000 s',
1021
+ );
1022
+
1023
+ my %languageZ9 = (
1024
+ 4 => 'English',
1025
+ 5 => 'Spanish',
1026
+ 7 => 'French',
1027
+ 15 => 'Portuguese'
1028
+ );
1029
+
898
1030
  my %meteringModeZ7 = (
899
1031
  0 => 'Matrix',
900
1032
  1 => 'Center',
@@ -902,6 +1034,30 @@ my %meteringModeZ7 = (
902
1034
  3 => 'Highlight'
903
1035
  );
904
1036
 
1037
+ my %monitorBrightnessZ9 = (
1038
+ 0 => '-5',
1039
+ 1 => '-4',
1040
+ 2 => '-3',
1041
+ 3 => '-2',
1042
+ 4 => '-1',
1043
+ 5 => '0',
1044
+ 6 => '1',
1045
+ 7 => '2',
1046
+ 8 => '3',
1047
+ 9 => '4',
1048
+ 10 => '5',
1049
+ 14 => 'Hi1',
1050
+ 15 => 'Hi2',
1051
+ 16 => 'Lo2',
1052
+ 17 => 'Lo1',
1053
+ );
1054
+
1055
+ my %movieFlickerReductionZ9 = (
1056
+ 0 => 'Auto',
1057
+ 1 => '50Hz',
1058
+ 2 => '60Hz',
1059
+ );
1060
+
905
1061
  my %movieFrameRateZ7 = (
906
1062
  0 => '120p',
907
1063
  1 => '100p',
@@ -912,6 +1068,33 @@ my %movieFrameRateZ7 = (
912
1068
  6 => '24p',
913
1069
  );
914
1070
 
1071
+ my %movieFrameSizeZ9 = (
1072
+ 1 => '1920x1080',
1073
+ 2 => '3840x2160',
1074
+ 3 => '7680x4320',
1075
+ );
1076
+
1077
+ my %movieToneMapZ9 = (
1078
+ 0 => 'SDR',
1079
+ 1 => 'HLG',
1080
+ 2 => 'N-Log',
1081
+ );
1082
+
1083
+ my %movieTypeZ9 = (
1084
+ 1 => 'H.265 8-bit (MP4)',
1085
+ 2 => 'H.265 8-bit (MOV)',
1086
+ 3 => 'H.265 10-bit (MOV)',
1087
+ 4 => 'ProRes 422 HQ 10-bit (MOV)',
1088
+ 5 => 'ProRes RAW HQ 12-bit (MOV)',
1089
+ 6 => 'NRAW 12-bit (NEV)'
1090
+ );
1091
+
1092
+ my %multipleExposureModeZ9 = (
1093
+ 0 => 'Off',
1094
+ 1 => 'On',
1095
+ 2 => 'On (Series)',
1096
+ );
1097
+
915
1098
  my %offLowNormalHighZ7 = (
916
1099
  0 => 'Off',
917
1100
  1 => 'Low',
@@ -919,10 +1102,11 @@ my %offLowNormalHighZ7 = (
919
1102
  3 => 'High',
920
1103
  );
921
1104
 
922
- my %movieFrameSizeZ9 = (
923
- 1 => '1920x1080',
924
- 2 => '3840x2160',
925
- 3 => '7680x4320',
1105
+ my %secondarySlotFunctionZ9 = (
1106
+ 0 => 'Overflow',
1107
+ 1 => 'Backup',
1108
+ 2 => 'NEF Primary + JPG Secondary',
1109
+ 3 => 'JPG Primary + JPG Secondary',
926
1110
  );
927
1111
 
928
1112
  my %subjectDetectionZ9 = (
@@ -933,6 +1117,34 @@ my %subjectDetectionZ9 = (
933
1117
  4 => 'Vehicles',
934
1118
  );
935
1119
 
1120
+ my %timeZoneZ9 = (
1121
+ 3 => '+10:00 (Sydney)',
1122
+ 5 => '+09:00 (Tokyo)',
1123
+ 6 => '+08:00 (Beijing, Honk Kong, Sinapore)',
1124
+ 10 => '+05:45 (Kathmandu)',
1125
+ 11 => '+05:30 (New Dehli)',
1126
+ 12 => '+05:00 (Islamabad)',
1127
+ 13 => '+04:30 (Kabul)',
1128
+ 14 => '+04:00 (Abu Dhabi)',
1129
+ 15 => '+03:30 (Tehran)',
1130
+ 16 => '+03:00 (Moscow, Nairobi)',
1131
+ 17 => '+02:00 (Athens, Helsinki)',
1132
+ 18 => '+01:00 (Madrid, Paris, Berlin)',
1133
+ 19 => '+00:00 (London)',
1134
+ 20 => '-01:00 (Azores)',
1135
+ 21 => '-02:00 (Fernando de Noronha)',
1136
+ 22 => '-03:00 (Buenos Aires, Sao Paulo)',
1137
+ 23 => '-03:30 (Newfoundland)',
1138
+ 24 => '-04:00 (Manaus, Caracas)',
1139
+ 25 => '-05:00 (New York, Toronto, Lima)',
1140
+ 26 => '-06:00 (Chicago, Mexico City)',
1141
+ 27 => '-07:00 (Denver)',
1142
+ 28 => '-08:00 (Los Angeles, Vancouver)',
1143
+ 29 => '-09:00 (Anchorage)',
1144
+ 30 => '-10:00 (Hawaii)',
1145
+ );
1146
+
1147
+
936
1148
  my %vRModeZ9 = (
937
1149
  0 => 'Off',
938
1150
  1 => 'Normal',
@@ -2091,7 +2303,7 @@ my %base64coord = (
2091
2303
  TagTable => 'Image::ExifTool::Nikon::ShotInfoZ9',
2092
2304
  DecryptStart => 4,
2093
2305
  # TODO: eventually set the length dynamically according to actual offsets!
2094
- DecryptLen => 0xec4b + 2105, # decoded thru end of Offset26
2306
+ DecryptLen => 0xec4b + 2196, # decoded thru end of Offset26
2095
2307
  ByteOrder => 'LittleEndian',
2096
2308
  },
2097
2309
  },
@@ -5053,6 +5265,7 @@ my %nikonFocalConversions = (
5053
5265
  31 => 'Nikkor Z 24-120 f/4', #28
5054
5266
  32 => 'Nikkor Z 800mm f/6.3 VR S', #28
5055
5267
  36 => 'Nikkor Z 400mm f/4.5 VR S', #IB
5268
+ 39 => 'Nikkor Z 17-28mm f/2.8', #IB
5056
5269
  },
5057
5270
  },
5058
5271
  0x35 => { #28
@@ -8250,15 +8463,26 @@ my %nikonFocalConversions = (
8250
8463
  # account for variable location of menu settings data
8251
8464
  Hook => '$varSize = $$self{MenuSettingsZ9Offset} - 0xec4b',
8252
8465
  },
8253
- 0xec4b => {
8254
- Name => 'MenuSettingsZ9',
8255
- Format => 'undef[1646]',
8256
- Condition => '$$self{FirmwareVersion} lt "03.00"',
8257
- SubDirectory => {
8258
- TagTable => 'Image::ExifTool::Nikon::MenuSettingsZ9',
8466
+ 0xec4b => [
8467
+ {
8468
+ Name => 'MenuSettingsZ9',
8469
+ Condition => '$$self{FirmwareVersion} lt "03.00"',
8470
+ Format => 'undef[1646]',
8471
+ Notes => 'Firmware versions 2.11 and earlier',
8472
+ SubDirectory => {
8473
+ TagTable => 'Image::ExifTool::Nikon::MenuSettingsZ9',
8474
+ },
8259
8475
  },
8260
- },
8261
- # note: DecryptLen currently set to 0xec4b + 1646
8476
+ {
8477
+ Name => 'MenuSettingsZ9',
8478
+ Notes => 'Firmware versions 3.0 and later',
8479
+ Format => 'undef[1948]',
8480
+ SubDirectory => {
8481
+ TagTable => 'Image::ExifTool::Nikon::MenuSettingsZ9Firmware3',
8482
+ },
8483
+ },
8484
+ ],
8485
+ # note: DecryptLen currently set to 0xec4b + 2196
8262
8486
  );
8263
8487
 
8264
8488
  %Image::ExifTool::Nikon::MenuSettingsZ7II = (
@@ -8366,8 +8590,8 @@ my %nikonFocalConversions = (
8366
8590
  PrintConv => '$val>0.99 ? "Full" : sprintf("%.1f%%",$val*100)',
8367
8591
  PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
8368
8592
  },
8369
- 346 => { Name => 'FlashWirelessOption', PrintConv => \%flashWirelessOptionZ7, Unknown => 1},
8370
- 348 => { Name => 'FlashRemoteControl', PrintConv => \%flashRemoteControlZ7, Unknown => 1},
8593
+ 346 => { Name => 'FlashWirelessOption', PrintConv => \%flashWirelessOptionZ7, Unknown => 1 },
8594
+ 348 => { Name => 'FlashRemoteControl', PrintConv => \%flashRemoteControlZ7, Unknown => 1 },
8371
8595
  352 => {
8372
8596
  Name => 'FlashMasterControlMode', # tag name chosen for compatibility with those found in FlashInfo0102 & FlashInfo0103
8373
8597
  RawConv => '$$self{FlashGroupOptionsMasterMode} = $val',
@@ -8392,12 +8616,12 @@ my %nikonFocalConversions = (
8392
8616
  PrintConv => '$val>0.99 ? "Full" : sprintf("%.1f%%",$val*100)',
8393
8617
  PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
8394
8618
  },
8395
- #360 => {Name => 'FlashGroupAControlMode', }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupACompensation at 362 and FlashGroupAOutput at 368
8396
- #368 => {Name => 'FlashGroupBControlMode', }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupBCompensation at 370 and FlashGroupBOutput at 374
8397
- #376 => {Name => 'FlashGroupCControlMode', }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupCCompensation at 378 and FlashGroupCOutput at 382
8398
- #384 => {Name => 'FlashGroupDControlMode', }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupDCompensation at 386 and FlashGroupDOutput at 390
8399
- #392 => {Name => 'FlashGroupEControlMode', }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupECompensation at 394 and FlashGroupEOutput at 398
8400
- #400 => {Name => 'FlashGroupFControlMode', }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupFCompensation at 402 and FlashGroupFOutput at 406
8619
+ #360 => { Name => 'FlashGroupAControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupACompensation at 362 and FlashGroupAOutput at 368
8620
+ #368 => { Name => 'FlashGroupBControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupBCompensation at 370 and FlashGroupBOutput at 374
8621
+ #376 => { Name => 'FlashGroupCControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupCCompensation at 378 and FlashGroupCOutput at 382
8622
+ #384 => { Name => 'FlashGroupDControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupDCompensation at 386 and FlashGroupDOutput at 390
8623
+ #392 => { Name => 'FlashGroupEControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupECompensation at 394 and FlashGroupEOutput at 398
8624
+ #400 => { Name => 'FlashGroupFControlMode' }, # commented out to reduce output volume - mapping follows FlashMasterControlMode with FlashGroupFCompensation at 402 and FlashGroupFOutput at 406
8401
8625
  #434 => FocusMode
8402
8626
  #436 => AFAreaMode
8403
8627
  #438 => VibrationReduction
@@ -8405,8 +8629,8 @@ my %nikonFocalConversions = (
8405
8629
  #444 => BracketProgram
8406
8630
  #446 => BracketIncrement
8407
8631
  #463 => SilentPhotography
8408
- 502 => { Name => 'MovieFrameSize', PrintConv => \%movieFrameSizeZ9, Unknown => 1},
8409
- 504 => { Name => 'MovieFrameRate', PrintConv => \%movieFrameRateZ7, Unknown => 1},
8632
+ 502 => { Name => 'MovieFrameSize', PrintConv => \%movieFrameSizeZ9, Unknown => 1 },
8633
+ 504 => { Name => 'MovieFrameRate', PrintConv => \%movieFrameRateZ7, Unknown => 1 },
8410
8634
  506 => {
8411
8635
  Name => 'MovieSlowMotion',
8412
8636
  Unknown => 1,
@@ -8435,9 +8659,9 @@ my %nikonFocalConversions = (
8435
8659
  PrintConv => \%iSOAutoHiLimitZ7,
8436
8660
  },
8437
8661
  #520 => MovieWhiteBalanceSameAsPhoto
8438
- 568 => { Name => 'MovieActiveD-Lighting', PrintConv => \%activeDLightingZ7, Unknown => 1},
8439
- 572 => { Name => 'MovieHighISONoiseReduction', PrintConv => \%offLowNormalHighZ7, Unknown => 1},
8440
- 574 => { Name => 'MovieVignetteControl', PrintConv => \%offLowNormalHighZ7, Unknown => 1},
8662
+ 568 => { Name => 'MovieActiveD-Lighting', PrintConv => \%activeDLightingZ7, Unknown => 1 },
8663
+ 572 => { Name => 'MovieHighISONoiseReduction', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
8664
+ 574 => { Name => 'MovieVignetteControl', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
8441
8665
  576 => {
8442
8666
  Name => 'MovieVignetteControlSameAsPhoto',
8443
8667
  Unknown => 1,
@@ -8453,7 +8677,7 @@ my %nikonFocalConversions = (
8453
8677
  Unknown => 1,
8454
8678
  PrintConv => \%offOn
8455
8679
  },
8456
- 584 => { Name => 'MovieFocusMode', PrintConv => \%focusModeZ7, Unknown => 1},
8680
+ 584 => { Name => 'MovieFocusMode', PrintConv => \%focusModeZ7, Unknown => 1 },
8457
8681
  #586 => MovieAFAreaMode
8458
8682
  590 => {
8459
8683
  Name => 'MovieVibrationReduction',
@@ -8493,11 +8717,7 @@ my %nikonFocalConversions = (
8493
8717
  140 => {
8494
8718
  Name => 'MultipleExposureMode',
8495
8719
  RawConv => '$$self{MultipleExposureMode} = $val',
8496
- PrintConv => {
8497
- 0 => 'Off',
8498
- 1 => 'On (Series)',
8499
- 2 => 'On',
8500
- },
8720
+ PrintConv => \%multipleExposureModeZ9,
8501
8721
  },
8502
8722
  142 => {Name => 'MultiExposureShots', Condition => '$$self{MultipleExposureMode} != 0' }, #range 2-9
8503
8723
  188 => {
@@ -8533,27 +8753,11 @@ my %nikonFocalConversions = (
8533
8753
  PrintConv => \%offOn,
8534
8754
  Condition => '$$self{FocusShiftShooting} > 0',
8535
8755
  },
8536
- 274 => {
8537
- Name => 'PhotoShootingMenuBank',
8538
- PrintConv => {
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
- },
8756
+ 274 => { Name => 'PhotoShootingMenuBank', PrintConv => \%banksZ9 },
8757
+ 276 => { Name => 'ExtendedMenuBanks', PrintConv => \%offOn }, #single tag from both Photo & Video menus
8758
+ 308 => { Name => 'PhotoShootingMenuBankImageArea', PrintConv => \%imageAreaZ9 },
8555
8759
  #310 ImageQuality
8556
- 322 => { Name => 'AutoISO', PrintConv => \%offOn, },
8760
+ 322 => { Name => 'AutoISO', PrintConv => \%offOn },
8557
8761
  324 => {
8558
8762
  Name => 'ISOAutoHiLimit',
8559
8763
  Format => 'int16u',
@@ -8575,58 +8779,7 @@ my %nikonFocalConversions = (
8575
8779
  Name => 'ISOAutoShutterTime', #shutter speed is 2 ** (-$val/24)
8576
8780
  ValueConv => '$val / 8',
8577
8781
  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
- },
8782
+ PrintConv => \%iSOAutoShutterTimeZ9,
8630
8783
  },
8631
8784
  #336 WhiteBalance
8632
8785
  #406 PictureControl
@@ -8635,8 +8788,8 @@ my %nikonFocalConversions = (
8635
8788
  #412 => { Name => 'NoiseReduction', PrintConv => \%offOn }, #Long Exposure Noise Reduction
8636
8789
  #414 HighISONoiseReduction
8637
8790
  #414 VignetteControl
8638
- 416 => { Name => 'MovieVignetteControl', PrintConv => \%offLowNormalHighZ7, Unknown => 1},
8639
- 418 => { Name => 'DiffractionCompensation', PrintConv => \%offOn }, #value can be set from both the Photo Shoot Menu and the Video Shooting Menu
8791
+ 416 => { Name => 'MovieVignetteControl', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
8792
+ 418 => { Name => 'DiffractionCompensation', PrintConv => \%offOn }, #value can be set from both the Photo Shoot Menu and the Video Shooting Menu
8640
8793
  #419 AutoDistortionControl #value can be set from both the Photo Shoot Menu and the Video Shooting Menu
8641
8794
  420 => { Name => 'FlickerReductionShooting', PrintConv => \%offOn },
8642
8795
  #422 MeteringMode
@@ -8671,94 +8824,39 @@ my %nikonFocalConversions = (
8671
8824
  PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
8672
8825
  },
8673
8826
  #442 flash wirelss control 0=> 'Off' 1=> 'CMD'
8674
- 444 => { Name => 'FlashRemoteControl', PrintConv => \%flashRemoteControlZ7, Unknown => 1},
8675
- 456 => { Name => 'FlashWirelessOption', PrintConv => \%flashWirelessOptionZ7, Unknown => 1},
8827
+ 444 => { Name => 'FlashRemoteControl', PrintConv => \%flashRemoteControlZ7, Unknown => 1 },
8828
+ 456 => { Name => 'FlashWirelessOption', PrintConv => \%flashWirelessOptionZ7, Unknown => 1 },
8676
8829
  #526 FocusMode
8677
- 528 => {
8678
- Name => 'AFAreaMode',
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},
8830
+ 528 => { Name => 'AFAreaMode',PrintConv => \%aFAreaModeZ9 },
8831
+ 530 => { Name => 'VRMode', PrintConv => \%vRModeZ9 },
8691
8832
  534 => {
8692
8833
  Name => 'BracketSet',
8693
8834
  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
- },
8835
+ PrintConv => \%bracketSetZ9,
8701
8836
  },
8702
8837
  536 => {
8703
8838
  Name => 'BracketProgram',
8704
8839
  Condition => '$$self{BracketSet} < 3',
8705
8840
  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
- },
8841
+ PrintConv => \%bracketProgramZ9,
8715
8842
  },
8716
8843
  538 => {
8717
8844
  Name => 'BracketIncrement',
8718
8845
  Condition => '$$self{BracketSet} < 3',
8719
8846
  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
- },
8847
+ PrintConv => \%bracketIncrementZ9,
8728
8848
  },
8729
8849
  #544 BracketProgram for ADL
8730
- 556 => {
8731
- Name => 'SecondarySlotFunction',
8732
- PrintConv => {
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},
8850
+ 556 => { Name => 'SecondarySlotFunction', PrintConv => \%secondarySlotFunctionZ9 },
8851
+ 572 => { Name => 'DXCropAlert', PrintConv => \%offOn },
8852
+ 574 => { Name => 'SubjectDetection', PrintConv => \%subjectDetectionZ9 },
8741
8853
  604 => {
8742
8854
  Name => 'MovieImageArea',
8743
8855
  Unknown => 1,
8744
- Mask => 0x01, #without the mask 4 => 'FX' 5 => DX only the 2nd Z-series field encountered with a mask.
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
- },
8856
+ Mask => 0x01, # without the mask 4 => 'FX', 5 => DX. only the 2nd Z-series field encountered with a mask
8857
+ PrintConv => \%imageAreaZ9b,
8761
8858
  },
8859
+ 614 => { Name => 'MovieType', PrintConv => \%movieTypeZ9, Unknown => 1 },
8762
8860
  616 => {
8763
8861
  Name => 'MovieISOAutoHiLimit',
8764
8862
  Format => 'int16u',
@@ -8767,115 +8865,44 @@ my %nikonFocalConversions = (
8767
8865
  ValueConvInv => '8 * ($val + 104)',
8768
8866
  PrintConv => \%iSOAutoHiLimitZ7,
8769
8867
  },
8770
- 618 => { Name => 'MovieISOAutoControlManualMode', PrintConv => \%offOn, Unknown => 1},
8868
+ 618 => { Name => 'MovieISOAutoControlManualMode', PrintConv => \%offOn, Unknown => 1 },
8771
8869
  620 => {
8772
8870
  Name => 'MovieISOAutoManualMode',
8773
8871
  Format => 'int16u',
8774
8872
  Unknown => 1,
8775
8873
  ValueConv => '($val-104)/8',
8776
- ValueConvInv => '8 * ($val + 104)',
8874
+ ValueConvInv => '8 * ($val + 104)',
8777
8875
  PrintConv => \%iSOAutoHiLimitZ7,
8778
8876
  },
8779
- 696 => { Name => 'MovieActiveD-Lighting', PrintConv => \%activeDLightingZ7, Unknown => 1},
8780
- 698 => { Name => 'MovieHighISONoiseReduction', PrintConv => \%offLowNormalHighZ7, Unknown => 1},
8781
- 704 => {
8782
- Name => 'MovieFlickerReduction',
8783
- PrintConv => {
8784
- 0 => 'Auto',
8785
- 1 => '50Hz',
8786
- 2 => '60Hz',
8787
- },
8788
- },
8789
- 706 => { Name => 'MovieMeteringMode', PrintConv => \%meteringModeZ7, , Unknown => 1},
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
8877
+ 696 => { Name => 'MovieActiveD-Lighting', PrintConv => \%activeDLightingZ7, Unknown => 1 },
8878
+ 698 => { Name => 'MovieHighISONoiseReduction', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
8879
+ 704 => { Name => 'MovieFlickerReduction', PrintConv => \%movieFlickerReductionZ9 },
8880
+ 706 => { Name => 'MovieMeteringMode', PrintConv => \%meteringModeZ7, Unknown => 1 },
8881
+ 708 => { Name => 'MovieFocusMode', PrintConv => \%focusModeZ7, Unknown => 1 },
8882
+ 710 => { Name => 'MovieAFAreaMode', PrintConv => \%aFAreaModeZ9 },
8883
+ 712 => { Name => 'MovieVRMode', PrintConv => \%vRModeZ9, Unknown => 1 },
8884
+ 716 => { Name => 'MovieElectronicVR', PrintConv => \%offOn, Unknown => 1 }, #distinct from MoveieVRMode
8885
+ 718 => { Name => 'MovieSoundRecording', PrintConv => { 0 => 'Off', 1 => 'Auto', 2 => 'Manual' }, Unknown => 1 },
8886
+ 720 => { Name => 'MicrophoneSensitivity', Unknown => 1 }, #1-20
8887
+ 722 => { Name => 'MicrophoneAttenuator', PrintConv => \%offOn, Unknown => 1 }, #distinct from MoveieVRMode
8806
8888
  724 => { Name => 'MicrophoneFrequencyResponse', PrintConv => { 0 => 'Wide Range', 1 => 'Vocal Range' }, Unknown => 1 },
8807
- 726 => { Name => 'WindNoiseReduction', PrintConv => \%offOn, Unknown => 1 },
8808
- 748 => {
8809
- Name => 'MovieToneMap',
8810
- Unknown => 1,
8811
- PrintConv => {
8812
- 0 => 'SDR',
8813
- 1 => 'HLG',
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},
8889
+ 726 => { Name => 'WindNoiseReduction', PrintConv => \%offOn, Unknown => 1 },
8890
+ 748 => { Name => 'MovieToneMap', PrintConv => \%movieToneMapZ9, Unknown => 1 },
8891
+ 754 => { Name => 'MovieFrameSize', PrintConv => \%movieFrameSizeZ9, Unknown => 1 },
8892
+ 756 => { Name => 'MovieFrameRate', PrintConv => \%movieFrameRateZ7, Unknown => 1 },
8893
+ 762 => { Name => 'MicrophoneJackPower', PrintConv => \%offOn, Unknown => 1 },
8894
+ 763 => { Name => 'MovieDXCropAlert', PrintConv => \%offOn, Unknown => 1 },
8895
+ 764 => { Name => 'MovieSubjectDetection', PrintConv => \%subjectDetectionZ9, Unknown => 1 },
8822
8896
  799 => {
8823
8897
  Name => 'CustomSettingsZ9',
8824
8898
  Format => 'undef[608]',
8825
8899
  SubDirectory => { TagTable => 'Image::ExifTool::NikonCustom::SettingsZ9' },
8826
8900
  },
8827
- 1426 => {
8828
- Name => 'Language',
8829
- Unknown => 1,
8830
- PrintConv => {
8831
- 4 => 'English',
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
- },
8901
+ 1426 => { Name => 'Language', PrintConv => \%languageZ9, Unknown => 1 },
8902
+ 1428 => { Name => 'TimeZone', PrintConv => \%timeZoneZ9 },
8903
+ 1434 => { Name => 'MonitorBrightness', ValueConv => '$val - 5', Unknown => 1 }, # settings: -5 to +5
8904
+ 1456 => { Name => 'AFFineTune', PrintConv => \%offOn, Unknown => 1 },
8905
+ 1552 => { Name => 'HDMIOutputResolution', PrintConv => \%hDMIOutputResolutionZ9 },
8879
8906
  1565 => { Name => 'SetClockFromLocationData', PrintConv => \%offOn, Unknown => 1 },
8880
8907
  1572 => { Name => 'AirplaneMode', PrintConv => \%offOn, Unknown => 1 },
8881
8908
  1573 => { Name => 'EmptySlotRelease', PrintConv => { 0 => 'Disable Release', 1 => 'Enable Release' }, Unknown => 1 },
@@ -8884,6 +8911,177 @@ my %nikonFocalConversions = (
8884
8911
  1636 => { Name => 'USBPowerDelivery', PrintConv => \%offOn, Unknown => 1 },
8885
8912
  1645 => { Name => 'SensorShield', PrintConv => { 0 => 'Stays Open', 1 => 'Closes' }, Unknown => 1 },
8886
8913
  );
8914
+ %Image::ExifTool::Nikon::MenuSettingsZ9Firmware3 = ( #starts at Offset26 + 248
8915
+ %binaryDataAttrs,
8916
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
8917
+ DATAMEMBER => [ 154, 204, 208, 248, 554 ],
8918
+ IS_SUBDIR => [ 847 ],
8919
+ NOTES => 'These tags are used by the Z9 firmware 3.00.',
8920
+ 154 => {
8921
+ Name => 'MultipleExposureMode',
8922
+ RawConv => '$$self{MultipleExposureMode} = $val',
8923
+ PrintConv => \%multipleExposureModeZ9,
8924
+ },
8925
+ 156 => {Name => 'MultiExposureShots', Condition => '$$self{MultipleExposureMode} != 0'}, #range 2-9
8926
+ 204 => {
8927
+ Name => 'Intervals',
8928
+ Format => 'int32u',
8929
+ RawConv => '$$self{IntervalShootingIntervals} = $val',
8930
+ Condition => '$$self{IntervalShooting} > 0',
8931
+ },
8932
+ 208 => {
8933
+ Name => 'ShotsPerInterval',
8934
+ Format => 'int32u',
8935
+ RawConv => '$$self{IntervalShootingShotsPerInterval} = $val',
8936
+ Condition => '$$self{IntervalShooting} > 0',
8937
+ },
8938
+ 248 => {
8939
+ Name => 'FocusShiftNumberShots', #1-300
8940
+ RawConv => '$$self{FocusShiftNumberShots} = $val',
8941
+ Condition => '$$self{FocusShiftShooting} > 0',
8942
+ },
8943
+ 252 => {
8944
+ Name => 'FocusShiftStepWidth', #1(Narrow) to 10 (Wide)
8945
+ Condition => '$$self{FocusShiftShooting} > 0',
8946
+ },
8947
+ 256 => {
8948
+ Name => 'FocusShiftInterval',
8949
+ Condition => '$$self{FocusShiftShooting} > 0',
8950
+ PrintConv => '$val == 1? "1 Second" : sprintf("%.0f Seconds",$val)',
8951
+ },
8952
+ 260 => {
8953
+ Name => 'FocusShiftExposureLock',
8954
+ Unknown => 1,
8955
+ PrintConv => \%offOn,
8956
+ Condition => '$$self{FocusShiftShooting} > 0',
8957
+ },
8958
+ 290 => { Name => 'PhotoShootingMenuBank', PrintConv => \%banksZ9 },
8959
+ 292 => { Name => 'ExtendedMenuBanks', PrintConv => \%offOn }, # single tag from both Photo & Video menus
8960
+ 328 => { Name => 'PhotoShootingMenuBankImageArea', PrintConv => \%imageAreaZ9 },
8961
+ 342 => { Name => 'AutoISO', PrintConv => \%offOn },
8962
+ 344 => {
8963
+ Name => 'ISOAutoHiLimit',
8964
+ Format => 'int16u',
8965
+ Unknown => 1,
8966
+ ValueConv => '($val-104)/8',
8967
+ ValueConvInv => '8 * ($val + 104)',
8968
+ PrintConv => \%iSOAutoHiLimitZ7,
8969
+ },
8970
+ 346 => {
8971
+ Name => 'ISOAutoFlashLimit',
8972
+ Format => 'int16u',
8973
+ Unknown => 1,
8974
+ ValueConv => '($val-104)/8',
8975
+ ValueConvInv => '8 * ($val + 104)',
8976
+ PrintConv => \%iSOAutoHiLimitZ7,
8977
+ },
8978
+ 354 => {
8979
+ Name => 'ISOAutoShutterTime', # shutter speed is 2 ** (-$val/24)
8980
+ ValueConv => '$val / 8',
8981
+ Format => 'int16s',
8982
+ PrintConv => \%iSOAutoShutterTimeZ9,
8983
+ },
8984
+ 436 => { Name => 'MovieVignetteControl', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
8985
+ 438 => { Name => 'DiffractionCompensation', PrintConv => \%offOn }, # value can be set from both the Photo Shoot Menu and the Video Shooting Menu
8986
+ 440 => { Name => 'FlickerReductionShooting',PrintConv => \%offOn },
8987
+ 548 => { Name => 'AFAreaMode', PrintConv => \%aFAreaModeZ9},
8988
+ 550 => { Name => 'VRMode', PrintConv => \%vRModeZ9},
8989
+ 554 => {
8990
+ Name => 'BracketSet',
8991
+ RawConv => '$$self{BracketSet} = $val',
8992
+ PrintConv => \%bracketSetZ9,
8993
+ },
8994
+ 556 => {
8995
+ Name => 'BracketProgram',
8996
+ Condition => '$$self{BracketSet} < 3',
8997
+ Notes => 'AE and/or Flash Bracketing',
8998
+ PrintConv => \%bracketProgramZ9,
8999
+ },
9000
+ 558 => {
9001
+ Name => 'BracketIncrement',
9002
+ Condition => '$$self{BracketSet} < 3',
9003
+ Notes => 'AE and/or Flash Bracketing',
9004
+ PrintConv => \%bracketIncrementZ9,
9005
+ },
9006
+ 576 => { Name => 'SecondarySlotFunction', PrintConv => \%secondarySlotFunctionZ9 },
9007
+ 592 => { Name => 'DXCropAlert', PrintConv => \%offOn },
9008
+ 594 => { Name => 'SubjectDetection', PrintConv => \%subjectDetectionZ9 },
9009
+ 636 => { Name => 'HighFrequencyFlickerReductionShooting', PrintConv => \%offOn, Unknown => 1 }, # new with firmware 3.0
9010
+ 646 => {
9011
+ Name => 'MovieImageArea',
9012
+ Unknown => 1,
9013
+ Mask => 0x01, # without the mask 4 => 'FX' 5 => DX only the 2nd Z-series field encountered with a mask.
9014
+ PrintConv => \%imageAreaZ9b,
9015
+ },
9016
+ 656 => { Name => 'MovieType', PrintConv => \%movieTypeZ9, Unknown => 1 },
9017
+ 658 => {
9018
+ Name => 'MovieISOAutoHiLimit',
9019
+ Format => 'int16u',
9020
+ Unknown => 1,
9021
+ ValueConv => '($val-104)/8',
9022
+ ValueConvInv => '8 * ($val + 104)',
9023
+ PrintConv => \%iSOAutoHiLimitZ7,
9024
+ },
9025
+ 660 => { Name => 'MovieISOAutoControlManualMode', PrintConv => \%offOn, Unknown => 1 },
9026
+ 662 => {
9027
+ Name => 'MovieISOAutoManualMode',
9028
+ Format => 'int16u',
9029
+ Unknown => 1,
9030
+ ValueConv => '($val-104)/8',
9031
+ ValueConvInv => '8 * ($val + 104)',
9032
+ PrintConv => \%iSOAutoHiLimitZ7,
9033
+ },
9034
+ 736 => { Name => 'MovieActiveD-Lighting', PrintConv => \%activeDLightingZ7, Unknown => 1 },
9035
+ 738 => { Name => 'MovieHighISONoiseReduction', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
9036
+ 744 => { Name => 'MovieFlickerReduction', PrintConv => \%movieFlickerReductionZ9 },
9037
+ 746 => { Name => 'MovieMeteringMode', PrintConv => \%meteringModeZ7, Unknown => 1 },
9038
+ 748 => { Name => 'MovieFocusMode', PrintConv => \%focusModeZ7, Unknown => 1 },
9039
+ 750 => { Name => 'MovieAFAreaMode', PrintConv => \%aFAreaModeZ9 },
9040
+ 752 => { Name => 'MovieVRMode', PrintConv => \%vRModeZ9, Unknown => 1 },
9041
+ 756 => { Name => 'MovieElectronicVR', PrintConv => \%offOn, Unknown => 1 }, # distinct from MoveieVRMode
9042
+ 758 => { Name => 'MovieSoundRecording', PrintConv => { 0 => 'Off', 1 => 'Auto', 2 => 'Manual' }, Unknown => 1 },
9043
+ 760 => { Name => 'MicrophoneSensitivity', Unknown => 1 }, # 1-20
9044
+ 762 => { Name => 'MicrophoneAttenuator', PrintConv => \%offOn, Unknown => 1 }, # distinct from MoveieVRMode
9045
+ 764 => { Name => 'MicrophoneFrequencyResponse',PrintConv => { 0 => 'Wide Range', 1 => 'Vocal Range' }, Unknown => 1 },
9046
+ 766 => { Name => 'WindNoiseReduction', PrintConv => \%offOn, Unknown => 1 },
9047
+ 788 => { Name => 'MovieToneMap', PrintConv => \%movieToneMapZ9, Unknown => 1 },
9048
+ 794 => { Name => 'MovieFrameSize', PrintConv => \%movieFrameSizeZ9, Unknown => 1 },
9049
+ 796 => { Name => 'MovieFrameRate', PrintConv => \%movieFrameRateZ7, Unknown => 1 },
9050
+ 802 => { Name => 'MicrophoneJackPower', PrintConv => \%offOn, Unknown => 1 },
9051
+ 803 => { Name => 'MovieDXCropAlert', PrintConv => \%offOn, Unknown => 1 },
9052
+ 804 => { Name => 'MovieSubjectDetection', PrintConv => \%subjectDetectionZ9, Unknown => 1 },
9053
+ 812 => { Name => 'MovieHighResZoom', PrintConv => \%offOn, Unknown => 1 },
9054
+ 847 => {
9055
+ Name => 'CustomSettingsZ9',
9056
+ Format => 'undef[608]',
9057
+ SubDirectory => { TagTable => 'Image::ExifTool::NikonCustom::SettingsZ9' },
9058
+ },
9059
+ 1474 => { Name => 'Language', PrintConv => \%languageZ9, Unknown => 1 },
9060
+ 1476 => { Name => 'TimeZone', PrintConv => \%timeZoneZ9 },
9061
+ 1482 => { Name => 'MonitorBrightness', PrintConv => \%monitorBrightnessZ9, Unknown => 1 }, # settings: -5 to +5. Added with firmware 3.0: Lo1, Lo2, Hi1, Hi2
9062
+ 1504 => { Name => 'AFFineTune', PrintConv => \%offOn, Unknown => 1 },
9063
+ 1600 => { Name => 'HDMIOutputResolution', PrintConv => \%hDMIOutputResolutionZ9 },
9064
+ 1613 => { Name => 'SetClockFromLocationData', PrintConv => \%offOn, Unknown => 1 },
9065
+ 1620 => { Name => 'AirplaneMode', PrintConv => \%offOn, Unknown => 1 },
9066
+ 1621 => { Name => 'EmptySlotRelease', PrintConv => { 0 => 'Disable Release', 1 => 'Enable Release' }, Unknown => 1 },
9067
+ 1656 => { Name => 'EnergySavingMode', PrintConv =>\%offOn, Unknown => 1 },
9068
+ 1680 => { Name => 'RecordLocationData', PrintConv => \%offOn, Unknown => 1 },
9069
+ 1684 => { Name => 'USBPowerDelivery', PrintConv => \%offOn, Unknown => 1 },
9070
+ 1693 => { Name => 'SensorShield', PrintConv => { 0 => 'Stays Open', 1 => 'Closes' }, Unknown => 1 },
9071
+ 1754 => {
9072
+ Name => 'FocusShiftAutoReset',
9073
+ Unknown => 1,
9074
+ PrintConv => \%offOn,
9075
+ Condition => '$$self{FocusShiftShooting} > 0',
9076
+ },
9077
+ #1824 ReleaseTimingIndicatorTypeADelay CSd14-b 0 => '1/200' ... 15 => '1/6'
9078
+ #1826 VerticalISOButton CSf2
9079
+ #1828 ExposureCompensationButton CSf2
9080
+ #1830 ISOButton CSf2
9081
+ #1890 ViewModeShowEffectsOfSettings CSd9-a 0=>'Always', 1=> 'Only When Flash Not Used'
9082
+ #1892 DispButton CSf2
9083
+ #1936 FocusPointDisplayOption3DTrackingColor CSa11-d 0=> 'White', 1= => 'Red'
9084
+ );
8887
9085
 
8888
9086
  # Flash information (ref JD)
8889
9087
  %Image::ExifTool::Nikon::FlashInfo0100 = (