exiftool-vendored.exe 12.91.0 → 12.97.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,7 +15,7 @@ package Image::ExifTool::NikonCustom;
15
15
  use strict;
16
16
  use vars qw($VERSION @ISA @EXPORT_OK %buttonsZ9);
17
17
 
18
- $VERSION = '1.25';
18
+ $VERSION = '1.26';
19
19
 
20
20
  @ISA = qw(Exporter);
21
21
  @EXPORT_OK = qw(%buttonsZ9);
@@ -94,6 +94,7 @@ $VERSION = '1.25';
94
94
  89 => 'Set Picture Control (HLG)',
95
95
  90 => 'Skin Softening',
96
96
  91 => 'Portrait Impression Balance',
97
+ 92 => 'Fast AF-On',
97
98
  97 => 'High Frequency Flicker Reduction',
98
99
  98 => 'Switch FX/DX',
99
100
  99 => 'View Mode (Photo LV)',
@@ -113,7 +114,7 @@ $VERSION = '1.25';
113
114
  115 => 'Delete',
114
115
  116 => 'Pixel Shift Shooting',
115
116
  117 => 'Cycle AF-area Mode',
116
- 118 => 'Raw Processing (Current)', #118-131 are Retouch options
117
+ 118 => 'Raw Processing (Current)', #118-131 are Playback Retouch options
117
118
  119 => 'Raw Processing (Multiple)',
118
119
  120 => 'Trim',
119
120
  121 => 'Resize (Current)',
@@ -129,6 +130,103 @@ $VERSION = '1.25';
129
130
  131 => 'Motion Blend',
130
131
  },
131
132
  );
133
+ my %buttonsZ6III= (
134
+ SeparateTable => 'ButtonsZ6III',
135
+ PrintConv => {
136
+ 0 => 'None',
137
+ 1 => 'Preview',
138
+ 3 => 'FV Lock',
139
+ 4 => 'AE/AF Lock',
140
+ 5 => 'AE Lock Only',
141
+ 6 => 'AE Lock (reset on release)',
142
+ 7 => 'AE Lock (hold)',
143
+ 8 => 'AF Lock Only',
144
+ 9 => 'AF-On',
145
+ 10 => 'Flash Disable/Enable',
146
+ 11 => 'Bracketing Burst',
147
+ 12 => '+NEF(RAW)',
148
+ 18 => 'Virtual Horizon',
149
+ 19 => 'Synchronized Release',
150
+ 20 => 'My Menu',
151
+ 21 => 'My Menu Top Item',
152
+ 22 => 'Playback',
153
+ 23 => 'Rating',
154
+ 24 => 'Protect',
155
+ 25 => 'Zoom',
156
+ 26 => 'Focus Peaking',
157
+ 27 => 'Flash Mode/Compensation',
158
+ 28 => 'Image Area',
159
+ 30 => 'Non-CPU Lens',
160
+ 31 => 'Active-D Lighting',
161
+ 32 => 'Exposure Delay Mode',
162
+ 33 => '1 Stop Speed/Aperture',
163
+ 34 => 'White Balance',
164
+ 35 => 'Metering',
165
+ 36 => 'Auto Bracketing',
166
+ 37 => 'Multiple Exposure',
167
+ 38 => 'HDR Overlay',
168
+ 39 => 'Picture Control',
169
+ 40 => 'Quality',
170
+ 41 => 'Focus Mode/AF AreaMode',
171
+ 42 => 'Select Center Focus Point',
172
+ 44 => 'Record Movie',
173
+ 45 => 'Thumbnail On/Off',
174
+ 46 => 'View Histograms',
175
+ 47 => 'Choose Folder',
176
+ 48 => 'Power Aperture (Open)',
177
+ 49 => 'Power Aperture (Close)',
178
+ 52 => 'Microphone Sensitivity',
179
+ 53 => 'Release Mode',
180
+ 57 => 'Preset Focus Point',
181
+ 58 => 'AE/AWB Lock (hold)',
182
+ 59 => 'AF-AreaMode',
183
+ 60 => 'AF-AreaMode + AF-On',
184
+ 61 => 'Recall Shooting Functions',
185
+ 64 => 'Filtered Playback',
186
+ 65 => 'Same as AF-On',
187
+ 66 => 'Voice Memo',
188
+ 70 => 'Photo Shooting Bank',
189
+ 71 => 'ISO',
190
+ 72 => 'Shooting Mode',
191
+ 73 => 'Exposure Compensation',
192
+ 76 => 'Silent Mode',
193
+ 78 => 'LiveView Information',
194
+ 79 => 'AWB Lock (hold)',
195
+ 80 => 'Grid Display',
196
+ 81 => 'Starlight View',
197
+ 82 => 'Select To Send (PC)',
198
+ 83 => 'Select To Send (FTP)',
199
+ 84 => 'Pattern Tone Range',
200
+ 85 => 'Control Lock',
201
+ 86 => 'Save Focus Position',
202
+ 87 => 'Recall Focus Position',
203
+ 88 => 'Recall Shooting Functions (Hold)',
204
+ 89 => 'Set Picture Control (HLG)',
205
+ 90 => 'Skin Softening',
206
+ 91 => 'Portrait Impression Balance',
207
+ 97 => 'High Frequency Flicker Reduction',
208
+ 98 => 'Switch FX/DX',
209
+ 99 => 'View Mode (Photo LV)',
210
+ 100 => 'Photo Flicker Reduction',
211
+ 101 => 'Filtered Playback (Select Criteria)',
212
+ 103 => 'Start Series Playback',
213
+ 104 => 'View Assist',
214
+ 105 => 'Hi-Res Zoom+',
215
+ 106 => 'Hi-Res Zoom-',
216
+ 108 => 'Override Other Cameras',
217
+ 109 => 'DISP - Cycle Information Display (shooting)', # Shooting Mode
218
+ 110 => 'DISP - Cycle Information Display (playback)', # Playback mode
219
+ 111 => 'Resume Shooting',
220
+ 112 => 'Switch Eyes',
221
+ 113 => 'Power Zoom +',
222
+ 114 => 'Power Zoom -',
223
+ 115 => 'Delete',
224
+ 116 => 'Pixel Shift Shooting',
225
+ 117 => 'Cycle AF-area Mode',
226
+ 118 => 'Pixel Shift Shooting',
227
+ 119 => 'Move Focus Point',
228
+ },
229
+ );
132
230
  my %dialsZ9 = (
133
231
  0 => '1 Frame',
134
232
  1 => '10 Frames',
@@ -199,6 +297,17 @@ my %thirdHalfFull = (
199
297
  1 => '1/2 EV',
200
298
  2 => '1 EV',
201
299
  );
300
+ my %touchFnAreaZ6III = (
301
+ 0 => 'Entire Frame',
302
+ 1 => 'Right Half',
303
+ 2 => 'Top Right Quadrant',
304
+ 3 => 'Bottom Right Quadrant',
305
+ 4 => 'Left Half',
306
+ 5 => 'Top Left Quadrant',
307
+ 6 => 'Bottom Left Quadrant',
308
+ 7 => 'Top Half',
309
+ 8 => 'Bottom Half',
310
+ );
202
311
 
203
312
  my %limitNolimit = ( 0 => 'Limit', 1 => 'No Limit' );
204
313
  my %offOn = ( 0 => 'Off', 1 => 'On' );
@@ -9700,6 +9809,308 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9700
9809
  },
