exiftool_vendored 12.55.0 → 12.56.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.
- 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;
|