exiftool_vendored 12.55.0 → 12.56.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 +19 -1
- data/bin/MANIFEST +5 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +19 -19
- data/bin/arg_files/xmp2exif.args +4 -1
- data/bin/exiftool +25 -25
- data/bin/fmt_files/kml.fmt +3 -0
- data/bin/fmt_files/kml_track.fmt +3 -0
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +6 -4
- data/bin/lib/Image/ExifTool/Canon.pm +8 -2
- data/bin/lib/Image/ExifTool/Exif.pm +31 -2
- data/bin/lib/Image/ExifTool/FlashPix.pm +69 -8
- data/bin/lib/Image/ExifTool/FujiFilm.pm +2 -1
- data/bin/lib/Image/ExifTool/InfiRay.pm +227 -0
- data/bin/lib/Image/ExifTool/JPEG.pm +40 -6
- data/bin/lib/Image/ExifTool/Nikon.pm +158 -380
- data/bin/lib/Image/ExifTool/OpenEXR.pm +32 -15
- data/bin/lib/Image/ExifTool/PNG.pm +80 -2
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +23 -14
- data/bin/lib/Image/ExifTool/Real.pm +2 -2
- data/bin/lib/Image/ExifTool/Sony.pm +5 -1
- data/bin/lib/Image/ExifTool/TagLookup.pm +4536 -4519
- data/bin/lib/Image/ExifTool/TagNames.pod +216 -14
- data/bin/lib/Image/ExifTool/VCard.pm +19 -5
- data/bin/lib/Image/ExifTool.pm +55 -14
- data/bin/lib/Image/ExifTool.pod +51 -50
- data/bin/perl-Image-ExifTool.spec +18 -18
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +3 -2
@@ -64,7 +64,7 @@ use Image::ExifTool::Exif;
|
|
64
64
|
use Image::ExifTool::GPS;
|
65
65
|
use Image::ExifTool::XMP;
|
66
66
|
|
67
|
-
$VERSION = '4.
|
67
|
+
$VERSION = '4.18';
|
68
68
|
|
69
69
|
sub LensIDConv($$$);
|
70
70
|
sub ProcessNikonAVI($$$);
|
@@ -919,6 +919,14 @@ my %hDMIOutputResolutionZ9 = (
|
|
919
919
|
#7 => '480p',
|
920
920
|
);
|
921
921
|
|
922
|
+
my %highFrameRateZ9 = (
|
923
|
+
0 => 'Off',
|
924
|
+
1 => 'CH',
|
925
|
+
3 => 'C30',
|
926
|
+
5 => 'C60',
|
927
|
+
4 => 'C120',
|
928
|
+
);
|
929
|
+
|
922
930
|
my %imageAreaZ9 = (
|
923
931
|
0 => 'FX',
|
924
932
|
1 => 'DX',
|
@@ -1651,7 +1659,7 @@ my %base64coord = (
|
|
1651
1659
|
0x0019 => { #5
|
1652
1660
|
Name => 'ExposureBracketValue',
|
1653
1661
|
Writable => 'rational64s',
|
1654
|
-
PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
|
1662
|
+
PrintConv => '$val !~ /undef/ ? Image::ExifTool::Exif::PrintFraction($val) : "n/a" ', #undef observed for Z9 jpgs at C30/C60/C90 [data is 0/0 rather than the usual 0/6]
|
1655
1663
|
PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
|
1656
1664
|
},
|
1657
1665
|
0x001a => { #PH
|
@@ -1803,6 +1811,7 @@ my %base64coord = (
|
|
1803
1811
|
0x0034 => { #forum9646
|
1804
1812
|
Name => 'ShutterMode',
|
1805
1813
|
Writable => 'int16u',
|
1814
|
+
RawConv => '$$self{ShutterMode} = $val',
|
1806
1815
|
PrintConv => {
|
1807
1816
|
0 => 'Mechanical',
|
1808
1817
|
16 => 'Electronic',
|
@@ -1811,6 +1820,7 @@ my %base64coord = (
|
|
1811
1820
|
64 => 'Electronic (Movie)', #JanSkoda (Z6II)
|
1812
1821
|
80 => 'Auto (Mechanical)', #JanSkoda (Z6II)
|
1813
1822
|
81 => 'Auto (Electronic Front Curtain)', #JanSkoda (Z6II)
|
1823
|
+
96 => 'Electronic (High Speed)', #28 Z9 at C30/C60/C120 frame rates
|
1814
1824
|
},
|
1815
1825
|
},
|
1816
1826
|
0x0035 => [{ #32
|
@@ -1874,6 +1884,14 @@ my %base64coord = (
|
|
1874
1884
|
SubDirectory => { TagTable => 'Image::ExifTool::Nikon::MakerNotes0x51' },
|
1875
1885
|
},
|
1876
1886
|
#0x0053 #28 possibly a secondary DistortionControl block (in addition to DistortInfo)? Certainly offset 0x04 within block contains tag AutoDistortionControl for Z72 and D6 (1=>On; 2=> Off)
|
1887
|
+
0x0056 => { #28 (Z9)
|
1888
|
+
Name => 'MakerNotes0x56',
|
1889
|
+
Writable => 'undef',
|
1890
|
+
Hidden => 1,
|
1891
|
+
Permanent => 0,
|
1892
|
+
Flags => [ 'Binary', 'Protected' ],
|
1893
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Nikon::MakerNotes0x56' },
|
1894
|
+
},
|
1877
1895
|
#0x005e #28 possibly DiffractionCompensation block? Certainly offset 0x04 within block contains tag DiffractionCompensation
|
1878
1896
|
0x0080 => { Name => 'ImageAdjustment', Writable => 'string' },
|
1879
1897
|
0x0081 => { Name => 'ToneComp', Writable => 'string' }, #2
|
@@ -2003,6 +2021,7 @@ my %base64coord = (
|
|
2003
2021
|
6 => 'White-Balance Bracketing',
|
2004
2022
|
7 => 'IR Control',
|
2005
2023
|
8 => 'D-Lighting Bracketing', #forum6281 (NC)
|
2024
|
+
11 => 'Pre-capture', #28 Z9 pre-release burst
|
2006
2025
|
});
|
2007
2026
|
],
|
2008
2027
|
},
|
@@ -5285,6 +5304,7 @@ my %nikonFocalConversions = (
|
|
5285
5304
|
22 => 'Nikkor Z 24-50mm f/4-6.3', #IB
|
5286
5305
|
23 => 'Nikkor Z 14-24mm f/2.8 S', #IB
|
5287
5306
|
24 => 'Nikkor Z MC 105mm f/2.8 VR S', #IB
|
5307
|
+
25 => 'Nikkor Z 40mm f/2', #28
|
5288
5308
|
27 => 'Nikkor Z MC 50mm f/2.8', #IB
|
5289
5309
|
28 => 'Nikkor Z 100-400mm f/4.5-5.6 VR S', #28
|
5290
5310
|
29 => 'Nikkor Z 28mm f/2.8', #IB
|
@@ -5292,7 +5312,10 @@ my %nikonFocalConversions = (
|
|
5292
5312
|
31 => 'Nikkor Z 24-120 f/4', #28
|
5293
5313
|
32 => 'Nikkor Z 800mm f/6.3 VR S', #28
|
5294
5314
|
36 => 'Nikkor Z 400mm f/4.5 VR S', #IB
|
5315
|
+
37 => 'Nikkor Z 600mm f/4 TC VR S', #28
|
5295
5316
|
39 => 'Nikkor Z 17-28mm f/2.8', #IB
|
5317
|
+
32768 => 'Nikkor Z 400mm f/2.8 TC VR S TC-1.4x', #28
|
5318
|
+
32769 => 'Nikkor Z 600mm f/4 TC VR S TC-1.4x', #28
|
5296
5319
|
},
|
5297
5320
|
},
|
5298
5321
|
0x35 => { #28
|
@@ -8334,9 +8357,9 @@ my %nikonFocalConversions = (
|
|
8334
8357
|
WRITE_PROC => \&Image::ExifTool::Nikon::ProcessNikonEncrypted,
|
8335
8358
|
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
8336
8359
|
VARS => { ID_LABEL => 'Index' },
|
8337
|
-
DATAMEMBER => [ 0x04, 0x30,
|
8338
|
-
|
8339
|
-
IS_SUBDIR => [
|
8360
|
+
DATAMEMBER => [ 0x04, 0x30, 0x84, 0x8c,0x93, 0xb4, 0xbc, 0xbe,
|
8361
|
+
0x4410, 0x4411, 0x80c4, 0x8149, 0x814a ],
|
8362
|
+
IS_SUBDIR => [ 0x44ec, 0x8225 ],
|
8340
8363
|
WRITABLE => 1,
|
8341
8364
|
FIRST_ENTRY => 0,
|
8342
8365
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
@@ -8373,20 +8396,12 @@ my %nikonFocalConversions = (
|
|
8373
8396
|
Hidden => 1,
|
8374
8397
|
},
|
8375
8398
|
0x30 => {
|
8376
|
-
Name => '
|
8377
|
-
DataMember => '
|
8399
|
+
Name => 'SequenceOffset', #offset3 - length 2528 (Z9 firmware 1.0)
|
8400
|
+
DataMember => 'SequenceOffset',
|
8378
8401
|
Format => 'int32u',
|
8379
8402
|
Writable => 0,
|
8380
8403
|
Hidden => 1,
|
8381
|
-
RawConv => '$$self{
|
8382
|
-
},
|
8383
|
-
0x38 => {
|
8384
|
-
Name => 'Offset5', #offset5 - length 2488 (Z9 firmware 1.0)
|
8385
|
-
DataMember => 'Offset5',
|
8386
|
-
Format => 'int32u',
|
8387
|
-
Writable => 0,
|
8388
|
-
Hidden => 1,
|
8389
|
-
RawConv => '$$self{Offset5} = $val || 0x10000000; undef', # (ignore if 0)
|
8404
|
+
RawConv => '$$self{SequenceOffset} = $val || 0x10000000; undef', # (ignore if 0)
|
8390
8405
|
},
|
8391
8406
|
0x84 => {
|
8392
8407
|
Name => 'OrientationOffset', #offset24 - length 108 (Z9 firmware 1.0)
|
@@ -8397,23 +8412,25 @@ my %nikonFocalConversions = (
|
|
8397
8412
|
RawConv => '$$self{OrientationOffset} = $val || 0x10000000; undef', # (ignore if 0)
|
8398
8413
|
},
|
8399
8414
|
0x8c => {
|
8400
|
-
Name => '
|
8401
|
-
DataMember => '
|
8415
|
+
Name => 'MenuOffset', #offset26 - length 1895 (Z9 firmware 1.0)
|
8416
|
+
DataMember => 'MenuOffset6',
|
8402
8417
|
Format => 'int32u',
|
8403
8418
|
Writable => 0,
|
8404
8419
|
Hidden => 1,
|
8405
|
-
RawConv => '$$self{
|
8420
|
+
RawConv => '$$self{MenuOffset} = $val || 0x10000000; undef', # (ignore if 0)
|
8406
8421
|
},
|
8407
|
-
###
|
8408
|
-
|
8409
|
-
Name => '
|
8422
|
+
### 0x0094 - SequenceOffset info start (Z9 firmware 1.00)
|
8423
|
+
0x0093 => {
|
8424
|
+
Name => 'SequenceOffsetHook',
|
8425
|
+
Condition => '$$self{ShutterMode} ne 96', #not valid for C30/C60/C120
|
8410
8426
|
Hidden => 1,
|
8411
8427
|
RawConv => 'undef',
|
8412
|
-
# account for variable location of
|
8413
|
-
Hook => '$varSize = $$self{
|
8428
|
+
# account for variable location of SequenceOffset data
|
8429
|
+
Hook => '$varSize = $$self{SequenceOffset} - 0x0094',
|
8414
8430
|
},
|
8415
|
-
|
8431
|
+
0x00b4 => {
|
8416
8432
|
Name => 'FocusShiftShooting',
|
8433
|
+
Condition => '$$self{ShutterMode} ne 96', #not valid for C30/C60/C120
|
8417
8434
|
RawConv => '$$self{FocusShiftShooting} = $val',
|
8418
8435
|
PrintConv => q{
|
8419
8436
|
return 'Off' if $val == 0 ;
|
@@ -8421,8 +8438,9 @@ my %nikonFocalConversions = (
|
|
8421
8438
|
return "On: $i"
|
8422
8439
|
},
|
8423
8440
|
},
|
8424
|
-
|
8441
|
+
0x00bc => {
|
8425
8442
|
Name => 'IntervalShooting',
|
8443
|
+
Condition => '$$self{ShutterMode} ne 96', #not valid for C30/C60/C120
|
8426
8444
|
RawConv => '$$self{IntervalShooting} = $val',
|
8427
8445
|
Format => 'int16u',
|
8428
8446
|
PrintConv => q{
|
@@ -8433,32 +8451,73 @@ my %nikonFocalConversions = (
|
|
8433
8451
|
#$val == 0 ? 'Off' : sprintf("On: Interval %.0f of %.0f Frame %.0f of %.0f",$val, $$self{IntervalShootingIntervals}, $$self{IntervalFrame}, $$self{IntervalShootingShotsPerInterval}),
|
8434
8452
|
},
|
8435
8453
|
},
|
8436
|
-
|
8454
|
+
0x00be => {
|
8455
|
+
Condition => '$$self{ShutterMode} ne 96', #not valid for C30/C60/C120
|
8437
8456
|
Name => 'IntervalFrame',
|
8438
8457
|
RawConv => '$$self{IntervalFrame} = $val',
|
8439
|
-
Condition => '$$self{
|
8458
|
+
Condition => '$$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
8440
8459
|
Format => 'int16u',
|
8441
8460
|
Hidden => 1,
|
8442
8461
|
},
|
8443
|
-
###
|
8444
|
-
|
8462
|
+
### 0x4400 - Offset26 info start (Z9 firmware 3.01 C30/C60/C120 )
|
8463
|
+
0x4410 => {
|
8464
|
+
Name => 'MenuSettingsZ9Offset',
|
8465
|
+
Condition => '$$self{ShutterMode} eq 96', # C30/C60/C120 jpgs only
|
8466
|
+
Writable => 0,
|
8467
|
+
Hidden => 1,
|
8468
|
+
# offset to MenuSettingsZ9 is relative to start of Offset26 block
|
8469
|
+
RawConv => '$$self{MenuSettingsZ9Offset} = ($val || 0x10000000) + $$self{MenuOffset}; undef', # (ignore if 0)
|
8470
|
+
},
|
8471
|
+
0x4411 => {
|
8472
|
+
Name => 'Hook5',
|
8473
|
+
Condition => '$$self{ShutterMode} eq 96', # C30/C60/C120 jpgs only
|
8474
|
+
Hidden => 1,
|
8475
|
+
RawConv => 'undef',
|
8476
|
+
# account for variable location of menu settings data
|
8477
|
+
Hook => '$varSize = $$self{MenuSettingsZ9Offset} - 0x44ec',
|
8478
|
+
},
|
8479
|
+
0x44ec => [
|
8480
|
+
{
|
8481
|
+
Name => 'MenuSettingsZ9',
|
8482
|
+
Condition => '$$self{ShutterMode} eq 96 and $$self{FirmwareVersion} lt "03.00"', # C30/C60/C120 jpgs only
|
8483
|
+
Format => 'undef[1646]',
|
8484
|
+
Notes => 'Firmware versions 2.11 and earlier',
|
8485
|
+
SubDirectory => {
|
8486
|
+
TagTable => 'Image::ExifTool::Nikon::MenuSettingsZ9',
|
8487
|
+
},
|
8488
|
+
},
|
8489
|
+
{
|
8490
|
+
Name => 'MenuSettingsZ9',
|
8491
|
+
Notes => 'Firmware versions 3.0 and later',
|
8492
|
+
Condition => '$$self{ShutterMode} eq 96', # C30/C60/C120 jpgs only
|
8493
|
+
Format => 'undef[1948]',
|
8494
|
+
SubDirectory => {
|
8495
|
+
TagTable => 'Image::ExifTool::Nikon::MenuSettingsZ9Firmware3',
|
8496
|
+
},
|
8497
|
+
},
|
8498
|
+
],
|
8499
|
+
### 0x80c5 - OrientationInfo start (Z9 firmware 3.01)
|
8500
|
+
0x80c4 => {
|
8445
8501
|
Name => 'OrientationHook',
|
8502
|
+
Condition => '$$self{ShutterMode} ne 96', #not valid for C30/C60/C120
|
8446
8503
|
Hidden => 1,
|
8447
8504
|
RawConv => 'undef',
|
8448
8505
|
# account for variable location of OrientationInfo data
|
8449
|
-
Hook => '$varSize = $$self{OrientationOffset} -
|
8506
|
+
Hook => '$varSize = $$self{OrientationOffset} - 0x80c5',
|
8450
8507
|
},
|
8451
|
-
|
8508
|
+
0x80c5 => {
|
8452
8509
|
Name => 'RollAngle',
|
8453
|
-
|
8510
|
+
Condition => '$$self{ShutterMode} ne 96', #not valid for C30/C60/C120
|
8511
|
+
Format => 'fixed32u',
|
8454
8512
|
Notes => 'converted to degrees of clockwise camera roll',
|
8455
8513
|
ValueConv => '$val <= 180 ? $val : $val - 360',
|
8456
8514
|
ValueConvInv => '$val >= 0 ? $val : $val + 360',
|
8457
8515
|
PrintConv => 'sprintf("%.1f", $val)',
|
8458
8516
|
PrintConvInv => '$val',
|
8459
8517
|
},
|
8460
|
-
|
8518
|
+
0x80c9 => {
|
8461
8519
|
Name => 'PitchAngle',
|
8520
|
+
Condition => '$$self{ShutterMode} ne 96', #not valid for C30/C60/C120
|
8462
8521
|
Format => 'fixed32u',
|
8463
8522
|
Notes => 'converted to degrees of upward camera tilt',
|
8464
8523
|
ValueConv => '$val <= 180 ? $val : $val - 360',
|
@@ -8466,8 +8525,9 @@ my %nikonFocalConversions = (
|
|
8466
8525
|
PrintConv => 'sprintf("%.1f", $val)',
|
8467
8526
|
PrintConvInv => '$val',
|
8468
8527
|
},
|
8469
|
-
|
8528
|
+
0x80cd => {
|
8470
8529
|
Name => 'YawAngle',
|
8530
|
+
Condition => '$$self{ShutterMode} ne 96', #not valid for C30/C60/C120
|
8471
8531
|
Format => 'fixed32u',
|
8472
8532
|
Notes => 'the camera yaw angle when shooting in portrait orientation',
|
8473
8533
|
ValueConv => '$val <= 180 ? $val : $val - 360',
|
@@ -8475,25 +8535,27 @@ my %nikonFocalConversions = (
|
|
8475
8535
|
PrintConv => 'sprintf("%.1f", $val)',
|
8476
8536
|
PrintConvInv => '$val',
|
8477
8537
|
},
|
8478
|
-
###
|
8479
|
-
|
8538
|
+
### 0x8139 - Offset26 info start (Z9 firmware 3.01)
|
8539
|
+
0x8149 => {
|
8480
8540
|
Name => 'MenuSettingsZ9Offset',
|
8541
|
+
Condition => '$$self{ShutterMode} ne 96', # C30/C60/C120 jpgs handled at 0x4410
|
8481
8542
|
Writable => 0,
|
8482
8543
|
Hidden => 1,
|
8483
8544
|
# offset to MenuSettingsZ9 is relative to start of Offset26 block
|
8484
|
-
RawConv => '$$self{MenuSettingsZ9Offset} = ($val || 0x10000000) + $$self{
|
8545
|
+
RawConv => '$$self{MenuSettingsZ9Offset} = ($val || 0x10000000) + $$self{MenuOffset}; undef', # (ignore if 0)
|
8485
8546
|
},
|
8486
|
-
|
8547
|
+
0x814a => {
|
8487
8548
|
Name => 'Hook5',
|
8549
|
+
Condition => '$$self{ShutterMode} ne 96', # C30/C60/C120 jpgs handled at 0x4410
|
8488
8550
|
Hidden => 1,
|
8489
8551
|
RawConv => 'undef',
|
8490
8552
|
# account for variable location of menu settings data
|
8491
|
-
Hook => '$varSize = $$self{MenuSettingsZ9Offset} -
|
8553
|
+
Hook => '$varSize = $$self{MenuSettingsZ9Offset} - 0x8225',
|
8492
8554
|
},
|
8493
|
-
|
8555
|
+
0x8225 => [
|
8494
8556
|
{
|
8495
8557
|
Name => 'MenuSettingsZ9',
|
8496
|
-
Condition => '$$self{FirmwareVersion} lt "03.00"',
|
8558
|
+
Condition => '$$self{ShutterMode} ne 96 and $$self{FirmwareVersion} lt "03.00"', # C30/C60/C120 jpgs handled at 0x4410
|
8497
8559
|
Format => 'undef[1646]',
|
8498
8560
|
Notes => 'Firmware versions 2.11 and earlier',
|
8499
8561
|
SubDirectory => {
|
@@ -8503,6 +8565,7 @@ my %nikonFocalConversions = (
|
|
8503
8565
|
{
|
8504
8566
|
Name => 'MenuSettingsZ9',
|
8505
8567
|
Notes => 'Firmware versions 3.0 and later',
|
8568
|
+
Condition => '$$self{ShutterMode} ne 96', # C30/C60/C120 jpgs handled at 0x4410
|
8506
8569
|
Format => 'undef[1948]',
|
8507
8570
|
SubDirectory => {
|
8508
8571
|
TagTable => 'Image::ExifTool::Nikon::MenuSettingsZ9Firmware3',
|
@@ -8751,34 +8814,34 @@ my %nikonFocalConversions = (
|
|
8751
8814
|
Name => 'Intervals',
|
8752
8815
|
Format => 'int32u',
|
8753
8816
|
RawConv => '$$self{IntervalShootingIntervals} = $val',
|
8754
|
-
Condition => '$$self{
|
8817
|
+
Condition => '$$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
8755
8818
|
},
|
8756
8819
|
192 => {
|
8757
8820
|
Name => 'ShotsPerInterval',
|
8758
8821
|
Format => 'int32u',
|
8759
8822
|
RawConv => '$$self{IntervalShootingShotsPerInterval} = $val',
|
8760
|
-
Condition => '$$self{
|
8823
|
+
Condition => '$$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
8761
8824
|
},
|
8762
8825
|
#220 NEFCompression 0=> 'Lossless' 1=> 'High Efficiency*' 4=> 'High Efficientcy'
|
8763
8826
|
232 => {
|
8764
8827
|
Name => 'FocusShiftNumberShots', #1-300
|
8765
8828
|
RawConv => '$$self{FocusShiftNumberShots} = $val',
|
8766
|
-
Condition => '$$self{FocusShiftShooting} > 0',
|
8829
|
+
Condition => '$$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
8767
8830
|
},
|
8768
8831
|
236 => {
|
8769
8832
|
Name => 'FocusShiftStepWidth', #1(Narrow) to 10 (Wide)
|
8770
|
-
Condition => '$$self{FocusShiftShooting} > 0',
|
8833
|
+
Condition => '$$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
8771
8834
|
},
|
8772
8835
|
240 => {
|
8773
8836
|
Name => 'FocusShiftInterval',
|
8774
|
-
Condition => '$$self{FocusShiftShooting} > 0',
|
8837
|
+
Condition => '$$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
8775
8838
|
PrintConv => '$val == 1? "1 Second" : sprintf("%.0f Seconds",$val)',
|
8776
8839
|
},
|
8777
8840
|
244 => {
|
8778
8841
|
Name => 'FocusShiftExposureLock',
|
8779
8842
|
Unknown => 1,
|
8780
8843
|
PrintConv => \%offOn,
|
8781
|
-
Condition => '$$self{FocusShiftShooting} > 0',
|
8844
|
+
Condition => '$$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
8782
8845
|
},
|
8783
8846
|
274 => { Name => 'PhotoShootingMenuBank', PrintConv => \%banksZ9 },
|
8784
8847
|
276 => { Name => 'ExtendedMenuBanks', PrintConv => \%offOn }, #single tag from both Photo & Video menus
|
@@ -8938,12 +9001,17 @@ my %nikonFocalConversions = (
|
|
8938
9001
|
1636 => { Name => 'USBPowerDelivery', PrintConv => \%offOn, Unknown => 1 },
|
8939
9002
|
1645 => { Name => 'SensorShield', PrintConv => { 0 => 'Stays Open', 1 => 'Closes' }, Unknown => 1 },
|
8940
9003
|
);
|
9004
|
+
|
8941
9005
|
%Image::ExifTool::Nikon::MenuSettingsZ9Firmware3 = ( #starts at Offset26 + 248
|
8942
9006
|
%binaryDataAttrs,
|
8943
9007
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
8944
9008
|
DATAMEMBER => [ 154, 204, 208, 248, 444, 554 ],
|
8945
9009
|
IS_SUBDIR => [ 847 ],
|
8946
9010
|
NOTES => 'These tags are used by the Z9 firmware 3.00.',
|
9011
|
+
72 => {
|
9012
|
+
Name => 'HighFrameRate', #CH and C30/C60/C120 but not CL
|
9013
|
+
PrintConv => \%highFrameRateZ9,
|
9014
|
+
},
|
8947
9015
|
154 => {
|
8948
9016
|
Name => 'MultipleExposureMode',
|
8949
9017
|
RawConv => '$$self{MultipleExposureMode} = $val',
|
@@ -8954,33 +9022,33 @@ my %nikonFocalConversions = (
|
|
8954
9022
|
Name => 'Intervals',
|
8955
9023
|
Format => 'int32u',
|
8956
9024
|
RawConv => '$$self{IntervalShootingIntervals} = $val',
|
8957
|
-
Condition => '$$self{
|
9025
|
+
Condition => '$$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
8958
9026
|
},
|
8959
9027
|
208 => {
|
8960
9028
|
Name => 'ShotsPerInterval',
|
8961
9029
|
Format => 'int32u',
|
8962
9030
|
RawConv => '$$self{IntervalShootingShotsPerInterval} = $val',
|
8963
|
-
Condition => '$$self{
|
9031
|
+
Condition => '$$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
8964
9032
|
},
|
8965
9033
|
248 => {
|
8966
9034
|
Name => 'FocusShiftNumberShots', #1-300
|
8967
9035
|
RawConv => '$$self{FocusShiftNumberShots} = $val',
|
8968
|
-
Condition => '$$self{FocusShiftShooting} > 0',
|
9036
|
+
Condition => '$$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
8969
9037
|
},
|
8970
9038
|
252 => {
|
8971
9039
|
Name => 'FocusShiftStepWidth', #1(Narrow) to 10 (Wide)
|
8972
|
-
Condition => '$$self{FocusShiftShooting} > 0',
|
9040
|
+
Condition => '$$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
8973
9041
|
},
|
8974
9042
|
256 => {
|
8975
9043
|
Name => 'FocusShiftInterval',
|
8976
|
-
Condition => '$$self{FocusShiftShooting} > 0',
|
9044
|
+
Condition => '$$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
8977
9045
|
PrintConv => '$val == 1? "1 Second" : sprintf("%.0f Seconds",$val)',
|
8978
9046
|
},
|
8979
9047
|
260 => {
|
8980
9048
|
Name => 'FocusShiftExposureLock',
|
8981
9049
|
Unknown => 1,
|
8982
9050
|
PrintConv => \%offOn,
|
8983
|
-
Condition => '$$self{FocusShiftShooting} > 0',
|
9051
|
+
Condition => '$$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
8984
9052
|
},
|
8985
9053
|
290 => { Name => 'PhotoShootingMenuBank', PrintConv => \%banksZ9 },
|
8986
9054
|
292 => { Name => 'ExtendedMenuBanks', PrintConv => \%offOn }, # single tag from both Photo & Video menus
|
@@ -9132,340 +9200,33 @@ my %nikonFocalConversions = (
|
|
9132
9200
|
Name => 'FocusShiftAutoReset',
|
9133
9201
|
Unknown => 1,
|
9134
9202
|
PrintConv => \%offOn,
|
9135
|
-
Condition => '$$self{FocusShiftShooting} > 0',
|
9136
|
-
},
|
9137
|
-
#1824 ReleaseTimingIndicatorTypeADelay CSd14-b 0 => '1/200' ... 15 => '1/6'
|
9138
|
-
#1826 VerticalISOButton CSf2
|
9139
|
-
#1828 ExposureCompensationButton CSf2
|
9140
|
-
#1830 ISOButton CSf2
|
9141
|
-
#1890 ViewModeShowEffectsOfSettings CSd9-a 0=>'Always', 1=> 'Only When Flash Not Used'
|
9142
|
-
#1892 DispButton CSf2
|
9143
|
-
#1936 FocusPointDisplayOption3DTrackingColor CSa11-d 0=> 'White', 1= => 'Red'
|
9144
|
-
);
|
9145
|
-
|
9146
|
-
# Flash information (ref JD)
|
9147
|
-
%Image::ExifTool::Nikon::FlashInfo0100 = (
|
9148
|
-
%binaryDataAttrs,
|
9149
|
-
DATAMEMBER => [ 9.2, 15, 16 ],
|
9150
|
-
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
9151
|
-
NOTES => q{
|
9152
|
-
These tags are used by the D2H, D2Hs, D2X, D2Xs, D50, D70, D70s, D80 and
|
9153
|
-
D200.
|
9154
|
-
},
|
9155
|
-
# NOTE: Must set ByteOrder in SubDirectory if any multi-byte integer tags added
|
9156
|
-
0 => {
|
9157
|
-
Name => 'FlashInfoVersion',
|
9158
|
-
Format => 'string[4]',
|
9159
|
-
Writable => 0,
|
9203
|
+
Condition => '$$self{ShutterMode} ne 96 and $$self{FocusShiftShooting} > 0', #not valid for C30/C60/C120
|
9160
9204
|
},
|
9161
|
-
|
9162
|
-
Name => '
|
9205
|
+
1810 => { #CSd4-a
|
9206
|
+
Name => 'PreReleaseBurstLength',
|
9163
9207
|
PrintConv => {
|
9164
9208
|
0 => 'None',
|
9165
|
-
1 => '
|
9166
|
-
2 => '
|
9167
|
-
|
9168
|
-
},
|
9169
|
-
# 5 - values: 46,48,50,54,78
|
9170
|
-
6 => {
|
9171
|
-
Format => 'int8u[2]',
|
9172
|
-
Name => 'ExternalFlashFirmware',
|
9173
|
-
SeparateTable => 'FlashFirmware',
|
9174
|
-
PrintConv => \%flashFirmware,
|
9175
|
-
},
|
9176
|
-
8 => {
|
9177
|
-
Name => 'ExternalFlashFlags',
|
9178
|
-
PrintConv => { 0 => '(none)',
|
9179
|
-
BITMASK => {
|
9180
|
-
0 => 'Fired', #28
|
9181
|
-
2 => 'Bounce Flash', #PH
|
9182
|
-
4 => 'Wide Flash Adapter',
|
9183
|
-
5 => 'Dome Diffuser', #28
|
9184
|
-
},
|
9209
|
+
1 => '0.3 Sec',
|
9210
|
+
2 => '0.5 Sec',
|
9211
|
+
3 => '1 Sec',
|
9185
9212
|
},
|
9186
9213
|
},
|
9187
|
-
|
9188
|
-
Name => '
|
9189
|
-
Mask => 0x80,
|
9190
|
-
PrintConv => { 0 => 'Off', 1 => 'On' },
|
9191
|
-
},
|
9192
|
-
9.2 => {
|
9193
|
-
Name => 'FlashControlMode',
|
9194
|
-
Mask => 0x7f,
|
9195
|
-
DataMember => 'FlashControlMode',
|
9196
|
-
RawConv => '$$self{FlashControlMode} = $val',
|
9197
|
-
PrintConv => \%flashControlMode,
|
9198
|
-
SeparateTable => 'FlashControlMode',
|
9199
|
-
},
|
9200
|
-
10 => [
|
9201
|
-
{
|
9202
|
-
Name => 'FlashOutput',
|
9203
|
-
Condition => '$$self{FlashControlMode} >= 0x06',
|
9204
|
-
ValueConv => '2 ** (-$val/6)',
|
9205
|
-
ValueConvInv => '$val>0 ? -6*log($val)/log(2) : 0',
|
9206
|
-
PrintConv => '$val>0.99 ? "Full" : sprintf("%.0f%%",$val*100)',
|
9207
|
-
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
9208
|
-
},
|
9209
|
-
{
|
9210
|
-
Name => 'FlashCompensation',
|
9211
|
-
Format => 'int8s',
|
9212
|
-
Priority => 0,
|
9213
|
-
ValueConv => '-$val/6',
|
9214
|
-
ValueConvInv => '-6 * $val',
|
9215
|
-
PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
|
9216
|
-
PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
|
9217
|
-
},
|
9218
|
-
],
|
9219
|
-
11 => {
|
9220
|
-
Name => 'FlashFocalLength',
|
9221
|
-
RawConv => '$val ? $val : undef',
|
9222
|
-
PrintConv => '"$val mm"',
|
9223
|
-
PrintConvInv => '$val=~/(\d+)/; $1 || 0',
|
9224
|
-
},
|
9225
|
-
12 => {
|
9226
|
-
Name => 'RepeatingFlashRate',
|
9227
|
-
RawConv => '$val ? $val : undef',
|
9228
|
-
PrintConv => '"$val Hz"',
|
9229
|
-
PrintConvInv => '$val=~/(\d+)/; $1 || 0',
|
9230
|
-
},
|
9231
|
-
13 => {
|
9232
|
-
Name => 'RepeatingFlashCount',
|
9233
|
-
RawConv => '$val ? $val : undef',
|
9234
|
-
},
|
9235
|
-
14 => { #PH
|
9236
|
-
Name => 'FlashGNDistance',
|
9237
|
-
SeparateTable => 1,
|
9238
|
-
PrintConv => \%flashGNDistance,
|
9239
|
-
},
|
9240
|
-
15 => {
|
9241
|
-
Name => 'FlashGroupAControlMode',
|
9242
|
-
Mask => 0x0f,
|
9243
|
-
DataMember => 'FlashGroupAControlMode',
|
9244
|
-
RawConv => '$$self{FlashGroupAControlMode} = $val',
|
9245
|
-
PrintConv => \%flashControlMode,
|
9246
|
-
SeparateTable => 'FlashControlMode',
|
9247
|
-
},
|
9248
|
-
16 => {
|
9249
|
-
Name => 'FlashGroupBControlMode',
|
9250
|
-
Mask => 0x0f,
|
9251
|
-
DataMember => 'FlashGroupBControlMode',
|
9252
|
-
RawConv => '$$self{FlashGroupBControlMode} = $val',
|
9253
|
-
PrintConv => \%flashControlMode,
|
9254
|
-
SeparateTable => 'FlashControlMode',
|
9255
|
-
},
|
9256
|
-
17 => [
|
9257
|
-
{
|
9258
|
-
Name => 'FlashGroupAOutput',
|
9259
|
-
Condition => '$$self{FlashGroupAControlMode} >= 0x06',
|
9260
|
-
ValueConv => '2 ** (-$val/6)',
|
9261
|
-
ValueConvInv => '$val>0 ? -6*log($val)/log(2) : 0',
|
9262
|
-
PrintConv => '$val>0.99 ? "Full" : sprintf("%.0f%%",$val*100)',
|
9263
|
-
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
9264
|
-
},
|
9265
|
-
{
|
9266
|
-
Name => 'FlashGroupACompensation',
|
9267
|
-
Format => 'int8s',
|
9268
|
-
ValueConv => '-$val/6',
|
9269
|
-
ValueConvInv => '-6 * $val',
|
9270
|
-
PrintConv => '$val ? sprintf("%+.1f",$val) : 0',
|
9271
|
-
PrintConvInv => '$val',
|
9272
|
-
},
|
9273
|
-
],
|
9274
|
-
18 => [
|
9275
|
-
{
|
9276
|
-
Name => 'FlashGroupBOutput',
|
9277
|
-
Condition => '$$self{FlashGroupBControlMode} >= 0x06',
|
9278
|
-
ValueConv => '2 ** (-$val/6)',
|
9279
|
-
ValueConvInv => '$val>0 ? -6*log($val)/log(2) : 0',
|
9280
|
-
PrintConv => '$val>0.99 ? "Full" : sprintf("%.0f%%",$val*100)',
|
9281
|
-
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
9282
|
-
},
|
9283
|
-
{
|
9284
|
-
Name => 'FlashGroupBCompensation',
|
9285
|
-
Format => 'int8s',
|
9286
|
-
ValueConv => '-$val/6',
|
9287
|
-
ValueConvInv => '-6 * $val',
|
9288
|
-
PrintConv => '$val ? sprintf("%+.1f",$val) : 0',
|
9289
|
-
PrintConvInv => '$val',
|
9290
|
-
},
|
9291
|
-
],
|
9292
|
-
);
|
9293
|
-
|
9294
|
-
# Flash information for D40, D40x, D3 and D300 (ref JD)
|
9295
|
-
%Image::ExifTool::Nikon::FlashInfo0102 = (
|
9296
|
-
%binaryDataAttrs,
|
9297
|
-
DATAMEMBER => [ 9.2, 16.1, 17.1, 17.2 ],
|
9298
|
-
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
9299
|
-
NOTES => q{
|
9300
|
-
These tags are used by the D3 (firmware 1.x), D40, D40X, D60 and D300
|
9301
|
-
(firmware 1.00).
|
9302
|
-
},
|
9303
|
-
# NOTE: Must set ByteOrder in SubDirectory if any multi-byte integer tags added
|
9304
|
-
0 => {
|
9305
|
-
Name => 'FlashInfoVersion',
|
9306
|
-
Format => 'string[4]',
|
9307
|
-
Writable => 0,
|
9308
|
-
},
|
9309
|
-
4 => { #PH
|
9310
|
-
Name => 'FlashSource',
|
9214
|
+
1812 => { #CSd4-b
|
9215
|
+
Name => 'PostReleaseBurstLength',
|
9311
9216
|
PrintConv => {
|
9312
|
-
0 => '
|
9313
|
-
1 => '
|
9314
|
-
2 => '
|
9217
|
+
0 => '1 Sec',
|
9218
|
+
1 => '2 Sec',
|
9219
|
+
2 => '3 Sec',
|
9220
|
+
3 => 'Max',
|
9315
9221
|
},
|
9316
9222
|
},
|
9317
|
-
#
|
9318
|
-
|
9319
|
-
|
9320
|
-
|
9321
|
-
|
9322
|
-
|
9323
|
-
|
9324
|
-
8 => {
|
9325
|
-
Name => 'ExternalFlashFlags',
|
9326
|
-
PrintConv => { BITMASK => {
|
9327
|
-
0 => 'Fired', #28
|
9328
|
-
2 => 'Bounce Flash', #PH
|
9329
|
-
4 => 'Wide Flash Adapter',
|
9330
|
-
5 => 'Dome Diffuser', #28
|
9331
|
-
}},
|
9332
|
-
},
|
9333
|
-
9.1 => {
|
9334
|
-
Name => 'FlashCommanderMode',
|
9335
|
-
Mask => 0x80,
|
9336
|
-
PrintConv => { 0 => 'Off', 1 => 'On' },
|
9337
|
-
},
|
9338
|
-
9.2 => {
|
9339
|
-
Name => 'FlashControlMode',
|
9340
|
-
Mask => 0x7f,
|
9341
|
-
DataMember => 'FlashControlMode',
|
9342
|
-
RawConv => '$$self{FlashControlMode} = $val',
|
9343
|
-
PrintConv => \%flashControlMode,
|
9344
|
-
SeparateTable => 'FlashControlMode',
|
9345
|
-
},
|
9346
|
-
10 => [
|
9347
|
-
{
|
9348
|
-
Name => 'FlashOutput',
|
9349
|
-
Condition => '$$self{FlashControlMode} >= 0x06',
|
9350
|
-
ValueConv => '2 ** (-$val/6)',
|
9351
|
-
ValueConvInv => '$val>0 ? -6*log($val)/log(2) : 0',
|
9352
|
-
PrintConv => '$val>0.99 ? "Full" : sprintf("%.0f%%",$val*100)',
|
9353
|
-
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
9354
|
-
},
|
9355
|
-
{
|
9356
|
-
Name => 'FlashCompensation',
|
9357
|
-
# this is the compensation from the camera (0x0012) for "Built-in" FlashType, or
|
9358
|
-
# the compensation from the external unit (0x0017) for "Optional" FlashType - PH
|
9359
|
-
Format => 'int8s',
|
9360
|
-
Priority => 0,
|
9361
|
-
ValueConv => '-$val/6',
|
9362
|
-
ValueConvInv => '-6 * $val',
|
9363
|
-
PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
|
9364
|
-
PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
|
9365
|
-
},
|
9366
|
-
],
|
9367
|
-
12 => {
|
9368
|
-
Name => 'FlashFocalLength',
|
9369
|
-
RawConv => '$val ? $val : undef',
|
9370
|
-
PrintConv => '"$val mm"',
|
9371
|
-
PrintConvInv => '$val=~/(\d+)/; $1 || 0',
|
9372
|
-
},
|
9373
|
-
13 => {
|
9374
|
-
Name => 'RepeatingFlashRate',
|
9375
|
-
RawConv => '$val ? $val : undef',
|
9376
|
-
PrintConv => '"$val Hz"',
|
9377
|
-
PrintConvInv => '$val=~/(\d+)/; $1 || 0',
|
9378
|
-
},
|
9379
|
-
14 => {
|
9380
|
-
Name => 'RepeatingFlashCount',
|
9381
|
-
RawConv => '$val ? $val : undef',
|
9382
|
-
},
|
9383
|
-
15 => { #PH
|
9384
|
-
Name => 'FlashGNDistance',
|
9385
|
-
SeparateTable => 1,
|
9386
|
-
PrintConv => \%flashGNDistance,
|
9387
|
-
},
|
9388
|
-
16.1 => {
|
9389
|
-
Name => 'FlashGroupAControlMode',
|
9390
|
-
Mask => 0x0f,
|
9391
|
-
Notes => 'note: group A tags may apply to the built-in flash settings for some models',
|
9392
|
-
DataMember => 'FlashGroupAControlMode',
|
9393
|
-
RawConv => '$$self{FlashGroupAControlMode} = $val',
|
9394
|
-
PrintConv => \%flashControlMode,
|
9395
|
-
SeparateTable => 'FlashControlMode',
|
9396
|
-
},
|
9397
|
-
17.1 => {
|
9398
|
-
Name => 'FlashGroupBControlMode',
|
9399
|
-
Mask => 0xf0,
|
9400
|
-
Notes => 'note: group B tags may apply to group A settings for some models',
|
9401
|
-
DataMember => 'FlashGroupBControlMode',
|
9402
|
-
RawConv => '$$self{FlashGroupBControlMode} = $val',
|
9403
|
-
PrintConv => \%flashControlMode,
|
9404
|
-
SeparateTable => 'FlashControlMode',
|
9405
|
-
},
|
9406
|
-
17.2 => { #PH
|
9407
|
-
Name => 'FlashGroupCControlMode',
|
9408
|
-
Mask => 0x0f,
|
9409
|
-
Notes => 'note: group C tags may apply to group B settings for some models',
|
9410
|
-
DataMember => 'FlashGroupCControlMode',
|
9411
|
-
RawConv => '$$self{FlashGroupCControlMode} = $val',
|
9412
|
-
PrintConv => \%flashControlMode,
|
9413
|
-
SeparateTable => 'FlashControlMode',
|
9414
|
-
},
|
9415
|
-
18 => [
|
9416
|
-
{
|
9417
|
-
Name => 'FlashGroupAOutput',
|
9418
|
-
Condition => '$$self{FlashGroupAControlMode} >= 0x06',
|
9419
|
-
ValueConv => '2 ** (-$val/6)',
|
9420
|
-
ValueConvInv => '$val>0 ? -6*log($val)/log(2) : 0',
|
9421
|
-
PrintConv => '$val>0.99 ? "Full" : sprintf("%.0f%%",$val*100)',
|
9422
|
-
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
9423
|
-
},
|
9424
|
-
{
|
9425
|
-
Name => 'FlashGroupACompensation',
|
9426
|
-
Format => 'int8s',
|
9427
|
-
ValueConv => '-$val/6',
|
9428
|
-
ValueConvInv => '-6 * $val',
|
9429
|
-
PrintConv => '$val ? sprintf("%+.1f",$val) : 0',
|
9430
|
-
PrintConvInv => '$val',
|
9431
|
-
},
|
9432
|
-
],
|
9433
|
-
19 => [
|
9434
|
-
{
|
9435
|
-
Name => 'FlashGroupBOutput',
|
9436
|
-
Condition => '$$self{FlashGroupBControlMode} >= 0x60',
|
9437
|
-
ValueConv => '2 ** (-$val/6)',
|
9438
|
-
ValueConvInv => '$val>0 ? -6*log($val)/log(2) : 0',
|
9439
|
-
PrintConv => '$val>0.99 ? "Full" : sprintf("%.0f%%",$val*100)',
|
9440
|
-
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
9441
|
-
},
|
9442
|
-
{
|
9443
|
-
Name => 'FlashGroupBCompensation',
|
9444
|
-
Format => 'int8s',
|
9445
|
-
ValueConv => '-$val/6',
|
9446
|
-
ValueConvInv => '-6 * $val',
|
9447
|
-
PrintConv => '$val ? sprintf("%+.1f",$val) : 0',
|
9448
|
-
PrintConvInv => '$val',
|
9449
|
-
},
|
9450
|
-
],
|
9451
|
-
20 => [ #PH
|
9452
|
-
{
|
9453
|
-
Name => 'FlashGroupCOutput',
|
9454
|
-
Condition => '$$self{FlashGroupCControlMode} >= 0x06',
|
9455
|
-
ValueConv => '2 ** (-$val/6)',
|
9456
|
-
ValueConvInv => '$val>0 ? -6*log($val)/log(2) : 0',
|
9457
|
-
PrintConv => '$val>0.99 ? "Full" : sprintf("%.0f%%",$val*100)',
|
9458
|
-
PrintConvInv => '$val=~/(\d+)/ ? $1/100 : 1',
|
9459
|
-
},
|
9460
|
-
{
|
9461
|
-
Name => 'FlashGroupCCompensation',
|
9462
|
-
Format => 'int8s',
|
9463
|
-
ValueConv => '-$val/6',
|
9464
|
-
ValueConvInv => '-6 * $val',
|
9465
|
-
PrintConv => '$val ? sprintf("%+.1f",$val) : 0',
|
9466
|
-
PrintConvInv => '$val',
|
9467
|
-
},
|
9468
|
-
],
|
9223
|
+
#1824 ReleaseTimingIndicatorTypeADelay CSd14-b 0 => '1/200' ... 15 => '1/6'
|
9224
|
+
#1826 VerticalISOButton CSf2
|
9225
|
+
#1828 ExposureCompensationButton CSf2
|
9226
|
+
#1830 ISOButton CSf2
|
9227
|
+
#1890 ViewModeShowEffectsOfSettings CSd9-a 0=>'Always', 1=> 'Only When Flash Not Used'
|
9228
|
+
#1892 DispButton CSf2
|
9229
|
+
#1936 FocusPointDisplayOption3DTrackingColor CSa11-d 0=> 'White', 1= => 'Red'
|
9469
9230
|
);
|
9470
9231
|
|
9471
9232
|
# Flash information (ref JD)
|
@@ -10749,6 +10510,21 @@ my %nikonFocalConversions = (
|
|
10749
10510
|
},
|
10750
10511
|
);
|
10751
10512
|
|
10513
|
+
# MakerNotes0x56 - burst info for Z9
|
10514
|
+
%Image::ExifTool::Nikon::MakerNotes0x56 = (
|
10515
|
+
%binaryDataAttrs,
|
10516
|
+
GROUPS => { 0 => 'MakerNotes' },
|
10517
|
+
0 => {
|
10518
|
+
Name => 'FirmwareVersion',
|
10519
|
+
Format => 'string[4]',
|
10520
|
+
Writable => 0,
|
10521
|
+
},
|
10522
|
+
4 => {
|
10523
|
+
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.
|
10524
|
+
Format => 'int16u'
|
10525
|
+
},
|
10526
|
+
);
|
10527
|
+
|
10752
10528
|
# extra info found in IFD0 of NEF files (ref PH, Z6/Z7)
|
10753
10529
|
%Image::ExifTool::Nikon::NEFInfo = (
|
10754
10530
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
@@ -11894,6 +11670,7 @@ sub PrintAFPointsLeftRight($$)
|
|
11894
11670
|
{
|
11895
11671
|
my ($col, $ncol) = @_;
|
11896
11672
|
my $center = 1 + ($ncol + 1)/2;
|
11673
|
+
return 'n/a' if $col == 0; #out of focus
|
11897
11674
|
return 'C' if $col == $center;
|
11898
11675
|
return sprintf('%d', $center - $col) . 'L of Center' if $col < $center;
|
11899
11676
|
return sprintf('%d', $col - $center) . 'R of Center' if $col > $center;
|
@@ -11907,6 +11684,7 @@ sub PrintAFPointsUpDown($$)
|
|
11907
11684
|
{
|
11908
11685
|
my ($row, $nrow) = @_;
|
11909
11686
|
my $center = 1 + ($nrow + 1)/2;
|
11687
|
+
return 'n/a' if $row == 0; #out of focus
|
11910
11688
|
return 'C' if $row == $center;
|
11911
11689
|
return sprintf('%d', $center - $row) . 'U from Center' if $row < $center;
|
11912
11690
|
return sprintf('%d', $row - $center) . 'D from Center' if $row > $center;
|