9701
9810
  );
9702
9811
 
9812
+ # Z6III custom settings (ref 1) #base at offset27 + 1255 (firmware 1.0.0)
9813
+ %Image::ExifTool::NikonCustom::SettingsZ6III = (
9814
+ PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
9815
+ WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
9816
+ CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
9817
+ WRITABLE => 1,
9818
+ FIRST_ENTRY => 0,
9819
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
9820
+ NOTES => 'Custom settings for the Z6III.',
9821
+ DATAMEMBER => [ 189 ],
9822
+ 3 => { # CSa1
9823
+ Name => 'AF-CPrioritySelection',
9824
+ PrintConv => {
9825
+ 0 => 'Release',
9826
+ 1 => 'Release + Focus',
9827
+ 3 => 'Focus',
9828
+ },
9829
+ },
9830
+ 5 => { Name => 'AF-SPrioritySelection', PrintConv => {0 => 'Release',1 => 'Focus'}}, #CSa2
9831
+ 7 => { # CSa3 #when AFAreaMode is 3D-tracking, blocked shot response will be 3, regardless of this setting
9832
+ Name => 'BlockShotAFResponse',
9833
+ PrintConv => {
9834
+ 1 => '1 (Quick)',
9835
+ 2 => '2',
9836
+ 3 => '3 (Normal)',
9837
+ 4 => '4',
9838
+ 5 => '5 (Delayed)',
9839
+ },
9840
+ },
9841
+ 11 => {Name => 'AFPointSel',PrintConv => { 0 => 'Use All',1 => 'Use Half' }}, # CSa4
9842
+ 13 => { # CSa5
9843
+ Name => 'StoreByOrientation',
9844
+ PrintConv => {
9845
+ 0 => 'Off',
9846
+ 1 => 'Focus Point',
9847
+ 2 => 'Focus Point and AF-area mode',
9848
+ },
9849
+ },
9850
+ 15 => { Name => 'AFActivation', PrintConv => {0 => 'AF-On Only', 1 => 'Shutter/AF-On'}}, # CSa6-a
9851
+ 16 => { Name => 'AF-OnOutOfFocusRelease', PrintConv => {0 => 'Disable', 1 => 'Enable'}, Unknown => 1}, # CSa6-b
9852
+ 17 => { Name => 'LimitAF-AreaModeSelPinpoint', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9853
+ 19 => { Name => 'LimitAF-AreaModeSelWideAF_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9854
+ 20 => { Name => 'LimitAF-AreaModeSelWideAF_L', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9855
+ 21 => { Name => 'LimitAFAreaModeSelAuto', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9856
+ 22 => { Name => 'FocusPointWrap', PrintConv => { 0 => 'No Wrap', 1 => 'Wrap' }, Unknown => 1 }, # CSa10
9857
+ 23 => { Name => 'ManualFocusPointIllumination', PrintConv => {0 => 'On During Focus Point Selection Only', 1 => 'On', }, Unknown => 1 }, # CSa10a
9858
+ 24 => { Name => 'DynamicAreaAFAssist', PrintConv => { 0 => 'Focus Point Only',1 => 'Focus and Surrounding Points',}, Unknown => 1 }, # CSa10b
9859
+
9860
+ 26 => { Name => 'AF-AssistIlluminator', PrintConv => \%offOn }, # CSa11
9861
+ 27 => { Name => 'ManualFocusRingInAFMode', PrintConv => \%offOn }, # CSa14
9862
+ 29 => { Name => 'ExposureControlStepSize', PrintConv => \%thirdHalfFull }, # CSb2
9863
+ 31 => { # CSb3
9864
+ Name => 'EasyExposureCompensation',
9865
+ PrintConv => {
9866
+ 0 => 'Off',
9867
+ 1 => 'On',
9868
+ 2 => 'On (auto reset)',
9869
+ },
9870
+ },
9871
+ 33 => { # CSb5
9872
+ Name => 'CenterWeightedAreaSize',
9873
+ PrintConv => {
9874
+ 0 => 'Standard',
9875
+ 1 => 'Small',
9876
+ 4 => 'Average',
9877
+ },
9878
+ },
9879
+ 35 => { # CSb6-a
9880
+ Name => 'FineTuneOptMatrixMetering',
9881
+ Format => 'int8s',
9882
+ ValueConv => '$val / 6',
9883
+ ValueConvInv => 'int($val*6)',
9884
+ PrintConv => '$val ? sprintf("%+.2f", $val) : 0',
9885
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
9886
+ },
9887
+ 37 => { # CSb6-b
9888
+ Name => 'FineTuneOptCenterWeighted',
9889
+ Format => 'int8s',
9890
+ ValueConv => '$val / 6',
9891
+ ValueConvInv => 'int($val*6)',
9892
+ PrintConv => '$val ? sprintf("%+.2f", $val) : 0',
9893
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
9894
+ },
9895
+ 39 => { # CSb6-c
9896
+ Name => 'FineTuneOptSpotMetering',
9897
+ Format => 'int8s',
9898
+ ValueConv => '$val / 6',
9899
+ ValueConvInv => 'int($val*6)',
9900
+ PrintConv => '$val ? sprintf("%+.2f", $val) : 0',
9901
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
9902
+ },
9903
+ 41 => { # CSb6-d
9904
+ Name => 'FineTuneOptHighlightWeighted',
9905
+ Format => 'int8s',
9906
+ ValueConv => '$val / 6',
9907
+ ValueConvInv => 'int($val*6)',
9908
+ PrintConv => '$val ? sprintf("%+.2f", $val) : 0',
9909
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
9910
+ },
9911
+ 43 => { # CSc1
9912
+ Name => 'ShutterReleaseButtonAE-L',
9913
+ PrintConv => {
9914
+ 0 => 'Off',
9915
+ 1 => 'On (Half Press)',
9916
+ 2 => 'On (Burst Mode)',
9917
+ },
9918
+ },
9919
+ 45 => { # CSc2-a
9920
+ Name => 'SelfTimerTime',
9921
+ PrintConv => {
9922
+ 0 => '2 s',
9923
+ 1 => '5 s',
9924
+ 2 => '10 s',
9925
+ 3 => '20 s',
9926
+ },
9927
+ },
9928
+ 49 => { Name => 'SelfTimerShotCount', }, # CSc2-b 1-9
9929
+ 53 => { # CSc2-c
9930
+ Name => 'SelfTimerShotInterval',
9931
+ PrintConv => {
9932
+ 0 => '0.5 s',
9933
+ 1 => '1 s',
9934
+ 2 => '2 s',
9935
+ 3 => '3 s',
9936
+ },
9937
+ },
9938
+ 55 => { Name => 'PlaybackMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc3-a
9939
+ 57 => { Name => 'MenuMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc3-b
9940
+ 59 => { Name => 'ImageReviewMonitorOffTime', %powerOffDelayTimesZ9 }, # CSc3-d
9941
+ 61 => { Name => 'ShootingInfoMonitorOffTime',%powerOffDelayTimesZ9 }, # CSc3-c
9942
+
9943
+ 63 => { Name => 'CLModeShootingSpeed', ValueConv => '$val + 1', ValueConvInv => '$val - 1', PrintConv => '"$val fps"', PrintConvInv => '$val=~s/\s*fps//i; $val' }, # CSd1b
9944
+ 65 => { # CSd2 # values: 1-200 & 'No Limit'
9945
+ Name => 'MaxContinuousRelease',
9946
+ Format => 'int16s',
9947
+ ValueConv => '($val eq -1 ? \'No Limit\' : $val ) ',
9948
+ },
9949
+ 69 => { Name => 'SyncReleaseMode', PrintConv => { 0 => 'No Sync', 1 => 'Sync' }, Unknown => 1 }, # CSd4
9950
+ 75 => { Name => 'LimitSelectableImageAreaDX', PrintConv => \%limitNolimit, Unknown => 1 }, # CSd6-1
9951
+ 76 => { Name => 'LimitSelectableImageArea1To1', PrintConv => \%limitNolimit, Unknown => 1 }, # CSd6-2
9952
+ 77 => { Name => 'LimitSelectableImageArea16To9', PrintConv => \%limitNolimit, Unknown => 1 }, # CSd6-3
9953
+ 78 => { Name => 'FileNumberSequence', PrintConv => \%offOn }, # CSd7
9954
+ 81 => { #CSa12b
9955
+ Name => 'FocusPeakingLevel',
9956
+ Unknown => 1,
9957
+ PrintConv => {
9958
+ 0 => 'High Sensitivity',
9959
+ 1 => 'Standard Sensitivity',
9960
+ 2 => 'Low Sensitivity',
9961
+ },
9962
+ },
9963
+ 83 => { #CSa12c
9964
+ Name => 'FocusPeakingHighlightColor',
9965
+ Unknown => 1,
9966
+ PrintConv => {
9967
+ 0 => 'Red',
9968
+ 1 => 'Yellow',
9969
+ 2 => 'Blue',
9970
+ 3 => 'White',
9971
+ },
9972
+ },
9973
+ 85 => { Name => 'ContinuousModeDisplay', PrintConv => \%offOn }, # CSd14
9974
+ 87 => { # CSe1-a Previous cameras reported this with HighSpeedSync indicator appended as '(Auto FP)'.
9975
+ Name => 'FlashSyncSpeed',
9976
+ ValueConv => '($val-144)/8',
9977
+ PrintConv => {
9978
+ 0 => '1/60 s',
9979
+ 1 => '1/80 s',
9980
+ 2 => '1/100 s',
9981
+ 3 => '1/125 s',
9982
+ 4 => '1/160 s',
9983
+ 5 => '1/200 s',
9984
+ },
9985
+ },
9986
+ 89 => { Name => 'HighSpeedSync', PrintConv => \%offOn }, # CSe1-b
9987
+ 91 => { # CSe2
9988
+ Name => 'FlashShutterSpeed',
9989
+ ValueConv => 'my $t = ($val - 16) % 24; $t ? $val / 24 : 2 + ($val - 16) / 24', #unusual decode perhaps due to need to accommodate 4 new values?
9990
+ PrintConv => {
9991
+ 0 => '1 s',
9992
+ 1 => '1/2 s',
9993
+ 2 => '1/4 s',
9994
+ 3 => '1/8 s',
9995
+ 4 => '1/15 s',
9996
+ 5 => '1/30 s',
9997
+ 6 => '1/60 s',
9998
+ 7 => '30 s',
9999
+ 8 => '15 s',
10000
+ 9 => '8 s',
10001
+ 10 => '4 s',
10002
+ 11 => '2 s',
10003
+ },
10004
+ },
10005
+ 93 => { Name => 'FlashExposureCompArea', PrintConv => { 0 => 'Entire Frame', 1 => 'Background Only' } }, # CSe3
10006
+ 95 => { Name => 'AutoFlashISOSensitivity', PrintConv => { 0 => 'Subject and Background',1 => 'Subject Only'} }, # CSe4
10007
+ 97 => { Name => 'ModelingFlash', PrintConv => \%offOn }, # CSe5
10008
+ 99 => { # CSe6
10009
+ Name => 'AutoBracketModeM',
10010
+ PrintConv => {
10011
+ 0 => 'Flash/Speed',
10012
+ 1 => 'Flash/Speed/Aperture',
10013
+ 2 => 'Flash/Aperture',
10014
+ 3 => 'Flash Only',
10015
+ 4 => 'Flash/ISO',
10016
+ },
10017
+ },
10018
+ 101 => { Name => 'AutoBracketOrder', PrintConv => { 0 => '0,-,+',1 => '-,0,+' } }, # CSe7
10019
+ 103 => { Name => 'Func1Button', %buttonsZ6III }, # CSf2-a
10020
+ 119 => { Name => 'Func2Button', %buttonsZ6III }, # CSf2-b
10021
+ 135 => { Name => 'AFOnButton', %buttonsZ6III }, # CSf2-d
10022
+ 147 => { Name => 'SubSelector', %buttonsZ6III , Unknown => 1}, # CSf2-g
10023
+ 159 => { Name => 'AssignMovieRecordButton', %buttonsZ6III , Unknown => 1}, # CSf2-m
10024
+ 163 => { Name => 'LensFunc1Button', %buttonsZ6III }, # CSf2-q
10025
+ 171 => { Name => 'LensFunc2Button', %buttonsZ6III }, # CSf2-p
10026
+ 177 => { # CSf2-u
10027
+ Name => 'LensControlRing',
10028
+ PrintConv => {
10029
+ 0 => 'None (Disabled)',
10030
+ 1 => 'Focus (M/A)',
10031
+ 2 => 'ISO Sensitivity',
10032
+ 3 => 'Exposure Compensation',
10033
+ 4 => 'Aperture',
10034
+ },
10035
+ },
10036
+ 179 => { Name => 'MultiSelectorShootMode', %buttonsZ6III }, # CSf2-h called the OK button in camera, tag name retained for compatibility
10037
+ 183 => { Name => 'MultiSelectorPlaybackMode', %buttonsZ6III }, # CSf3f
10038
+ 187 => { Name => 'ShutterSpeedLock', PrintConv => \%offOn }, # CSf5-a
10039
+ 188 => { Name => 'ApertureLock', PrintConv => \%offOn }, # CSf5-b
10040
+ 189 => { # CSf6-a Previous cameras reported this tag as part of CmdDialsReverseRotation. Blend with CSf5-b separate settings together to match extant tag name and values
10041
+ Name => 'CmdDialsReverseRotExposureComp',
10042
+ RawConv => '$$self{CmdDialsReverseRotExposureComp} = $val',
10043
+ Hidden => 1,
10044
+ },
10045
+ 190 => [{ # CSf6-b (continued from above)
10046
+ Name => 'CmdDialsReverseRotation',
10047
+ Condition => '$$self{CmdDialsReverseRotExposureComp} == 0',
10048
+ PrintConv => {
10049
+ 0 => 'No',
10050
+ 1 => 'Shutter Speed & Aperture',
10051
+ },
10052
+ },{
10053
+ Name => 'CmdDialsReverseRotation',
10054
+ PrintConv => {
10055
+ 0 => 'Exposure Compensation',
10056
+ 1 => 'Exposure Compensation, Shutter Speed & Aperture',
10057
+ },
10058
+ }],
10059
+ 195 => { Name => 'UseDialWithoutHold', PrintConv => \%offOn, Unknown => 1 }, # CSf7
10060
+ 197 => { Name => 'ReverseIndicators', PrintConv => { 0 => '+ 0 -', 1 => '- 0 +' }, Unknown => 1 }, # CSf8
10061
+ 199 => { Name => 'MovieFunc1Button', %buttonsZ6III }, # CSg2-a
10062
+ 205 => { Name => 'MovieFunc2Button', %buttonsZ6III }, # CSg2-b
10063
+ 211 => { Name => 'MovieAF-OnButton', %buttonsZ6III }, # CSg2-f
10064
+ 223 => { # CSg2-z
10065
+ Name => 'MovieLensControlRing',
10066
+ PrintConv => {
10067
+ 0 => 'None (Disabled)',
10068
+ 2 => 'ISO Sensitivity',
10069
+ 3 => 'Exposure Compensation',
10070
+ 4 => 'Power Aperture',
10071
+ 5 => 'Hi-Res Zoom',
10072
+ },
10073
+ },
10074
+ 225 => { Name => 'MovieMultiSelector', %buttonsZ6III, Unknown => 1}, # CSg2-h
10075
+ 229 => { Name => 'MovieAFSpeed', ValueConv => '$val - 5', ValueConvInv => '$val + 5' }, # CSg5-a
10076
+ 231 => { Name => 'MovieAFSpeedApply', PrintConv => {0 => 'Always', 1 => 'Only During Recording'},}, # CSg5-b
10077
+ 233 => { # CSg6
10078
+ Name => 'MovieAFTrackingSensitivity',
10079
+ PrintConv => {
10080
+ 0 => '1 (High)',
10081
+ 1 => '2',
10082
+ 2 => '3',
10083
+ 3 => '4 (Normal)',
10084
+ 4 => '5',
10085
+ 5 => '6',
10086
+ 6 => '7 (Low)',
10087
+ },
10088
+ },
10089
+ 241 => { Name => 'LCDIllumination', PrintConv => \%offOn, Unknown => 1 }, # CSd13
10090
+ 242 => { Name => 'ExtendedShutterSpeeds', PrintConv => \%offOn }, # CSd7
10091
+ 245 => { Name => 'FocusPointPersistence', PrintConv => {0 => 'Auto', 1 => 'Off'} }, # CSa7
10092
+ 257 => { Name => 'FlashBurstPriority', PrintConv => { 0 => 'Frame Rate',1 => 'Exposure'}, Unknown => 1 }, # CSe8
10093
+ 319 => { Name => 'LimitAF-AreaModeSelDynamic_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10094
+ 320 => { Name => 'LimitAF-AreaModeSelDynamic_M', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10095
+ 321 => { Name => 'LimitAF-AreaModeSelDynamic_L', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10096
+ 323 => { Name => 'LimitAF-AreaModeSel3DTracking', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10097
+ 325 => { Name => 'PlaybackFlickUp', PrintConv => \%flicksZ9, Unknown => 1}, # CSf14-a
10098
+ 329 => { Name => 'PlaybackFlickDown', PrintConv => \%flicksZ9, Unknown => 1}, # CSf14-b
10099
+ 333 => { Name => 'ISOStepSize', PrintConv => \%thirdHalfFull }, # CSb1
10100
+ 340 => { Name => 'TouchFn', PrintConv => \%offOn, Unknown => 1}, # CSf4a
10101
+ 341 => { Name => 'TouchFnRole', %buttonsZ6III , Unknown => 1}, # CSf4b
10102
+ 345 => { Name => 'TouchFnAreaWide', PrintConv => \%touchFnAreaZ6III, Unknown => 1}, # CSf4c-1
10103
+ 347 => { Name => 'TouchFnAreaTall', PrintConv => \%touchFnAreaZ6III, Unknown => 1}, # CSf4c-2
10104
+ 350 => { Name => 'EVFImageFrame', PrintConv => \%offOn, Unknown => 1 }, # CSd16
10105
+ 351 => { Name => 'EVFGrid', PrintConv => \%evfGridsZ9, Unknown => 1 }, # CSd17
10106
+ 353 => { Name => 'VirtualHorizonStyle', PrintConv => {0 => 'Type A (Cockpit)', 1 => 'Type B (Sides)' }, Unknown => 1}, #CSd18
10107
+ 415 => { Name => 'Func1ButtonPlaybackMode', %buttonsZ6III , Unknown => 1}, # CSf3-a
10108
+ 417 => { Name => 'Func2ButtonPlaybackMode', %buttonsZ6III , Unknown => 1}, # CSf3-b
10109
+ 431 => { Name => 'MovieRecordButtonPlaybackMode', %buttonsZ6III , Unknown => 1}, # CSf3-m
10110
+ 463 => { Name => 'ControlRingResponse', PrintConv => { 0 => 'High', 1 => 'Low' } }, # CSf11
10111
+ 559 => { Name => 'FocusPeakingDisplay', PrintConv => \%offOn, Unknown => 1}, # CSa12a
10112
+ );
10113
+
9703
10114
  # Z8 custom settings (ref 1) #base at offset26 + 1195 (firmware 1.0.0)
9704
10115
  %Image::ExifTool::NikonCustom::SettingsZ8 = (
9705
10116
  PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
@@ -9960,7 +10371,6 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9960
10371
  193 => { Name => 'ReverseIndicators', PrintConv => { 0 => '+ 0 -', 1 => '- 0 +' }, Unknown => 1 }, # CSf7
9961
10372
  195 => { Name => 'MovieFunc1Button', %buttonsZ9}, # CSg2-a
9962
10373
  199 => { Name => 'MovieFunc2Button', %buttonsZ9}, # CSg2-b
9963
-
9964
10374
  203 => { Name => 'MovieAF-OnButton', %buttonsZ9}, # CSg2-f
9965
10375
  215 => { # CSg2-z
9966
10376
  Name => 'MovieLensControlRing',
@@ -9993,11 +10403,11 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
9993
10403
  261 => { Name => 'FocusPointPersistence', PrintConv => {0 => 'Auto', 1 => 'Off'} }, # CSa7
9994
10404
  263 => { Name => 'AutoFocusModeRestrictions', PrintConv => \%focusModeRestrictionsZ9, Unknown => 1}, # CSa9
9995
10405
  267 => { Name => 'CHModeShootingSpeed', ValueConv => '$val + 1', ValueConvInv => '$val - 1', PrintConv => '"$val fps"', PrintConvInv => '$val=~s/\s*fps//i; $val' }, # CSd1a
9996
- 273 => { Name => 'FlashBurstPriority', PrintConv => { 0 => 'Frame Rate',1 => 'Exposure'}, Unknown => 1 }, # CSe8
9997
- 335 => { Name => 'LimitAF-AreaModeSelDynamic_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9998
- 336 => { Name => 'LimitAF-AreaModeSelDynamic_M', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
9999
- 337 => { Name => 'LimitAF-AreaModeSelDynamic_L', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10000
- 339 => { Name => 'LimitAF-AreaModeSel3DTracking', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10406
+ 273 => { Name => 'FlashBurstPriority', PrintConv => { 0 => 'Frame Rate',1 => 'Exposure'}, Unknown => 1 }, # CSe8
10407
+ 335 => { Name => 'LimitAF-AreaModeSelDynamic_S', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10408
+ 336 => { Name => 'LimitAF-AreaModeSelDynamic_M', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10409
+ 337 => { Name => 'LimitAF-AreaModeSelDynamic_L', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10410
+ 339 => { Name => 'LimitAF-AreaModeSel3DTracking', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa8
10001
10411
  341 => { Name => 'PlaybackFlickUp', PrintConv => \%flicksZ9, Unknown => 1}, # CSf12-a
10002
10412
  345 => { Name => 'PlaybackFlickDown', PrintConv => \%flicksZ9, Unknown => 1}, # CSf12-b
10003
10413
  349 => { Name => 'ISOStepSize', PrintConv => \%thirdHalfFull }, # CSb1
@@ -10008,9 +10418,9 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
10008
10418
  421 => { Name => 'Func1ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-a
10009
10419
  423 => { Name => 'Func2ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-b
10010
10420
  437 => { Name => 'MovieRecordButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-m
10011
- 453 => { Name => 'WBButtonPlaybackMode', %buttonsZ9}, #CSf2
10012
- 461 => { Name => 'CommandDialVideoPlaybackMode', PrintConv => \%dialsVideoZ9, Unknown => 1}, # CSf3-b
10013
- 465 => { Name => 'SubCommandDialVideoPlaybackMode', PrintConv => \%dialsVideoZ9, Unknown => 1}, # CSf3-b
10421
+ 453 => { Name => 'WBButtonPlaybackMode', %buttonsZ9}, # CSf2
10422
+ 461 => { Name => 'CommandDialVideoPlaybackMode', PrintConv => \%dialsVideoZ9, Unknown => 1}, # CSf3-b
10423
+ 465 => { Name => 'SubCommandDialVideoPlaybackMode',PrintConv => \%dialsVideoZ9, Unknown => 1}, # CSf3-b
10014
10424
  467 => { Name => 'FocusPointLock', PrintConv => \%offOn, Unknown => 1}, # CSf4-c
10015
10425
  459 => { Name => 'CommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-k
10016
10426
  463 => { Name => 'SubCommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-l
@@ -17,12 +17,57 @@ use strict;
17
17
  use vars qw($VERSION);
18
18
  use Image::ExifTool qw(:DataAccess :Utils);
19
19
 
20
- $VERSION = '1.07';
20
+ $VERSION = '1.08';
21
21
 
22
22
  sub ProcessNikonSettings($$$);
23
23
 
24
24
  my %enableDisable = ( 1 => 'Enable', 2 => 'Disable' );
25
25
 
26
+ my %funcButtonZ6 = ( #forum16316
27
+ 1 => 'AF-On or Subject Tracking', # (bug in 3.xx firmware?)
28
+ 2 => 'AF Lock Only',
29
+ 3 => 'AE Lock (hold)',
30
+ 4 => 'AE Lock (reset on release)',
31
+ 5 => 'AE Lock Only',
32
+ 6 => 'AE/AF Lock',
33
+ 7 => 'FV Lock',
34
+ 8 => 'Flash Disable/Enable',
35
+ 9 => 'Preview',
36
+ 10 => 'Matrix Metering',
37
+ 11 => 'Center-weighted Metering',
38
+ 12 => 'Spot Metering',
39
+ 13 => 'Highlight-weighted Metering',
40
+ 14 => 'Bracketing Burst',
41
+ 15 => 'Synchronized Release (Master)',
42
+ 16 => 'Synchronized Release (Remote)', # no settings map to 17 or 18
43
+ 19 => '+NEF(RAW)',
44
+ 20 => 'Framing Grid Display',
45
+ # 21 - missing
46
+ 22 => 'Zoom On/Off',
47
+ # 23 - missing
48
+ 24 => 'My Menu',
49
+ 25 => 'My Menu Top Item',
50
+ 26 => 'Playback',
51
+ 27 => 'Protect',
52
+ 28 => 'Image Area',
53
+ 29 => 'Image Quality',
54
+ 30 => 'White Balance',
55
+ 31 => 'Picture Control',
56
+ 32 => 'Active D-Lighting',
57
+ 33 => 'Metering',
58
+ 34 => 'Flash Mode',
59
+ 35 => 'Focus Mode',
60
+ 36 => 'Auto Bracketing',
61
+ 37 => 'Multiple Exposure',
62
+ 38 => 'HDR',
63
+ 39 => 'Exposure Delay Mode',
64
+ 40 => 'Shutter/Aperture Lock',
65
+ 41 => 'Focus Peaking',
66
+ 42 => 'Rating',
67
+ 43 => 'Non-CPU Lens',
68
+ 44 => 'None',
69
+ );
70
+
26
71
  my %funcButtonZ7m2 = (
27
72
  1 => 'AF-On',
28
73
  2 => 'AF Lock Only',
@@ -1117,6 +1162,11 @@ my %infoZSeries = (
1117
1162
  Name => 'Func1Button',
1118
1163
  PrintConv => \%previewButtonD6,
1119
1164
  %infoD6,
1165
+ },{ # CSf2-a (Z6)
1166
+ Name => 'Func1Button',
1167
+ Condition => '$$self{Model} =~ /^NIKON Z [67]\b/',
1168
+ Notes => 'Z6 and Z7',
1169
+ PrintConv => \%funcButtonZ6,
1120
1170
  },{ # CSf2-a (Z7_2)
1121
1171
  Name => 'Func1Button',
1122
1172
  PrintConv => \%funcButtonZ7m2,
@@ -1126,6 +1176,11 @@ my %infoZSeries = (
1126
1176
  Name => 'Func2Button',
1127
1177
  PrintConv => \%previewButtonD6,
1128
1178
  %infoD6,
1179
+ },{ # CSf2-b (Z6)
1180
+ Name => 'Func2Button',
1181
+ Condition => '$$self{Model} =~ /^NIKON Z [67]\b/',
1182
+ Notes => 'Z6 and Z7',
1183
+ PrintConv => \%funcButtonZ6,
1129
1184
  },{ # CSf2-b (Z7_2)
1130
1185
  Name => 'Func2Button',
1131
1186
  PrintConv => \%funcButtonZ7m2,
@@ -16,7 +16,7 @@ use vars qw($VERSION);
16
16
  use Image::ExifTool qw(:DataAccess :Utils);
17
17
  use Image::ExifTool::GPS;
18
18
 
19
- $VERSION = '1.06';
19
+ $VERSION = '1.07';
20
20
 
21
21
  # supported EXR value format types (other types are extracted as undef binary data)
22
22
  my %formatType = (
@@ -91,6 +91,8 @@ my %formatType = (
91
91
  5 => 'PXR24',
92
92
  6 => 'B44',
93
93
  7 => 'B44A',
94
+ 8 => 'DWAA', #github276
95
+ 9 => 'DWAB', #github276
94
96
  },
95
97
  },
96
98
  dataWindow => { },
@@ -16,7 +16,7 @@ use strict;
16
16
  use vars qw($VERSION $AUTOLOAD);
17
17
  use Image::ExifTool qw(:DataAccess :Utils);
18
18
 
19
- $VERSION = '1.45';
19
+ $VERSION = '1.46';
20
20
 
21
21
  sub WritePS($$);
22
22
  sub ProcessPS($$;$);
@@ -156,15 +156,6 @@ sub AUTOLOAD
156
156
  return Image::ExifTool::DoAutoLoad($AUTOLOAD, @_);
157
157
  }
158
158
 
159
- #------------------------------------------------------------------------------
160
- # Is this a PC system
161
- # Returns: true for PC systems
162
- my %isPC = (MSWin32 => 1, os2 => 1, dos => 1, NetWare => 1, symbian => 1, cygwin => 1);
163
- sub IsPC()
164
- {
165
- return $isPC{$^O};
166
- }
167
-
168
159
  #------------------------------------------------------------------------------
169
160
  # Get image width or height
170
161
  # Inputs: 0) value list ref (ImageData, BoundingBox), 1) true to get height
@@ -284,7 +275,7 @@ sub GetNextLine($$)
284
275
  $$raf{PSEnd} and CheckPSEnd($raf, \$data);
285
276
  # split line if it contains other newline sequences
286
277
  if ($data =~ /$altnl/) {
287
- if (length($data) > 500000 and IsPC()) {
278
+ if (length($data) > 500000 and Image::ExifTool::IsPC()) {
288
279
  # patch for Windows memory problem
289
280
  unless ($changedNL) {
290
281
  $changedNL = $/;
@@ -537,7 +528,7 @@ sub ProcessPS($$;$)
537
528
  $raf->ReadLine($data) or last;
538
529
  # check for alternate newlines as efficiently as possible
539
530
  if ($data =~ /$altnl/) {
540
- if (length($data) > 500000 and IsPC()) {
531
+ if (length($data) > 500000 and Image::ExifTool::IsPC()) {
541
532
  # Windows can't split very long lines due to poor memory handling,
542
533
  # so re-read the file with the other newline character instead
543
534
  # (slower but uses less memory)