exiftool-vendored.exe 12.34.0 → 12.38.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.
- package/bin/exiftool_files/Changes +61 -2
- package/bin/exiftool_files/README +2 -2
- package/bin/exiftool_files/exiftool.pl +63 -35
- package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +6 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +143 -9
- package/bin/exiftool_files/lib/Image/ExifTool/CanonCustom.pm +12 -2
- package/bin/exiftool_files/lib/Image/ExifTool/DarwinCore.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +13 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FLIR.pm +33 -8
- package/bin/exiftool_files/lib/Image/ExifTool/GIF.pm +5 -1
- package/bin/exiftool_files/lib/Image/ExifTool/GPS.pm +14 -10
- package/bin/exiftool_files/lib/Image/ExifTool/ICC_Profile.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +108 -11
- package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +1203 -96
- package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +5 -1
- package/bin/exiftool_files/lib/Image/ExifTool/NikonSettings.pm +135 -71
- package/bin/exiftool_files/lib/Image/ExifTool/OpenEXR.pm +4 -2
- package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +1 -0
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +14 -2
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +26 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool/TagInfoXML.pm +9 -4
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +6363 -5846
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +1215 -39
- package/bin/exiftool_files/lib/Image/ExifTool/WriteXMP.pl +10 -11
- package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +10 -5
- package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +110 -24
- package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool.pm +51 -12
- package/package.json +2 -2
|
@@ -15,7 +15,7 @@ package Image::ExifTool::NikonCustom;
|
|
|
15
15
|
use strict;
|
|
16
16
|
use vars qw($VERSION);
|
|
17
17
|
|
|
18
|
-
$VERSION = '1.
|
|
18
|
+
$VERSION = '1.18';
|
|
19
19
|
|
|
20
20
|
my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
21
21
|
my %onOff = ( 0 => 'On', 1 => 'Off' );
|
|
@@ -3358,6 +3358,8 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
|
|
|
3358
3358
|
47 => 'AF-Area Mode + AF-On (Auto Area AF)',
|
|
3359
3359
|
49 => 'Sync Release (Master Only)',
|
|
3360
3360
|
50 => 'Sync Release (Remote Only)',
|
|
3361
|
+
58 => 'AF-Area Mode + AF-On (Group Area AF - HL)',
|
|
3362
|
+
59 => 'AF-Area Mode + AF-On (Group Area AF - VL)',
|
|
3361
3363
|
},
|
|
3362
3364
|
},
|
|
3363
3365
|
15.1 => { # CSf1-a
|
|
@@ -3401,6 +3403,8 @@ my %noYes = ( 0 => 'No', 1 => 'Yes' );
|
|
|
3401
3403
|
47 => 'AF-Area Mode + AF-On (Auto Area AF)',
|
|
3402
3404
|
49 => 'Sync Release (Master Only)',
|
|
3403
3405
|
50 => 'Sync Release (Remote Only)',
|
|
3406
|
+
58 => 'AF-Area Mode + AF-On (Group Area AF - HL)',
|
|
3407
|
+
59 => 'AF-Area Mode + AF-On (Group Area AF - VL)',
|
|
3404
3408
|
},
|
|
3405
3409
|
},
|
|
3406
3410
|
16.1 => { # CSf1-p
|
|
@@ -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.06';
|
|
21
21
|
|
|
22
22
|
sub ProcessNikonSettings($$$);
|
|
23
23
|
|
|
@@ -161,6 +161,39 @@ my %iSOAutoHiLimitD6 = (
|
|
|
161
161
|
45 => 'ISO Hi 5.0',
|
|
162
162
|
);
|
|
163
163
|
|
|
164
|
+
my %iSOAutoHiLimitZ7 = (
|
|
165
|
+
1 => 'ISO 100',
|
|
166
|
+
2 => 'ISO 125',
|
|
167
|
+
4 => 'ISO 160',
|
|
168
|
+
5 => 'ISO 200',
|
|
169
|
+
6 => 'ISO 250',
|
|
170
|
+
8 => 'ISO 320',
|
|
171
|
+
9 => 'ISO 400',
|
|
172
|
+
10 => 'ISO 500',
|
|
173
|
+
12 => 'ISO 640',
|
|
174
|
+
13 => 'ISO 800',
|
|
175
|
+
14 => 'ISO 1000',
|
|
176
|
+
16 => 'ISO 1250',
|
|
177
|
+
17 => 'ISO 1600',
|
|
178
|
+
18 => 'ISO 2000',
|
|
179
|
+
20 => 'ISO 2500',
|
|
180
|
+
21 => 'ISO 3200',
|
|
181
|
+
22 => 'ISO 4000',
|
|
182
|
+
24 => 'ISO 5000',
|
|
183
|
+
25 => 'ISO 6400',
|
|
184
|
+
26 => 'ISO 8000',
|
|
185
|
+
28 => 'ISO 10000',
|
|
186
|
+
29 => 'ISO 12800',
|
|
187
|
+
30 => 'ISO 16000',
|
|
188
|
+
32 => 'ISO 20000',
|
|
189
|
+
33 => 'ISO 25600',
|
|
190
|
+
38 => 'ISO Hi 0.3',
|
|
191
|
+
39 => 'ISO Hi 0.5',
|
|
192
|
+
40 => 'ISO Hi 0.7',
|
|
193
|
+
41 => 'ISO Hi 1.0',
|
|
194
|
+
42 => 'ISO Hi 2.0',
|
|
195
|
+
);
|
|
196
|
+
|
|
164
197
|
my %lensFuncButtonZ7m2 = (
|
|
165
198
|
1 => 'AF-On',
|
|
166
199
|
2 => 'AF Lock Only',
|
|
@@ -305,16 +338,21 @@ my %times4s10s20s1m5m20m = (
|
|
|
305
338
|
|
|
306
339
|
my %yesNo = ( 1 => 'Yes', 2 => 'No' );
|
|
307
340
|
|
|
308
|
-
my %infoZ72 = (
|
|
309
|
-
Condition => '$$self{Model} =~ /^NIKON Z 6_2/i or $$self{Model} =~ /^NIKON Z 7_2/i',
|
|
310
|
-
Notes => 'Z7_2',
|
|
311
|
-
);
|
|
312
|
-
|
|
313
341
|
my %infoD6 = (
|
|
314
|
-
Condition => '$$self{Model} =~ /^NIKON D6/i',
|
|
342
|
+
Condition => '$$self{Model} =~ /^NIKON D6\b/i',
|
|
315
343
|
Notes => 'D6',
|
|
316
344
|
);
|
|
317
345
|
|
|
346
|
+
my %infoZ7 = (
|
|
347
|
+
Condition => '$$self{Model} =~ /^NIKON Z (7|7_2)\b/i',
|
|
348
|
+
Notes => 'Z7 and Z7_2',
|
|
349
|
+
);
|
|
350
|
+
|
|
351
|
+
my %infoZSeries = (
|
|
352
|
+
Condition => '$$self{Model} =~ /^NIKON Z (5|50|6|6_2|7|7_2|fc)\b/i',
|
|
353
|
+
Notes => 'Z Series cameras thru November 2021',
|
|
354
|
+
);
|
|
355
|
+
|
|
318
356
|
# Nikon Settings tags (ref 1, tag ID's ref PH)
|
|
319
357
|
%Image::ExifTool::NikonSettings::Main = (
|
|
320
358
|
PROCESS_PROC => \&ProcessNikonSettings,
|
|
@@ -329,39 +367,8 @@ my %infoD6 = (
|
|
|
329
367
|
%infoD6,
|
|
330
368
|
},{
|
|
331
369
|
Name => 'ISOAutoHiLimit',
|
|
332
|
-
PrintConv =>
|
|
333
|
-
|
|
334
|
-
2 => 'ISO 125',
|
|
335
|
-
4 => 'ISO 160',
|
|
336
|
-
5 => 'ISO 200',
|
|
337
|
-
6 => 'ISO 250',
|
|
338
|
-
8 => 'ISO 320',
|
|
339
|
-
9 => 'ISO 400',
|
|
340
|
-
10 => 'ISO 500',
|
|
341
|
-
12 => 'ISO 640',
|
|
342
|
-
13 => 'ISO 800',
|
|
343
|
-
14 => 'ISO 1000',
|
|
344
|
-
16 => 'ISO 1250',
|
|
345
|
-
17 => 'ISO 1600',
|
|
346
|
-
18 => 'ISO 2000',
|
|
347
|
-
20 => 'ISO 2500',
|
|
348
|
-
21 => 'ISO 3200',
|
|
349
|
-
22 => 'ISO 4000',
|
|
350
|
-
24 => 'ISO 5000',
|
|
351
|
-
25 => 'ISO 6400',
|
|
352
|
-
26 => 'ISO 8000',
|
|
353
|
-
28 => 'ISO 10000',
|
|
354
|
-
29 => 'ISO 12800',
|
|
355
|
-
30 => 'ISO 16000',
|
|
356
|
-
32 => 'ISO 20000',
|
|
357
|
-
33 => 'ISO 25600',
|
|
358
|
-
38 => 'ISO Hi 0.3',
|
|
359
|
-
39 => 'ISO Hi 0.5',
|
|
360
|
-
40 => 'ISO Hi 0.7',
|
|
361
|
-
41 => 'ISO Hi 1.0',
|
|
362
|
-
42 => 'ISO Hi 2.0',
|
|
363
|
-
},
|
|
364
|
-
%infoZ72,
|
|
370
|
+
PrintConv => \%iSOAutoHiLimitZ7,
|
|
371
|
+
%infoZ7,
|
|
365
372
|
}],
|
|
366
373
|
0x002 => [{
|
|
367
374
|
Name => 'ISOAutoFlashLimit',
|
|
@@ -441,7 +448,7 @@ my %infoD6 = (
|
|
|
441
448
|
42 => 'ISO Hi 1.0',
|
|
442
449
|
43 => 'ISO Hi 2.0',
|
|
443
450
|
},
|
|
444
|
-
%
|
|
451
|
+
%infoZ7,
|
|
445
452
|
}],
|
|
446
453
|
0x003 => { # (D6/Z7_2)
|
|
447
454
|
Name => 'ISOAutoShutterTime',
|
|
@@ -542,18 +549,10 @@ my %infoD6 = (
|
|
|
542
549
|
37 => 'ISO Hi 1.0',
|
|
543
550
|
38 => 'ISO Hi 2.0',
|
|
544
551
|
},
|
|
545
|
-
%
|
|
552
|
+
%infoZ7,
|
|
546
553
|
}],
|
|
547
554
|
0x00e => { Name => 'MovieISOAutoControlManualMode',PrintConv => \%onOff }, # (D6/Z7_2)
|
|
548
|
-
|
|
549
|
-
# Name => 'MovieISOAutoManualMode',
|
|
550
|
-
# PrintConv => \%iSOAutoHiLimitD6,
|
|
551
|
-
# %infoD6,
|
|
552
|
-
# },{
|
|
553
|
-
# Name => 'MovieISOAutoManualMode',
|
|
554
|
-
# PrintConv => \%iSOAutoHiLimitZ7m2,
|
|
555
|
-
# %infoZ72,
|
|
556
|
-
# }],
|
|
555
|
+
0x00f => { Name => 'MovieWhiteBalanceSameAsPhoto', PrintConv => \%yesNo }, # (D6/Z7_2)
|
|
557
556
|
0x01d => [{ # CSa1 (D6)
|
|
558
557
|
Name => 'AF-CPrioritySel',
|
|
559
558
|
PrintConv => { # valid for cameras with 4 options for CS1, otherwise 1=Release, 2=Focus
|
|
@@ -566,7 +565,7 @@ my %infoD6 = (
|
|
|
566
565
|
},{ # CSa1 (Z7_2)
|
|
567
566
|
Name => 'AF-CPrioritySel',
|
|
568
567
|
PrintConv => \%releaseFocus,
|
|
569
|
-
%
|
|
568
|
+
%infoZSeries,
|
|
570
569
|
}],
|
|
571
570
|
0x01e => { Name => 'AF-SPrioritySel', PrintConv => \%releaseFocus }, # CSa2 (D6), CSa2 (Z7_2)
|
|
572
571
|
0x020 => [{ # CSa4 (D6)
|
|
@@ -580,7 +579,7 @@ my %infoD6 = (
|
|
|
580
579
|
},{ # CSa4 (Z7_2)
|
|
581
580
|
Name => 'AFPointSel',
|
|
582
581
|
PrintConv => { 1 => 'Use All', 2 => 'Use Half' },
|
|
583
|
-
%
|
|
582
|
+
%infoZSeries,
|
|
584
583
|
}],
|
|
585
584
|
0x022 => { Name => 'AFActivation', PrintConv => { 1 => 'Shutter/AF-On', 2 => 'AF-On Only' } }, # CSa6-a (D6/Z7_2) (missing enable/disable out of focus release) # (D6)
|
|
586
585
|
0x023 => { Name => 'FocusPointWrap', PrintConv => { 1 => 'Wrap', 2 => 'No Wrap' } }, # CSa16 (D6), CSa8 (Z7_2)
|
|
@@ -617,7 +616,7 @@ my %infoD6 = (
|
|
|
617
616
|
},{ # CSb3 (Z7_2)
|
|
618
617
|
Name => 'CenterWeightedAreaSize',
|
|
619
618
|
PrintConv => { 1 => '12 mm', 2 => 'Average' },
|
|
620
|
-
%
|
|
619
|
+
%infoZSeries,
|
|
621
620
|
}],
|
|
622
621
|
0x02f => { # CSb7-a (D6), CSb4-a (Z7_2)
|
|
623
622
|
Name => 'FineTuneOptMatrixMetering',
|
|
@@ -681,7 +680,7 @@ my %infoD6 = (
|
|
|
681
680
|
7 => '30 min',
|
|
682
681
|
8 => 'No Limit',
|
|
683
682
|
},
|
|
684
|
-
%
|
|
683
|
+
%infoZSeries,
|
|
685
684
|
}],
|
|
686
685
|
0x035 => { # CSc3-a (D6), CSc2-a (Z7_2)
|
|
687
686
|
Name => 'SelfTimerTime',
|
|
@@ -770,7 +769,7 @@ my %infoD6 = (
|
|
|
770
769
|
6 => '1/80 s',
|
|
771
770
|
7 => '1/60 s',
|
|
772
771
|
},
|
|
773
|
-
%
|
|
772
|
+
%infoZSeries,
|
|
774
773
|
}],
|
|
775
774
|
0x048 => { # CSe2 (D6/Z7_2)
|
|
776
775
|
Name => 'FlashShutterSpeed',
|
|
@@ -844,7 +843,7 @@ my %infoD6 = (
|
|
|
844
843
|
25 => 'Non-CPU Lens',
|
|
845
844
|
26 => 'None',
|
|
846
845
|
},
|
|
847
|
-
%
|
|
846
|
+
%infoZSeries,
|
|
848
847
|
}],
|
|
849
848
|
0x053 => [{ # CSf4-a (D6)
|
|
850
849
|
Name => 'MultiSelectorShootMode',
|
|
@@ -864,7 +863,7 @@ my %infoD6 = (
|
|
|
864
863
|
4 => 'Zoom (High)',
|
|
865
864
|
5 => 'None',
|
|
866
865
|
},
|
|
867
|
-
%
|
|
866
|
+
%infoZSeries,
|
|
868
867
|
}],
|
|
869
868
|
0x054 => [{ # CSf4-c (D6)
|
|
870
869
|
Name => 'MultiSelectorPlaybackMode',
|
|
@@ -887,7 +886,7 @@ my %infoD6 = (
|
|
|
887
886
|
5 => 'Zoom (High)',
|
|
888
887
|
6 => 'Choose Folder',
|
|
889
888
|
},
|
|
890
|
-
%
|
|
889
|
+
%infoZSeries,
|
|
891
890
|
}],
|
|
892
891
|
0x056 => { # CSf4-b (D6)
|
|
893
892
|
Name => 'MultiSelectorLiveView',
|
|
@@ -975,9 +974,29 @@ my %infoD6 = (
|
|
|
975
974
|
1 => 'Manual (dark on light)',
|
|
976
975
|
2 => 'Manual (light on dark)',
|
|
977
976
|
},
|
|
978
|
-
%
|
|
977
|
+
%infoZSeries,
|
|
979
978
|
}],
|
|
980
979
|
0x074 => { Name => 'FlickAdvanceDirection', PrintConv => { 1 => 'Right to Left', 2 => 'Left to Right' } }, # CSf12-3 (D6)
|
|
980
|
+
0x075 => { # Settings menu # (D6,Z7_2)
|
|
981
|
+
Name => 'HDMIOutputResolution',
|
|
982
|
+
PrintConv => {
|
|
983
|
+
1 => 'Auto',
|
|
984
|
+
2 => '2160p',
|
|
985
|
+
3 => '1080p',
|
|
986
|
+
4 => '1080i',
|
|
987
|
+
5 => '720p',
|
|
988
|
+
6 => '576p',
|
|
989
|
+
7 => '480p',
|
|
990
|
+
},
|
|
991
|
+
},
|
|
992
|
+
0x077 => { # Settings menu # (D6,Z7_2)
|
|
993
|
+
Name => 'HDMIOutputRange',
|
|
994
|
+
PrintConv => {
|
|
995
|
+
1 => 'Auto',
|
|
996
|
+
2 => 'Limit',
|
|
997
|
+
3 => 'Full',
|
|
998
|
+
},
|
|
999
|
+
},
|
|
981
1000
|
0x080 => [{
|
|
982
1001
|
Name => 'RemoteFuncButton',
|
|
983
1002
|
PrintConv => {
|
|
@@ -1010,7 +1029,7 @@ my %infoD6 = (
|
|
|
1010
1029
|
10 => 'None',
|
|
1011
1030
|
11 => 'LiveView Info Display On/Off',
|
|
1012
1031
|
},
|
|
1013
|
-
%
|
|
1032
|
+
%infoZSeries,
|
|
1014
1033
|
}],
|
|
1015
1034
|
0x08b => [{ # CSf6-a-1 and CSf6-a-2 (D6), CSf5-a-1 and CSf5-a-2 (Z7_2), (continued from above)
|
|
1016
1035
|
Name => 'CmdDialsReverseRotation',
|
|
@@ -1051,6 +1070,7 @@ my %infoD6 = (
|
|
|
1051
1070
|
8 => '180',
|
|
1052
1071
|
},
|
|
1053
1072
|
},
|
|
1073
|
+
0x092 => { Name => 'HDMIExternalRecorder', PrintConv => \%onOff }, # Settings Menu/HDMI/Advanced entry (D6 & Z7_2)
|
|
1054
1074
|
0x093 => { # CSa3-a (D6), CSa3 (Z7_2)
|
|
1055
1075
|
Name => 'BlockShotAFResponse',
|
|
1056
1076
|
PrintConv => {
|
|
@@ -1077,7 +1097,7 @@ my %infoD6 = (
|
|
|
1077
1097
|
1 => 'Focus Point',
|
|
1078
1098
|
2 => 'Off',
|
|
1079
1099
|
},
|
|
1080
|
-
%
|
|
1100
|
+
%infoZSeries,
|
|
1081
1101
|
}],
|
|
1082
1102
|
0x099 => { Name => 'DynamicAreaAFAssist',PrintConv => \%onOff }, # CSa17-c (D6), CSa9-b (Z7_2)
|
|
1083
1103
|
0x09a => { Name => 'ExposureCompStepSize', PrintConv => \%thirdHalfFull }, # CSb3 (D6)
|
|
@@ -1100,7 +1120,7 @@ my %infoD6 = (
|
|
|
1100
1120
|
},{ # CSf2-a (Z7_2)
|
|
1101
1121
|
Name => 'Func1Button',
|
|
1102
1122
|
PrintConv => \%funcButtonZ7m2,
|
|
1103
|
-
%
|
|
1123
|
+
%infoZSeries,
|
|
1104
1124
|
}],
|
|
1105
1125
|
0x0a2 => [{ # CSf3-c (D6)
|
|
1106
1126
|
Name => 'Func2Button',
|
|
@@ -1109,7 +1129,7 @@ my %infoD6 = (
|
|
|
1109
1129
|
},{ # CSf2-b (Z7_2)
|
|
1110
1130
|
Name => 'Func2Button',
|
|
1111
1131
|
PrintConv => \%funcButtonZ7m2,
|
|
1112
|
-
%
|
|
1132
|
+
%infoZSeries,
|
|
1113
1133
|
}],
|
|
1114
1134
|
0x0a3 => [{ # CSf3-f (D6)
|
|
1115
1135
|
Name => 'AF-OnButton',
|
|
@@ -1161,7 +1181,7 @@ my %infoD6 = (
|
|
|
1161
1181
|
11 => 'Zoom (High)',
|
|
1162
1182
|
12 => 'None'
|
|
1163
1183
|
},
|
|
1164
|
-
%
|
|
1184
|
+
%infoZSeries,
|
|
1165
1185
|
}],
|
|
1166
1186
|
0x0a4 => { Name => 'SubSelector', PrintConv => \%tagSubSelector }, # CSf3-g-1 # (D6), CSf2-d-1 # (Z7_2)
|
|
1167
1187
|
0x0a5 => [{ # CSf3-h (D6)
|
|
@@ -1234,7 +1254,7 @@ my %infoD6 = (
|
|
|
1234
1254
|
24 => 'Non-CPU Lens',
|
|
1235
1255
|
25 => 'None',
|
|
1236
1256
|
},
|
|
1237
|
-
%
|
|
1257
|
+
%infoZSeries,
|
|
1238
1258
|
}],
|
|
1239
1259
|
0x0a7 => [{ # CSf3-n (D6)
|
|
1240
1260
|
Name => 'LensFunc1Button',
|
|
@@ -1274,7 +1294,7 @@ my %infoD6 = (
|
|
|
1274
1294
|
},{ # CSf2-g (Z7_2)
|
|
1275
1295
|
Name => 'LensFunc1Button',
|
|
1276
1296
|
PrintConv => \%lensFuncButtonZ7m2,
|
|
1277
|
-
%
|
|
1297
|
+
%infoZSeries,
|
|
1278
1298
|
}],
|
|
1279
1299
|
0x0a8 => { Name => 'CmdDialsApertureSetting', PrintConv => { 1 => 'Sub-command Dial', 2 => 'Aperture Ring' } }, # CSf6-c (D6)
|
|
1280
1300
|
0x0a9 => { Name => 'MultiSelector', PrintConv => \%tagMultiSelector }, # CSf7 (D6)
|
|
@@ -1335,7 +1355,7 @@ my %infoD6 = (
|
|
|
1335
1355
|
23 => 'Rating (1)', # no mapping for 24 on the Z7_2. Possibly intended for Rating = 'Candidate for Deletion'?
|
|
1336
1356
|
25 => 'None',
|
|
1337
1357
|
},
|
|
1338
|
-
%
|
|
1358
|
+
%infoZSeries,
|
|
1339
1359
|
}],
|
|
1340
1360
|
0x0b3 => [{ # CSg2-b (D6)
|
|
1341
1361
|
Name => 'MovieFunc1Button',
|
|
@@ -1379,7 +1399,7 @@ my %infoD6 = (
|
|
|
1379
1399
|
23 => 'Rating (1)', # no mapping for 24 on the Z7_2. Possibly intended for Rating = 'Candidate for Deletion'?
|
|
1380
1400
|
25 => 'None',
|
|
1381
1401
|
},
|
|
1382
|
-
%
|
|
1402
|
+
%infoZSeries,
|
|
1383
1403
|
}],
|
|
1384
1404
|
0x0b5 => { # CSg2-c (D6)
|
|
1385
1405
|
Name => 'MovieFunc2Button',
|
|
@@ -1426,7 +1446,7 @@ my %infoD6 = (
|
|
|
1426
1446
|
12 => 'Image Area',
|
|
1427
1447
|
13 => 'None',
|
|
1428
1448
|
},
|
|
1429
|
-
%
|
|
1449
|
+
%infoZSeries,
|
|
1430
1450
|
}],
|
|
1431
1451
|
0x0b8 => { Name => 'LimitAFAreaModeSelD9', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa14-a (D6)
|
|
1432
1452
|
0x0b9 => { Name => 'LimitAFAreaModeSelD25', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa14-b (D6)
|
|
@@ -1549,6 +1569,29 @@ my %infoD6 = (
|
|
|
1549
1569
|
0x0fb => { Name => 'SecondarySlotFunction', PrintConv => \%tagSecondarySlotFunction }, # (D6)
|
|
1550
1570
|
0x0fc => { Name => 'SilentPhotography', PrintConv => \%onOff }, # (D6,Z7_2) # tag is associated with Silent LiveView Photography (as distinguisehed from Silent Interval or Silent Focus Shift)
|
|
1551
1571
|
0x0fd => { Name => 'ExtendedShutterSpeeds', PrintConv => \%onOff }, # CSd7 (D6), CSd6 (Z7_2)
|
|
1572
|
+
0x102 => { # (Z7_2)
|
|
1573
|
+
Name => 'HDMIBitDepth',
|
|
1574
|
+
RawConv => '$$self{HDMIBitDepth} = $val',
|
|
1575
|
+
PrintConv => {
|
|
1576
|
+
1 => '8 Bit',
|
|
1577
|
+
2 => '10 Bit',
|
|
1578
|
+
#5 => 'Auto', #observed on the Z50 - needs confirmation
|
|
1579
|
+
},
|
|
1580
|
+
},
|
|
1581
|
+
0x103 => { # (Z7_2)
|
|
1582
|
+
Name => 'HDMIOutputHDR',
|
|
1583
|
+
Condition => '$$self{HDMIBitDepth} == 2', # HDR(HLC) output option only available only for 10 bit
|
|
1584
|
+
RawConv => '$$self{HDMIOutputHDR} = $val',
|
|
1585
|
+
PrintConv => {
|
|
1586
|
+
2 => 'On', # unusual decode perhaps due to sharing sub-menu with tag HDMIOutputN-Log?
|
|
1587
|
+
3 => 'Off',
|
|
1588
|
+
},
|
|
1589
|
+
},
|
|
1590
|
+
0x104 => { # valid for 10 bit with either N-Log or HDR/HLG selected (Z7_2)
|
|
1591
|
+
Name => 'HDMIViewAssist',
|
|
1592
|
+
Condition => '$$self{HDMIBitDepth} == 2',
|
|
1593
|
+
PrintConv => \%onOff
|
|
1594
|
+
},
|
|
1552
1595
|
0x109 => { # (D6,Z7_2)
|
|
1553
1596
|
Name => 'BracketSet',
|
|
1554
1597
|
RawConv => '$$self{BracketSet} = $val',
|
|
@@ -1640,6 +1683,11 @@ my %infoD6 = (
|
|
|
1640
1683
|
8 => 'Off, Low, Normal, High, Extra High',
|
|
1641
1684
|
},
|
|
1642
1685
|
},
|
|
1686
|
+
0x10e => { # (D6/Z7_2)
|
|
1687
|
+
Name => 'MonitorBrightness',
|
|
1688
|
+
# settings: -5 to +5
|
|
1689
|
+
ValueConv => '$val - 6',
|
|
1690
|
+
},
|
|
1643
1691
|
0x116 => { Name => 'GroupAreaC1', PrintConv =>\%groupAreaCustom }, # CSa10-a (new with D6) # (D6)
|
|
1644
1692
|
0x117 => { Name => 'AutoAreaAFStartingPoint', PrintConv => \%enableDisable }, # CSa12 (D6)
|
|
1645
1693
|
0x118 => { Name => 'FocusPointPersistence', PrintConv => { 1 => 'Auto', 2 => 'Off' } }, # CSa13 (new with D6) # (D6)
|
|
@@ -1823,8 +1871,9 @@ my %infoD6 = (
|
|
|
1823
1871
|
},
|
|
1824
1872
|
},
|
|
1825
1873
|
0x151 => { Name => 'LensFunc2Button', PrintConv => \%lensFuncButtonZ7m2 }, # CSf2-h (Z7_2)
|
|
1874
|
+
#0x153 => { Name => 'ViewfinderBrightness', } #(Z7_2) # commented out to reduce output volume. Range [-5,+5]. PrintConv matches MonitorBrightness.
|
|
1826
1875
|
0x158 => { Name => 'USBPowerDelivery', PrintConv => \%enableDisable }, # (Z7_2)
|
|
1827
|
-
|
|
1876
|
+
0x159 => { Name => 'EnergySavingMode', PrintConv =>\%onOff }, # (Z7_2)
|
|
1828
1877
|
0x15c => { Name => 'BracketingBurstOptions',PrintConv => \%enableDisable }, # CSe9 (D6)
|
|
1829
1878
|
# 0x15d => CSf3-j-2 (D6) 'Same as Multi-Selector with Info(U/D) & Playback(R/L)' and 'Same as Multi-Selector with Info(R/L) & Playback(U/D)' (skipped to reduce volume of output)
|
|
1830
1879
|
0x15e => { Name => 'PrimarySlot', PrintConv => { 1 => 'CFexpress/XQD Card', 2 => 'SD Card' } }, # (Z7_2)
|
|
@@ -1900,10 +1949,12 @@ my %infoD6 = (
|
|
|
1900
1949
|
13 => 'None',
|
|
1901
1950
|
},
|
|
1902
1951
|
},
|
|
1952
|
+
#0x168 => { Name => 'ControlPanelBrightness', # (Z7_2) #commented to reduce output volume
|
|
1903
1953
|
0x169 => { Name => 'LimitAF-AreaModeSelAutoPeople', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa7-h (Z7_2)
|
|
1904
1954
|
0x16a => { Name => 'LimitAF-AreaModeSelAutoAnimals', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa7-h (Z7_2)
|
|
1905
1955
|
0x16b => { Name => 'LimitAF-AreaModeSelWideLPeople', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa7-e (Z7_2)
|
|
1906
1956
|
0x16c => { Name => 'LimitAF-AreaModeSelWideLAnimals', PrintConv => \%limitNolimit, Unknown => 1 }, # CSa7-f (Z7_2)
|
|
1957
|
+
0x16d => { Name => 'SaveFocus', PrintConv => \%onOff }, # (Z7_2)
|
|
1907
1958
|
0x16e => { # (Z7_2)
|
|
1908
1959
|
Name => 'AFAreaMode',
|
|
1909
1960
|
RawConv => '$$self{AFAreaMode} = $val',
|
|
@@ -1919,6 +1970,19 @@ my %infoD6 = (
|
|
|
1919
1970
|
10 => 'Auto (Animals)',
|
|
1920
1971
|
},
|
|
1921
1972
|
},
|
|
1973
|
+
0x16f => { # (Z7_2)
|
|
1974
|
+
Name => 'MovieAFAreaMode',
|
|
1975
|
+
PrintConv => {
|
|
1976
|
+
1 => 'Single-point',
|
|
1977
|
+
2 => 'Wide (S)',
|
|
1978
|
+
3 => 'Wide (L)',
|
|
1979
|
+
4 => 'Wide (L-people)',
|
|
1980
|
+
5 => 'Wide (L-animals)',
|
|
1981
|
+
6 => 'Auto',
|
|
1982
|
+
7 => 'Auto (People)',
|
|
1983
|
+
8 => 'Auto (Animals)',
|
|
1984
|
+
},
|
|
1985
|
+
},
|
|
1922
1986
|
0x170 => { Name => 'PreferSubSelectorCenter', PrintConv => \%offOn }, # CSf13 (D6 firmware v1.2.0)
|
|
1923
1987
|
0x171 => { # CSb8 (D6 firmware v1.3.0)
|
|
1924
1988
|
Name => 'KeepExposureWithTeleconverter',
|
|
@@ -15,7 +15,7 @@ use vars qw($VERSION);
|
|
|
15
15
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
16
16
|
use Image::ExifTool::GPS;
|
|
17
17
|
|
|
18
|
-
$VERSION = '1.
|
|
18
|
+
$VERSION = '1.03';
|
|
19
19
|
|
|
20
20
|
# supported EXR value format types (other types are extracted as undef binary data)
|
|
21
21
|
my %formatType = (
|
|
@@ -172,12 +172,13 @@ sub ProcessEXR($$)
|
|
|
172
172
|
my $ver = unpack('x4V', $buff);
|
|
173
173
|
$et->HandleTag($tagTablePtr, '_ver', $ver & 0xff);
|
|
174
174
|
$et->HandleTag($tagTablePtr, '_lay', $ver & 0x200);
|
|
175
|
+
my $maxLen = ($ver & 0x400) ? 255 : 31;
|
|
175
176
|
|
|
176
177
|
# extract attributes
|
|
177
178
|
for (;;) {
|
|
178
179
|
$raf->Read($buff, 68) or last;
|
|
179
180
|
last if $buff =~ /^\0/;
|
|
180
|
-
unless ($buff =~ /^([^\0]{1
|
|
181
|
+
unless ($buff =~ /^([^\0]{1,$maxLen})\0([^\0]{1,$maxLen})\0(.{4})/sg) {
|
|
181
182
|
$et->Warn('EXR format error');
|
|
182
183
|
last;
|
|
183
184
|
}
|
|
@@ -189,6 +190,7 @@ sub ProcessEXR($$)
|
|
|
189
190
|
my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
|
|
190
191
|
unless ($tagInfo) {
|
|
191
192
|
my $name = ucfirst $tag;
|
|
193
|
+
$name =~ s/([^a-zA-Z])([a-z])/$1\U$2/g; # capitalize first letter of each word
|
|
192
194
|
$name =~ tr/-_a-zA-Z0-9//dc;
|
|
193
195
|
if (length $name <= 1) {
|
|
194
196
|
if (length $name) {
|
|
@@ -259,6 +259,7 @@ my %noLeapFrog = ( SAVE => 1, SEEK => 1, IHDR => 1, JHDR => 1, IEND => 1, MEND =
|
|
|
259
259
|
},
|
|
260
260
|
tRNS => {
|
|
261
261
|
Name => 'Transparency',
|
|
262
|
+
# may have as many entries as the PLTE table, but who wants to see all that?
|
|
262
263
|
ValueConv => q{
|
|
263
264
|
return \$val if length($val) > 6;
|
|
264
265
|
join(" ",unpack($Image::ExifTool::PNG::colorType == 3 ? "C*" : "n*", $val));
|
|
@@ -47,7 +47,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
|
47
47
|
use Image::ExifTool::Exif;
|
|
48
48
|
use Image::ExifTool::GPS;
|
|
49
49
|
|
|
50
|
-
$VERSION = '2.
|
|
50
|
+
$VERSION = '2.73';
|
|
51
51
|
|
|
52
52
|
sub ProcessMOV($$;$);
|
|
53
53
|
sub ProcessKeys($$$);
|
|
@@ -482,6 +482,17 @@ my %eeBox2 = (
|
|
|
482
482
|
# (Pittasoft Blackview dashcam MP4 videos)
|
|
483
483
|
Condition => '$$valPt =~ /^\0\0..(cprt|sttm|ptnm|ptrh|thum|gps |3gf )/s',
|
|
484
484
|
SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::Pittasoft' },
|
|
485
|
+
},{
|
|
486
|
+
Name => 'ThumbnailImage',
|
|
487
|
+
# (DJI Zenmuse XT2 thermal camera)
|
|
488
|
+
Groups => { 2 => 'Preview' },
|
|
489
|
+
Condition => '$$valPt =~ /^.{4}mdat\xff\xd8\xff/s',
|
|
490
|
+
RawConv => q{
|
|
491
|
+
my $len = unpack('N', $val);
|
|
492
|
+
return undef if $len <= 8 or $len > length($val);
|
|
493
|
+
return substr($val, 8, $len-8);
|
|
494
|
+
},
|
|
495
|
+
Binary => 1,
|
|
485
496
|
},{
|
|
486
497
|
Unknown => 1,
|
|
487
498
|
Binary => 1,
|
|
@@ -6359,7 +6370,7 @@ my %eeBox2 = (
|
|
|
6359
6370
|
'player.movie.visual.tint' => 'Tint',
|
|
6360
6371
|
'player.movie.visual.contrast' => 'Contrast',
|
|
6361
6372
|
'player.movie.audio.gain' => 'AudioGain',
|
|
6362
|
-
'player.movie.audio.treble' => '
|
|
6373
|
+
'player.movie.audio.treble' => 'Treble',
|
|
6363
6374
|
'player.movie.audio.bass' => 'Bass',
|
|
6364
6375
|
'player.movie.audio.balance' => 'Balance',
|
|
6365
6376
|
'player.movie.audio.pitchshift' => 'PitchShift',
|
|
@@ -6454,6 +6465,7 @@ my %eeBox2 = (
|
|
|
6454
6465
|
%Image::ExifTool::QuickTime::iTunesInfo = (
|
|
6455
6466
|
PROCESS_PROC => \&ProcessMOV,
|
|
6456
6467
|
GROUPS => { 1 => 'iTunes', 2 => 'Audio' },
|
|
6468
|
+
VARS => { LONG_TAGS => 0 }, # (hack for discrepancy in the way long tags are counted in BuildTagLookup)
|
|
6457
6469
|
NOTES => q{
|
|
6458
6470
|
ExifTool will extract any iTunesInfo tags that exist, even if they are not
|
|
6459
6471
|
defined in this table. These tags belong to the family 1 "iTunes" group,
|
|
@@ -99,7 +99,7 @@ my %insvLimit = (
|
|
|
99
99
|
The tags below are extracted from timed metadata in QuickTime and other
|
|
100
100
|
formats of video files when the ExtractEmbedded option is used. Although
|
|
101
101
|
most of these tags are combined into the single table below, ExifTool
|
|
102
|
-
currently reads
|
|
102
|
+
currently reads 59 different formats of timed GPS metadata from video files.
|
|
103
103
|
},
|
|
104
104
|
VARS => { NO_ID => 1 },
|
|
105
105
|
GPSLatitude => { PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")', RawConv => '$$self{FoundGPSLatitude} = 1; $val' },
|
|
@@ -1581,6 +1581,31 @@ sub ProcessFreeGPS($$$)
|
|
|
1581
1581
|
substr($time,7,6) = pack 'C*', map { $_ ^= 0x70 } unpack 'C*', substr($time,7,6);
|
|
1582
1582
|
# (other values are currently unknown)
|
|
1583
1583
|
|
|
1584
|
+
} elsif ($$dataPt =~ /^.{64}A([NS])([EW])\0/s) {
|
|
1585
|
+
|
|
1586
|
+
# Vantrue S1 dashcam
|
|
1587
|
+
# 0000: 00 00 80 00 66 72 65 65 47 50 53 20 78 00 00 00 [....freeGPS x...]
|
|
1588
|
+
# 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [................]
|
|
1589
|
+
# 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [................]
|
|
1590
|
+
# 0030: 68 6f 72 73 6f 6e 74 65 63 68 00 00 00 00 00 00 [horsontech......]
|
|
1591
|
+
# 0040: 41 4e 45 00 15 00 00 00 07 00 00 00 02 00 00 00 [ANE.............]
|
|
1592
|
+
# 0050: 03 00 00 00 35 00 00 00 05 00 00 00 4f 74 4c 44 [....5.......OtLD]
|
|
1593
|
+
# 0060: e2 77 a0 45 89 c1 98 42 71 bd ac 42 02 ab 0d 43 [.w.E...Bq..B...C]
|
|
1594
|
+
# 0070: 05 00 00 00 7f 00 00 00 07 01 00 00 00 00 00 00 [................]
|
|
1595
|
+
($latRef, $lonRef) = ($1, $2);
|
|
1596
|
+
($yr,$mon,$day,$hr,$min,$sec,@acc) = unpack('x68V6x20V3', $$dataPt);
|
|
1597
|
+
return 0 unless $mon>=1 and $mon<=12 and $day>=1 and $day<=31;
|
|
1598
|
+
$yr += 2000 if $yr < 2000;
|
|
1599
|
+
# (not sure about acc scaling)
|
|
1600
|
+
map { $_ = $_ - 4294967296 if $_ >= 0x80000000; $_ /= 1000 } @acc;
|
|
1601
|
+
SetByteOrder('II');
|
|
1602
|
+
$lon = GetFloat($dataPt, 0x5c);
|
|
1603
|
+
$lat = GetFloat($dataPt, 0x60);
|
|
1604
|
+
$spd = GetFloat($dataPt, 0x64) * $knotsToKph;
|
|
1605
|
+
$trk = GetFloat($dataPt, 0x68);
|
|
1606
|
+
$alt = GetFloat($dataPt, 0x6c);
|
|
1607
|
+
SetByteOrder('MM');
|
|
1608
|
+
|
|
1584
1609
|
} else {
|
|
1585
1610
|
|
|
1586
1611
|
# decode binary GPS format (Viofo A119S, ref 2)
|
|
@@ -34,7 +34,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
|
34
34
|
use Image::ExifTool::Exif;
|
|
35
35
|
use Image::ExifTool::Minolta;
|
|
36
36
|
|
|
37
|
-
$VERSION = '3.
|
|
37
|
+
$VERSION = '3.48';
|
|
38
38
|
|
|
39
39
|
sub ProcessSRF($$$);
|
|
40
40
|
sub ProcessSR2($$$);
|
|
@@ -198,6 +198,8 @@ sub PrintInvLensSpec($;$$);
|
|
|
198
198
|
49466 => 'Tamron 150-500mm F5-6.7 Di III VC VXD', #JR (Model A057)
|
|
199
199
|
49467 => 'Tamron 11-20mm F2.8 Di III-A RXD', #JR (Model B060)
|
|
200
200
|
49468 => 'Tamron 18-300mm F3.5-6.3 Di III-A VC VXD', #JR (Model B061)
|
|
201
|
+
49469 => 'Tamron 35-150mm F2-F2.8 Di III VXD', #JR (Model A058)
|
|
202
|
+
49470 => 'Tamron 28-75mm F2.8 Di III VXD G2', #JR (Model A063)
|
|
201
203
|
|
|
202
204
|
49473 => 'Tokina atx-m 85mm F1.8 FE or Viltrox lens', #JR
|
|
203
205
|
49473.1 => 'Viltrox 23mm F1.4 E', #JR
|
|
@@ -15,7 +15,7 @@ use vars qw($VERSION @ISA $makeMissing);
|
|
|
15
15
|
use Image::ExifTool qw(:Utils :Vars);
|
|
16
16
|
use Image::ExifTool::XMP;
|
|
17
17
|
|
|
18
|
-
$VERSION = '1.
|
|
18
|
+
$VERSION = '1.32';
|
|
19
19
|
@ISA = qw(Exporter);
|
|
20
20
|
|
|
21
21
|
# set this to a language code to generate Lang module with 'MISSING' entries
|
|
@@ -58,6 +58,12 @@ my %translateLang = (
|
|
|
58
58
|
my $numbersFirst = 1; # set to -1 to sort numbers last, or 2 to put negative numbers last
|
|
59
59
|
my $caseInsensitive; # used internally by sort routine
|
|
60
60
|
|
|
61
|
+
# write groups that don't represent real family 1 group names
|
|
62
|
+
my %fakeWriteGroup = (
|
|
63
|
+
Comment => 1, # (JPEG Comment)
|
|
64
|
+
colr => 1, # (Jpeg2000 'colr' box)
|
|
65
|
+
);
|
|
66
|
+
|
|
61
67
|
#------------------------------------------------------------------------------
|
|
62
68
|
# Utility to print tag information database as an XML list
|
|
63
69
|
# Inputs: 0) output file name (undef to send to console),
|
|
@@ -178,9 +184,8 @@ PTILoop: for ($index=0; $index<@infoArray; ++$index) {
|
|
|
178
184
|
}
|
|
179
185
|
my @groups = $et->GetGroup($tagInfo);
|
|
180
186
|
my $writeGroup = $$tagInfo{WriteGroup} || $$table{WRITE_GROUP};
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
}
|
|
187
|
+
# use common write group for group 1 (unless fake)
|
|
188
|
+
$groups[1] = $writeGroup if $writeGroup and not $fakeWriteGroup{$writeGroup};
|
|
184
189
|
# add group names if different from table defaults
|
|
185
190
|
my $grp = '';
|
|
186
191
|
for ($fam=0; $fam<3; ++$fam) {
|