exiftool_vendored 12.76.1 → 12.81.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 +105 -4
- data/bin/MANIFEST +29 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +4 -3
- data/bin/config_files/acdsee.config +37 -57
- data/bin/config_files/example.config +16 -2
- data/bin/exiftool +102 -31
- data/bin/lib/Image/ExifTool/Canon.pm +12 -9
- data/bin/lib/Image/ExifTool/CanonVRD.pm +8 -2
- data/bin/lib/Image/ExifTool/Exif.pm +52 -4
- data/bin/lib/Image/ExifTool/FujiFilm.pm +14 -5
- data/bin/lib/Image/ExifTool/GPS.pm +5 -3
- data/bin/lib/Image/ExifTool/GeoLang/cs.pm +978 -0
- data/bin/lib/Image/ExifTool/GeoLang/de.pm +1975 -0
- data/bin/lib/Image/ExifTool/GeoLang/en_ca.pm +44 -0
- data/bin/lib/Image/ExifTool/GeoLang/en_gb.pm +124 -0
- data/bin/lib/Image/ExifTool/GeoLang/es.pm +2921 -0
- data/bin/lib/Image/ExifTool/GeoLang/fi.pm +1116 -0
- data/bin/lib/Image/ExifTool/GeoLang/fr.pm +3171 -0
- data/bin/lib/Image/ExifTool/GeoLang/it.pm +2750 -0
- data/bin/lib/Image/ExifTool/GeoLang/ja.pm +10256 -0
- data/bin/lib/Image/ExifTool/GeoLang/ko.pm +4499 -0
- data/bin/lib/Image/ExifTool/GeoLang/nl.pm +1270 -0
- data/bin/lib/Image/ExifTool/GeoLang/pl.pm +3019 -0
- data/bin/lib/Image/ExifTool/GeoLang/ru.pm +18220 -0
- data/bin/lib/Image/ExifTool/GeoLang/sk.pm +441 -0
- data/bin/lib/Image/ExifTool/GeoLang/sv.pm +714 -0
- data/bin/lib/Image/ExifTool/GeoLang/tr.pm +452 -0
- data/bin/lib/Image/ExifTool/GeoLang/zh_cn.pm +2225 -0
- data/bin/lib/Image/ExifTool/GeoLang/zh_tw.pm +72 -0
- data/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
- data/bin/lib/Image/ExifTool/Geolocation.pm +935 -0
- data/bin/lib/Image/ExifTool/Geotag.pm +14 -2
- data/bin/lib/Image/ExifTool/HtmlDump.pm +2 -1
- data/bin/lib/Image/ExifTool/Import.pm +5 -2
- data/bin/lib/Image/ExifTool/JSON.pm +15 -10
- data/bin/lib/Image/ExifTool/M2TS.pm +32 -4
- data/bin/lib/Image/ExifTool/MWG.pm +1 -0
- data/bin/lib/Image/ExifTool/MacOS.pm +19 -4
- data/bin/lib/Image/ExifTool/MakerNotes.pm +2 -2
- data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
- data/bin/lib/Image/ExifTool/Nikon.pm +331 -23
- data/bin/lib/Image/ExifTool/NikonCustom.pm +55 -1
- data/bin/lib/Image/ExifTool/Ogg.pm +3 -2
- data/bin/lib/Image/ExifTool/Olympus.pm +4 -1
- data/bin/lib/Image/ExifTool/OpenEXR.pm +37 -19
- data/bin/lib/Image/ExifTool/PDF.pm +5 -5
- data/bin/lib/Image/ExifTool/PNG.pm +3 -3
- data/bin/lib/Image/ExifTool/Pentax.pm +1 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +195 -12
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +253 -237
- data/bin/lib/Image/ExifTool/README +6 -5
- data/bin/lib/Image/ExifTool/Sony.pm +1 -1
- data/bin/lib/Image/ExifTool/TagLookup.pm +4871 -4752
- data/bin/lib/Image/ExifTool/TagNames.pod +722 -383
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +43 -9
- data/bin/lib/Image/ExifTool/WriteXMP.pl +1 -1
- data/bin/lib/Image/ExifTool/Writer.pl +65 -8
- data/bin/lib/Image/ExifTool/XMP.pm +18 -2
- data/bin/lib/Image/ExifTool/XMP2.pl +64 -0
- data/bin/lib/Image/ExifTool.pm +265 -49
- data/bin/lib/Image/ExifTool.pod +63 -25
- data/bin/perl-Image-ExifTool.spec +2 -2
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +22 -2
@@ -65,7 +65,7 @@ use Image::ExifTool::Exif;
|
|
65
65
|
use Image::ExifTool::GPS;
|
66
66
|
use Image::ExifTool::XMP;
|
67
67
|
|
68
|
-
$VERSION = '4.
|
68
|
+
$VERSION = '4.31';
|
69
69
|
|
70
70
|
sub LensIDConv($$$);
|
71
71
|
sub ProcessNikonAVI($$$);
|
@@ -703,8 +703,8 @@ sub GetAFPointGrid($$;$);
|
|
703
703
|
#
|
704
704
|
'00 54 56 56 30 30 00 00' => 'Coastal Optical Systems 60mm 1:4 UV-VIS-IR Macro Apo',
|
705
705
|
#
|
706
|
-
'BF 4E 26 26 1E 1E 01 04' => 'Irix 15mm f/2.4 Firefly', #30
|
707
|
-
'BF 3C 1B 1B 30 30 01 04' => 'Irix 11mm f/4 Firefly', #30
|
706
|
+
'BF 4E 26 26 1E 1E 01 04' => 'Irix 15mm f/2.4 Firefly', #30 (guessing the Blackstone version may be the same ID - PH)
|
707
|
+
'BF 3C 1B 1B 30 30 01 04' => 'Irix 11mm f/4 Firefly', #30 (guessing the Blackstone version may be the same ID - PH)
|
708
708
|
#
|
709
709
|
'4A 40 11 11 2C 0C 4D 02' => 'Samyang 8mm f/3.5 Fish-Eye CS',
|
710
710
|
'4A 48 24 24 24 0C 4D 02.1' => 'Samyang 10mm f/2.8 ED AS NCS CS',
|
@@ -890,6 +890,12 @@ my %bracketProgramZ9 = (
|
|
890
890
|
9 => '9F',
|
891
891
|
);
|
892
892
|
|
893
|
+
my %dialsFrameAdvanceZoomPositionZ9 = (
|
894
|
+
0 => 'Hold',
|
895
|
+
1 => 'Focus Point',
|
896
|
+
2 => 'Face Priority',
|
897
|
+
);
|
898
|
+
|
893
899
|
my %dynamicAfAreaModesZ9 = (
|
894
900
|
0 => 'Small',
|
895
901
|
1 => 'Medium',
|
@@ -949,6 +955,7 @@ my %highFrameRateZ9 = (
|
|
949
955
|
3 => 'C30',
|
950
956
|
5 => 'C60',
|
951
957
|
4 => 'C120',
|
958
|
+
6 => 'C15',
|
952
959
|
);
|
953
960
|
|
954
961
|
my %imageAreaD6 = (
|
@@ -1118,6 +1125,12 @@ my %movieFrameSizeZ9 = (
|
|
1118
1125
|
3 => '7680x4320',
|
1119
1126
|
);
|
1120
1127
|
|
1128
|
+
my %movieSlowMotion = (
|
1129
|
+
0 => 'Off',
|
1130
|
+
1 => 'On (4x)', # 120p recording with playback @ 30p [1920 x 1080; 30p x 4] or 100p recording with playback @ 25p [1920 x 1080; 25p x 4]
|
1131
|
+
2 => 'On (5x)', # 120p recording with playback @ 24p [1920 x 1080; 20p x 5]
|
1132
|
+
);
|
1133
|
+
|
1121
1134
|
my %movieToneMapZ9 = (
|
1122
1135
|
0 => 'SDR',
|
1123
1136
|
1 => 'HLG',
|
@@ -1125,7 +1138,7 @@ my %movieToneMapZ9 = (
|
|
1125
1138
|
);
|
1126
1139
|
|
1127
1140
|
my %movieTypeZ9 = (
|
1128
|
-
1 => 'H.
|
1141
|
+
1 => 'H.264 8-bit (MP4)',
|
1129
1142
|
2 => 'H.265 8-bit (MOV)',
|
1130
1143
|
3 => 'H.265 10-bit (MOV)',
|
1131
1144
|
4 => 'ProRes 422 HQ 10-bit (MOV)',
|
@@ -1172,6 +1185,22 @@ my %offLowNormalHighZ7 = (
|
|
1172
1185
|
3 => 'High',
|
1173
1186
|
);
|
1174
1187
|
|
1188
|
+
my %pixelShiftDelay = (
|
1189
|
+
0 => 'Off',
|
1190
|
+
1 => '1 s',
|
1191
|
+
2 => '2 s',
|
1192
|
+
3 => '3 s',
|
1193
|
+
4 => '5 s',
|
1194
|
+
5 => '10 s',
|
1195
|
+
);
|
1196
|
+
|
1197
|
+
my %pixelShiftNumberShots = (
|
1198
|
+
0 => '4',
|
1199
|
+
1 => '8',
|
1200
|
+
2 => '16',
|
1201
|
+
3 => '32',
|
1202
|
+
);
|
1203
|
+
|
1175
1204
|
my %portraitImpressionBalanceZ8 = (
|
1176
1205
|
0 => 'Off',
|
1177
1206
|
1 => 'Mode 1',
|
@@ -8382,7 +8411,7 @@ my %nikonFocalConversions = (
|
|
8382
8411
|
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
8383
8412
|
VARS => { ID_LABEL => 'Index', NIKON_OFFSETS => 0x24 },
|
8384
8413
|
DATAMEMBER => [ 0x04 ],
|
8385
|
-
IS_SUBDIR => [ 0x30, 0x84, 0x8c ],
|
8414
|
+
IS_SUBDIR => [ 0x30, 0x80, 0x84, 0x8c ],
|
8386
8415
|
WRITABLE => 1,
|
8387
8416
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
8388
8417
|
NOTES => 'These tags are extracted from encrypted data in images from the Z8.',
|
@@ -8425,6 +8454,16 @@ my %nikonFocalConversions = (
|
|
8425
8454
|
Start => '$val',
|
8426
8455
|
},
|
8427
8456
|
},
|
8457
|
+
0x80 => {
|
8458
|
+
Name => 'AutoCaptureOffset',
|
8459
|
+
Condition => '$$self{FirmwareVersion} and $$self{FirmwareVersion} ge "02.00"',
|
8460
|
+
Format => 'int32u',
|
8461
|
+
AlwaysDecrypt => 1, # (necessary because FirmwareVersion is extracted after decryption time)
|
8462
|
+
SubDirectory => {
|
8463
|
+
TagTable => 'Image::ExifTool::Nikon::AutoCaptureInfo',
|
8464
|
+
Start => '$val',
|
8465
|
+
},
|
8466
|
+
},
|
8428
8467
|
0x84 => {
|
8429
8468
|
Name => 'OrientOffset',
|
8430
8469
|
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96', #not valid for C30/C60/C120
|
@@ -8709,13 +8748,24 @@ my %nikonFocalConversions = (
|
|
8709
8748
|
0x10 => [
|
8710
8749
|
{
|
8711
8750
|
Name => 'MenuSettingsOffsetZ8',
|
8751
|
+
Condition => '$$self{FirmwareVersion} and $$self{FirmwareVersion} lt "02.00"',
|
8712
8752
|
Format => 'int32u',
|
8713
|
-
Notes => 'Firmware versions 1.0.0',
|
8753
|
+
Notes => 'Firmware versions 1.0.0 and 1.1.0',
|
8714
8754
|
SubDirectory => {
|
8715
8755
|
TagTable => 'Image::ExifTool::Nikon::MenuSettingsZ8',
|
8716
8756
|
Start => '$dirStart + $val',
|
8717
8757
|
},
|
8718
8758
|
},
|
8759
|
+
{
|
8760
|
+
Name => 'MenuSettingsOffsetZ8v2',
|
8761
|
+
Condition => '$$self{FirmwareVersion} and $$self{FirmwareVersion} ge "02.00"',
|
8762
|
+
Notes => 'Firmware version 2.0',
|
8763
|
+
Format => 'int32u',
|
8764
|
+
SubDirectory => {
|
8765
|
+
TagTable => 'Image::ExifTool::Nikon::MenuSettingsZ8v2',
|
8766
|
+
Start => '$dirStart + $val',
|
8767
|
+
},
|
8768
|
+
},
|
8719
8769
|
],
|
8720
8770
|
);
|
8721
8771
|
|
@@ -9065,15 +9115,7 @@ my %nikonFocalConversions = (
|
|
9065
9115
|
#463 => SilentPhotography
|
9066
9116
|
502 => { Name => 'MovieFrameSize', PrintConv => \%movieFrameSizeZ9, Unknown => 1 },
|
9067
9117
|
504 => { Name => 'MovieFrameRate', PrintConv => \%movieFrameRateZ7, Unknown => 1 },
|
9068
|
-
506 => {
|
9069
|
-
Name => 'MovieSlowMotion',
|
9070
|
-
Unknown => 1,
|
9071
|
-
PrintConv => {
|
9072
|
-
0 => 'Off',
|
9073
|
-
1 => 'On (4x)', # 120p recording with playback @ 30p [1920 x 1080; 30p x 4] or 100p recording with playback @ 25p [1920 x 1080; 25p x 4]
|
9074
|
-
2 => 'On (5x)', # 120p recording with playback @ 24p [1920 x 1080; 20p x 5]
|
9075
|
-
},
|
9076
|
-
},
|
9118
|
+
506 => { Name => 'MovieSlowMotion', PrintConv => \%movieSlowMotion, Unknown => 1 },
|
9077
9119
|
510 => {
|
9078
9120
|
Name => 'MovieType',
|
9079
9121
|
Unknown => 1,
|
@@ -9284,7 +9326,7 @@ my %nikonFocalConversions = (
|
|
9284
9326
|
},
|
9285
9327
|
618 => { Name => 'ToneMap', PrintConv => { 0 => 'SDR', 1 => 'HLG' }, Unknown => 1 },
|
9286
9328
|
622 => { Name => 'PortraitImpressionBalance', PrintConv => \%portraitImpressionBalanceZ8 },
|
9287
|
-
636 => { Name => '
|
9329
|
+
636 => { Name => 'HighFrequencyFlickerReduction', PrintConv => \%offOn, Unknown => 1 }, # new with firmware 3.0
|
9288
9330
|
730 => {
|
9289
9331
|
Name => 'MovieImageArea',
|
9290
9332
|
Unknown => 1,
|
@@ -9333,7 +9375,7 @@ my %nikonFocalConversions = (
|
|
9333
9375
|
Format => 'undef[730]',
|
9334
9376
|
SubDirectory => { TagTable => 'Image::ExifTool::NikonCustom::SettingsZ8' },
|
9335
9377
|
},
|
9336
|
-
|
9378
|
+
1698 => { Name => 'Language', PrintConv => \%languageZ9, Unknown => 1 },
|
9337
9379
|
1684 => { Name => 'TimeZone', PrintConv => \%timeZoneZ9 },
|
9338
9380
|
1690 => { Name => 'MonitorBrightness', PrintConv => \%monitorBrightnessZ9, Unknown => 1 }, # settings: -5 to +5. Added with firmware 3.0: Lo1, Lo2, Hi1, Hi2
|
9339
9381
|
1712 => { Name => 'AFFineTune', PrintConv => \%offOn, Unknown => 1 },
|
@@ -9384,6 +9426,260 @@ my %nikonFocalConversions = (
|
|
9384
9426
|
1890 => { Name => 'USBPowerDelivery', PrintConv => \%offOn, Unknown => 1 },
|
9385
9427
|
1899 => { Name => 'SensorShield', PrintConv => { 0 => 'Stays Open', 1 => 'Closes' }, Unknown => 1 },
|
9386
9428
|
);
|
9429
|
+
%Image::ExifTool::Nikon::MenuSettingsZ8v2 = (
|
9430
|
+
%binaryDataAttrs,
|
9431
|
+
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
9432
|
+
DATAMEMBER => [ 152, 200, 204, 244, 440, 548, 554, 570, 596, 2046 ],
|
9433
|
+
IS_SUBDIR => [ 943 ],
|
9434
|
+
NOTES => 'These tags are used by the Z8 firmware 1.00.',
|
9435
|
+
72 => {
|
9436
|
+
Name => 'HighFrameRate', #CH and C30/C60/C120 but not CL
|
9437
|
+
PrintConv => \%highFrameRateZ9,
|
9438
|
+
},
|
9439
|
+
152 => {
|
9440
|
+
Name => 'MultipleExposureMode',
|
9441
|
+
RawConv => '$$self{MultipleExposureMode} = $val',
|
9442
|
+
PrintConv => \%multipleExposureModeZ9,
|
9443
|
+
},
|
9444
|
+
154 => {Name => 'MultiExposureShots', Condition => '$$self{MultipleExposureMode} != 0'}, #range 2-9
|
9445
|
+
184 => {
|
9446
|
+
Name => 'IntervalDurationHours',
|
9447
|
+
Format => 'int32u',
|
9448
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{IntervalShooting} > 0',
|
9449
|
+
},
|
9450
|
+
188 => {
|
9451
|
+
Name => 'IntervalDurationMinutes',
|
9452
|
+
Format => 'int32u',
|
9453
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{IntervalShooting} > 0',
|
9454
|
+
},
|
9455
|
+
192 => {
|
9456
|
+
Name => 'IntervalDurationSeconds',
|
9457
|
+
Format => 'int32u',
|
9458
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{IntervalShooting} > 0',
|
9459
|
+
},
|
9460
|
+
200 => {
|
9461
|
+
Name => 'Intervals',
|
9462
|
+
Format => 'int32u',
|
9463
|
+
RawConv => '$$self{IntervalShootingIntervals} = $val',
|
9464
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{IntervalShooting} > 0',
|
9465
|
+
},
|
9466
|
+
204 => {
|
9467
|
+
Name => 'ShotsPerInterval',
|
9468
|
+
Format => 'int32u',
|
9469
|
+
RawConv => '$$self{IntervalShootingShotsPerInterval} = $val',
|
9470
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{IntervalShooting} > 0',
|
9471
|
+
},
|
9472
|
+
208 => {
|
9473
|
+
Name => 'IntervalExposureSmoothing',
|
9474
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{IntervalShooting} > 0',
|
9475
|
+
Format => 'int8u',
|
9476
|
+
PrintConv => \%offOn,
|
9477
|
+
},
|
9478
|
+
210 => {
|
9479
|
+
Name => 'IntervalPriority',
|
9480
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{IntervalShooting} > 0',
|
9481
|
+
Format => 'int8u',
|
9482
|
+
PrintConv => \%offOn,
|
9483
|
+
},
|
9484
|
+
244 => {
|
9485
|
+
Name => 'FocusShiftNumberShots', #1-300
|
9486
|
+
RawConv => '$$self{FocusShiftNumberShots} = $val',
|
9487
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
9488
|
+
},
|
9489
|
+
248 => {
|
9490
|
+
Name => 'FocusShiftStepWidth', #1(Narrow) to 10 (Wide)
|
9491
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
9492
|
+
},
|
9493
|
+
252 => {
|
9494
|
+
Name => 'FocusShiftInterval',
|
9495
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
9496
|
+
PrintConv => '$val == 1? "1 Second" : sprintf("%.0f Seconds",$val)',
|
9497
|
+
},
|
9498
|
+
256 => {
|
9499
|
+
Name => 'FocusShiftExposureLock',
|
9500
|
+
Unknown => 1,
|
9501
|
+
PrintConv => \%offOn,
|
9502
|
+
Condition => '$$self{ShutterMode} and $$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
9503
|
+
},
|
9504
|
+
286 => { Name => 'PhotoShootingMenuBank', PrintConv => \%banksZ9 },
|
9505
|
+
288 => { Name => 'ExtendedMenuBanks', PrintConv => \%offOn }, # single tag from both Photo & Video menus
|
9506
|
+
324 => { Name => 'PhotoShootingMenuBankImageArea', PrintConv => \%imageAreaZ9 },
|
9507
|
+
338 => { Name => 'AutoISO', PrintConv => \%offOn },
|
9508
|
+
340 => {
|
9509
|
+
Name => 'ISOAutoHiLimit',
|
9510
|
+
Format => 'int16u',
|
9511
|
+
Unknown => 1,
|
9512
|
+
ValueConv => '($val-104)/8',
|
9513
|
+
ValueConvInv => '8 * ($val + 104)',
|
9514
|
+
PrintConv => \%iSOAutoHiLimitZ7,
|
9515
|
+
},
|
9516
|
+
342 => {
|
9517
|
+
Name => 'ISOAutoFlashLimit',
|
9518
|
+
Format => 'int16u',
|
9519
|
+
Unknown => 1,
|
9520
|
+
ValueConv => '($val-104)/8',
|
9521
|
+
ValueConvInv => '8 * ($val + 104)',
|
9522
|
+
PrintConv => \%iSOAutoHiLimitZ7,
|
9523
|
+
},
|
9524
|
+
350 => {
|
9525
|
+
Name => 'ISOAutoShutterTime', # shutter speed is 2 ** (-$val/24)
|
9526
|
+
ValueConv => '$val / 8',
|
9527
|
+
Format => 'int16s',
|
9528
|
+
PrintConv => \%iSOAutoShutterTimeZ9,
|
9529
|
+
},
|
9530
|
+
432 => { Name => 'MovieVignetteControl', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
|
9531
|
+
434 => { Name => 'DiffractionCompensation', PrintConv => \%offOn }, # value can be set from both the Photo Shoot Menu and the Video Shooting Menu
|
9532
|
+
436 => { Name => 'FlickerReductionShooting',PrintConv => \%offOn },
|
9533
|
+
440 => {
|
9534
|
+
Name => 'FlashControlMode', # this and nearby tag values for flash may be set from either the Photo Shooting Menu or using the Flash unit menu
|
9535
|
+
RawConv => '$$self{FlashControlMode} = $val',
|
9536
|
+
PrintConv => \%flashControlModeZ7,
|
9537
|
+
},
|
9538
|
+
548 => { Name => 'AFAreaMode', RawConv => '$$self{AFAreaMode} = $val', PrintConv => \%aFAreaModeZ9},
|
9539
|
+
550 => { Name => 'VRMode', PrintConv => \%vRModeZ9},
|
9540
|
+
554 => {
|
9541
|
+
Name => 'BracketSet',
|
9542
|
+
RawConv => '$$self{BracketSet} = $val',
|
9543
|
+
PrintConv => \%bracketSetZ9,
|
9544
|
+
},
|
9545
|
+
556 => {
|
9546
|
+
Name => 'BracketProgram',
|
9547
|
+
Condition => '$$self{BracketSet} < 3',
|
9548
|
+
Notes => 'AE and/or Flash Bracketing',
|
9549
|
+
PrintConv => \%bracketProgramZ9,
|
9550
|
+
},
|
9551
|
+
558 => {
|
9552
|
+
Name => 'BracketIncrement',
|
9553
|
+
Condition => '$$self{BracketSet} < 3',
|
9554
|
+
Notes => 'AE and/or Flash Bracketing',
|
9555
|
+
PrintConv => \%bracketIncrementZ9,
|
9556
|
+
},
|
9557
|
+
570 => { Name => 'HDR', RawConv => '$$self{HDR} = $val', PrintConv => \%multipleExposureModeZ9 },
|
9558
|
+
#572 HDRSaveRaw 0=> No; 1=> Yes
|
9559
|
+
576 => { Name => 'SecondarySlotFunction', PrintConv => \%secondarySlotFunctionZ9 },
|
9560
|
+
582 => { Name => 'HDRLevel', Condition => '$$self{HDR} ne 0', PrintConv => \%hdrLevelZ8 },
|
9561
|
+
586 => { Name => 'Slot2JpgSize', PrintConv => { 0 => 'Large (8256x5504)', 1 => 'Medium (6192x4128)', 2 => 'Small (4128x2752)' }, Unknown => 1},
|
9562
|
+
592 => { Name => 'DXCropAlert', PrintConv => \%offOn },
|
9563
|
+
594 => { Name => 'SubjectDetection', PrintConv => \%subjectDetectionZ9 },
|
9564
|
+
596 => {
|
9565
|
+
Name => 'DynamicAFAreaSize',
|
9566
|
+
Condition => '$$self{AFAreaMode} == 2',
|
9567
|
+
RawConv => '$$self{DynamicAFAreaSize} = $val',
|
9568
|
+
PrintConv => \%dynamicAfAreaModesZ9,
|
9569
|
+
},
|
9570
|
+
618 => { Name => 'ToneMap', PrintConv => { 0 => 'SDR', 1 => 'HLG' }, Unknown => 1 },
|
9571
|
+
622 => { Name => 'PortraitImpressionBalance', PrintConv => \%portraitImpressionBalanceZ8 },
|
9572
|
+
636 => { Name => 'HighFrequencyFlickerReduction', PrintConv => \%offOn, Unknown => 1 }, # new with firmware 3.0
|
9573
|
+
730 => {
|
9574
|
+
Name => 'MovieImageArea',
|
9575
|
+
Unknown => 1,
|
9576
|
+
Mask => 0x01, # without the mask 4 => 'FX' 5 => DX only the 2nd Z-series field encountered with a mask.
|
9577
|
+
PrintConv => \%imageAreaZ9b,
|
9578
|
+
},
|
9579
|
+
#736 => { Name => 'MovieSlowMotion', PrintConv => \%movieSlowMotion, Unknown => 1 }, #only valid for MovieType H.264 8-bit
|
9580
|
+
740 => { Name => 'MovieType', PrintConv => \%movieTypeZ9, Unknown => 1 },
|
9581
|
+
742 => {
|
9582
|
+
Name => 'MovieISOAutoHiLimit',
|
9583
|
+
Format => 'int16u',
|
9584
|
+
Unknown => 1,
|
9585
|
+
ValueConv => '($val-104)/8',
|
9586
|
+
ValueConvInv => '8 * ($val + 104)',
|
9587
|
+
PrintConv => \%iSOAutoHiLimitZ7,
|
9588
|
+
},
|
9589
|
+
744 => { Name => 'MovieISOAutoControlManualMode', PrintConv => \%offOn, Unknown => 1 },
|
9590
|
+
746 => {
|
9591
|
+
Name => 'MovieISOAutoManualMode',
|
9592
|
+
Format => 'int16u',
|
9593
|
+
Unknown => 1,
|
9594
|
+
ValueConv => '($val-104)/8',
|
9595
|
+
ValueConvInv => '8 * ($val + 104)',
|
9596
|
+
PrintConv => \%iSOAutoHiLimitZ7,
|
9597
|
+
},
|
9598
|
+
820 => { Name => 'MovieActiveD-Lighting', PrintConv => \%activeDLightingZ7, Unknown => 1 },
|
9599
|
+
822 => { Name => 'MovieHighISONoiseReduction', PrintConv => \%offLowNormalHighZ7, Unknown => 1 },
|
9600
|
+
828 => { Name => 'MovieFlickerReduction', PrintConv => \%movieFlickerReductionZ9 },
|
9601
|
+
830 => { Name => 'MovieMeteringMode', PrintConv => \%meteringModeZ7, Unknown => 1 },
|
9602
|
+
832 => { Name => 'MovieFocusMode', PrintConv => \%focusModeZ7, Unknown => 1 },
|
9603
|
+
834 => { Name => 'MovieAFAreaMode', PrintConv => \%aFAreaModeZ9 },
|
9604
|
+
836 => { Name => 'MovieVRMode', PrintConv => \%vRModeZ9, Unknown => 1 },
|
9605
|
+
840 => { Name => 'MovieElectronicVR', PrintConv => \%offOn, Unknown => 1 }, # distinct from MoveieVRMode
|
9606
|
+
842 => { Name => 'MovieSoundRecording', PrintConv => { 0 => 'Off', 1 => 'Auto', 2 => 'Manual' }, Unknown => 1 },
|
9607
|
+
844 => { Name => 'MicrophoneSensitivity', Unknown => 1 }, # 1-20
|
9608
|
+
846 => { Name => 'MicrophoneAttenuator', PrintConv => \%offOn, Unknown => 1 }, # distinct from MoveieVRMode
|
9609
|
+
848 => { Name => 'MicrophoneFrequencyResponse',PrintConv => { 0 => 'Wide Range', 1 => 'Vocal Range' }, Unknown => 1 },
|
9610
|
+
850 => { Name => 'WindNoiseReduction', PrintConv => \%offOn, Unknown => 1 },
|
9611
|
+
878 => { Name => 'MovieFrameSize', PrintConv => \%movieFrameSizeZ9, Unknown => 1 },
|
9612
|
+
880 => { Name => 'MovieFrameRate', PrintConv => \%movieFrameRateZ7, Unknown => 1 },
|
9613
|
+
886 => { Name => 'MicrophoneJackPower', PrintConv => \%offOn, Unknown => 1 },
|
9614
|
+
887 => { Name => 'MovieDXCropAlert', PrintConv => \%offOn, Unknown => 1 },
|
9615
|
+
888 => { Name => 'MovieSubjectDetection', PrintConv => \%subjectDetectionZ9, Unknown => 1 },
|
9616
|
+
896 => { Name => 'MovieHighResZoom', PrintConv => \%offOn, Unknown => 1 },
|
9617
|
+
943 => {
|
9618
|
+
Name => 'CustomSettingsZ8',
|
9619
|
+
Format => 'undef[755]',
|
9620
|
+
SubDirectory => { TagTable => 'Image::ExifTool::NikonCustom::SettingsZ8' },
|
9621
|
+
},
|
9622
|
+
1698 => { Name => 'Language', PrintConv => \%languageZ9, Unknown => 1 },
|
9623
|
+
1700 => { Name => 'TimeZone', PrintConv => \%timeZoneZ9 },
|
9624
|
+
1706 => { Name => 'MonitorBrightness', PrintConv => \%monitorBrightnessZ9, Unknown => 1 }, # settings: -5 to +5. Added with firmware 3.0: Lo1, Lo2, Hi1, Hi2
|
9625
|
+
1728 => { Name => 'AFFineTune', PrintConv => \%offOn, Unknown => 1 },
|
9626
|
+
1732 => { Name => 'NonCPULens1FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1}, #should probably hide altogther if $val is 0
|
9627
|
+
1734 => { Name => 'NonCPULens2FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9628
|
+
1736 => { Name => 'NonCPULens3FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9629
|
+
1738 => { Name => 'NonCPULens4FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9630
|
+
1740 => { Name => 'NonCPULens5FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9631
|
+
1742 => { Name => 'NonCPULens6FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9632
|
+
1744 => { Name => 'NonCPULens7FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9633
|
+
1746 => { Name => 'NonCPULens8FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9634
|
+
1748 => { Name => 'NonCPULens9FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9635
|
+
1750 => { Name => 'NonCPULens10FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9636
|
+
1752 => { Name => 'NonCPULens11FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9637
|
+
1754 => { Name => 'NonCPULens12FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9638
|
+
1756 => { Name => 'NonCPULens13FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9639
|
+
1758 => { Name => 'NonCPULens14FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9640
|
+
1760 => { Name => 'NonCPULens15FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9641
|
+
1762 => { Name => 'NonCPULens16FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9642
|
+
1764 => { Name => 'NonCPULens17FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9643
|
+
1766 => { Name => 'NonCPULens18FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9644
|
+
1768 => { Name => 'NonCPULens19FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9645
|
+
1770 => { Name => 'NonCPULens20FocalLength', Format => 'int16u', PrintConv => 'sprintf("%.1fmm",$val/10)', Unknown => 1},
|
9646
|
+
1812 => { Name => 'NonCPULens1MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9647
|
+
1816 => { Name => 'NonCPULens2MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9648
|
+
1820 => { Name => 'NonCPULens3MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9649
|
+
1824 => { Name => 'NonCPULens4MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9650
|
+
1828 => { Name => 'NonCPULens5MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9651
|
+
1832 => { Name => 'NonCPULens6MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9652
|
+
1836 => { Name => 'NonCPULens7MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9653
|
+
1840 => { Name => 'NonCPULens8MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9654
|
+
1844 => { Name => 'NonCPULens9MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9655
|
+
1848 => { Name => 'NonCPULens10MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9656
|
+
1852 => { Name => 'NonCPULens11MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9657
|
+
1856 => { Name => 'NonCPULens12MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9658
|
+
1860 => { Name => 'NonCPULens13MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9659
|
+
1864 => { Name => 'NonCPULens14MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9660
|
+
1868 => { Name => 'NonCPULens15MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9661
|
+
1872 => { Name => 'NonCPULens16MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9662
|
+
1876 => { Name => 'NonCPULens17MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9663
|
+
1880 => { Name => 'NonCPULens18MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9664
|
+
1884 => { Name => 'NonCPULens19MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9665
|
+
1888 => { Name => 'NonCPULens20MaxAperture', Format => 'int32u', PrintConv => 'sprintf("%.1fmm",$val/100)', Unknown => 1},
|
9666
|
+
1824 => { Name => 'HDMIOutputResolution', PrintConv => \%hDMIOutputResolutionZ9 },
|
9667
|
+
1842 => { Name => 'AirplaneMode', PrintConv => \%offOn, Unknown => 1 },
|
9668
|
+
1843 => { Name => 'EmptySlotRelease', PrintConv => { 0 => 'Disable Release', 1 => 'Enable Release' }, Unknown => 1 },
|
9669
|
+
1878 => { Name => 'EnergySavingMode', PrintConv => \%offOn, Unknown => 1 },
|
9670
|
+
1906 => { Name => 'USBPowerDelivery', PrintConv => \%offOn, Unknown => 1 },
|
9671
|
+
1915 => { Name => 'SensorShield', PrintConv => { 0 => 'Stays Open', 1 => 'Closes' }, Unknown => 1 },
|
9672
|
+
2046 => { Name => 'PixelShiftShooting', RawConv => '$$self{PixelShiftShooting} = $val', PrintConv => \%multipleExposureModeZ9 }, #off/on/on (series)
|
9673
|
+
2048 => { Name => 'PixelShiftNumberShots', Condition => '$$self{PixelShiftShooting} > 0', PrintConv => \%pixelShiftNumberShots },
|
9674
|
+
2050 => { Name => 'PixelShiftDelay', Condition => '$$self{PixelShiftShooting} > 0', PrintConv => \%pixelShiftDelay },
|
9675
|
+
2052 => { Name => 'PlaybackButton', %buttonsZ9 }, #CSf2
|
9676
|
+
2054 => { Name => 'WBButton', %buttonsZ9}, #CSf2
|
9677
|
+
2056 => { Name => 'BracketButton', %buttonsZ9}, #CSf2
|
9678
|
+
2058 => { Name => 'LensFunc1ButtonPlaybackMode', %buttonsZ9}, #CSf2
|
9679
|
+
2060 => { Name => 'LensFunc2ButtonPlaybackMode', %buttonsZ9}, #CSf2
|
9680
|
+
2062 => { Name => 'PlaybackButtonPlaybackMode', %buttonsZ9}, #CSf2
|
9681
|
+
2064 => { Name => 'BracketButtonPlaybackMode', %buttonsZ9}, #CSf2
|
9682
|
+
);
|
9387
9683
|
%Image::ExifTool::Nikon::MenuSettingsZ9 = (
|
9388
9684
|
%binaryDataAttrs,
|
9389
9685
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
@@ -9733,7 +10029,7 @@ my %nikonFocalConversions = (
|
|
9733
10029
|
RawConv => '$$self{DynamicAFAreaSize} = $val',
|
9734
10030
|
PrintConv => \%dynamicAfAreaModesZ9,
|
9735
10031
|
},
|
9736
|
-
636 => { Name => '
|
10032
|
+
636 => { Name => 'HighFrequencyFlickerReduction', PrintConv => \%offOn, Unknown => 1 }, # new with firmware 3.0
|
9737
10033
|
646 => {
|
9738
10034
|
Name => 'MovieImageArea',
|
9739
10035
|
Unknown => 1,
|
@@ -9833,7 +10129,7 @@ my %nikonFocalConversions = (
|
|
9833
10129
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
9834
10130
|
DATAMEMBER => [ 154, 204, 208, 248, 328, 444, 548, 554, 570, 596 ],
|
9835
10131
|
IS_SUBDIR => [ 847 ],
|
9836
|
-
NOTES => 'These tags are used by the Z9 firmware
|
10132
|
+
NOTES => 'These tags are used by the Z9 firmware 4.0.0 and 4.1.0',
|
9837
10133
|
72 => {
|
9838
10134
|
Name => 'HighFrameRate', #CH and C30/C60/C120 but not CL
|
9839
10135
|
PrintConv => \%highFrameRateZ9,
|
@@ -9970,7 +10266,7 @@ my %nikonFocalConversions = (
|
|
9970
10266
|
RawConv => '$$self{DynamicAFAreaSize} = $val',
|
9971
10267
|
PrintConv => \%dynamicAfAreaModesZ9,
|
9972
10268
|
},
|
9973
|
-
636 => { Name => '
|
10269
|
+
636 => { Name => 'HighFrequencyFlickerReduction', PrintConv => \%offOn, Unknown => 1 }, # new with firmware 3.0
|
9974
10270
|
646 => {
|
9975
10271
|
Name => 'MovieImageArea',
|
9976
10272
|
Unknown => 1,
|
@@ -10116,6 +10412,18 @@ my %nikonFocalConversions = (
|
|
10116
10412
|
Format => 'fixed32u',
|
10117
10413
|
PrintConv => '$val ? sprintf("%.1f sec",$val/1000) : "Off"',
|
10118
10414
|
},
|
10415
|
+
2052 => { #CSf2-m3
|
10416
|
+
Name => 'CommandDialFrameAdvanceZoom',
|
10417
|
+
Condition => '$$self{FirmwareVersion} and $$self{FirmwareVersion} ge "05.00"',
|
10418
|
+
PrintConv => \%dialsFrameAdvanceZoomPositionZ9,
|
10419
|
+
Unknown => 1
|
10420
|
+
},
|
10421
|
+
2054 => { #CSf2-n3
|
10422
|
+
Name => 'SubCommandDialFrameAdvanceZoom',
|
10423
|
+
Condition => '$$self{FirmwareVersion} and $$self{FirmwareVersion} ge "05.00"',
|
10424
|
+
PrintConv => \%dialsFrameAdvanceZoomPositionZ9,
|
10425
|
+
Unknown => 1
|
10426
|
+
},
|
10119
10427
|
2056 => { Name => 'PlaybackButton', %buttonsZ9}, #CSf2
|
10120
10428
|
2058 => { Name => 'WBButton', %buttonsZ9}, #CSf2
|
10121
10429
|
2060 => { Name => 'BracketButton', %buttonsZ9}, #CSf2
|
@@ -11406,7 +11714,7 @@ my %nikonFocalConversions = (
|
|
11406
11714
|
},
|
11407
11715
|
);
|
11408
11716
|
|
11409
|
-
# MakerNotes0x56 - burst info for Z9
|
11717
|
+
# MakerNotes0x56 - burst info for Z8 and Z9
|
11410
11718
|
%Image::ExifTool::Nikon::MakerNotes0x56 = (
|
11411
11719
|
%binaryDataAttrs,
|
11412
11720
|
GROUPS => { 0 => 'MakerNotes' },
|
@@ -11416,7 +11724,7 @@ my %nikonFocalConversions = (
|
|
11416
11724
|
Writable => 0,
|
11417
11725
|
},
|
11418
11726
|
4 => {
|
11419
|
-
Name => 'BurstGroupID', #all frames shot within a burst (using CL/CH/C30/C60/C120) will share the same BurstGroupID. Value will be > 0 for all images shot in continuous modes. 0 for single-frame.
|
11727
|
+
Name => 'BurstGroupID', #all frames shot within a burst (using CL/CH/C30/C60/C120) will share the same BurstGroupID. Value will be > 0 for all images shot in continuous modes (or via Pixel Shift). 0 for single-frame.
|
11420
11728
|
Format => 'int16u'
|
11421
11729
|
},
|
11422
11730
|
);
|
@@ -11440,7 +11748,7 @@ my %nikonFocalConversions = (
|
|
11440
11748
|
Name => 'VignetteInfo', # Z-series vignette correction information
|
11441
11749
|
SubDirectory => { TagTable => 'Image::ExifTool::Nikon::VignetteInfo' },
|
11442
11750
|
},
|
11443
|
-
# 0x07 - undef[104]
|
11751
|
+
# 0x07 - undef[104] #possibly Z-series diffration correction information (#28)
|
11444
11752
|
# 0x08 - undef[24]
|
11445
11753
|
# 0x09 - undef[36]
|
11446
11754
|
);
|
@@ -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.
|
18
|
+
$VERSION = '1.25';
|
19
19
|
|
20
20
|
@ISA = qw(Exporter);
|
21
21
|
@EXPORT_OK = qw(%buttonsZ9);
|
@@ -77,6 +77,7 @@ $VERSION = '1.24';
|
|
77
77
|
66 => 'Voice Memo',
|
78
78
|
70 => 'Photo Shooting Bank',
|
79
79
|
71 => 'ISO',
|
80
|
+
72 => 'Shooting Mode',
|
80
81
|
73 => 'Exposure Compensation',
|
81
82
|
76 => 'Silent Mode',
|
82
83
|
78 => 'LiveView Information',
|
@@ -90,6 +91,9 @@ $VERSION = '1.24';
|
|
90
91
|
86 => 'Save Focus Position',
|
91
92
|
87 => 'Recall Focus Position',
|
92
93
|
88 => 'Recall Shooting Functions (Hold)',
|
94
|
+
89 => 'Set Picture Control (HLG)',
|
95
|
+
90 => 'Skin Softening',
|
96
|
+
91 => 'Portrait Impression Balance',
|
93
97
|
97 => 'High Frequency Flicker Reduction',
|
94
98
|
98 => 'Switch FX/DX',
|
95
99
|
99 => 'View Mode (Photo LV)',
|
@@ -104,7 +108,25 @@ $VERSION = '1.24';
|
|
104
108
|
110 => 'DISP - Cycle Information Display (playback)', # Playback mode
|
105
109
|
111 => 'Resume Shooting',
|
106
110
|
112 => 'Switch Eyes',
|
111
|
+
113 => 'Power Zoom +',
|
112
|
+
114 => 'Power Zoom -',
|
107
113
|
115 => 'Delete',
|
114
|
+
116 => 'Pixel Shift Shooting',
|
115
|
+
117 => 'Cycle AF-area Mode',
|
116
|
+
118 => 'Raw Processing (Current)', #118-131 are Retouch options
|
117
|
+
119 => 'Raw Processing (Multiple)',
|
118
|
+
120 => 'Trim',
|
119
|
+
121 => 'Resize (Current)',
|
120
|
+
122 => 'Resize (Multiple)',
|
121
|
+
123 => 'D-Lighting',
|
122
|
+
124 => 'Straighten',
|
123
|
+
125 => 'Distortion Control',
|
124
|
+
126 => 'Perspective Control',
|
125
|
+
127 => 'Monochrome',
|
126
|
+
128 => 'Overlay (Add)',
|
127
|
+
129 => 'Lighten',
|
128
|
+
130 => 'Darken',
|
129
|
+
131 => 'Motion Blend',
|
108
130
|
},
|
109
131
|
);
|
110
132
|
my %dialsZ9 = (
|
@@ -118,6 +140,18 @@ my %dialsZ9 = (
|
|
118
140
|
7 => 'Rating',
|
119
141
|
8 => 'Page',
|
120
142
|
9 => 'Skip To First Shot In Series',
|
143
|
+
10 => 'Uploaded to FTP',
|
144
|
+
11 => 'Uploaded to Computer',
|
145
|
+
);
|
146
|
+
my %dialsVideoZ9 = (
|
147
|
+
0 => '2 s',
|
148
|
+
1 => '5 s',
|
149
|
+
2 => '10 s',
|
150
|
+
3 => '1 Frame',
|
151
|
+
4 => '5 Frames',
|
152
|
+
5 => '10 Frames',
|
153
|
+
6 => 'First/Last Frame',
|
154
|
+
7 => 'Playback Speed',
|
121
155
|
);
|
122
156
|
my %evfGridsZ9 = (
|
123
157
|
0 => '3x3',
|
@@ -9974,6 +10008,9 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
|
|
9974
10008
|
421 => { Name => 'Func1ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-a
|
9975
10009
|
423 => { Name => 'Func2ButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-b
|
9976
10010
|
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
|
9977
10014
|
467 => { Name => 'FocusPointLock', PrintConv => \%offOn, Unknown => 1}, # CSf4-c
|
9978
10015
|
459 => { Name => 'CommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-k
|
9979
10016
|
463 => { Name => 'SubCommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-l
|
@@ -10055,6 +10092,11 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
|
|
10055
10092
|
},
|
10056
10093
|
681 => { Name => 'ViewModeShowEffectsOfSettings', PrintConv => { 0=>'Always', 1=> 'Only When Flash Not Used'}, Unknown => 1 }, #CS8-a
|
10057
10094
|
683 => { Name => 'DispButton', %buttonsZ9}, #CSf2
|
10095
|
+
753 => { #CSd5
|
10096
|
+
Name => 'ExposureDelay',
|
10097
|
+
Format => 'int16u',
|
10098
|
+
PrintConv => '$val ? sprintf("%.1f sec",$val/1000) : "Off"',
|
10099
|
+
},
|
10058
10100
|
);
|
10059
10101
|
|
10060
10102
|
# Z9 custom settings (ref 1) #base at offset26 + 1035 (firmware 1.0.0)
|
@@ -10806,7 +10848,19 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
|
|
10806
10848
|
471 => { Name => 'QualityButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-h
|
10807
10849
|
477 => { Name => 'WhiteBalanceButtonPlaybackMode', %buttonsZ9, Unknown => 1}, # CSf3-i
|
10808
10850
|
483 => { Name => 'CommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-k
|
10851
|
+
485 => { # CSf3-m2
|
10852
|
+
Name => 'CommandDialVideoPlaybackMode',
|
10853
|
+
Condition => '$$self{FirmwareVersion} and $$self{FirmwareVersion} ge "05.00"',
|
10854
|
+
PrintConv => \%dialsVideoZ9,
|
10855
|
+
Unknown => 1
|
10856
|
+
},
|
10809
10857
|
487 => { Name => 'SubCommandDialPlaybackMode', PrintConv => \%dialsZ9, Unknown => 1}, # CSf3-l
|
10858
|
+
489 => { # CSf3-n2
|
10859
|
+
Name => 'SubCommandDialVideoPlaybackMode',
|
10860
|
+
Condition => '$$self{FirmwareVersion} and $$self{FirmwareVersion} ge "05.00"',
|
10861
|
+
PrintConv => \%dialsVideoZ9,
|
10862
|
+
Unknown => 1
|
10863
|
+
},
|
10810
10864
|
491 => { Name => 'FocusPointLock', PrintConv => \%offOn, Unknown => 1}, # CSf4-c
|
10811
10865
|
493 => { Name => 'ControlRingResponse', PrintConv => { 0 => 'High', 1 => 'Low' } }, # CSf10
|
10812
10866
|
505 => { Name => 'VerticalMovieFuncButton', %buttonsZ9, Unknown => 1}, # CSg2-d
|
@@ -17,7 +17,7 @@ use strict;
|
|
17
17
|
use vars qw($VERSION);
|
18
18
|
use Image::ExifTool qw(:DataAccess :Utils);
|
19
19
|
|
20
|
-
$VERSION = '1.
|
20
|
+
$VERSION = '1.04';
|
21
21
|
|
22
22
|
my $MAX_PACKETS = 2; # maximum packets to scan from each stream at start of file
|
23
23
|
|
@@ -145,6 +145,7 @@ sub ProcessOGG($$)
|
|
145
145
|
# calculate total data length
|
146
146
|
my $dataLen = Get8u(\$buff, 27);
|
147
147
|
if ($nseg) {
|
148
|
+
last unless $raf;
|
148
149
|
$raf->Read($buff, $nseg-1) == $nseg-1 or last;
|
149
150
|
my @segs = unpack('C*', $buff);
|
150
151
|
# could check that all these (but the last) are 255...
|
@@ -160,7 +161,7 @@ sub ProcessOGG($$)
|
|
160
161
|
}
|
161
162
|
}
|
162
163
|
# read page data
|
163
|
-
$raf->Read($buff, $dataLen) == $dataLen
|
164
|
+
last unless $raf and $raf->Read($buff, $dataLen) == $dataLen;
|
164
165
|
if ($verbose > 1) {
|
165
166
|
printf $out "Page %d, stream 0x%x, flag 0x%x (%d bytes)\n",
|
166
167
|
$pageNum, $stream, $flag, $dataLen;
|