exiftool_vendored 10.58.0 → 10.65.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of exiftool_vendored might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bin/Changes +100 -1
- data/bin/MANIFEST +2 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +39 -38
- data/bin/arg_files/exif2iptc.args +3 -0
- data/bin/arg_files/iptc2exif.args +3 -0
- data/bin/config_files/example.config +16 -14
- data/bin/config_files/photoshop_paths.config +10 -0
- data/bin/exiftool +71 -65
- data/bin/lib/Image/ExifTool/APE.pm +5 -0
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +31 -15
- data/bin/lib/Image/ExifTool/Canon.pm +18 -4
- data/bin/lib/Image/ExifTool/CanonCustom.pm +3 -0
- data/bin/lib/Image/ExifTool/Charset/DOSLatin1.pm +49 -0
- data/bin/lib/Image/ExifTool/Charset/DOSLatinUS.pm +49 -0
- data/bin/lib/Image/ExifTool/Charset.pm +8 -5
- data/bin/lib/Image/ExifTool/Exif.pm +37 -18
- data/bin/lib/Image/ExifTool/FLAC.pm +47 -37
- data/bin/lib/Image/ExifTool/FLIR.pm +3 -3
- data/bin/lib/Image/ExifTool/FujiFilm.pm +5 -2
- data/bin/lib/Image/ExifTool/GPS.pm +6 -6
- data/bin/lib/Image/ExifTool/Geotag.pm +1 -1
- data/bin/lib/Image/ExifTool/H264.pm +2 -0
- data/bin/lib/Image/ExifTool/ID3.pm +8 -3
- data/bin/lib/Image/ExifTool/IPTC.pm +1 -1
- data/bin/lib/Image/ExifTool/Import.pm +4 -1
- data/bin/lib/Image/ExifTool/InDesign.pm +11 -7
- data/bin/lib/Image/ExifTool/Kodak.pm +4 -1
- data/bin/lib/Image/ExifTool/Lang/de.pm +31 -31
- data/bin/lib/Image/ExifTool/MWG.pm +12 -4
- data/bin/lib/Image/ExifTool/MakerNotes.pm +3 -3
- data/bin/lib/Image/ExifTool/Matroska.pm +2 -1
- data/bin/lib/Image/ExifTool/Microsoft.pm +3 -3
- data/bin/lib/Image/ExifTool/Minolta.pm +71 -61
- data/bin/lib/Image/ExifTool/Nikon.pm +286 -43
- data/bin/lib/Image/ExifTool/NikonCustom.pm +1049 -0
- data/bin/lib/Image/ExifTool/Olympus.pm +4 -1
- data/bin/lib/Image/ExifTool/PNG.pm +4 -7
- data/bin/lib/Image/ExifTool/PanasonicRaw.pm +24 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +20 -6
- data/bin/lib/Image/ExifTool/Photoshop.pm +24 -3
- data/bin/lib/Image/ExifTool/QuickTime.pm +545 -14
- data/bin/lib/Image/ExifTool/README +16 -9
- data/bin/lib/Image/ExifTool/RIFF.pm +8 -1
- data/bin/lib/Image/ExifTool/Samsung.pm +5 -4
- data/bin/lib/Image/ExifTool/Sigma.pm +9 -1
- data/bin/lib/Image/ExifTool/Sony.pm +327 -153
- data/bin/lib/Image/ExifTool/TagLookup.pm +3273 -3220
- data/bin/lib/Image/ExifTool/TagNames.pod +317 -38
- data/bin/lib/Image/ExifTool/Validate.pm +15 -1
- data/bin/lib/Image/ExifTool/WriteExif.pl +5 -0
- data/bin/lib/Image/ExifTool/WriteIPTC.pl +23 -1
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +8 -2
- data/bin/lib/Image/ExifTool/WriteXMP.pl +7 -0
- data/bin/lib/Image/ExifTool/Writer.pl +96 -18
- data/bin/lib/Image/ExifTool/XMP.pm +20 -11
- data/bin/lib/Image/ExifTool/XMP2.pl +634 -583
- data/bin/lib/Image/ExifTool.pm +124 -17
- data/bin/lib/Image/ExifTool.pod +86 -82
- data/bin/perl-Image-ExifTool.spec +38 -37
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +4 -2
@@ -31,7 +31,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
31
31
|
use Image::ExifTool::Exif;
|
32
32
|
use Image::ExifTool::Minolta;
|
33
33
|
|
34
|
-
$VERSION = '2.
|
34
|
+
$VERSION = '2.68';
|
35
35
|
|
36
36
|
sub ProcessSRF($$$);
|
37
37
|
sub ProcessSR2($$$);
|
@@ -45,7 +45,6 @@ sub ConvLensSpec($);
|
|
45
45
|
sub ConvInvLensSpec($);
|
46
46
|
sub PrintLensSpec($);
|
47
47
|
sub PrintInvLensSpec($;$$);
|
48
|
-
sub MakeTiffHeader($$$$;$);
|
49
48
|
|
50
49
|
# (%sonyLensTypes is filled in based on Minolta LensType's)
|
51
50
|
|
@@ -54,13 +53,14 @@ sub MakeTiffHeader($$$$;$);
|
|
54
53
|
my %sonyLensTypes2 = (
|
55
54
|
Notes => 'Lens type numbers for Sony E-mount lenses used by NEX models.',
|
56
55
|
0 => 'Unknown E-mount lens or other lens',
|
57
|
-
1 => 'Sony LA-EA1 Adapter',
|
56
|
+
1 => 'Sony LA-EA1 or Sigma MC-11 Adapter', # MC-11 with not-supported lenses
|
58
57
|
2 => 'Sony LA-EA2 Adapter',
|
59
58
|
3 => 'Sony LA-EA3 Adapter', #(NC) ILCE-7 image with A-mount lens, but also has 0x940e 2nd byte=2
|
60
59
|
6 => 'Sony LA-EA4 Adapter', #(NC) ILCE-7R image with A-mount lens and having phase-detect info blocks in 0x940e AFInfo
|
60
|
+
# 27 => Venus Optics Laowa 12mm f2.8 Zero-D or 105mm f2 (T3.2) Smooth Trans Focus (ref IB)
|
61
61
|
44 => 'Metabones Canon EF Smart Adapter', #JR
|
62
62
|
78 => 'Metabones Canon EF Smart Adapter Mark III or Other Adapter', #PH/JR (also Mark IV, Fotodiox and Viltrox)
|
63
|
-
234 => 'Metabones Canon EF Smart Adapter Mark IV', #JR
|
63
|
+
234 => 'Metabones Canon EF Smart Adapter Mark IV', #JR (LensMount reported as A-mount)
|
64
64
|
239 => 'Metabones Canon EF Speed Booster', #JR
|
65
65
|
# Sony VX product code: (http://www.mi-fo.de/forum/index.php?s=7df1c8d3b1cd675f2abf4f4442e19cf2&showtopic=35035&view=findpost&p=303746)
|
66
66
|
32784 => 'Sony E 16mm F2.8', # VX9100
|
@@ -85,6 +85,7 @@ my %sonyLensTypes2 = (
|
|
85
85
|
32801 => 'Sony FE 12-24mm F4 G', #JR
|
86
86
|
32802 => 'Sony FE 90mm F2.8 Macro G OSS', # VX?
|
87
87
|
32803 => 'Sony E 18-50mm F4-5.6',
|
88
|
+
32805 => 'Sony FE 24-105mm F4 G OSS', #IB # VX9121
|
88
89
|
|
89
90
|
32807 => 'Sony E PZ 18-200mm F3.5-6.3 OSS', # VX9123
|
90
91
|
32808 => 'Sony FE 55mm F1.8 ZA', # VX9124
|
@@ -112,11 +113,14 @@ my %sonyLensTypes2 = (
|
|
112
113
|
32830 => 'Sony FE 70-200mm F2.8 GM OSS', #JR
|
113
114
|
32831 => 'Sony FE 16-35mm F2.8 GM', #JR
|
114
115
|
|
115
|
-
|
116
|
+
# (comment this out so LensID will report the LensModel, which is more useful)
|
117
|
+
# 33002 => 'Metabones Canon EF Smart Adapter with Ver.5x', #PH/JR (corresponds to 234, but LensMount reported as E-mount)
|
116
118
|
|
117
119
|
33072 => 'Sony FE 70-200mm F2.8 GM OSS + 1.4X Teleconverter', #JR
|
118
120
|
33073 => 'Sony FE 70-200mm F2.8 GM OSS + 2X Teleconverter', #JR
|
119
121
|
33076 => 'Sony FE 100mm F2.8 STF GM OSS (macro mode)', #JR (with macro switching ring set to "0.57m - 1.0m")
|
122
|
+
33077 => 'Sony FE 100-400mm F4.5-5.6 GM OSS + 1.4X Teleconverter', #JR
|
123
|
+
33078 => 'Sony FE 100-400mm F4.5-5.6 GM OSS + 2X Teleconverter', #JR
|
120
124
|
|
121
125
|
49201 => 'Zeiss Touit 12mm F2.8', #JR (lens firmware Ver.02)
|
122
126
|
49202 => 'Zeiss Touit 32mm F1.8', #JR (lens firmware Ver.02)
|
@@ -130,29 +134,30 @@ my %sonyLensTypes2 = (
|
|
130
134
|
49234 => 'Zeiss Loxia 21mm F2.8', #PH
|
131
135
|
49235 => 'Zeiss Loxia 85mm F2.4', #JR
|
132
136
|
|
133
|
-
50480 => 'Sigma 30mm F1.4 DC DN | C
|
134
|
-
50481 => 'Sigma 50mm F1.4 DG HSM | A
|
135
|
-
50482 => 'Sigma 18-300mm F3.5-6.3 DC MACRO OS HSM | C
|
136
|
-
50483 => 'Sigma 18-35mm F1.8 DC HSM | A
|
137
|
-
50484 => 'Sigma 24-35mm F2 DG HSM | A
|
138
|
-
50486 => 'Sigma 150-600mm F5-6.3 DG OS HSM | C
|
139
|
-
50487 => 'Sigma 20mm F1.4 DG HSM | A
|
140
|
-
50488 => 'Sigma 35mm F1.4 DG HSM | A
|
141
|
-
50489 => 'Sigma 150-600mm F5-6.3 DG OS HSM | S
|
142
|
-
50490 => 'Sigma 120-300mm F2.8 DG OS HSM | S
|
143
|
-
50492 => 'Sigma 24-105mm F4 DG OS HSM | A
|
144
|
-
50493 => 'Sigma 17-70mm F2.8-4 DC MACRO OS HSM | C
|
145
|
-
50495 => 'Sigma 50-100mm F1.8 DC HSM | A
|
137
|
+
50480 => 'Sigma 30mm F1.4 DC DN | C', #IB/JR (016)
|
138
|
+
50481 => 'Sigma 50mm F1.4 DG HSM | A + MC-11', #JR (014)
|
139
|
+
50482 => 'Sigma 18-300mm F3.5-6.3 DC MACRO OS HSM | C + MC-11', #JR (014)
|
140
|
+
50483 => 'Sigma 18-35mm F1.8 DC HSM | A + MC-11', #JR (013)
|
141
|
+
50484 => 'Sigma 24-35mm F2 DG HSM | A + MC-11', #JR (015)
|
142
|
+
50486 => 'Sigma 150-600mm F5-6.3 DG OS HSM | C + MC-11', #JR (015)
|
143
|
+
50487 => 'Sigma 20mm F1.4 DG HSM | A + MC-11', #JR (015)
|
144
|
+
50488 => 'Sigma 35mm F1.4 DG HSM | A + MC-11', #JR (012)
|
145
|
+
50489 => 'Sigma 150-600mm F5-6.3 DG OS HSM | S + MC-11', #JR (014)
|
146
|
+
50490 => 'Sigma 120-300mm F2.8 DG OS HSM | S + MC-11', #JR (013)
|
147
|
+
50492 => 'Sigma 24-105mm F4 DG OS HSM | A + MC-11', #JR (013)
|
148
|
+
50493 => 'Sigma 17-70mm F2.8-4 DC MACRO OS HSM | C + MC-11', #JR (013)
|
149
|
+
50495 => 'Sigma 50-100mm F1.8 DC HSM | A + MC-11', #JR (016)
|
146
150
|
|
147
151
|
50992 => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR
|
148
152
|
50993 => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB
|
149
153
|
50994 => 'Voigtlander ULTRA WIDE-HELIAR 12mm F5.6 III', #IB
|
154
|
+
50995 => 'Voigtlander MACRO APO-LANTHAR 65mm F2 Aspherical', #JR
|
150
155
|
50996 => 'Voigtlander NOKTON 40mm F1.2 Aspherical', #JR
|
151
156
|
|
152
157
|
# lenses listed in the Sigma MC-11 list, but not yet seen:
|
153
|
-
# 504xx => 'Sigma 18-200mm F3.5-6.3 DC MACRO OS HSM | C
|
154
|
-
# 504xx => 'Sigma 24mm F1.4 DG HSM | A
|
155
|
-
# 504xx => 'Sigma 30mm F1.4 DC HSM | A
|
158
|
+
# 504xx => 'Sigma 18-200mm F3.5-6.3 DC MACRO OS HSM | C + MC-11', # (014)
|
159
|
+
# 504xx => 'Sigma 24mm F1.4 DG HSM | A + MC-11', # (015)
|
160
|
+
# 504xx => 'Sigma 30mm F1.4 DC HSM | A + MC-11', # (013)
|
156
161
|
|
157
162
|
51505 => 'Samyang AF 14mm F2.8 FE or Samyang AF 35mm F2.8 FE', #forum3833
|
158
163
|
51505.1 => 'Samyang AF 35mm F2.8 FE', #PH
|
@@ -398,6 +403,24 @@ my %afPoints79_940e = (
|
|
398
403
|
94=>'E6 Center F2.8',
|
399
404
|
);
|
400
405
|
|
406
|
+
# ILCA-99M2 has dedicated 79 point Phase Detection AF sensor with similar layout as ILCA-68 and ILCA-77M2.
|
407
|
+
# ILCA-99M2 has also 399 Focal Plane Phase-Detection AF Points in 19 rows of 21 points, same as ILCE-7RM2.
|
408
|
+
# Of these 399 points, 323 points are selectable: 19 rows of 17 points (2 left-most and right-most columns not selectable).
|
409
|
+
# The 79 Focal Plane points that overlap with the 79 points of the dedicated sensor provide for Hybrid Phase AF Points.
|
410
|
+
# Tag 0x201e gives value 162 for the Center AF point, and 162 is exactly the center of 323 points...
|
411
|
+
# The below table lists the selectable AF points that correspond to the 79 points of the dedicated sensor. (ref JR)
|
412
|
+
my %afPoints99M2 = (
|
413
|
+
93=>'A5 (93)', 94=>'A6 (94)', 95=>'A7 (95)',
|
414
|
+
106=>'B2 (106)', 107=>'B3 (107)', 108=>'B4 (108)', 110=>'B5 (110)', 111=>'B6 (111)', 112=>'B7 (112)', 114=>'B8 (114)', 115=>'B9 (115)', 116=>'B10 (116)',
|
415
|
+
122=>'C1 (122)', 123=>'C2 (123)', 124=>'C3 (124)', 125=>'C4 (125)', 127=>'C5 (127)', 128=>'C6 (128)', 129=>'C7 (129)', 131=>'C8 (131)', 132=>'C9 (132)', 133=>'C10 (133)', 134=>'C11 (134)',
|
416
|
+
139=>'D1 (139)', 140=>'D2 (140)', 141=>'D3 (141)', 142=>'D4 (142)', 144=>'D5 (144)', 145=>'D6 (145)', 146=>'D7 (146)', 148=>'D8 (148)', 149=>'D9 (149)', 150=>'D10 (150)', 151=>'D11 (151)',
|
417
|
+
156=>'E1 (156)', 157=>'E2 (157)', 158=>'E3 (158)', 159=>'E4 (159)', 161=>'E5 (161)', 162=>'E6 (162)', 163=>'E7 (163)', 165=>'E8 (165)', 166=>'E9 (166)', 167=>'E10 (167)', 168=>'E11 (168)',
|
418
|
+
173=>'F1 (173)', 174=>'F2 (174)', 175=>'F3 (175)', 176=>'F4 (176)', 178=>'F5 (178)', 179=>'F6 (179)', 180=>'F7 (180)', 182=>'F8 (182)', 183=>'F9 (183)', 184=>'F10 (184)', 185=>'F11 (185)',
|
419
|
+
190=>'G1 (190)', 191=>'G2 (191)', 192=>'G3 (192)', 193=>'G4 (193)', 195=>'G5 (195)', 196=>'G6 (196)', 197=>'G7 (197)', 199=>'G8 (199)', 200=>'G9 (200)', 201=>'G10 (201)', 202=>'G11 (202)',
|
420
|
+
208=>'H2 (208)', 209=>'H3 (209)', 210=>'H4 (210)', 212=>'H5 (212)', 213=>'H6 (213)', 214=>'H7 (214)', 216=>'H8 (216)', 217=>'H9 (217)', 218=>'H10 (218)',
|
421
|
+
229=>'I5 (229)', 230=>'I6 (230)', 231=>'I7 (231)',
|
422
|
+
);
|
423
|
+
|
401
424
|
my %binaryDataAttrs = (
|
402
425
|
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
403
426
|
WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
|
@@ -425,6 +448,16 @@ my %meterInfo2 = (
|
|
425
448
|
PrintConv => 'sprintf("%3d %4d %6d" . " %3d %4d %6d" x 10, split(" ",$val))',
|
426
449
|
PrintConvInv => '$val',
|
427
450
|
);
|
451
|
+
my %meterInfo1b = (
|
452
|
+
Format => 'undef[90]',
|
453
|
+
ValueConv => \&ConvMeter1,
|
454
|
+
PrintConv => 'sprintf("%19d %4d %6d" . " %3d %4d %6d" x 8, split(" ",$val))',
|
455
|
+
);
|
456
|
+
my %meterInfo2b = (
|
457
|
+
Format => 'undef[110]',
|
458
|
+
ValueConv => \&ConvMeter2,
|
459
|
+
PrintConv => 'sprintf("%3d %4d %6d" . " %3d %4d %6d" x 10, split(" ",$val))',
|
460
|
+
);
|
428
461
|
|
429
462
|
# Sony maker notes tags (some elements in common with %Image::ExifTool::Minolta::Main)
|
430
463
|
%Image::ExifTool::Sony::Main = (
|
@@ -815,6 +848,7 @@ my %meterInfo2 = (
|
|
815
848
|
3 => 'High',
|
816
849
|
# 0x10001 - seen (ref JR)
|
817
850
|
# 0x10002 - seen for landscape and portrait flash (ref JR)
|
851
|
+
# 0x10003 - seen (ref JR)
|
818
852
|
0xffffffff => 'n/a', # (A35)
|
819
853
|
},
|
820
854
|
},
|
@@ -841,10 +875,10 @@ my %meterInfo2 = (
|
|
841
875
|
# a3 c3 - NEX-6, DSC-HX300, HX50V
|
842
876
|
# a4 c3 - NEX-3N/5R/5T, ILCE-3000/3500
|
843
877
|
# unknown offsets or values for DSC-TX20/TX55/WX30
|
844
|
-
# unknown offsets or values for DSC-HX60V/HX400V/QX10/QX30/QX100/RX10/RX100M2/RX100M3/WX220/WX350,
|
878
|
+
# unknown offsets or values for DSC-HX60V/HX350/HX400V/QX10/QX30/QX100/RX10/RX100M2/RX100M3/WX220/WX350,
|
845
879
|
# ILCA-68/77M2, ILCE-5000/5100/6000/7/7M2/7R/7S/QX1
|
846
|
-
# unknown offsets or values for DSC-HX90V/RX1RM2/RX10M2/RX10M3/RX100M4/RX100M5/WX500, ILCE-6300/6500/7RM2/7SM2, ILCA-99M2
|
847
|
-
# unknown offsets or values for ILCE-9
|
880
|
+
# unknown offsets or values for DSC-HX90V/RX0/RX1RM2/RX10M2/RX10M3/RX100M4/RX100M5/WX500, ILCE-6300/6500/7RM2/7SM2, ILCA-99M2
|
881
|
+
# unknown offsets or values for ILCE-7RM3/9, DSC-RX10M4
|
848
882
|
{
|
849
883
|
Name => 'Tag2010a', # ad
|
850
884
|
Condition => '$$self{Model} =~ /^NEX-5N$/',
|
@@ -877,15 +911,15 @@ my %meterInfo2 = (
|
|
877
911
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010f' },
|
878
912
|
},{
|
879
913
|
Name => 'Tag2010g', # ?
|
880
|
-
Condition => '$$self{Model} =~ /^(DSC-(QX30|RX10|RX100M3|HX60V|HX400V|WX220|WX350)|ILCE-(7(R|S|M2)?|[56]000|5100|QX1)|ILCA-(68|77M2))\b/',
|
914
|
+
Condition => '$$self{Model} =~ /^(DSC-(QX30|RX10|RX100M3|HX60V|HX350|HX400V|WX220|WX350)|ILCE-(7(R|S|M2)?|[56]000|5100|QX1)|ILCA-(68|77M2))\b/',
|
881
915
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010g' },
|
882
916
|
},{
|
883
917
|
Name => 'Tag2010h', # ?
|
884
|
-
Condition => '$$self{Model} =~ /^(DSC-(RX1RM2|RX10M2|RX10M3|RX100M4|RX100M5|HX90V?|WX500)|ILCE-(6300|6500|7RM2|7SM2)|ILCA-99M2)\b/',
|
918
|
+
Condition => '$$self{Model} =~ /^(DSC-(RX0|RX1RM2|RX10M2|RX10M3|RX100M4|RX100M5|HX90V?|WX500)|ILCE-(6300|6500|7RM2|7SM2)|ILCA-99M2)\b/',
|
885
919
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010h' },
|
886
920
|
},{
|
887
921
|
Name => 'Tag2010i', # ?
|
888
|
-
Condition => '$$self{Model} =~ /^ILCE-9\b/',
|
922
|
+
Condition => '$$self{Model} =~ /^(ILCE-(7RM3|9)|DSC-RX10M4)\b/',
|
889
923
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010i' },
|
890
924
|
},{
|
891
925
|
Name => 'Tag_0x2010',
|
@@ -947,6 +981,14 @@ my %meterInfo2 = (
|
|
947
981
|
# 0x2018 - something with external flash: seen 1 only when 0x2017 = 2
|
948
982
|
# 0x2019 - 0 or 1 (seen 1 for ILCA-77M2, ILCE-7M2/7RM2)
|
949
983
|
# 0x201a - 0 or 1
|
984
|
+
0x201a => { #JR
|
985
|
+
Name => 'ElectronicFrontCurtainShutter',
|
986
|
+
Writable => 'int32u',
|
987
|
+
PrintConv => {
|
988
|
+
0 => 'Off',
|
989
|
+
1 => 'On',
|
990
|
+
},
|
991
|
+
},
|
950
992
|
0x201b => { #PH
|
951
993
|
# FocusMode for SLT/HV/ILCA and NEX/ILCE; doesn't seem to apply to DSC models (always 0)
|
952
994
|
Name => 'FocusMode',
|
@@ -966,8 +1008,7 @@ my %meterInfo2 = (
|
|
966
1008
|
# AFAreaModeSetting for SLT/HV/ILCA and NEX/ILCE; doesn't seem to apply to DSC models (always 0)
|
967
1009
|
# all DSLR/SLT/HV Wide Zone Spot Local
|
968
1010
|
# all NEX and ILCE-3000 Multi Center FlexibleSpot
|
969
|
-
# ILCE
|
970
|
-
# ILCA-77M2 and newer Wide Zone Center FlexibleSpot
|
1011
|
+
# all ILCE and ILCA Wide Zone Center FlexibleSpot ExpandedFlexibleSpot
|
971
1012
|
# (actual AFAreaMode used may be different as camera can override this under certain conditions)
|
972
1013
|
{
|
973
1014
|
Name => 'AFAreaModeSetting',
|
@@ -984,9 +1025,11 @@ my %meterInfo2 = (
|
|
984
1025
|
Name => 'AFAreaModeSetting',
|
985
1026
|
Condition => '$$self{Model} =~ /^(NEX-|ILCE-)/',
|
986
1027
|
Notes => 'NEX and ILCE models',
|
1028
|
+
RawConv => '$$self{AFAreaILCE} = $val',
|
1029
|
+
DataMember => 'AFAreaILCE',
|
987
1030
|
Writable => 'int8u',
|
988
1031
|
PrintConv => {
|
989
|
-
0 => '
|
1032
|
+
0 => 'Wide', # all NEX and ILCE-3000/3500 use the name 'Multi'
|
990
1033
|
1 => 'Center',
|
991
1034
|
3 => 'Flexible Spot',
|
992
1035
|
4 => 'Flexible Spot (LA-EA4)', # seen for ILCE-7RM2 with LA-EA4
|
@@ -998,6 +1041,8 @@ my %meterInfo2 = (
|
|
998
1041
|
Name => 'AFAreaModeSetting',
|
999
1042
|
Condition => '$$self{Model} =~ /^ILCA-/',
|
1000
1043
|
Notes => 'ILCA models',
|
1044
|
+
RawConv => '$$self{AFAreaILCA} = $val',
|
1045
|
+
DataMember => 'AFAreaILCA',
|
1001
1046
|
Writable => 'int8u',
|
1002
1047
|
PrintConv => {
|
1003
1048
|
0 => 'Wide',
|
@@ -1022,13 +1067,16 @@ my %meterInfo2 = (
|
|
1022
1067
|
},
|
1023
1068
|
},
|
1024
1069
|
0x201e => [{ #PH (A99)
|
1025
|
-
#
|
1026
|
-
#
|
1027
|
-
# but also with Expanded Flexible Spot for ILCE-7RM2/7SM2 ...
|
1070
|
+
# Selected AF Point for SLT/HV/ILCA or ILCE with LA-EA2/EA4
|
1071
|
+
# Selected AF Zone for NEX/ILCE/ILCA when AFAreaMode = 'Zone',
|
1072
|
+
# but also with Expanded Flexible Spot for ILCE-7RM2/7SM2/9 ...
|
1028
1073
|
# doesn't seem to apply to DSC models (always 0)
|
1029
1074
|
Name => 'AFPointSelected',
|
1030
|
-
Condition =>
|
1031
|
-
|
1075
|
+
Condition => q{
|
1076
|
+
($$self{Model} =~ /^(SLT-|HV)/) or ($$self{Model} =~ /^ILCE-/ and
|
1077
|
+
defined $$self{AFAreaILCE} and $$self{AFAreaILCE} == 4)
|
1078
|
+
},
|
1079
|
+
Notes => 'SLT models or ILCE with LA-EA2/EA4',
|
1032
1080
|
Writable => 'int8u',
|
1033
1081
|
PrintConvColumns => 2,
|
1034
1082
|
PrintConv => {
|
@@ -1055,12 +1103,12 @@ my %meterInfo2 = (
|
|
1055
1103
|
},
|
1056
1104
|
},{
|
1057
1105
|
Name => 'AFPointSelected',
|
1058
|
-
Condition => '$$self{Model} =~ /^ILCA-(68|77M2)/',
|
1106
|
+
Condition => '$$self{Model} =~ /^ILCA-(68|77M2)/ and defined $$self{AFAreaILCA} and $$self{AFAreaILCA} != 8',
|
1059
1107
|
Notes => 'ILCA-68 and ILCA-77M2',
|
1060
1108
|
Writable => 'int8u',
|
1061
1109
|
ValueConv => '$val - 1', # to get the same numbers as from the BITMASK in 0x2020
|
1062
1110
|
ValueConvInv => '$val + 1',
|
1063
|
-
PrintConvColumns =>
|
1111
|
+
PrintConvColumns => 5,
|
1064
1112
|
PrintConv => {
|
1065
1113
|
-1 => 'Auto',
|
1066
1114
|
%afPoints79,
|
@@ -1068,31 +1116,55 @@ my %meterInfo2 = (
|
|
1068
1116
|
},
|
1069
1117
|
},{
|
1070
1118
|
Name => 'AFPointSelected',
|
1071
|
-
Condition => '$$self{Model} =~ /^ILCA-99M2/',
|
1072
|
-
Notes => 'ILCA-99M2
|
1119
|
+
Condition => '($$self{Model} =~ /^ILCA-99M2/ and defined $$self{AFAreaILCA} and $$self{AFAreaILCA} != 8)',
|
1120
|
+
Notes => 'ILCA-99M2 when AFAreaModeSetting is not Zone',
|
1121
|
+
# (appears to indicate the number of the selectable Focal Plane AF Point)
|
1073
1122
|
Writable => 'int8u',
|
1123
|
+
PrintConvColumns => 4,
|
1074
1124
|
PrintConv => {
|
1075
|
-
0 => 'Auto',
|
1076
|
-
|
1077
|
-
|
1125
|
+
0 => 'Auto', # seen for AFAreaModeSetting = Center, Wide
|
1126
|
+
%afPoints99M2, # for selected AFPoints corresponding to the 79 dedicated AF points
|
1127
|
+
162 => 'E6 (162, Center)', # add " (Center)" to central point
|
1128
|
+
OTHER => sub { shift }, # pass other values straight through
|
1129
|
+
},
|
1130
|
+
},{
|
1131
|
+
Name => 'AFPointSelected',
|
1132
|
+
Condition => '($$self{Model} =~ /^ILCA-/ and defined $$self{AFAreaILCA} and $$self{AFAreaILCA} == 8)',
|
1133
|
+
Notes => 'ICLA models when AFAreaModeSetting is set to Zone',
|
1134
|
+
# ILCA-68 and 77M2 have 9 Zones: numbers/locations verified for ILCA-77M2
|
1135
|
+
# ILCA-99M2 has 15 Zones in Hybrid-AF and 9 Zones in dedicated Phase AF Area, so may not be valid for ILCA-99M2...
|
1136
|
+
Writable => 'int8u',
|
1137
|
+
PrintConv => {
|
1138
|
+
0 => 'n/a',
|
1139
|
+
1 => 'Top Left Zone',
|
1140
|
+
2 => 'Top Zone',
|
1141
|
+
3 => 'Top Right Zone',
|
1142
|
+
4 => 'Left Zone',
|
1143
|
+
5 => 'Center Zone',
|
1144
|
+
6 => 'Right Zone',
|
1145
|
+
7 => 'Bottom Left Zone',
|
1146
|
+
8 => 'Bottom Zone',
|
1147
|
+
9 => 'Bottom Right Zone',
|
1148
|
+
#14 => ' ??? ', # seen for ILCA-99M2
|
1078
1149
|
},
|
1079
1150
|
},{
|
1080
|
-
Name => '
|
1151
|
+
Name => 'AFPointSelected',
|
1081
1152
|
# non-zero only when AFAreaMode is 'Zone', and 'Expanded-Flexible-Spot' for ILCE-6300/7RM2/7SM2
|
1153
|
+
# each Zone has 3x3 AF Areas --> 9 positions within 5x5 total Contrast AF Areas
|
1082
1154
|
Condition => '$$self{Model} =~ /^(NEX-|ILCE-)/',
|
1083
1155
|
Notes => 'NEX and ILCE models',
|
1084
1156
|
Writable => 'int8u',
|
1085
1157
|
PrintConv => {
|
1086
1158
|
0 => 'n/a',
|
1087
|
-
1 => 'Center',
|
1088
|
-
2 => 'Top',
|
1089
|
-
3 => 'Right',
|
1090
|
-
4 => 'Left',
|
1091
|
-
5 => 'Bottom',
|
1092
|
-
6 => 'Bottom Right',
|
1093
|
-
7 => 'Bottom Left',
|
1094
|
-
8 => 'Top Left',
|
1095
|
-
9 => 'Top Right',
|
1159
|
+
1 => 'Center Zone',
|
1160
|
+
2 => 'Top Zone',
|
1161
|
+
3 => 'Right Zone',
|
1162
|
+
4 => 'Left Zone',
|
1163
|
+
5 => 'Bottom Zone',
|
1164
|
+
6 => 'Bottom Right Zone',
|
1165
|
+
7 => 'Bottom Left Zone',
|
1166
|
+
8 => 'Top Left Zone',
|
1167
|
+
9 => 'Top Right Zone',
|
1096
1168
|
},
|
1097
1169
|
}],
|
1098
1170
|
# 0x201f - 0 0 0 0 for SLT and DSC; 4 values for NEX/ILCE with 4th value always 0:
|
@@ -1105,7 +1177,6 @@ my %meterInfo2 = (
|
|
1105
1177
|
Notes => 'SLT models, or NEX/ILCE with A-mount lenses',
|
1106
1178
|
BitsPerWord => 8,
|
1107
1179
|
BitsTotal => 80,
|
1108
|
-
Notes => 'SLT models only',
|
1109
1180
|
PrintConvColumns => 2,
|
1110
1181
|
PrintConv => {
|
1111
1182
|
0 => '(none)',
|
@@ -1133,16 +1204,27 @@ my %meterInfo2 = (
|
|
1133
1204
|
},
|
1134
1205
|
},{
|
1135
1206
|
Name => 'AFPointsUsed',
|
1136
|
-
Condition => '$$self{Model} =~ /^ILCA
|
1207
|
+
Condition => '$$self{Model} =~ /^ILCA-(68|77M2)/',
|
1137
1208
|
Notes => 'ILCA models',
|
1138
1209
|
BitsPerWord => 8,
|
1139
1210
|
BitsTotal => 80,
|
1211
|
+
PrintConvColumns => 4,
|
1140
1212
|
PrintConv => {
|
1141
1213
|
0 => '(none)',
|
1142
1214
|
BITMASK => { %afPoints79 },
|
1143
1215
|
},
|
1144
1216
|
}],
|
1145
1217
|
# 0x2021 - 0 for DSC; 0, 1 or 2 for SLT/ILCA and NEX/ILCE: 1=Face, 2=object-tracking ?
|
1218
|
+
0x2021 => { #JR
|
1219
|
+
Name => 'AFTracking',
|
1220
|
+
Condition => '$$self{Model} !~ /^DSC-/', # (doesn't seem to apply to DSC-models)
|
1221
|
+
Writable => 'int8u',
|
1222
|
+
PrintConv => {
|
1223
|
+
0 => 'Off',
|
1224
|
+
1 => 'Face tracking',
|
1225
|
+
2 => 'Lock On AF',
|
1226
|
+
},
|
1227
|
+
},
|
1146
1228
|
# 0x2022 - 13 bytes (104 bits) for SLT-A58/A99V, NEX-3N/5R/5T/6/VG30E/VG900, ILCE-3000/3500/5000/7/7R
|
1147
1229
|
# 26 bytes (208 bits) for ILCA-77M2, ILCE-5100/6000/7M2/7S/QX1 (7M2 has 117, 5100/6000 have 179 PhaseAFPoints)
|
1148
1230
|
# 52 bytes (416 bits) for ILCE-7RM2 (which has 399 PhaseAFPoints) and ILCE-7SM2
|
@@ -1170,7 +1252,14 @@ my %meterInfo2 = (
|
|
1170
1252
|
BITMASK => { },
|
1171
1253
|
},
|
1172
1254
|
}],
|
1173
|
-
|
1255
|
+
0x2023 => { #JR
|
1256
|
+
Name => 'MultiFrameNREffect',
|
1257
|
+
Writable => 'int32u',
|
1258
|
+
PrintConv => {
|
1259
|
+
0 => 'Normal',
|
1260
|
+
1 => 'High', # seen this only for ILCA-77M2 MFNR-12 images
|
1261
|
+
},
|
1262
|
+
},
|
1174
1263
|
# 0x2024 - 96 byte data block, very similar to 0x3000 ShotInfo, seen in Xperia Z5
|
1175
1264
|
# 0x2025 - n1 n2 0 0 DSC-RX100M3/RX100M4/RX10M2/HX90V/WX500, ILCA-77M2, ILCE-5100/7M2/7RM2/7S/QX1
|
1176
1265
|
# seen n1=0,2,4,5,7 and n2=0,1,3, very often: 7 3 0 0
|
@@ -1222,7 +1311,7 @@ my %meterInfo2 = (
|
|
1222
1311
|
# 0x202a - first seen for ILCE-6300: 66 bytes
|
1223
1312
|
# possibly a 'replacement' for Tag2022 FocalPlaneAFPointsUsed,
|
1224
1313
|
# but now indicating locations in a 640x428 grid (3:2 part of LCD ?)
|
1225
|
-
# first byte value 1 for ILCE-6300/6500, ILCA-99M2
|
1314
|
+
# first byte value 1 for ILCE-6300/6500/9, ILCA-99M2
|
1226
1315
|
# values 110,137, ... for DSC-RX10M3, therefore limit to first byte = 1 for now
|
1227
1316
|
0x202a => {
|
1228
1317
|
Name => 'Tag202a',
|
@@ -1237,13 +1326,23 @@ my %meterInfo2 = (
|
|
1237
1326
|
PrintConv => {
|
1238
1327
|
0x100 => 'Multi-segment',
|
1239
1328
|
0x200 => 'Center-weighted average',
|
1240
|
-
# 0x300 => 'Spot',
|
1241
|
-
|
1242
|
-
|
1243
|
-
|
1244
|
-
|
1329
|
+
# 0x300 => 'Spot', # not yet seen
|
1330
|
+
# (there is one other setting that might also be encoded here:
|
1331
|
+
# the Spot Metering Point can be set to "Center", to meter in the
|
1332
|
+
# center of the image, or to "Focus Point Link", to meter at the focus point.
|
1333
|
+
# This could also be the meaning of 0x301 and 0x302 - JR)
|
1334
|
+
0x301 => 'Spot (Standard)', # (NC) seen for ILCA-99M2 with Exif indicating "Spot"
|
1335
|
+
0x302 => 'Spot (Large)', # (NC) seen for ILCE-9 with Exif indicating "Spot"
|
1336
|
+
0x400 => 'Average', # (NC) seen for ILCA-99M2 with Exif indicating "Average"
|
1337
|
+
0x500 => 'Highlight', # (NC) seen for ILCA-99M2 with Exif indicating "Other"
|
1338
|
+
},
|
1339
|
+
},
|
1340
|
+
0x202d => { #JR first seen for ILCA-99M2, ILCE-6500, DSC-RX100M5
|
1341
|
+
Name => 'ExposureStandardAdjustment', # (NC)
|
1342
|
+
Writable => 'rational64s',
|
1343
|
+
PrintConv => '$val ? sprintf("%+.1f",$val) : 0',
|
1344
|
+
PrintConvInv => '$val',
|
1245
1345
|
},
|
1246
|
-
# 0x202d - rational64s - 0/6 first seen for ILCA-99M2, ILCE-6500, DSC-RX100M5
|
1247
1346
|
0x3000 => {
|
1248
1347
|
Name => 'ShotInfo',
|
1249
1348
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::ShotInfo' },
|
@@ -1272,14 +1371,14 @@ my %meterInfo2 = (
|
|
1272
1371
|
# from mid-2015: ILCE-7RM2/7SM2/6300 and newer models use different offsets
|
1273
1372
|
{
|
1274
1373
|
Name => 'Tag9050a',
|
1275
|
-
Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(6300|6500|7RM2|7SM2|9)|ILCA-99M2)/',
|
1374
|
+
Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(6300|6500|7RM2|7RM3|7SM2|9)|ILCA-99M2)/',
|
1276
1375
|
SubDirectory => {
|
1277
1376
|
TagTable => 'Image::ExifTool::Sony::Tag9050a',
|
1278
1377
|
ByteOrder => 'LittleEndian',
|
1279
1378
|
},
|
1280
1379
|
},{
|
1281
1380
|
Name => 'Tag9050b',
|
1282
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7RM2|7SM2|9)|ILCA-99M2)/',
|
1381
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7RM2|7RM3|7SM2|9)|ILCA-99M2)/',
|
1283
1382
|
SubDirectory => {
|
1284
1383
|
TagTable => 'Image::ExifTool::Sony::Tag9050b',
|
1285
1384
|
ByteOrder => 'LittleEndian',
|
@@ -1295,10 +1394,10 @@ my %meterInfo2 = (
|
|
1295
1394
|
# 0x0a (e) for SLT-A37/A57/A65V/A77V/A99V, NEX-F3/5N/5R/5T/6/7/VG20E, DSC-RX100/RX1/RX1R/HX10V/HX20V/HX30V/HX200V/TX200V/TX300V/TX66/WX50/WX100/WX150, Lunar/Stellar/HV
|
1296
1395
|
# 0x0c (e) for ILCE-3000/3500, NEX-3N, SLT-A58, DSC-HX50V/HX300/RX100M2/TX30/WX60/WX80/WX200/WX300, DSC-QX10/QX100
|
1297
1396
|
# 0xd0 (e) H90, W650, W690: tag9400 decoding appears not valid/different
|
1298
|
-
# 0x23 (e) for DSC-RX10/HX60V/HX400V/WX220/WX350, ILCE-7/7R/5000/6000, ILCA-68/77M2
|
1299
|
-
# 0x24 (e) for ILCA-99M2,ILCE-5100/6300/6500/7M2/7RM2/7S/7SM2/QX1, DSC-HX90V/QX30/RX100M3/RX100M4/RX100M5/RX10M2/RX10M3/RX1RM2/WX500
|
1300
|
-
# 0x26 (e) for ILCE-9
|
1301
|
-
# first byte decoded: 40, 204, 202, 27, 58, 62, 48 respectively
|
1397
|
+
# 0x23 (e) for DSC-RX10/HX60V/HX350/HX400V/WX220/WX350, ILCE-7/7R/5000/6000, ILCA-68/77M2
|
1398
|
+
# 0x24 (e) for ILCA-99M2,ILCE-5100/6300/6500/7M2/7RM2/7S/7SM2/QX1, DSC-HX90V/QX30/RX0/RX100M3/RX100M4/RX100M5/RX10M2/RX10M3/RX1RM2/WX500
|
1399
|
+
# 0x26 (e) for ILCE-7RM3/9, DSC-RX10M4
|
1400
|
+
# first byte decoded: 40, 204, 202, 27, 58, 62, 48, 215 respectively
|
1302
1401
|
{
|
1303
1402
|
Name => 'Tag9400a',
|
1304
1403
|
Condition => q{
|
@@ -1347,24 +1446,26 @@ my %meterInfo2 = (
|
|
1347
1446
|
# 43 00 66 0e 0x0a1b (n) ILCE-7/7R v0.xx/v1.00/v1.01, ILCE-5000, DSC-RX10
|
1348
1447
|
# 43 10 66 0e 0x0a1b (n) ILCE-7/7R v1.02/v1.10
|
1349
1448
|
# 43 30 6c 0e 0x0a1b (n) ILCE-7/7R v1.20-v3.20
|
1350
|
-
# 44 00 9c 0e 0x0a39 (o) ILCE-6000 v1.00/v1.10, DSC-HX60V/HX400V/WX220/WX350 (also DSC-QX30 samples from sony.net)
|
1449
|
+
# 44 00 9c 0e 0x0a39 (o) ILCE-6000 v1.00/v1.10, DSC-HX60V/HX350/HX400V/WX220/WX350 (also DSC-QX30 samples from sony.net)
|
1351
1450
|
# 44 10 a2 0e 0x0a39 (o) ILCE-6000 v1.20/v1.21
|
1352
1451
|
# 44 20 a2 0e 0x0a39 (o) ILCE-6000 v2.00-v3.20
|
1353
1452
|
# 49 00 b0 0e 0x0a3b (p) ILCA-68 v1.00, ILCA-77M2 V1.00/v1.01/v2.00 (also DSC-RX100M3 samples from sony.net)
|
1354
1453
|
# 4a 00 b3 0e 0x0a3d (q) ILCE-7S v1.00, ILCE-5100 v1.00/v1.10, ILCE-QX1, DSC-QX30/RX100M3
|
1355
1454
|
# 4a 20 b9 0e 0x0a3d (q) ILCE-7S v1.20-v3.10
|
1356
1455
|
# 4e 10 d0 0e 0x0a5a (r) ILCE-7M2 v1.00/v1.10
|
1357
|
-
# 4e 30 d6 0e 0x0a5a (r) ILCE-7M2 v1.20-
|
1456
|
+
# 4e 30 d6 0e 0x0a5a (r) ILCE-7M2 v1.20-v4.00
|
1358
1457
|
# 5a 00 14 0f 0x0a85 (s) DSC-HX90V/WX500
|
1359
1458
|
# 5d 00 56 0f 0x0ac7 (t) DSC-RX10M2/RX100M4, ILCE-7RM2/7SM2 v1.00-v2.20 (also DSC-RX1RM2 samples from Sony)
|
1360
|
-
# 5d 1d 58 0f 0x0ac7 (t) ILCE-7RM2 v3.00-
|
1459
|
+
# 5d 1d 58 0f 0x0ac7 (t) ILCE-7RM2 v3.00-v4.00
|
1361
1460
|
# 5d 1e 57 0f 0x0ac7 (t) DSC-RX1RM2 v1.00
|
1362
1461
|
# 5d 10 56 0f 0x0ac7 (t) ILCE-6300 v1.00 (samples from Sony)
|
1363
1462
|
# 5d 20 58 0f 0x0ac7 (t) ILCE-6300 v1.00/v1.10
|
1364
1463
|
# 5e 00 56 0f 0x0ac7 (t) DSC-RX10M3 v1.00
|
1365
1464
|
# 64 00 a8 0f 0x0b15 (u) DSC-RX100M5 v1.00
|
1366
|
-
# 67 00 f9 0f 0x0b66 (v) ILCA-99M2 v1.00, ILCE-6500 v1.00
|
1367
|
-
# 7c 00 fe 0f 0x0adb (w) ILCE-9 v0.01/v1.00
|
1465
|
+
# 67 00 f9 0f 0x0b66 (v) ILCA-99M2 v1.00, ILCE-6500 v1.00/v1.03, DSC-RX0 v1.00
|
1466
|
+
# 7c 00 fe 0f 0x0adb (w) ILCE-9 v0.01/v1.00/v1.01/v1.10
|
1467
|
+
# 7f 00 fa 0f 0x0add (x) DSC-RX10M4 v1.00
|
1468
|
+
# 80 00 fa 0f ILCE-7RM3 v0.01
|
1368
1469
|
#
|
1369
1470
|
# 0x0004 - (RX100: 0 or 1. subsequent data valid only if 1 - PH)
|
1370
1471
|
# 0x0007 => {
|
@@ -1395,13 +1496,19 @@ my %meterInfo2 = (
|
|
1395
1496
|
# 0x13 0x01 ILCE-5000/7/7R, DSC-RX10, but also seen:
|
1396
1497
|
# 0x12 0x01 for ILCE-7/7R and DSC-RX10 samples from Sony.net ...
|
1397
1498
|
# 0x15 0x01 for a few ILCE-7/7R ...
|
1398
|
-
# 0x14 0x01 ILCE-6000, DSC-HX60V/HX400V/WX220/WX350
|
1499
|
+
# 0x14 0x01 ILCE-6000, DSC-HX60V/HX350/HX400V/WX220/WX350
|
1399
1500
|
# 0x17 0x01 ILCE-7S/7M2/5100/QX1, DSC-QX30/RX100M3
|
1400
1501
|
# 0x19 0x01 DSC-HX90V/RX1RM2/RX10M2/RX100M4/WX500, ILCE-6300/7RM2/7SM2
|
1401
|
-
# 0x1a 0x01 DSC-RX10M3/RX100M5, ILCE-6500
|
1502
|
+
# 0x1a 0x01 DSC-RX0/RX10M3/RX100M5, ILCE-6500
|
1503
|
+
# 0x1c 0x01 ILCE-9
|
1504
|
+
# 0x1d 0x01 DSC-RX10M4
|
1505
|
+
# 0x1e 0x01 ILCE-7RM3
|
1402
1506
|
# var var SLT-A58/A99V, HV, ILCA-68/77M2/99M2
|
1403
|
-
# only valid when first byte 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x17, 0x19, 0x1a (enciphered 0x8a, 0x70, 0xb6, 0x69, 0x88, 0x20, 0x30, 0xd7, 0xbb, 0x92)
|
1404
|
-
Condition => '$$self{DoubleCipher} ? $$valPt =~ /^[\x7e\x46\x1d\x18\x3a\x95\x24\x26\xd6]\x01/ : $$valPt =~ /^[\x8a\x70\xb6\x69\x88\x20\x30\xd7\xbb\x92]\x01/',
|
1507
|
+
# only valid when first byte 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x17, 0x19, 0x1a, 0x1c (enciphered 0x8a, 0x70, 0xb6, 0x69, 0x88, 0x20, 0x30, 0xd7, 0xbb, 0x92, 0x28)
|
1508
|
+
# Condition => '$$self{DoubleCipher} ? $$valPt =~ /^[\x7e\x46\x1d\x18\x3a\x95\x24\x26\xd6]\x01/ : $$valPt =~ /^[\x8a\x70\xb6\x69\x88\x20\x30\xd7\xbb\x92\x28]\x01/',
|
1509
|
+
# alternative simpler Condition:
|
1510
|
+
# not valid for SLT/HV/ILCA models, and not valid for first byte 0x0e or 0xff (enciphered 0x05 or 0xff)
|
1511
|
+
Condition => '$$self{Model} !~ /^(SLT-|HV|ILCA-)/ and $$valPt !~ /^[\x05\xff]/',
|
1405
1512
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9402' },
|
1406
1513
|
},{
|
1407
1514
|
Name => 'Sony_0x9402',
|
@@ -1417,9 +1524,9 @@ my %meterInfo2 = (
|
|
1417
1524
|
# 9 0 38 2 2 SLT-A37/A57/A99V, NEX-5R/5T/6/F3/VG30E/VG900, DSC-RX1/RX1R/RX100, Stellar
|
1418
1525
|
# 12 0 8 2 2 SLT-A58, NEX-3N, ILCE-3000/3500, DSC-HX300/HX50V/WX60/WX80/WX300/TX30...
|
1419
1526
|
# 13 0 9 2 2 DSC-QX10/QX100/RX100M2
|
1420
|
-
# 15 0 35 2 2 ILCA-68/77M2, ILCE-5000/5100/6000/7/7R/7S/7M2/QX1, DSC-HX400V/
|
1527
|
+
# 15 0 35 2 2 ILCA-68/77M2, ILCE-5000/5100/6000/7/7R/7S/7M2/QX1, DSC-HX60V/HX350/HX400V/QX30/RX10/RX100M3/WX220/WX350
|
1421
1528
|
# 16 0 85 2 2 DSC-HX90V/WX500
|
1422
|
-
# 17 0 232 1 2 DSC-RX1RM2/RX10M2/RX10M3/RX100M4/RX100M5, ILCE-6300/6500/7RM2/7SM2/9, ILCA-99M2
|
1529
|
+
# 17 0 232 1 2 DSC-RX0/RX1RM2/RX10M2/RX10M3/RX10M4/RX100M4/RX100M5, ILCE-6300/6500/7RM2/7RM3/7SM2/9, ILCA-99M2
|
1423
1530
|
# other values for Panorama images and several other models
|
1424
1531
|
0x9404 => [{
|
1425
1532
|
Name => 'Tag9404a',
|
@@ -1431,6 +1538,11 @@ my %meterInfo2 = (
|
|
1431
1538
|
# first byte must be 9 or 12 or 13 or 15 or 16 and 4th byte must be 2 (deciphered)
|
1432
1539
|
Condition => '$$valPt =~ /^[\xe7\xea\xcd\x8a\x70]..\x08/',
|
1433
1540
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9404b' },
|
1541
|
+
},{
|
1542
|
+
Name => 'Tag9404c',
|
1543
|
+
# first byte must be 17 and 4th byte must be 1 (deciphered)
|
1544
|
+
Condition => '$$valPt =~ /^\xb6..\x01/',
|
1545
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9404c' },
|
1434
1546
|
},{
|
1435
1547
|
Name => 'Sony_0x9404',
|
1436
1548
|
%unknownCipherData,
|
@@ -1441,14 +1553,14 @@ my %meterInfo2 = (
|
|
1441
1553
|
# 3 0 (0x1b = 27 0 enc.) SLT, NEX, ILCE-3000/3500, DSC-RX100/RX1 + other DSC of same generation, also QX10 and QX100
|
1442
1554
|
# 4 0 (0x40 = 64 0 enc.) DSC-RX1R
|
1443
1555
|
# 5 0 (0x7d = 125 0 enc.) DSC-RX100M2
|
1444
|
-
# 136 var (0x3a = 58 var enc.) ILCE-7/7R/5000/6000, DSC-HX400V/
|
1556
|
+
# 136 var (0x3a = 58 var enc.) ILCE-7/7R/5000/6000, DSC-HX60V/HX350/HX400V/RX10/WX220/WX350
|
1445
1557
|
# 137 var (0xb3 = 179 var enc.) ILCA-68/77M2, DSC-RX100M3 - appears to go with 136
|
1446
1558
|
# 138 var (0x7e = 126 var enc.) ILCE-7S/5100/QX1, DSC-QX30 - appears to go with 136
|
1447
1559
|
# 139 var (0x9a = 154 var enc.) ILCE-7M2
|
1448
1560
|
# 142 var (0x25 = 37 var enc.) DSC-HX90V/RX1RM2/RX10M2/RX10M3/RX100M4/WX500, ILCE-6300/7RM2/7SM2
|
1449
1561
|
# 144 var (0xe1 = 225 var enc.) DSC-RX100M5
|
1450
|
-
# 145 var (0x76 = 118 var enc.) ILCA-99M2, ILCE-6500
|
1451
|
-
# 163 var (0x8b = 139 var enc.) ILCE-9
|
1562
|
+
# 145 var (0x76 = 118 var enc.) ILCA-99M2, ILCE-6500, DSC-RX0
|
1563
|
+
# 163 var (0x8b = 139 var enc.) ILCE-7RM3/9, DSC-RX10M4
|
1452
1564
|
0x9405 => [{
|
1453
1565
|
Name => 'Tag9405a',
|
1454
1566
|
# first byte must be 0x1b or 0x40 or 0x7d
|
@@ -1456,7 +1568,7 @@ my %meterInfo2 = (
|
|
1456
1568
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9405a' },
|
1457
1569
|
},{
|
1458
1570
|
Name => 'Tag9405b',
|
1459
|
-
# first byte must be 0x3a, 0xb3, 0x7e, 0x9a
|
1571
|
+
# first byte must be 0x3a, 0xb3, 0x7e, 0x9a, 0x25, 0xe1, 0x76 or 0x8b
|
1460
1572
|
Condition => '$$valPt =~ /^[\x3a\xb3\x7e\x9a\x25\xe1\x76\x8b]/',
|
1461
1573
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9405b' },
|
1462
1574
|
},{
|
@@ -1633,6 +1745,9 @@ my %meterInfo2 = (
|
|
1633
1745
|
357 => 'ILCE-6300', #IB
|
1634
1746
|
358 => 'ILCE-9', #JR
|
1635
1747
|
360 => 'ILCE-6500', #JR
|
1748
|
+
362 => 'ILCE-7RM3', #IB
|
1749
|
+
364 => 'DSC-RX0', #PH
|
1750
|
+
365 => 'DSC-RX10M4', #JR
|
1636
1751
|
},
|
1637
1752
|
},
|
1638
1753
|
0xb020 => { #2
|
@@ -2715,7 +2830,7 @@ my %meterInfo2 = (
|
|
2715
2830
|
return \ "Binary data 7404 bytes" unless $et->Options('Binary');
|
2716
2831
|
my @dat = unpack('n*', $val);
|
2717
2832
|
# TIFF header for a 16-bit RGB 10dpi 40x30 image
|
2718
|
-
$val = MakeTiffHeader(40,30,3,16,10);
|
2833
|
+
$val = Image::ExifTool::MakeTiffHeader(40,30,3,16,10);
|
2719
2834
|
# re-order data to RGB pixels
|
2720
2835
|
my ($i, @val);
|
2721
2836
|
for ($i=0; $i<40*30; ++$i) {
|
@@ -2775,7 +2890,7 @@ my %meterInfo2 = (
|
|
2775
2890
|
return \ "Binary data 7404 bytes" unless $et->Options('Binary');
|
2776
2891
|
my @dat = unpack('v*', $val);
|
2777
2892
|
# TIFF header for a 16-bit RGB 10dpi 40x30 image
|
2778
|
-
$val = MakeTiffHeader(40,30,3,16,10);
|
2893
|
+
$val = Image::ExifTool::MakeTiffHeader(40,30,3,16,10);
|
2779
2894
|
# re-order data to RGB pixels
|
2780
2895
|
my ($i, @val);
|
2781
2896
|
for ($i=0; $i<40*30; ++$i) {
|
@@ -5559,7 +5674,7 @@ my %releaseMode2 = ( #JR
|
|
5559
5674
|
28 => 'Smile Shutter', #PH (RX100)
|
5560
5675
|
29 => 'Continuous - Tele-zoom Advance Priority',
|
5561
5676
|
# 30 - seen quite often for single-shot images ... SLT-A58, ILCE-5100/6000
|
5562
|
-
# 33 - Continuous
|
5677
|
+
# 33 - Continuous - seen for DSC-RX100M5, RX10M4, maybe 24 fps mode ???
|
5563
5678
|
146 => 'Single Frame - Movie Capture', #PH (seen in Tag2010 ReleaseMode2 values)
|
5564
5679
|
},
|
5565
5680
|
);
|
@@ -5590,7 +5705,7 @@ my %releaseMode2010 = (
|
|
5590
5705
|
# 3 => 'Remote Commander', (NC) (seen this when other ReleaseMode and ReleaseMode2 are 'Normal' - PH, A77)
|
5591
5706
|
4 => 'Continuous - Burst', # seen for DSC-WX500 with burst of 10 shots
|
5592
5707
|
5 => 'Continuous - Speed/Advance Priority',
|
5593
|
-
|
5708
|
+
6 => 'Normal - Self-timer', # seen for ILCE-6300/6500/9, ILCA-99M2
|
5594
5709
|
},
|
5595
5710
|
);
|
5596
5711
|
my %selfTimer2010 = (
|
@@ -6222,7 +6337,7 @@ my %pictureProfile2010 = (
|
|
6222
6337
|
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
6223
6338
|
FORMAT => 'int8u',
|
6224
6339
|
NOTES => q{
|
6225
|
-
Valid for DSC-HX400V/
|
6340
|
+
Valid for DSC-HX60V/HX350/HX400V/QX30/RX10/RX100M3/WX220/WX350,
|
6226
6341
|
ILCE-7/7R/7S/7M2/5000/5100/6000/QX1, ILCA-68/77M2.
|
6227
6342
|
},
|
6228
6343
|
WRITABLE => 1,
|
@@ -6349,7 +6464,7 @@ my %pictureProfile2010 = (
|
|
6349
6464
|
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
6350
6465
|
FORMAT => 'int8u',
|
6351
6466
|
NOTES => q{
|
6352
|
-
Valid for DSC-HX90V/RX1RM2/RX10M2/RX10M3/RX100M4/RX100M5/WX500,
|
6467
|
+
Valid for DSC-HX90V/RX0/RX1RM2/RX10M2/RX10M3/RX100M4/RX100M5/WX500,
|
6353
6468
|
ILCE-6300/6500/7RM2/7SM2, ILCA-99M2.
|
6354
6469
|
},
|
6355
6470
|
WRITABLE => 1,
|
@@ -6410,14 +6525,14 @@ my %pictureProfile2010 = (
|
|
6410
6525
|
0x0388 => {
|
6411
6526
|
Name => 'MeterInfo',
|
6412
6527
|
Format => 'int32u[486]',
|
6413
|
-
Condition => '$$self{Model} !~ /^(ILCA-99M2|ILCE-6500|DSC-RX100M5)/',
|
6528
|
+
Condition => '$$self{Model} !~ /^(ILCA-99M2|ILCE-6500|DSC-(RX0|RX100M5))/',
|
6414
6529
|
Unknown => 1,
|
6415
6530
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::MeterInfo' },
|
6416
6531
|
},
|
6417
6532
|
0x0398 => {
|
6418
6533
|
Name => 'MeterInfo',
|
6419
6534
|
Format => 'int32u[486]',
|
6420
|
-
Condition => '$$self{Model} =~ /^(ILCA-99M2|ILCE-6500|DSC-RX100M5)/',
|
6535
|
+
Condition => '$$self{Model} =~ /^(ILCA-99M2|ILCE-6500|DSC-(RX0|RX100M5))/',
|
6421
6536
|
Unknown => 1,
|
6422
6537
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::MeterInfo' },
|
6423
6538
|
},
|
@@ -6484,7 +6599,7 @@ my %pictureProfile2010 = (
|
|
6484
6599
|
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
6485
6600
|
FORMAT => 'int8u',
|
6486
6601
|
NOTES => q{
|
6487
|
-
Valid for ILCE-9.
|
6602
|
+
Valid for ILCE-7RM3/9, DSC-RX10M4.
|
6488
6603
|
},
|
6489
6604
|
WRITABLE => 1,
|
6490
6605
|
FIRST_ENTRY => 0,
|
@@ -6541,6 +6656,12 @@ my %pictureProfile2010 = (
|
|
6541
6656
|
PrintConv => 'sprintf("%.0f",$val)',
|
6542
6657
|
PrintConvInv => '$val',
|
6543
6658
|
},
|
6659
|
+
0x036d => { # different format from all previous cameras: now each triple is int16u-int32u-int32u
|
6660
|
+
Name => 'MeterInfo',
|
6661
|
+
Format => 'undef[1620]',
|
6662
|
+
Unknown => 1,
|
6663
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Sony::MeterInfo9' },
|
6664
|
+
},
|
6544
6665
|
0x17d0 => {
|
6545
6666
|
Name => 'DistortionCorrParams',
|
6546
6667
|
Condition => '$$self{Model} !~ /^DSC-/',
|
@@ -6705,6 +6826,37 @@ my %pictureProfile2010 = (
|
|
6705
6826
|
0x0714 => { Name => 'MeterInfo2Row9', %meterInfo2 },
|
6706
6827
|
);
|
6707
6828
|
|
6829
|
+
# possible metering information (ref JR)
|
6830
|
+
%Image::ExifTool::Sony::MeterInfo9 = (
|
6831
|
+
%binaryDataAttrs,
|
6832
|
+
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
6833
|
+
NOTES => q{
|
6834
|
+
Information possibly related to metering. Extracted only if the Unknown
|
6835
|
+
option is used.
|
6836
|
+
},
|
6837
|
+
# new format for ILCE-9:
|
6838
|
+
# 162 'triplets' of (int16u int32u int32u) numbers: (k,n1,n2)
|
6839
|
+
# Set 1: 7 rows of 9
|
6840
|
+
# Set 2: 9 rows of 11
|
6841
|
+
0x0000 => { Name => 'MeterInfo1Row1', %meterInfo1b },
|
6842
|
+
0x005a => { Name => 'MeterInfo1Row2', %meterInfo1b },
|
6843
|
+
0x00b4 => { Name => 'MeterInfo1Row3', %meterInfo1b },
|
6844
|
+
0x010e => { Name => 'MeterInfo1Row4', %meterInfo1b },
|
6845
|
+
0x0168 => { Name => 'MeterInfo1Row5', %meterInfo1b },
|
6846
|
+
0x01c2 => { Name => 'MeterInfo1Row6', %meterInfo1b },
|
6847
|
+
0x021c => { Name => 'MeterInfo1Row7', %meterInfo1b },
|
6848
|
+
|
6849
|
+
0x0276 => { Name => 'MeterInfo2Row1', %meterInfo2b },
|
6850
|
+
0x02e4 => { Name => 'MeterInfo2Row2', %meterInfo2b },
|
6851
|
+
0x0352 => { Name => 'MeterInfo2Row3', %meterInfo2b },
|
6852
|
+
0x03c0 => { Name => 'MeterInfo2Row4', %meterInfo2b },
|
6853
|
+
0x042e => { Name => 'MeterInfo2Row5', %meterInfo2b },
|
6854
|
+
0x049c => { Name => 'MeterInfo2Row6', %meterInfo2b },
|
6855
|
+
0x050a => { Name => 'MeterInfo2Row7', %meterInfo2b },
|
6856
|
+
0x0578 => { Name => 'MeterInfo2Row8', %meterInfo2b },
|
6857
|
+
0x05e6 => { Name => 'MeterInfo2Row9', %meterInfo2b },
|
6858
|
+
);
|
6859
|
+
|
6708
6860
|
%Image::ExifTool::Sony::Tag900b = ( #JR
|
6709
6861
|
PROCESS_PROC => \&ProcessEnciphered,
|
6710
6862
|
WRITE_PROC => \&WriteEnciphered,
|
@@ -6820,6 +6972,11 @@ my %pictureProfile2010 = (
|
|
6820
6972
|
Name => 'ReleaseMode2',
|
6821
6973
|
%releaseMode2,
|
6822
6974
|
},
|
6975
|
+
# 0x004c - 0x005b: A-Mount: 16 values, only non-zero data for lenses giving "A-mount (3)" in 0x0104 below.
|
6976
|
+
# e.g for SAL70400G2: 9 5 5 64 69 74 79 84 89 94 98 104 255 105 89 80
|
6977
|
+
# where 9 means 9 focal lengths: 64 ... 104,
|
6978
|
+
# corresponding to 70-400mm via FocalLength = 4.375*2**($val/16)
|
6979
|
+
# 0x004c, 0x0051: E-Mount: ImageCount and dateTime
|
6823
6980
|
0x004c => { # only ILCE-7/7R/7S/7M2/5000/5100/6000/QX1 - but appears not valid when flash is used ...
|
6824
6981
|
Name => 'ImageCount2',
|
6825
6982
|
Condition => '($$self{Model} =~ /^(ILCE-(7(R|S|M2)?|[56]000|5100|QX1))\b/) and (($$self{FlashFired} & 0x01) != 1)',
|
@@ -7000,7 +7157,7 @@ my %pictureProfile2010 = (
|
|
7000
7157
|
WRITE_PROC => \&WriteEnciphered,
|
7001
7158
|
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
7002
7159
|
FORMAT => 'int8u',
|
7003
|
-
NOTES => 'Valid from July 2015 for ILCE-6300/6500/7RM2/7SM2, ILCA-99M2.',
|
7160
|
+
NOTES => 'Valid from July 2015 for ILCE-6300/6500/7RM2/7RM3/7SM2/9, ILCA-99M2.',
|
7004
7161
|
WRITABLE => 1,
|
7005
7162
|
FIRST_ENTRY => 0,
|
7006
7163
|
DATAMEMBER => [ 0x0105 ],
|
@@ -7064,15 +7221,27 @@ my %pictureProfile2010 = (
|
|
7064
7221
|
Name => 'ReleaseMode2',
|
7065
7222
|
%releaseMode2,
|
7066
7223
|
},
|
7224
|
+
0x0052 => {
|
7225
|
+
Name => 'ImageCount2',
|
7226
|
+
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} =~ /^(ILCE-7RM3)/)',
|
7227
|
+
Format => 'int32u',
|
7228
|
+
RawConv => '$val & 0x00ffffff',
|
7229
|
+
PrintConv => 'sprintf("%6d",$val)',
|
7230
|
+
},
|
7231
|
+
# 0x0058 - 0x0067: A-Mount: 16 values, only non-zero data for lenses giving "A-mount (3)" in 0x0104 below.
|
7232
|
+
# e.g for SAL70400G2: 9 5 5 64 69 74 79 84 89 94 98 104 255 105 89 80
|
7233
|
+
# where 9 means 9 focal lengths: 64 ... 104,
|
7234
|
+
# corresponding to 70-400mm via FocalLength = 4.375*2**($val/16)
|
7235
|
+
# 0x0058, 0x0061: E-Mount: ImageCount and dateTime
|
7067
7236
|
0x0058 => { # appears not valid when flash is used ... not for ILCA-99M2
|
7068
7237
|
Name => 'ImageCount2',
|
7069
|
-
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} !~ /^(ILCA-99M2)/)',
|
7238
|
+
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} !~ /^(ILCA-99M2|ILCE-7RM3)/)',
|
7070
7239
|
Format => 'int32u',
|
7071
7240
|
RawConv => '$val & 0x00ffffff',
|
7072
7241
|
},
|
7073
7242
|
0x0061 => { # only minutes-seconds, not for ILCA-99M2, ILCE-9
|
7074
7243
|
Name => 'SonyTimeMinSec',
|
7075
|
-
Condition => '$$self{Model} !~ /^(ILCA-99M2|ILCE-9)/',
|
7244
|
+
Condition => '$$self{Model} !~ /^(ILCA-99M2|ILCE-(7RM3|9))/',
|
7076
7245
|
Format => 'undef[2]',
|
7077
7246
|
ValueConv => q{
|
7078
7247
|
my @v = unpack('C*', $val);
|
@@ -7081,6 +7250,7 @@ my %pictureProfile2010 = (
|
|
7081
7250
|
},
|
7082
7251
|
0x0073 => {
|
7083
7252
|
Name => 'ReleaseMode2',
|
7253
|
+
Condition => '$$self{Model} !~ /^(ILCE-7RM3)/',
|
7084
7254
|
%releaseMode2,
|
7085
7255
|
},
|
7086
7256
|
0x0088 => {
|
@@ -7151,7 +7321,7 @@ my %pictureProfile2010 = (
|
|
7151
7321
|
#
|
7152
7322
|
0x019f => {
|
7153
7323
|
Name => 'ImageCount3',
|
7154
|
-
Condition => '$$self{Model} =~ /^(ILCE-9)/',
|
7324
|
+
Condition => '$$self{Model} =~ /^(ILCE-(7RM3|9))/',
|
7155
7325
|
Format => 'int32u',
|
7156
7326
|
RawConv => '$val == 0 ? undef : $val',
|
7157
7327
|
},
|
@@ -7383,15 +7553,15 @@ my %pictureProfile2010 = (
|
|
7383
7553
|
FORMAT => 'int8u',
|
7384
7554
|
WRITABLE => 1,
|
7385
7555
|
NOTES => q{
|
7386
|
-
Valid for DSC-
|
7387
|
-
RX100M4/RX100M5/WX220/WX350/WX500, ILCE-7/7R/7S/7M2/7RM2/
|
7388
|
-
6000/6300/6500/QX1, ILCA-68/77M2/99M2.
|
7556
|
+
Valid for DSC-HX60V/HX90V/HX350/HX400V/QX30/RX0/RX1RM2/RX10/RX10M2/RX10M3/
|
7557
|
+
RX10M4/RX100M3/RX100M4/RX100M5/WX220/WX350/WX500, ILCE-7/7R/7S/7M2/7RM2/
|
7558
|
+
7RM3/7SM2/9/5000/5100/6000/6300/6500/QX1, ILCA-68/77M2/99M2.
|
7389
7559
|
},
|
7390
7560
|
FIRST_ENTRY => 0,
|
7391
7561
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
7392
7562
|
0x0009 => { %releaseMode2 },
|
7393
7563
|
0x000a => [{
|
7394
|
-
Condition => '$$self{Model} =~ /^ILCE-9\b/',
|
7564
|
+
Condition => '$$self{Model} =~ /^(ILCE-(7RM3|9)|DSC-RX10M4)\b/',
|
7395
7565
|
Name => 'ShotNumberSincePowerUp',
|
7396
7566
|
Format => 'int8u',
|
7397
7567
|
},{
|
@@ -7411,6 +7581,7 @@ my %pictureProfile2010 = (
|
|
7411
7581
|
6 => '6 shots',
|
7412
7582
|
9 => '9 shots', # ILCE-7RM2 9-shot bracketing
|
7413
7583
|
10 => '10 shots',
|
7584
|
+
12 => '12 shots', # ILCA-77M2 12-shot MFNR-mode
|
7414
7585
|
100 => 'Continuous - iSweep Panorama',
|
7415
7586
|
200 => 'Continuous - Sweep Panorama',
|
7416
7587
|
},
|
@@ -7599,6 +7770,8 @@ my %pictureProfile2010 = (
|
|
7599
7770
|
WRITABLE => 1,
|
7600
7771
|
FIRST_ENTRY => 0,
|
7601
7772
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
7773
|
+
0x000b => { %exposureProgram2010 },
|
7774
|
+
0x000d => { Name => 'IntelligentAuto', PrintConv => { 0 => 'Off', 1 => 'On'} },
|
7602
7775
|
0x0019 => {
|
7603
7776
|
Name => 'LensZoomPosition',
|
7604
7777
|
Format => 'int16u',
|
@@ -7608,6 +7781,7 @@ my %pictureProfile2010 = (
|
|
7608
7781
|
},
|
7609
7782
|
);
|
7610
7783
|
|
7784
|
+
# Tag9404 (ref JR)
|
7611
7785
|
%Image::ExifTool::Sony::Tag9404b= (
|
7612
7786
|
PROCESS_PROC => \&ProcessEnciphered,
|
7613
7787
|
WRITE_PROC => \&WriteEnciphered,
|
@@ -7616,6 +7790,8 @@ my %pictureProfile2010 = (
|
|
7616
7790
|
WRITABLE => 1,
|
7617
7791
|
FIRST_ENTRY => 0,
|
7618
7792
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
7793
|
+
0x000c => { %exposureProgram2010 },
|
7794
|
+
0x000e => { Name => 'IntelligentAuto', PrintConv => { 0 => 'Off', 1 => 'On'} },
|
7619
7795
|
0x001e => {
|
7620
7796
|
Name => 'LensZoomPosition',
|
7621
7797
|
Format => 'int16u',
|
@@ -7630,6 +7806,19 @@ my %pictureProfile2010 = (
|
|
7630
7806
|
},
|
7631
7807
|
);
|
7632
7808
|
|
7809
|
+
# Tag9404 (ref JR)
|
7810
|
+
%Image::ExifTool::Sony::Tag9404c= (
|
7811
|
+
PROCESS_PROC => \&ProcessEnciphered,
|
7812
|
+
WRITE_PROC => \&WriteEnciphered,
|
7813
|
+
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
7814
|
+
FORMAT => 'int8u',
|
7815
|
+
WRITABLE => 1,
|
7816
|
+
FIRST_ENTRY => 0,
|
7817
|
+
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
7818
|
+
0x000b => { %exposureProgram2010 },
|
7819
|
+
0x000d => { Name => 'IntelligentAuto', PrintConv => { 0 => 'Off', 1 => 'On'} },
|
7820
|
+
);
|
7821
|
+
|
7633
7822
|
# Tag9405 (ref JR)
|
7634
7823
|
%Image::ExifTool::Sony::Tag9405a = (
|
7635
7824
|
PROCESS_PROC => \&ProcessEnciphered,
|
@@ -7720,9 +7909,9 @@ my %pictureProfile2010 = (
|
|
7720
7909
|
DATAMEMBER => [ 0x005e ],
|
7721
7910
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
7722
7911
|
NOTES => q{
|
7723
|
-
Valid for DSC-HX400V/
|
7724
|
-
WX220/WX350, ILCE-7/7M2/7R/7RM2/7S/7SM2/5000/5100/6000/
|
7725
|
-
ILCA-68/77M2/99M2.
|
7912
|
+
Valid for DSC-HX60V/HX350/HX400V/QX30/RX0/RX10/RX10M2/RX10M3/RX10M4/RX100M3/
|
7913
|
+
RX100M4/RX100M5/WX220/WX350, ILCE-7/7M2/7R/7RM2/7S/7SM2/9/5000/5100/6000/
|
7914
|
+
6300/6500/QX1, ILCA-68/77M2/99M2.
|
7726
7915
|
},
|
7727
7916
|
0x0004 => {
|
7728
7917
|
Name => 'SonyISO',
|
@@ -7875,7 +8064,7 @@ my %pictureProfile2010 = (
|
|
7875
8064
|
},
|
7876
8065
|
0x0342 => {
|
7877
8066
|
Name => 'LensZoomPosition',
|
7878
|
-
Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7SM2|6500|9)|DSC-(HX90V|RX10M2|RX10M3|RX100M4|RX100M5|WX500))/',
|
8067
|
+
Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7RM3|7SM2|6500|9)|DSC-(HX90V|RX0|RX10M2|RX10M3|RX10M4|RX100M4|RX100M5|WX500))/',
|
7879
8068
|
Format => 'int16u',
|
7880
8069
|
PrintConv => 'sprintf("%.0f%%",$val/10.24)',
|
7881
8070
|
PrintConvInv => '$val=~s/ ?%$//; $val * 10.24',
|
@@ -7892,7 +8081,7 @@ my %pictureProfile2010 = (
|
|
7892
8081
|
},
|
7893
8082
|
0x035c => {
|
7894
8083
|
Name => 'VignettingCorrParams',
|
7895
|
-
Condition => '$$self{Model} =~ /^(ILCA-99M2|ILCE-6500|
|
8084
|
+
Condition => '$$self{Model} =~ /^(ILCA-99M2|ILCE-(6500|7RM3|9))/',
|
7896
8085
|
Format => 'int16s[16]',
|
7897
8086
|
},
|
7898
8087
|
0x035a => {
|
@@ -7929,7 +8118,7 @@ my %pictureProfile2010 = (
|
|
7929
8118
|
},
|
7930
8119
|
0x03b8 => {
|
7931
8120
|
Name => 'ChromaticAberrationCorrParams',
|
7932
|
-
Condition => '$$self{Model} =~ /^(ILCE-9)/',
|
8121
|
+
Condition => '$$self{Model} =~ /^(ILCE-(7RM3|9))/',
|
7933
8122
|
Format => 'int16s[32]',
|
7934
8123
|
},
|
7935
8124
|
);
|
@@ -7943,8 +8132,9 @@ my %pictureProfile2010 = (
|
|
7943
8132
|
WRITABLE => 1,
|
7944
8133
|
FIRST_ENTRY => 0,
|
7945
8134
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
7946
|
-
# 0x0000: 1 for A37
|
7947
|
-
# 2 for A58/99V, NEX-3N/5R/5T/6/VG30/VG900, ILCE-3000/7/7R/5000/6000
|
8135
|
+
# 0x0000: 1 for SLT-A37/A57/A65/A77, NEX-5N/7/F3/VG20
|
8136
|
+
# 2 for SLT-A58/99V, NEX-3N/5R/5T/6/VG30/VG900, ILCA-68/77M2, ILCE-3000/3500/7/7M2/7R/7S/5000/6000
|
8137
|
+
# 3 for ILCA-99M2, ILCE-6300/6500/7RM2/7SM2/9
|
7948
8138
|
# 0x0001+0x0002: Int16u, seen 580 - 770: similar to "BatteryUnknown" ??
|
7949
8139
|
# 0x0005: int8u, seen 73 - 117: maybe Fahrenheit? Higher than "AmbientTemperature", but same trend.
|
7950
8140
|
0x0005 => {
|
@@ -7954,7 +8144,7 @@ my %pictureProfile2010 = (
|
|
7954
8144
|
PrintConv => 'sprintf("%.1f C",$val)',
|
7955
8145
|
PrintConvInv => '$val=~s/\s*C//; $val',
|
7956
8146
|
},
|
7957
|
-
# 0x0006: usually 0, seen non-zero values only for A99V and ILCE-7/7R: BatteryLevel Grip ?
|
8147
|
+
# 0x0006: usually 0, seen non-zero values only for SLT-A99V, ILCA-77M2/99M2 and ILCE-7/7R/7RM2/9: BatteryLevel Grip ?
|
7958
8148
|
0x0006 => {
|
7959
8149
|
Name => 'BatteryLevelGrip1',
|
7960
8150
|
Condition => '$$valPt !~ /^\x00/', # only valid when not 0
|
@@ -8079,17 +8269,17 @@ my %pictureProfile2010 = (
|
|
8079
8269
|
Format => 'int16u',
|
8080
8270
|
PrintConv => 'sprintf("%x.%.2x",$val>>8,$val&0xff)',
|
8081
8271
|
PrintConvInv => 'my @a=split(/\./,$val);(hex($a[0])<<8)|hex($a[1])',
|
8082
|
-
# camera
|
8083
|
-
#
|
8272
|
+
# E-mount versions seen for various cameras / camera-firmware versions:
|
8273
|
+
# - : info not present in CameraSettings3 for NEX-3/5/5C/C3/VG10E
|
8084
8274
|
# 1.14: NEX-5N/5R/6/7/F3/VG20E/VG30E/VG900 v1.00, NEX-5N v1.01, NEX-3N v0.90
|
8085
8275
|
# 1.20: NEX-3N v1.00, NEX-6 v1.01, NEX-7 v1.02, ILCE-3000 v1.00, ILCE-3500 v1.01
|
8086
8276
|
# 1.30: NEX-5T v1.00, NEX-6 v1.02/v1.03, NEX-7 v1.03
|
8087
8277
|
# 1.31: ILCE-7/7R v0.95/v1.00/v1.01, ILCE-5000
|
8088
8278
|
# 1.40: ILCE-7/7R v1.02/v1.10, ILCE-7S v1.00, ILCE-6000 v1.00/v1.10, ILCE-5100/QX1
|
8089
|
-
# 1.50: ILCE-7/7R/7S v1.20-v3.20, ILCE-7M2 v1.00-
|
8279
|
+
# 1.50: ILCE-7/7R/7S v1.20-v3.20, ILCE-7M2 v1.00-v4.00, ILCE-7RM2 v1.00-v3.00, ILCE-7SM2 v1.00-v2.10,
|
8090
8280
|
# ILCE-6000 v1.20-v3.20
|
8091
|
-
# 1.60: ILCE-6300 v1.00-v1.10, ILCE-6500 v1.00, ILCE-7RM2 v3.05-
|
8092
|
-
# 1.70: ILCE-9
|
8281
|
+
# 1.60: ILCE-6300 v1.00-v1.10, ILCE-6500 v1.00, ILCE-7RM2 v3.05-v4.00
|
8282
|
+
# 1.70: ILCE-7RM3/9
|
8093
8283
|
},
|
8094
8284
|
0x000d => {
|
8095
8285
|
Name => 'LensE-mountVersion',
|
@@ -8097,7 +8287,7 @@ my %pictureProfile2010 = (
|
|
8097
8287
|
Format => 'int16u',
|
8098
8288
|
PrintConv => 'sprintf("%x.%.2x",$val>>8,$val&0xff)',
|
8099
8289
|
PrintConvInv => 'my @a=split(/\./,$val);(hex($a[0])<<8)|hex($a[1])',
|
8100
|
-
# lens models:
|
8290
|
+
# E-mount versions seen for various lens models:
|
8101
8291
|
# 0.00: Unknown lenses/adapters
|
8102
8292
|
# 1.00: SEL18200LE, Sigma DN, Tamron Di III, Zeiss Touit
|
8103
8293
|
# 1.07: (Ver.01) original E-lenses (SEL16F28, SEL18200, SEL1855, SEL24F18Z, SEL30M35, SEL50F18, SEL55210) and LA-EA1
|
@@ -8112,9 +8302,10 @@ my %pictureProfile2010 = (
|
|
8112
8302
|
# 1.41: SELP18105G Ver.02
|
8113
8303
|
# 1.50: SEL28F20, SEL90M28G, Zeiss Batis 18mm/25mm/85mm/135mm, Zeiss Loxia 21mm, Zeiss Loxia 35mm/50mm Ver.02,
|
8114
8304
|
# Tokina Firin 20mm
|
8115
|
-
# 1.60: SEL1224G, SEL1635GM, SEL2470GM, SEL50F14Z, SEL50F18F, SEL50M28, SEL70200GM, SEL70300G,
|
8116
|
-
# SEL100F28GM, SEL100400GM, Sigma 30mm F1.4 DC DN, Sigma MC-11, Samyang AF 14mm/50mm,
|
8117
|
-
#
|
8305
|
+
# 1.60: SEL1224G, SEL1635GM, SELP18110G, SEL2470GM, SEL24105G, SEL50F14Z, SEL50F18F, SEL50M28, SEL70200GM, SEL70300G,
|
8306
|
+
# SEL85F14GM, SEL85F18, SEL100F28GM, SEL100400GM, Sigma 30mm F1.4 DC DN, Sigma MC-11, Samyang AF 14mm/50mm,
|
8307
|
+
# Voigtlander 15mm
|
8308
|
+
# 1.70: LA-EA3 Ver.02, Samyang AF 35mm, Voigtlander 10mm/12mm/40mm/65mm, Zeiss Loxia 85mm
|
8118
8309
|
},
|
8119
8310
|
0x0015 => {
|
8120
8311
|
Name => 'LensFirmwareVersion',
|
@@ -8467,7 +8658,7 @@ my %pictureProfile2010 = (
|
|
8467
8658
|
return \ "Binary data 2640 bytes" unless $et->Options('Binary');
|
8468
8659
|
my @dat = unpack('v*', $val);
|
8469
8660
|
# TIFF header for a 16-bit RGB 10dpi 44x30 image
|
8470
|
-
$val = MakeTiffHeader(44,30,3,16,10);
|
8661
|
+
$val = Image::ExifTool::MakeTiffHeader(44,30,3,16,10);
|
8471
8662
|
# re-order data to RGB pixels - use same value for R, G and B
|
8472
8663
|
my ($i, @val);
|
8473
8664
|
for ($i=0; $i<44*30; ++$i) {
|
@@ -9268,41 +9459,22 @@ sub ProcessSonyPIC($$$)
|
|
9268
9459
|
}
|
9269
9460
|
|
9270
9461
|
#------------------------------------------------------------------------------
|
9271
|
-
#
|
9272
|
-
# Inputs: 0)
|
9273
|
-
# Returns:
|
9274
|
-
|
9275
|
-
|
9462
|
+
# MeterInfo value conversions
|
9463
|
+
# Inputs: 0) value
|
9464
|
+
# Returns: converted value
|
9465
|
+
sub ConvMeter1($)
|
9466
|
+
{
|
9467
|
+
my $val = shift;
|
9468
|
+
return \$val unless length($val) == 90;
|
9469
|
+
my @a = unpack("SLLSLLSLLSLLSLLSLLSLLSLLSLL",$val);
|
9470
|
+
return join ' ', @a;
|
9471
|
+
}
|
9472
|
+
sub ConvMeter2($)
|
9276
9473
|
{
|
9277
|
-
my
|
9278
|
-
|
9279
|
-
my
|
9280
|
-
|
9281
|
-
my $hdr =
|
9282
|
-
"\x49\x49\x2a\0\x08\0\0\0\x0e\0" . # 0x00 14 menu entries:
|
9283
|
-
"\xfe\x00\x04\0\x01\0\0\0\x00\0\0\0" . # 0x0a SubfileType = 0
|
9284
|
-
"\x00\x01\x04\0\x01\0\0\0" . Set32u($w) . # 0x16 ImageWidth
|
9285
|
-
"\x01\x01\x04\0\x01\0\0\0" . Set32u($h) . # 0x22 ImageHeight
|
9286
|
-
"\x02\x01\x03\0" . Set32u($cols) . # 0x2e BitsPerSample
|
9287
|
-
Set32u($cols == 1 ? $bits : 0xb6) .
|
9288
|
-
"\x03\x01\x03\0\x01\0\0\0\x01\0\0\0" . # 0x3a Compression = 1
|
9289
|
-
"\x06\x01\x03\0\x01\0\0\0" . # 0x46 PhotometricInterpretation
|
9290
|
-
Set32u($cols == 1 ? 1 : 2) .
|
9291
|
-
"\x11\x01\x04\0\x01\0\0\0\xcc\0\0\0" . # 0x52 StripOffsets = 0xcc
|
9292
|
-
"\x15\x01\x03\0\x01\0\0\0" . Set32u($cols) .# 0x5e SamplesPerPixel
|
9293
|
-
"\x16\x01\x04\0\x01\0\0\0" . Set32u($h) . # 0x6a RowsPerStrip
|
9294
|
-
"\x17\x01\x04\0\x01\0\0\0" . # 0x76 StripByteCounts
|
9295
|
-
Set32u($w * $h * $cols * int(($bits+7)/8)) .
|
9296
|
-
"\x1a\x01\x05\0\x01\0\0\0\xbc\0\0\0" . # 0x82 XResolution
|
9297
|
-
"\x1b\x01\x05\0\x01\0\0\0\xc4\0\0\0" . # 0x8e YResolution
|
9298
|
-
"\x1c\x01\x03\0\x01\0\0\0\x01\0\0\0" . # 0x9a PlanarConfiguration = 1
|
9299
|
-
"\x28\x01\x03\0\x01\0\0\0\x02\0\0\0" . # 0xa6 ResolutionUnit = 2
|
9300
|
-
"\0\0\0\0" . # 0xb2 (no IFD1)
|
9301
|
-
(Set16u($bits) x 3) . # 0xb6 BitsPerSample value
|
9302
|
-
Set32u($res) . "\x01\0\0\0" . # 0xbc XResolution = 72
|
9303
|
-
Set32u($res) . "\x01\0\0\0"; # 0xc4 YResolution = 72
|
9304
|
-
SetByteOrder($saveOrder); # 0xcc (data goes here)
|
9305
|
-
return $hdr;
|
9474
|
+
my $val = shift;
|
9475
|
+
return \$val unless length($val) == 110;
|
9476
|
+
my @a = unpack("SLLSLLSLLSLLSLLSLLSLLSLLSLLSLLSLL",$val);
|
9477
|
+
return join ' ', @a;
|
9306
9478
|
}
|
9307
9479
|
|
9308
9480
|
#------------------------------------------------------------------------------
|
@@ -9316,6 +9488,7 @@ sub ConvLensSpec($)
|
|
9316
9488
|
return \$val unless length($val) == 8;
|
9317
9489
|
my @a = unpack("H2H4H4H2H2H2",$val);
|
9318
9490
|
$a[1] += 0; $a[2] += 0; # remove leading zeros from focal lengths
|
9491
|
+
s/([a-f])/hex($1)/e foreach @a[3,4]; # convert hex digits (ie. "b0" = f11)
|
9319
9492
|
$a[3] /= 10; $a[4] /= 10; # divide f-numbers by 10
|
9320
9493
|
return join ' ', @a;
|
9321
9494
|
}
|
@@ -9325,6 +9498,7 @@ sub ConvInvLensSpec($)
|
|
9325
9498
|
my @a=split(" ", $val);
|
9326
9499
|
return $val unless @a == 6;
|
9327
9500
|
$a[3] *= 10; $a[4] *= 10; # f-numbers are multiplied by 10
|
9501
|
+
s/^(\d{2})0$/sprintf('%x0',$1)/e foreach @a[3,4];
|
9328
9502
|
$_ = hex foreach @a; # convert from hex
|
9329
9503
|
return pack 'CnnCCC', @a;
|
9330
9504
|
}
|