exiftool_vendored 11.55.0 → 11.57.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 +19 -0
- data/bin/MANIFEST +3 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +3 -4
- data/bin/lib/Image/ExifTool.pm +20 -3
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +13 -4
- data/bin/lib/Image/ExifTool/Canon.pm +11 -1
- data/bin/lib/Image/ExifTool/DV.pm +1 -0
- data/bin/lib/Image/ExifTool/Exif.pm +25 -9
- data/bin/lib/Image/ExifTool/JPEG.pm +5 -1
- data/bin/lib/Image/ExifTool/Lytro.pm +1 -0
- data/bin/lib/Image/ExifTool/MOI.pm +1 -0
- data/bin/lib/Image/ExifTool/Minolta.pm +8 -125
- data/bin/lib/Image/ExifTool/Motorola.pm +119 -9
- data/bin/lib/Image/ExifTool/Nikon.pm +12 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +1 -0
- data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -0
- data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +13 -1
- data/bin/lib/Image/ExifTool/Sony.pm +92 -64
- data/bin/lib/Image/ExifTool/TagLookup.pm +6 -4
- data/bin/lib/Image/ExifTool/TagNames.pod +476 -468
- data/bin/lib/Image/ExifTool/Validate.pm +2 -2
- data/bin/lib/Image/ExifTool/WriteXMP.pl +11 -9
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
@@ -4,6 +4,8 @@
|
|
4
4
|
# Description: Read Motorola meta information
|
5
5
|
#
|
6
6
|
# Revisions: 2015/10/29 - P. Harvey Created
|
7
|
+
#
|
8
|
+
# References: 1) Neal Krawetz private communication
|
7
9
|
#------------------------------------------------------------------------------
|
8
10
|
|
9
11
|
package Image::ExifTool::Motorola;
|
@@ -12,7 +14,7 @@ use strict;
|
|
12
14
|
use vars qw($VERSION);
|
13
15
|
use Image::ExifTool::Exif;
|
14
16
|
|
15
|
-
$VERSION = '1.
|
17
|
+
$VERSION = '1.01';
|
16
18
|
|
17
19
|
# Motorola makernotes tags (ref PH)
|
18
20
|
%Image::ExifTool::Motorola::Main = (
|
@@ -20,14 +22,122 @@ $VERSION = '1.00';
|
|
20
22
|
CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
|
21
23
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
22
24
|
WRITABLE => 1,
|
23
|
-
#
|
24
|
-
#
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
#
|
29
|
-
|
30
|
-
#
|
25
|
+
# 0x54e0 - int8u: 1
|
26
|
+
# 0x54f0 - float
|
27
|
+
0x5500 => { Name => 'BuildNumber', Writable => 'string' }, #1 (eg. 'MPJ24.139-23.4')
|
28
|
+
0x5501 => { Name => 'SerialNumber', Writable => 'string' }, #1 (eg. 'ZY2238TJ4V')
|
29
|
+
# 0x5502 - int8u
|
30
|
+
# 0x5503 - int8u
|
31
|
+
# 0x5510 - int8u: 0,1
|
32
|
+
# 0x5511 - int32u (3 of these tags for some cameras)
|
33
|
+
# 0x5512 - int32u
|
34
|
+
# 0x5520 - int16s
|
35
|
+
# 0x5530 - string: 'continuous-picture','auto','continuous-video'
|
36
|
+
# 0x5540 - int8u: 95
|
37
|
+
# 0x5550 - int8u: 85,90
|
38
|
+
# 0x5560 - string: 'auto'
|
39
|
+
# 0x5570 - string: 'auto','auto-hdr'
|
40
|
+
# 0x5580 - int32s: 9000,14949,15000,24000
|
41
|
+
# 0x5590 - int32s: 30000
|
42
|
+
# 0x55a0 - int32s: 960,1280,1440
|
43
|
+
# 0x55b0 - int32s: 720,960,1080
|
44
|
+
# 0x55c0 - int32s: 30
|
45
|
+
# 0x55d0 - string: 'yuv420sp'
|
46
|
+
# 0x55e0-0x55e9 - int16u
|
47
|
+
# 0x55f0 - int8u: 10
|
48
|
+
# 0x55f1 - int8u: 13
|
49
|
+
# 0x55f2-0x55f5 - int16u[130]
|
50
|
+
# 0x5600 - int8u: 0,16
|
51
|
+
# 0x5601 - int16u[16]
|
52
|
+
# 0x5602 - int32u[3,50]
|
53
|
+
# 0x5603 - int32u: 0
|
54
|
+
# 0x6400 - string: 'AUTO','ON','OFF'
|
55
|
+
# 0x6401 - string: 'HDR'
|
56
|
+
# 0x6410 - string: 'NO','YES'
|
57
|
+
# 0x6420 - int32s: 0 (only exists in HDR images?)
|
58
|
+
# 0x6430 - float
|
59
|
+
# 0x6431 - int8u: 0,1
|
60
|
+
# 0x6432 - int8u: 0,79,100
|
61
|
+
# 0x6433 - int8u: 0,1
|
62
|
+
# 0x6434 - int8u: 0,65,100
|
63
|
+
# 0x6435 - int8u: 1,6,24
|
64
|
+
# 0x6436 - int8u: 55,60
|
65
|
+
# 0x6437 - int8u: 30,35,40
|
66
|
+
# 0x6438 - int8u: 24,40
|
67
|
+
# 0x6439 - int8u: 15,50
|
68
|
+
# 0x643a - int8u: 0,20
|
69
|
+
# 0x643b - string: '2,8,-4','2,10,-4',''
|
70
|
+
# 0x643c - int32s
|
71
|
+
# 0x643d - float
|
72
|
+
# 0x6440 - int8u[N]: 0's and 1's
|
73
|
+
# 0x6441 - int8u[N]
|
74
|
+
# 0x6442,0x6443 - int8u[N]: 0's and 1's
|
75
|
+
# 0x644d - string: 'YES'
|
76
|
+
# 0x644f - float
|
77
|
+
# 0x6450 - float
|
78
|
+
# 0x6451 - float: 0.699999988079071
|
79
|
+
# 0x6452 - int8u: 1
|
80
|
+
# 0x6470 - string: 'AUTO'
|
81
|
+
# 0x6471 - int8u: 1
|
82
|
+
# 0x6473 - int8u: 24
|
83
|
+
# 0x6474 - int8u: 10
|
84
|
+
# 0x6475 - int32u[24]
|
85
|
+
# 0x6476 - int32u: 2
|
86
|
+
# 0x6490 - int8u: 0
|
87
|
+
# 0x64c0 - int32s: 0,2
|
88
|
+
# 0x64c1 - int32u: 1,4,64
|
89
|
+
# 0x64c2,0x64c3 - int32s
|
90
|
+
# 0x64c4 - int32s
|
91
|
+
# 0x64c5 - int32u
|
92
|
+
# 0x6500 - int8u: 1
|
93
|
+
# 0x6501 - string: 'Luma-Chroma Plane','Chroma only' or int8u: 0
|
94
|
+
# 0x6502 - string: 'Luma-Chroma Plane','Chroma only','' or int8u: 1,255
|
95
|
+
# 0x6504 - int32s
|
96
|
+
# 0x6530-0x6535 - int32s
|
97
|
+
# 0x6600-0x6605 - int8u
|
98
|
+
# 0x6606 - string: 'D50','TL84','5000' - illuminant? color temperature?
|
99
|
+
# 0x6607 - string: 'D50g','D65','3000' - illuminant? color temperature?
|
100
|
+
# 0x6608 - string: 'A'
|
101
|
+
# 0x6609-0x660e - float
|
102
|
+
# 0x660f - int12u
|
103
|
+
# 0x6612-0x661b - int16u
|
104
|
+
# 0x661d - int16u
|
105
|
+
# 0x661e-0x6635 - float
|
106
|
+
# 0x6637 - int8u[212]
|
107
|
+
# 0x6640,0x6641 - int8u
|
108
|
+
# 0x6642-0x6649 - int16u
|
109
|
+
# 0x664e - in8u
|
110
|
+
# 0x664f-0x6652 - int16u
|
111
|
+
# 0x6653 - string: 'QC','AL'
|
112
|
+
# 0x6654-0x6656 - int16u
|
113
|
+
# 0x665d - int8u: 0
|
114
|
+
0x665e => { Name => 'Sensor', Writable => 'string' }, # (eg. 'BACK,IMX230')
|
115
|
+
# 0x6700 - string: eg. 'eac040d0','333e1721','001b7b3a','000000000005040f'
|
116
|
+
# 0x6701 - string: eg. '14048001',940140230','940140190'
|
117
|
+
# 0x6702 - string: '0L','1L','0S','3S','32','33,'42'
|
118
|
+
# 0x6703 - string: 'PR','SEG','LIG','LI','SHV','SH','SO'
|
119
|
+
# 0x6704 - string: 'DO','GX1','GZ0','GZ1','GX2','VI','VI1','VI2','GU',''
|
120
|
+
0x6705 => { Name => 'ManufactureDate', Writable => 'string' }, # (NC, eg. '03Jun2015')
|
121
|
+
# 0x6706 - string: eg. '30454e4e','42%','01%','01','1','904c2ca2'
|
122
|
+
# 0x6707 - string: eg. '1','25a2ca16','002371e1','69'
|
123
|
+
# 0x6708-0x670c - string or int16u (string may be firmware revision)
|
124
|
+
# 0x6800 - int32u: 1,2
|
125
|
+
# 0x6801,0x6802 - float
|
126
|
+
# 0x6803 - int16u
|
127
|
+
# 0x6804,0x6805 - float
|
128
|
+
# 0x6806 - int16u,int32s
|
129
|
+
# 0x6807 - int32s,int32u[3]
|
130
|
+
# 0x6808 - int32u,int32u[3]
|
131
|
+
# 0x6809,0x680a - float[3]
|
132
|
+
# 0x680d - int8u: 0
|
133
|
+
# 0x680e - float: 0
|
134
|
+
# 0x7000 - int8u: 0,2
|
135
|
+
# 0x7001,0x7002 - int16s
|
136
|
+
# 0x7003-0x7005 - int16u
|
137
|
+
# 0x7100 - string: '0-7'
|
138
|
+
# 0x7101 - string: '4-7','0-7'
|
139
|
+
# 0x7102 - string: '0-3',''
|
140
|
+
# 0x7103,0x7104 - string: comma-separated lists of numbers
|
31
141
|
);
|
32
142
|
|
33
143
|
1; # end
|
@@ -60,7 +60,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
60
60
|
use Image::ExifTool::Exif;
|
61
61
|
use Image::ExifTool::GPS;
|
62
62
|
|
63
|
-
$VERSION = '3.
|
63
|
+
$VERSION = '3.67';
|
64
64
|
|
65
65
|
sub LensIDConv($$$);
|
66
66
|
sub ProcessNikonAVI($$$);
|
@@ -2028,6 +2028,17 @@ my %binaryDataAttrs = (
|
|
2028
2028
|
Name => 'SceneAssist',
|
2029
2029
|
Writable => 'string',
|
2030
2030
|
},
|
2031
|
+
0x009d => { #NealKrawetz
|
2032
|
+
Name => 'DateStampMode',
|
2033
|
+
Writable => 'int16u',
|
2034
|
+
Notes => 'feature to imprint date/time on image',
|
2035
|
+
PrintConv => { #PH
|
2036
|
+
0 => 'Off',
|
2037
|
+
1 => 'Date & Time',
|
2038
|
+
2 => 'Date',
|
2039
|
+
3 => 'Date Counter', # (NC) (D3500)
|
2040
|
+
},
|
2041
|
+
},
|
2031
2042
|
0x009e => { #JD
|
2032
2043
|
Name => 'RetouchHistory',
|
2033
2044
|
Writable => 'int16u',
|
@@ -32,6 +32,8 @@
|
|
32
32
|
# 20) https://developer.apple.com/legacy/library/documentation/quicktime/reference/QT7-1_Update_Reference/QT7-1_Update_Reference.pdf
|
33
33
|
# 21) Francois Bonzon private communication
|
34
34
|
# 22) https://developer.apple.com/library/mac/documentation/QuickTime/QTFF/Metadata/Metadata.html
|
35
|
+
# 23) http://atomicparsley.sourceforge.net/mpeg-4files.html
|
36
|
+
# 24) https://github.com/sergiomb2/libmp4v2/wiki/iTunesMetadata
|
35
37
|
#------------------------------------------------------------------------------
|
36
38
|
|
37
39
|
package Image::ExifTool::QuickTime;
|
@@ -42,7 +44,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
42
44
|
use Image::ExifTool::Exif;
|
43
45
|
use Image::ExifTool::GPS;
|
44
46
|
|
45
|
-
$VERSION = '2.
|
47
|
+
$VERSION = '2.35';
|
46
48
|
|
47
49
|
sub ProcessMOV($$;$);
|
48
50
|
sub ProcessKeys($$$);
|
@@ -1611,6 +1613,7 @@ my %eeBox = (
|
|
1611
1613
|
},
|
1612
1614
|
date => { # (NC)
|
1613
1615
|
Name => 'DateTimeOriginal',
|
1616
|
+
Description => 'Date/Time Original',
|
1614
1617
|
Groups => { 2 => 'Time' },
|
1615
1618
|
Shift => 'Time',
|
1616
1619
|
ValueConv => q{
|
@@ -2791,6 +2794,7 @@ my %eeBox = (
|
|
2791
2794
|
covr => { Name => 'CoverArt', Groups => { 2 => 'Preview' } },
|
2792
2795
|
cpil => { #10
|
2793
2796
|
Name => 'Compilation',
|
2797
|
+
Format => 'int8u', #23
|
2794
2798
|
PrintConv => { 0 => 'No', 1 => 'Yes' },
|
2795
2799
|
},
|
2796
2800
|
disk => {
|
@@ -2801,6 +2805,7 @@ my %eeBox = (
|
|
2801
2805
|
},
|
2802
2806
|
pgap => { #10
|
2803
2807
|
Name => 'PlayGap',
|
2808
|
+
Format => 'int8u', #23
|
2804
2809
|
PrintConv => {
|
2805
2810
|
0 => 'Insert Gap',
|
2806
2811
|
1 => 'No Gap',
|
@@ -2822,6 +2827,7 @@ my %eeBox = (
|
|
2822
2827
|
#
|
2823
2828
|
akID => { #10
|
2824
2829
|
Name => 'AppleStoreAccountType',
|
2830
|
+
Format => 'int8u', #24
|
2825
2831
|
PrintConv => {
|
2826
2832
|
0 => 'iTunes',
|
2827
2833
|
1 => 'AOL',
|
@@ -2845,6 +2851,7 @@ my %eeBox = (
|
|
2845
2851
|
gnre => { #10
|
2846
2852
|
Name => 'Genre',
|
2847
2853
|
Avoid => 1,
|
2854
|
+
# (Note: not written as int16u if numerical, although it should be)
|
2848
2855
|
PrintConv => q{
|
2849
2856
|
return $val unless $val =~ /^\d+$/;
|
2850
2857
|
require Image::ExifTool::ID3;
|
@@ -5238,12 +5245,14 @@ my %eeBox = (
|
|
5238
5245
|
grup => { Name => 'Grouping', Avoid => 1 }, #10
|
5239
5246
|
hdvd => { #10
|
5240
5247
|
Name => 'HDVideo',
|
5248
|
+
Format => 'int8u', #24
|
5241
5249
|
PrintConv => { 0 => 'No', 1 => 'Yes' },
|
5242
5250
|
},
|
5243
5251
|
keyw => 'Keyword', #7
|
5244
5252
|
ldes => 'LongDescription', #10
|
5245
5253
|
pcst => { #7
|
5246
5254
|
Name => 'Podcast',
|
5255
|
+
Format => 'int8u', #23
|
5247
5256
|
PrintConv => { 0 => 'No', 1 => 'Yes' },
|
5248
5257
|
},
|
5249
5258
|
perf => 'Performer',
|
@@ -5255,6 +5264,7 @@ my %eeBox = (
|
|
5255
5264
|
purl => 'PodcastURL', #7
|
5256
5265
|
rtng => { #10
|
5257
5266
|
Name => 'Rating',
|
5267
|
+
Format => 'int8u', #23
|
5258
5268
|
PrintConv => {
|
5259
5269
|
0 => 'none',
|
5260
5270
|
1 => 'Explicit',
|
@@ -5432,6 +5442,7 @@ my %eeBox = (
|
|
5432
5442
|
sosn => 'SortShow', #10
|
5433
5443
|
stik => { #10
|
5434
5444
|
Name => 'MediaType',
|
5445
|
+
Format => 'int8u', #23
|
5435
5446
|
PrintConvColumns => 2,
|
5436
5447
|
PrintConv => { #(http://weblog.xanga.com/gryphondwb/615474010/iphone-ringtones---what-did-itunes-741-really-do.html)
|
5437
5448
|
0 => 'Movie (old)', #forum9059 (was Movie)
|
@@ -5463,6 +5474,7 @@ my %eeBox = (
|
|
5463
5474
|
yrrc => 'Year', #(ffmpeg source)
|
5464
5475
|
itnu => { #PH (iTunes 10.5)
|
5465
5476
|
Name => 'iTunesU',
|
5477
|
+
Format => 'int8s',
|
5466
5478
|
Description => 'iTunes U',
|
5467
5479
|
PrintConv => { 0 => 'No', 1 => 'Yes' },
|
5468
5480
|
},
|
@@ -27,12 +27,12 @@
|
|
27
27
|
package Image::ExifTool::Sony;
|
28
28
|
|
29
29
|
use strict;
|
30
|
-
use vars qw($VERSION %sonyLensTypes);
|
30
|
+
use vars qw($VERSION %sonyLensTypes %sonyLensTypes2);
|
31
31
|
use Image::ExifTool qw(:DataAccess :Utils);
|
32
32
|
use Image::ExifTool::Exif;
|
33
33
|
use Image::ExifTool::Minolta;
|
34
34
|
|
35
|
-
$VERSION = '3.
|
35
|
+
$VERSION = '3.11';
|
36
36
|
|
37
37
|
sub ProcessSRF($$$);
|
38
38
|
sub ProcessSR2($$$);
|
@@ -52,7 +52,7 @@ sub PrintInvLensSpec($;$$);
|
|
52
52
|
|
53
53
|
# Sony E-mount lenses
|
54
54
|
# (NOTE: these should be kept in sync with the 65535 entries in %minoltaLensTypes)
|
55
|
-
|
55
|
+
%sonyLensTypes2 = (
|
56
56
|
Notes => 'Lens type numbers for Sony E-mount lenses used by NEX/ILCE models.',
|
57
57
|
0 => 'Unknown E-mount lens or other lens',
|
58
58
|
0.1 => 'Sigma 19mm F2.8 [EX] DN',
|
@@ -193,8 +193,11 @@ my %sonyLensTypes2 = (
|
|
193
193
|
50503 => 'Sigma 16mm F1.4 DC DN | C', #JR (017)
|
194
194
|
50507 => 'Sigma 105mm F1.4 DG HSM | A', #IB (018)
|
195
195
|
50508 => 'Sigma 56mm F1.4 DC DN | C', #JR (018)
|
196
|
-
50512 => 'Sigma 70-200mm F2.8 DG OS HSM | S', #IB (018)
|
196
|
+
50512 => 'Sigma 70-200mm F2.8 DG OS HSM | S + MC-11', #IB (018) (JR added "+ MC-11")
|
197
197
|
50513 => 'Sigma 70mm F2.8 DG MACRO | A', #JR (018)
|
198
|
+
50514 => 'Sigma 45mm F2.8 DG DN | C', #IB/JR (019)
|
199
|
+
50515 => 'Sigma 35mm F1.2 DG DN | A', #IB/JR (019)
|
200
|
+
50516 => 'Sigma 14-24mm F2.8 DG DN | A', #IB/JR (019)
|
198
201
|
|
199
202
|
50992 => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR
|
200
203
|
50993 => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB
|
@@ -933,7 +936,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
933
936
|
# unknown offsets or values for DSC-HX60V/HX350/HX400V/QX10/QX30/QX100/RX10/RX100M2/RX100M3/WX220/WX350,
|
934
937
|
# ILCA-68/77M2, ILCE-5000/5100/6000/7/7M2/7R/7S/QX1, Stellar2, Lusso
|
935
938
|
# unknown offsets or values for DSC-HX80/HX90V/RX0/RX1RM2/RX10M2/RX10M3/RX100M4/RX100M5/WX500, ILCE-6300/6500/7RM2/7SM2, ILCA-99M2
|
936
|
-
# unknown offsets or values for ILCE-6400/7M3/7RM3/9, DSC-RX10M4/RX100M6/RX100M5A/HX99
|
939
|
+
# unknown offsets or values for ILCE-6400/7M3/7RM3/7RM4/9, DSC-RX0M2/RX10M4/RX100M6/RX100M5A/HX99
|
937
940
|
{
|
938
941
|
Name => 'Tag2010a', # ad
|
939
942
|
Condition => '$$self{Model} =~ /^NEX-5N$/',
|
@@ -974,7 +977,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
974
977
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010h' },
|
975
978
|
},{
|
976
979
|
Name => 'Tag2010i', # ?
|
977
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|9)|DSC-(RX10M4|RX100M6|RX100M5A|HX99|RX0M2))\b/',
|
980
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|7RM4|9)|DSC-(RX10M4|RX100M6|RX100M5A|HX99|RX0M2))\b/',
|
978
981
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010i' },
|
979
982
|
},{
|
980
983
|
Name => 'Tag_0x2010',
|
@@ -1032,6 +1035,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1032
1035
|
1 => 'Flash Fired',
|
1033
1036
|
2 => 'External Flash Fired',
|
1034
1037
|
3 => 'Wireless Controlled Flash Fired', # (NC) seen for ILCE-9 and ILCE-7M3 images
|
1038
|
+
# 5 => 'External Flash ???', # seen for ILCE-7RM4
|
1035
1039
|
},
|
1036
1040
|
},
|
1037
1041
|
# 0x2018 - something with external flash: seen 1 only when 0x2017 = 2
|
@@ -1491,14 +1495,14 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1491
1495
|
# from mid-2015: ILCE-7RM2/7SM2/6300 and newer models use different offsets
|
1492
1496
|
{
|
1493
1497
|
Name => 'Tag9050a',
|
1494
|
-
Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(6300|6400|6500|7M3|7RM2|7RM3|7SM2|9)|ILCA-99M2)/',
|
1498
|
+
Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(6300|6400|6500|7M3|7RM2|7RM3|7RM4|7SM2|9)|ILCA-99M2)/',
|
1495
1499
|
SubDirectory => {
|
1496
1500
|
TagTable => 'Image::ExifTool::Sony::Tag9050a',
|
1497
1501
|
ByteOrder => 'LittleEndian',
|
1498
1502
|
},
|
1499
1503
|
},{
|
1500
1504
|
Name => 'Tag9050b',
|
1501
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6300|6400|6500|7M3|7RM2|7RM3|7SM2|9)|ILCA-99M2)/',
|
1505
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6300|6400|6500|7M3|7RM2|7RM3|7RM4|7SM2|9)|ILCA-99M2)/',
|
1502
1506
|
SubDirectory => {
|
1503
1507
|
TagTable => 'Image::ExifTool::Sony::Tag9050b',
|
1504
1508
|
ByteOrder => 'LittleEndian',
|
@@ -1516,7 +1520,8 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1516
1520
|
# 0xd0 (e) H90, W650, W690: tag9400 decoding appears not valid/different
|
1517
1521
|
# 0x23 (e) for DSC-RX10/HX60V/HX350/HX400V/WX220/WX350, ILCE-7/7R/5000/6000, ILCA-68/77M2
|
1518
1522
|
# 0x24 (e) for ILCA-99M2,ILCE-5100/6300/6500/7M2/7RM2/7S/7SM2/QX1, DSC-HX80/HX90V/QX30/RX0/RX100M3/RX100M4/RX100M5/RX10M2/RX10M3/RX1RM2/WX500
|
1519
|
-
# 0x26 (e) for ILCE-6400/7M3/7RM3/9, DSC-RX10M4/RX100M5A/RX100M6/HX99
|
1523
|
+
# 0x26 (e) for ILCE-6400/7M3/7RM3/9, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/HX99
|
1524
|
+
# 0x28 (e) for ILCE-7RM4
|
1520
1525
|
# first byte decoded: 40, 204, 202, 27, 58, 62, 48, 215 respectively
|
1521
1526
|
{
|
1522
1527
|
Name => 'Tag9400a',
|
@@ -1531,7 +1536,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1531
1536
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9400b' },
|
1532
1537
|
},{
|
1533
1538
|
Name => 'Tag9400c',
|
1534
|
-
Condition => '$$valPt =~ /^[\x23\x24\x26]/',
|
1539
|
+
Condition => '$$valPt =~ /^[\x23\x24\x26\x28]/',
|
1535
1540
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9400c' },
|
1536
1541
|
},{
|
1537
1542
|
Name => 'Sony_0x9400',
|
@@ -1586,11 +1591,12 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1586
1591
|
# 7c 00 fe 0f 0x0adb (w) ILCE-9 v0.01-v2.00
|
1587
1592
|
# 7d 00 fe 0f 0x0adb (w) ILCE-9 v2.10-v4.10
|
1588
1593
|
# 7f 00 fa 0f 0x0add (x) DSC-RX10M4 v1.00
|
1589
|
-
# 80 00 fa 0f 0x0add (x) ILCE-7M3/7RM3 v1.00-
|
1594
|
+
# 80 00 fa 0f 0x0add (x) ILCE-7M3/7RM3 v1.00-v3.01
|
1590
1595
|
# 82 00 fc 0f 0x0ad9 (y) DSC-RX100M5A v1.00, DSC-RX100M6 v1.00
|
1591
1596
|
# 90 00 fe 0f 0x098f? (z) DSC-HX99 v1.00
|
1592
|
-
# 92 10 ff 0f
|
1593
|
-
# 94 00 ce 0b 0x0879 (zb) ILCE-9
|
1597
|
+
# 92 10 ff 0f 0x0990 (za) ILCE-6400 v1.00
|
1598
|
+
# 94 00 ce 0b 0x0879 (zb) ILCE-9 v5.0x, DSC-RX0M2
|
1599
|
+
# 98 00 db 0c 0x088a (zc) ILCE-7RM4 v1.00
|
1594
1600
|
#
|
1595
1601
|
# 0x0004 - (RX100: 0 or 1. subsequent data valid only if 1 - PH)
|
1596
1602
|
# 0x0007 => {
|
@@ -1629,7 +1635,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1629
1635
|
# 0x1d 0x01 DSC-RX10M4
|
1630
1636
|
# 0x1e 0x01 ILCE-7M3/7RM3, DSC-RX100M5A/RX100M6
|
1631
1637
|
# 0x1f 0x01 DSC-HX99
|
1632
|
-
# 0x20 0x01 ILCE-6400, ILCE-9 v5.
|
1638
|
+
# 0x20 0x01 ILCE-6400/7RM4, ILCE-9 v5.0x, DSC-RX0M2
|
1633
1639
|
# var var SLT-A58/A99V, HV, ILCA-68/77M2/99M2
|
1634
1640
|
# 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)
|
1635
1641
|
# 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/',
|
@@ -1653,7 +1659,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1653
1659
|
# 13 0 9 2 2 DSC-QX10/QX100/RX100M2
|
1654
1660
|
# 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
|
1655
1661
|
# 16 0 85 2 2 DSC-HX80/HX90V/WX500
|
1656
|
-
# 17 0 232 1 2 DSC-RX0/RX1RM2/RX10M2/RX10M3/RX10M4/RX100M4/RX100M5/RX100M5A/RX100M6/HX99, ILCE-6300/6400/6500/7M3/7RM2/7RM3/7SM2/9, ILCA-99M2
|
1662
|
+
# 17 0 232 1 2 DSC-RX0/RX0M2/RX1RM2/RX10M2/RX10M3/RX10M4/RX100M4/RX100M5/RX100M5A/RX100M6/HX99, ILCE-6300/6400/6500/7M3/7RM2/7RM3/7RM4/7SM2/9, ILCA-99M2
|
1657
1663
|
# other values for Panorama images and several other models
|
1658
1664
|
0x9404 => [{
|
1659
1665
|
Name => 'Tag9404a',
|
@@ -1687,7 +1693,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1687
1693
|
# 142 var (0x25 = 37 var enc.) DSC-HX80/HX90V/RX1RM2/RX10M2/RX10M3/RX100M4/WX500, ILCE-6300/7RM2/7SM2
|
1688
1694
|
# 144 var (0xe1 = 225 var enc.) DSC-RX100M5
|
1689
1695
|
# 145 var (0x76 = 118 var enc.) ILCA-99M2, ILCE-6500, DSC-RX0
|
1690
|
-
# 163 var (0x8b = 139 var enc.) ILCE-6400/7M3/7RM3/9, DSC-RX10M4/RX100M5A/RX100M6/HX99
|
1696
|
+
# 163 var (0x8b = 139 var enc.) ILCE-6400/7M3/7RM3/7RM4/9, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/HX99
|
1691
1697
|
0x9405 => [{
|
1692
1698
|
Name => 'Tag9405a',
|
1693
1699
|
# first byte must be 0x1b or 0x40 or 0x7d
|
@@ -1704,9 +1710,10 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1704
1710
|
}],
|
1705
1711
|
0x9406 => [{
|
1706
1712
|
Name => 'Tag9406',
|
1707
|
-
# - first byte must be 0x01 or 0x02 (enciphered 0x01 or 0x08),
|
1713
|
+
# - first byte must be 0x01 or 0x02 (enciphered 0x01 or 0x08),
|
1714
|
+
# or 0x03 (enc. 0x1b) for ILCE-6300/6400/6500/7M3/7RM2/7RM3/7RM4/7SM2/9, and ILCA-99M2
|
1708
1715
|
# third byte must be 0x02 or 0x03 (enciphered 0x08 or 0x1b) - ref JR
|
1709
|
-
# (applies to most SLT and NEX models, but no DSC models)
|
1716
|
+
# (applies to most SLT/ILCA and NEX/ILCE models, but no DSC models)
|
1710
1717
|
Condition => '$$valPt =~ /^[\x01\x08\x1b].[\x08\x1b]/s',
|
1711
1718
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9406' },
|
1712
1719
|
},{
|
@@ -1883,6 +1890,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1883
1890
|
369 => 'DSC-RX100M5A', #JR
|
1884
1891
|
371 => 'ILCE-6400', #IB
|
1885
1892
|
372 => 'DSC-RX0M2', #JR
|
1893
|
+
375 => 'ILCE-7RM4', #IB
|
1886
1894
|
},
|
1887
1895
|
},
|
1888
1896
|
0xb020 => { #2
|
@@ -6036,6 +6044,7 @@ my %isoSetting2010 = (
|
|
6036
6044
|
FIRST_ENTRY => 0,
|
6037
6045
|
PRIORITY => 0,
|
6038
6046
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
6047
|
+
IS_SUBDIR => [ 0x04b0 ],
|
6039
6048
|
0x04b0 => {
|
6040
6049
|
Name => 'MeterInfo',
|
6041
6050
|
Format => 'int32u[486]',
|
@@ -6072,6 +6081,7 @@ my %isoSetting2010 = (
|
|
6072
6081
|
FIRST_ENTRY => 0,
|
6073
6082
|
PRIORITY => 0,
|
6074
6083
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
6084
|
+
IS_SUBDIR => [ 0x04b4 ],
|
6075
6085
|
0x0000 => { %sequenceImageNumber }, #PH
|
6076
6086
|
0x0004 => { %sequenceFileNumber }, #PH
|
6077
6087
|
0x0008 => { %releaseMode2, Format => 'int32u' },
|
@@ -6139,6 +6149,7 @@ my %isoSetting2010 = (
|
|
6139
6149
|
FIRST_ENTRY => 0,
|
6140
6150
|
PRIORITY => 0,
|
6141
6151
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
6152
|
+
IS_SUBDIR => [ 0x0490 ],
|
6142
6153
|
0x0000 => { %sequenceImageNumber }, #PH
|
6143
6154
|
0x0004 => { %sequenceFileNumber }, #PH
|
6144
6155
|
0x0008 => { %releaseMode2, Format => 'int32u' },
|
@@ -6207,6 +6218,7 @@ my %isoSetting2010 = (
|
|
6207
6218
|
FIRST_ENTRY => 0,
|
6208
6219
|
PRIORITY => 0,
|
6209
6220
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
6221
|
+
IS_SUBDIR => [ 0x050c ],
|
6210
6222
|
0x0000 => { %sequenceImageNumber }, #PH
|
6211
6223
|
0x0004 => { %sequenceFileNumber }, #PH
|
6212
6224
|
0x0008 => { %releaseMode2, Format => 'int32u' },
|
@@ -6269,6 +6281,8 @@ my %isoSetting2010 = (
|
|
6269
6281
|
FIRST_ENTRY => 0,
|
6270
6282
|
PRIORITY => 0,
|
6271
6283
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
6284
|
+
DATAMEMBER => [ 0x1892 ],
|
6285
|
+
IS_SUBDIR => [ 0x04b8 ],
|
6272
6286
|
0x0000 => { %sequenceImageNumber }, #PH
|
6273
6287
|
0x0004 => { %sequenceFileNumber }, #PH
|
6274
6288
|
0x0008 => { %releaseMode2, Format => 'int32u' },
|
@@ -6371,7 +6385,9 @@ my %isoSetting2010 = (
|
|
6371
6385
|
Condition => '$$self{Model} !~ /^(DSC-|Stellar)/',
|
6372
6386
|
Format => 'int16s[16]',
|
6373
6387
|
},
|
6374
|
-
# 0x1890 - same as 0x1892, but has value 3 for
|
6388
|
+
# 0x1890 - same as 0x1892, but has value 3 for SAL18135, SAL50F14Z, SAL55300, SAL70200G2, SAL70300G2, SAL70400G2
|
6389
|
+
# Presumably, these are the A-mount lenses "compatible with software updates" as referred to in the ILCA-99M2 manual.
|
6390
|
+
# Indeed, SAL70400G2 on ILCA-77M2 gives Version: "Lens: Ver.01"
|
6375
6391
|
0x1891 => {
|
6376
6392
|
Name => 'LensFormat',
|
6377
6393
|
Condition => '$$self{Model} !~ /^(DSC-|Stellar)/',
|
@@ -6433,6 +6449,7 @@ my %isoSetting2010 = (
|
|
6433
6449
|
FIRST_ENTRY => 0,
|
6434
6450
|
PRIORITY => 0,
|
6435
6451
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
6452
|
+
IS_SUBDIR => [ 0x01e0 ],
|
6436
6453
|
0x0004 => { %releaseMode2, Format => 'int32u' }, # NOT at offset 0x08 !
|
6437
6454
|
#0x002e => { Name => 'SonyImageWidth3', Format => 'int16u' },
|
6438
6455
|
#0x0042 => { Name => 'SonyImageWidth3', Format => 'int16u' },
|
@@ -6512,6 +6529,8 @@ my %isoSetting2010 = (
|
|
6512
6529
|
FIRST_ENTRY => 0,
|
6513
6530
|
PRIORITY => 0,
|
6514
6531
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
6532
|
+
DATAMEMBER => [ 0x18be ],
|
6533
|
+
IS_SUBDIR => [ 0x0388 ],
|
6515
6534
|
0x0004 => { %releaseMode2, Format => 'int32u' }, # NOT at offset 0x08 !
|
6516
6535
|
0x0050 => { %dynamicRangeOptimizer2010 },
|
6517
6536
|
0x020c => { %releaseMode2010 },
|
@@ -6574,7 +6593,7 @@ my %isoSetting2010 = (
|
|
6574
6593
|
Condition => '$$self{Model} !~ /^DSC-/',
|
6575
6594
|
Format => 'int16s[16]',
|
6576
6595
|
},
|
6577
|
-
# 0x18bc - same as 0x18be, but has value 3 for
|
6596
|
+
# 0x18bc - same as 0x18be, but has value 3 for SAL18135, SAL50F14Z, SAL55300, SAL70200G2, SAL70300G2, SAL70400G2
|
6578
6597
|
0x18bd => {
|
6579
6598
|
Name => 'LensFormat',
|
6580
6599
|
Condition => '$$self{Model} !~ /^DSC-/',
|
@@ -6639,6 +6658,8 @@ my %isoSetting2010 = (
|
|
6639
6658
|
FIRST_ENTRY => 0,
|
6640
6659
|
PRIORITY => 0,
|
6641
6660
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
6661
|
+
DATAMEMBER => [ 0x18ee ],
|
6662
|
+
IS_SUBDIR => [ 0x0388, 0x0398 ],
|
6642
6663
|
0x0004 => { %releaseMode2, Format => 'int32u' },
|
6643
6664
|
0x0050 => { %dynamicRangeOptimizer2010 },
|
6644
6665
|
0x020c => { %releaseMode2010 },
|
@@ -6709,7 +6730,7 @@ my %isoSetting2010 = (
|
|
6709
6730
|
Condition => '$$self{Model} !~ /^DSC-/',
|
6710
6731
|
Format => 'int16s[16]',
|
6711
6732
|
},
|
6712
|
-
# 0x18ec - same as 0x18ee, but has value 3 for
|
6733
|
+
# 0x18ec - same as 0x18ee, but has value 3 for SAL18135, SAL50F14Z, SAL55300, SAL70200G2, SAL70300G2, SAL70400G2
|
6713
6734
|
0x18ed => {
|
6714
6735
|
Name => 'LensFormat',
|
6715
6736
|
Condition => '$$self{Model} !~ /^DSC-/',
|
@@ -6767,12 +6788,14 @@ my %isoSetting2010 = (
|
|
6767
6788
|
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
6768
6789
|
FORMAT => 'int8u',
|
6769
6790
|
NOTES => q{
|
6770
|
-
Valid for ILCE-6400/7M3/7RM3/9, DSC-RX10M4/RX100M6/RX100M5A/HX99.
|
6791
|
+
Valid for ILCE-6400/7M3/7RM3/7RM4/9, DSC-RX0M2/RX10M4/RX100M6/RX100M5A/HX99.
|
6771
6792
|
},
|
6772
6793
|
WRITABLE => 1,
|
6773
6794
|
FIRST_ENTRY => 0,
|
6774
6795
|
PRIORITY => 0,
|
6775
6796
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
6797
|
+
DATAMEMBER => [ 0x17f2 ],
|
6798
|
+
IS_SUBDIR => [ 0x036d ],
|
6776
6799
|
0x0004 => { %releaseMode2, Format => 'int32u' },
|
6777
6800
|
0x004e => { %dynamicRangeOptimizer2010 },
|
6778
6801
|
0x0204 => { %releaseMode2010 },
|
@@ -6835,7 +6858,7 @@ my %isoSetting2010 = (
|
|
6835
6858
|
Condition => '$$self{Model} !~ /^DSC-/',
|
6836
6859
|
Format => 'int16s[16]',
|
6837
6860
|
},
|
6838
|
-
# 0x17f0 - same as 0x17f2, but has value 3 for
|
6861
|
+
# 0x17f0 - same as 0x17f2, but has value 3 for SAL18135, SAL50F14Z, SAL55300, SAL70200G2, SAL70300G2, SAL70400G2
|
6839
6862
|
0x17f1 => {
|
6840
6863
|
Name => 'LensFormat',
|
6841
6864
|
Condition => '$$self{Model} !~ /^DSC-/',
|
@@ -7067,8 +7090,8 @@ my %isoSetting2010 = (
|
|
7067
7090
|
},
|
7068
7091
|
WRITABLE => 1,
|
7069
7092
|
FIRST_ENTRY => 0,
|
7070
|
-
DATAMEMBER => [ 0x0105 ],
|
7071
7093
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
7094
|
+
DATAMEMBER => [ 0x0031, 0x0105 ],
|
7072
7095
|
NOTES => q{
|
7073
7096
|
Data for tags 0x9050, 0x94xx and 0x2010 is encrypted by a simple
|
7074
7097
|
substitution cipher, but the deciphered values are listed below.
|
@@ -7200,7 +7223,7 @@ my %isoSetting2010 = (
|
|
7200
7223
|
PrintConv => 'unpack "H*", pack "C*", split " ", $val',
|
7201
7224
|
PrintConvInv => 'join " ", unpack "C*", pack "H*", $val',
|
7202
7225
|
},
|
7203
|
-
# 0x0104 - same as 0x0105, but has value 3 for
|
7226
|
+
# 0x0104 - same as 0x0105, but has value 3 for SAL18135, SAL50F14Z, SAL55300, SAL70200G2, SAL70300G2, SAL70400G2
|
7204
7227
|
0x0105 => {
|
7205
7228
|
Name => 'LensMount',
|
7206
7229
|
DataMember => 'LensMount',
|
@@ -7337,13 +7360,13 @@ my %isoSetting2010 = (
|
|
7337
7360
|
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
7338
7361
|
FORMAT => 'int8u',
|
7339
7362
|
NOTES => q{
|
7340
|
-
Valid from July 2015 for ILCE-6300/6400/6500/7M3/7RM2/7RM3/7SM2/9,
|
7363
|
+
Valid from July 2015 for ILCE-6300/6400/6500/7M3/7RM2/7RM3/7RM4/7SM2/9,
|
7341
7364
|
ILCA-99M2.
|
7342
7365
|
},
|
7343
7366
|
WRITABLE => 1,
|
7344
7367
|
FIRST_ENTRY => 0,
|
7345
|
-
DATAMEMBER => [ 0x0105 ],
|
7346
7368
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
7369
|
+
DATAMEMBER => [ 0x0039, 0x0105 ],
|
7347
7370
|
0x0000 => {
|
7348
7371
|
Condition => '$$self{Model} =~ /^(ILCA-)/',
|
7349
7372
|
Name => 'SonyMaxAperture', # (at current focal length)
|
@@ -7375,7 +7398,7 @@ my %isoSetting2010 = (
|
|
7375
7398
|
},
|
7376
7399
|
#0x002c => {
|
7377
7400
|
# Name => 'Shutter',
|
7378
|
-
# Condition => '$$self{Model} !~ /^(ILCE-6400)/ and $$self{Software} !~ /^ILCE-9 v5.
|
7401
|
+
# Condition => '$$self{Model} !~ /^(ILCE-6400)/ and $$self{Software} !~ /^ILCE-9 v5.0/',
|
7379
7402
|
# PrintConv => {
|
7380
7403
|
# 0 => 'Silent / Electronic',
|
7381
7404
|
# 56 => 'Mechanical',
|
@@ -7392,6 +7415,7 @@ my %isoSetting2010 = (
|
|
7392
7415
|
66 => 'Built-in Flash Inhibited', # seen for panorama, HDR, burst mode
|
7393
7416
|
128 => 'External Flash present', # seen for NEX-5N/5T
|
7394
7417
|
129 => 'External Flash Fired', # seen for SLT-A99V, ILCE-7R, NEX-5N/5R
|
7418
|
+
# 131 => 'External Flash ???', # seen for ILCE-7RM4
|
7395
7419
|
},
|
7396
7420
|
},
|
7397
7421
|
0x003a => {
|
@@ -7422,10 +7446,10 @@ my %isoSetting2010 = (
|
|
7422
7446
|
Name => 'ReleaseMode2',
|
7423
7447
|
%releaseMode2,
|
7424
7448
|
},
|
7425
|
-
# March 2019: ILCE-9 with v5.
|
7449
|
+
# March 2019: ILCE-9 with v5.0x firmware follows ILCE-6400 in many tags ...
|
7426
7450
|
0x0050 => {
|
7427
7451
|
Name => 'ShutterCount2',
|
7428
|
-
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} =~ /^(ILCE-6400)/ or $$self{Software} =~ /^ILCE-9 v5.
|
7452
|
+
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} =~ /^(ILCE-(6400|7RM4))/ or $$self{Software} =~ /^ILCE-9 v5.0/)',
|
7429
7453
|
Format => 'int32u',
|
7430
7454
|
RawConv => '$val & 0x00ffffff',
|
7431
7455
|
},
|
@@ -7442,13 +7466,13 @@ my %isoSetting2010 = (
|
|
7442
7466
|
# 0x0058, 0x0061: E-Mount: ShutterCount and dateTime
|
7443
7467
|
0x0058 => { # appears not valid when flash is used ... not for ILCA-99M2
|
7444
7468
|
Name => 'ShutterCount2',
|
7445
|
-
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} !~ /^(ILCA-99M2|ILCE-(6400|7M3|7RM3))/) and $$self{Software} !~ /^ILCE-9 v5.
|
7469
|
+
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} !~ /^(ILCA-99M2|ILCE-(6400|7M3|7RM3|7RM4))/) and $$self{Software} !~ /^ILCE-9 v5.0/',
|
7446
7470
|
Format => 'int32u',
|
7447
7471
|
RawConv => '$val & 0x00ffffff',
|
7448
7472
|
},
|
7449
7473
|
0x0061 => { # only minutes-seconds, not for ILCA-99M2, ILCE-9
|
7450
7474
|
Name => 'SonyTimeMinSec',
|
7451
|
-
Condition => '$$self{Model} !~ /^(ILCA-99M2|ILCE-(6400|7M3|7RM3|9))/',
|
7475
|
+
Condition => '$$self{Model} !~ /^(ILCA-99M2|ILCE-(6400|7M3|7RM3|7RM4|9))/',
|
7452
7476
|
Format => 'undef[2]',
|
7453
7477
|
ValueConv => q{
|
7454
7478
|
my @v = unpack('C*', $val);
|
@@ -7457,7 +7481,7 @@ my %isoSetting2010 = (
|
|
7457
7481
|
},
|
7458
7482
|
0x006b => {
|
7459
7483
|
Name => 'ReleaseMode2',
|
7460
|
-
Condition => '$$self{Model} =~ /^(ILCE-6400)/ or $$self{Software} =~ /^ILCE-9 v5.
|
7484
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6400|7RM4))/ or $$self{Software} =~ /^ILCE-9 v5.0/',
|
7461
7485
|
%releaseMode2,
|
7462
7486
|
},
|
7463
7487
|
0x006d => {
|
@@ -7467,7 +7491,7 @@ my %isoSetting2010 = (
|
|
7467
7491
|
},
|
7468
7492
|
0x0073 => {
|
7469
7493
|
Name => 'ReleaseMode2',
|
7470
|
-
Condition => '$$self{Model} !~ /^(ILCE-(6400|7M3|7RM3))/ and $$self{Software} !~ /^ILCE-9 v5.
|
7494
|
+
Condition => '$$self{Model} !~ /^(ILCE-(6400|7M3|7RM3|7RM4))/ and $$self{Software} !~ /^ILCE-9 v5.0/',
|
7471
7495
|
%releaseMode2,
|
7472
7496
|
},
|
7473
7497
|
0x0088 => {
|
@@ -7478,7 +7502,7 @@ my %isoSetting2010 = (
|
|
7478
7502
|
|
7479
7503
|
##### same offsets for lens info tags
|
7480
7504
|
|
7481
|
-
# 0x0104 - same as 0x0105, but has value 3 for
|
7505
|
+
# 0x0104 - same as 0x0105, but has value 3 for SAL18135, SAL50F14Z, SAL55300, SAL70200G2, SAL70300G2, SAL70400G2
|
7482
7506
|
0x0105 => {
|
7483
7507
|
Name => 'LensMount',
|
7484
7508
|
DataMember => 'LensMount',
|
@@ -7538,7 +7562,7 @@ my %isoSetting2010 = (
|
|
7538
7562
|
#
|
7539
7563
|
0x019f => {
|
7540
7564
|
Name => 'ShutterCount3',
|
7541
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|9))/',
|
7565
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|7RM4|9))/',
|
7542
7566
|
Format => 'int32u',
|
7543
7567
|
RawConv => '$val == 0 ? undef : $val',
|
7544
7568
|
},
|
@@ -7577,7 +7601,7 @@ my %isoSetting2010 = (
|
|
7577
7601
|
# },
|
7578
7602
|
0x01ed => {
|
7579
7603
|
Name => 'LensSpecFeatures',
|
7580
|
-
Condition => '$$self{Software} =~ /^ILCE-9 v5.
|
7604
|
+
Condition => '$$self{Model} =~ /^(ILCE-7RM4)/ or $$self{Software} =~ /^ILCE-9 v5.0/',
|
7581
7605
|
Priority => 0,
|
7582
7606
|
Format => 'undef[2]',
|
7583
7607
|
ValueConv => 'join " ", unpack "H2H2", $val',
|
@@ -7590,7 +7614,7 @@ my %isoSetting2010 = (
|
|
7590
7614
|
},
|
7591
7615
|
0x01f0 => {
|
7592
7616
|
Name => 'LensSpecFeatures',
|
7593
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|9))/ and $$self{Software} !~ /^ILCE-9 v5.
|
7617
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|9))/ and $$self{Software} !~ /^ILCE-9 v5.0/',
|
7594
7618
|
Priority => 0,
|
7595
7619
|
Format => 'undef[2]',
|
7596
7620
|
ValueConv => 'join " ", unpack "H2H2", $val',
|
@@ -7798,14 +7822,14 @@ my %isoSetting2010 = (
|
|
7798
7822
|
NOTES => q{
|
7799
7823
|
Valid for DSC-HX60V/HX80/HX90V/HX99/HX350/HX400V/QX30/RX0/RX1RM2/RX10/
|
7800
7824
|
RX10M2/RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/WX220/WX350/
|
7801
|
-
WX500, ILCE-7/7R/7S/7M2/7M3/7RM2/7RM3/7SM2/9/5000/5100/6000/6300/6400/
|
7802
|
-
QX1, ILCA-68/77M2/99M2.
|
7825
|
+
WX500, ILCE-7/7R/7S/7M2/7M3/7RM2/7RM3/7RM4/7SM2/9/5000/5100/6000/6300/6400/
|
7826
|
+
6500/QX1, ILCA-68/77M2/99M2.
|
7803
7827
|
},
|
7804
7828
|
FIRST_ENTRY => 0,
|
7805
7829
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
7806
7830
|
0x0009 => { %releaseMode2 },
|
7807
7831
|
0x000a => [{
|
7808
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|9)|DSC-(RX10M4|RX100M6|RX100M5A|HX99|RX0M2))\b/',
|
7832
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|7RM4|9)|DSC-(RX10M4|RX100M6|RX100M5A|HX99|RX0M2))\b/',
|
7809
7833
|
Name => 'ShotNumberSincePowerUp',
|
7810
7834
|
Format => 'int8u',
|
7811
7835
|
},{
|
@@ -7882,10 +7906,11 @@ my %isoSetting2010 = (
|
|
7882
7906
|
FIRST_ENTRY => 0,
|
7883
7907
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
7884
7908
|
DATAMEMBER => [ 0 ],
|
7885
|
-
IS_SUBDIR => [ 0x059d, 0x0634, 0x0636, 0x064c, 0x0653, 0x0678, 0x06b8, 0x06de, 0x06e7 ],
|
7909
|
+
IS_SUBDIR => [ 0x0498, 0x04a2, 0x059d, 0x0634, 0x0636, 0x064c, 0x0653, 0x0678, 0x06b8, 0x06de, 0x06e7 ],
|
7886
7910
|
0x0000 => { Name => 'Ver9401', Hidden => 1, RawConv => '$$self{Ver9401} = $val; $$self{OPTIONS}{Unknown}<2 ? undef : $val' },
|
7887
7911
|
|
7888
7912
|
0x0498 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 148', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
7913
|
+
0x04a2 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 152', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
7889
7914
|
0x059d => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(144|146)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
7890
7915
|
0x0634 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 68', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
7891
7916
|
0x0636 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(73|74)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
@@ -8106,8 +8131,8 @@ my %isoSetting2010 = (
|
|
8106
8131
|
WRITABLE => 1,
|
8107
8132
|
FIRST_ENTRY => 0,
|
8108
8133
|
PRIORITY => 0,
|
8109
|
-
DATAMEMBER => [ 0x0604 ],
|
8110
8134
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
8135
|
+
DATAMEMBER => [ 0x0604 ],
|
8111
8136
|
NOTES => 'Valid for SLT, NEX, ILCE-3000/3500 and several DSC models.',
|
8112
8137
|
0x0600 => {
|
8113
8138
|
Name => 'DistortionCorrParamsPresent',
|
@@ -8121,7 +8146,7 @@ my %isoSetting2010 = (
|
|
8121
8146
|
1 => 'Applied',
|
8122
8147
|
},
|
8123
8148
|
},
|
8124
|
-
# 0x0602 - same as 0x0604, but has value 3 for
|
8149
|
+
# 0x0602 - same as 0x0604, but has value 3 for SAL18135, SAL50F14Z, SAL55300, SAL70200G2, SAL70300G2, SAL70400G2
|
8125
8150
|
0x0603 => {
|
8126
8151
|
Name => 'LensFormat',
|
8127
8152
|
Condition => '$$self{Model} !~ /^(DSC-|Stellar)/',
|
@@ -8184,12 +8209,13 @@ my %isoSetting2010 = (
|
|
8184
8209
|
WRITABLE => 1,
|
8185
8210
|
FIRST_ENTRY => 0,
|
8186
8211
|
PRIORITY => 0,
|
8187
|
-
DATAMEMBER => [ 0x005e ],
|
8188
8212
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
8213
|
+
DATAMEMBER => [ 0x005e ],
|
8189
8214
|
NOTES => q{
|
8190
8215
|
Valid for DSC-HX60V/HX80/HX90V/HX99/HX350/HX400V/QX30/RX0/RX10/RX10M2/
|
8191
8216
|
RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/WX220/WX350, ILCE-7/
|
8192
|
-
7M2/7M3/7R/7RM2/7S/7SM2/9/5000/5100/6000/6300/6500/QX1, ILCA-68/
|
8217
|
+
7M2/7M3/7R/7RM2/7RM3/7RM4/7S/7SM2/9/5000/5100/6000/6300/6500/QX1, ILCA-68/
|
8218
|
+
77M2/99M2.
|
8193
8219
|
},
|
8194
8220
|
0x0004 => {
|
8195
8221
|
Name => 'SonyISO',
|
@@ -8299,7 +8325,7 @@ my %isoSetting2010 = (
|
|
8299
8325
|
1 => 'Applied',
|
8300
8326
|
},
|
8301
8327
|
},
|
8302
|
-
# 0x005c - same as 0x005e, but has value 3 for
|
8328
|
+
# 0x005c - same as 0x005e, but has value 3 for SAL18135, SAL50F14Z, SAL55300, SAL70200G2, SAL70300G2, SAL70400G2
|
8303
8329
|
0x005d => {
|
8304
8330
|
Name => 'LensFormat',
|
8305
8331
|
Condition => '$$self{Model} !~ /^DSC-/',
|
@@ -8342,7 +8368,7 @@ my %isoSetting2010 = (
|
|
8342
8368
|
},
|
8343
8369
|
0x0342 => {
|
8344
8370
|
Name => 'LensZoomPosition',
|
8345
|
-
Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7M3|7RM3|7SM2|6300|6400|6500|9)|DSC-(HX80|HX90V|HX99|RX0|RX10M2|RX10M3|RX10M4|RX100M4|RX100M5|RX100M5A|RX100M6|WX500))/',
|
8371
|
+
Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7M3|7RM3|7RM4|7SM2|6300|6400|6500|9)|DSC-(HX80|HX90V|HX99|RX0|RX10M2|RX10M3|RX10M4|RX100M4|RX100M5|RX100M5A|RX100M6|WX500))/',
|
8346
8372
|
Format => 'int16u',
|
8347
8373
|
PrintConv => 'sprintf("%.0f%%",$val/10.24)',
|
8348
8374
|
PrintConvInv => '$val=~s/ ?%$//; $val * 10.24',
|
@@ -8359,7 +8385,7 @@ my %isoSetting2010 = (
|
|
8359
8385
|
},
|
8360
8386
|
0x035c => {
|
8361
8387
|
Name => 'VignettingCorrParams',
|
8362
|
-
Condition => '$$self{Model} =~ /^(ILCA-99M2|ILCE-(6400|6500|7M3|7RM3|9))/',
|
8388
|
+
Condition => '$$self{Model} =~ /^(ILCA-99M2|ILCE-(6400|6500|7M3|7RM3|7RM4|9))/',
|
8363
8389
|
Format => 'int16s[16]',
|
8364
8390
|
},
|
8365
8391
|
0x035a => {
|
@@ -8396,7 +8422,7 @@ my %isoSetting2010 = (
|
|
8396
8422
|
},
|
8397
8423
|
0x03b8 => {
|
8398
8424
|
Name => 'ChromaticAberrationCorrParams',
|
8399
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|9))/',
|
8425
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|7RM4|9))/',
|
8400
8426
|
Format => 'int16s[32]',
|
8401
8427
|
},
|
8402
8428
|
);
|
@@ -8412,7 +8438,7 @@ my %isoSetting2010 = (
|
|
8412
8438
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
8413
8439
|
# 0x0000: 1 for SLT-A37/A57/A65/A77, NEX-5N/7/F3/VG20
|
8414
8440
|
# 2 for SLT-A58/99V, NEX-3N/5R/5T/6/VG30/VG900, ILCA-68/77M2, ILCE-3000/3500/7/7M2/7R/7S/5000/6000
|
8415
|
-
# 3 for ILCA-99M2, ILCE-6300/6500/7M3/7RM2/7RM3/7SM2/9
|
8441
|
+
# 3 for ILCA-99M2, ILCE-6300/6400/6500/7M3/7RM2/7RM3/7RM4/7SM2/9
|
8416
8442
|
# 0x0001+0x0002: Int16u, seen 580 - 770: similar to "BatteryUnknown" ??
|
8417
8443
|
# 0x0005: int8u, seen 73 - 117: maybe Fahrenheit? Higher than "AmbientTemperature", but same trend.
|
8418
8444
|
0x0005 => {
|
@@ -8425,7 +8451,7 @@ my %isoSetting2010 = (
|
|
8425
8451
|
# 0x0006: usually 0, seen non-zero values only for SLT-A99V, ILCA-77M2/99M2 and ILCE-7/7R/7RM2/9: BatteryLevel Grip ?
|
8426
8452
|
0x0006 => {
|
8427
8453
|
Name => 'BatteryLevelGrip1',
|
8428
|
-
|
8454
|
+
RawConv => '$val ? $val : undef', # only valid when not 0
|
8429
8455
|
PrintConv => '"$val%"',
|
8430
8456
|
PrintConvInv => '$val=~s/\s*\%//; $val',
|
8431
8457
|
},
|
@@ -8440,7 +8466,8 @@ my %isoSetting2010 = (
|
|
8440
8466
|
# but ILCE-7/7R with grip can have max 2, and as all ILCE-7/7R samples give >100 values, exclude...
|
8441
8467
|
0x0008 => {
|
8442
8468
|
Name => 'BatteryLevelGrip2',
|
8443
|
-
Condition => '$$
|
8469
|
+
Condition => '$$self{Model} !~ /^(ILCE-(7|7R)|Lusso)$/', # not valid for ILCE-7/7R
|
8470
|
+
RawConv => '($val and $val != 255) ? $val : undef', # not valid if 0 or 255
|
8444
8471
|
PrintConv => '"$val%"',
|
8445
8472
|
PrintConvInv => '$val=~s/\s*\%//; $val',
|
8446
8473
|
},
|
@@ -8559,7 +8586,7 @@ my %isoSetting2010 = (
|
|
8559
8586
|
# ILCE-6000 v1.20-v3.20
|
8560
8587
|
# 1.60: ILCE-6300/6500, ILCE-7RM2 v3.05-v4.00
|
8561
8588
|
# 1.70: ILCE-7M3/7RM3, ILCE-9 v1.00-v4.10
|
8562
|
-
# 1.80: ILCE-6400, ILCE-9 v5.
|
8589
|
+
# 1.80: ILCE-6400/7RM4, ILCE-9 v5.0x
|
8563
8590
|
},
|
8564
8591
|
0x000d => {
|
8565
8592
|
Name => 'LensE-mountVersion',
|
@@ -8582,10 +8609,11 @@ my %isoSetting2010 = (
|
|
8582
8609
|
# 1.41: SELP18105G Ver.02
|
8583
8610
|
# 1.50: SEL28F20, SEL90M28G, Zeiss Batis 18mm/25mm/85mm/135mm, Zeiss Loxia 21mm, Zeiss Loxia 35mm/50mm Ver.02,
|
8584
8611
|
# Tokina FiRIN 20mm
|
8585
|
-
# 1.60: SEL1224G, SEL1635GM, SELP18110G, SEL18135, SEL2470GM, SEL24105G, SEL50F14Z, SEL50F18F, SEL50M28,
|
8586
|
-
# SEL70300G, SEL85F14GM, SEL85F18, SEL100F28GM, SEL100400GM, SEL135F18GM,
|
8587
|
-
# Samyang AF 14mm/50mm, Voigtlander 15mm,
|
8588
|
-
# 1.70: LA-EA3 Ver.02, Samyang AF 35mm, Tamron 28-75mm,
|
8612
|
+
# 1.60: SEL1224G, SEL1635GM, SELP18110G, SEL18135, SEL2470GM, SEL24105G, SEL35F18F, SEL50F14Z, SEL50F18F, SEL50M28,
|
8613
|
+
# SEL70200GM, SEL70300G, SEL85F14GM, SEL85F18, SEL100F28GM, SEL100400GM, SEL135F18GM, SEL200600G, SEL600F40GM,
|
8614
|
+
# Sigma 16F14DCDN/30F14DCDN/35F12DGDN/45F28DGDN, Sigma MC-11, Samyang AF 14mm/50mm, Voigtlander 15mm, Viltrox 85mm MF
|
8615
|
+
# 1.70: LA-EA3 Ver.02, Samyang AF 24mm/35mm/85mm, Tamron 17-28mm, 28-75mm, Tokina FiRIN 20mm AF Ver.01, Tokina FiRIN 100mm Macro,
|
8616
|
+
# Voigtlander 10mm/12mm/40mm/65mm, Zeiss Loxia 25mm/85mm, Sigma 14-24mm
|
8589
8617
|
# 1.80: Voigtlander 21mm
|
8590
8618
|
},
|
8591
8619
|
# 0x0014 and 0x0015: change together: LensFirmwareVersion
|
@@ -8618,7 +8646,7 @@ my %isoSetting2010 = (
|
|
8618
8646
|
PRIORITY => 0,
|
8619
8647
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
8620
8648
|
DATAMEMBER => [ 0x02 ],
|
8621
|
-
IS_SUBDIR => [ 0x11 ],
|
8649
|
+
IS_SUBDIR => [ 0x11, 0x7d ],
|
8622
8650
|
NOTES => 'These tags are currently extracted for SLT models only.',
|
8623
8651
|
# first 4 bytes (deciphered) (ref JR):
|
8624
8652
|
# 0 1 1 0 for A37, A57, A58
|
@@ -8628,7 +8656,7 @@ my %isoSetting2010 = (
|
|
8628
8656
|
# 1 1 3 0 for ILCA-68/77M2/99M2
|
8629
8657
|
# 0 0 0 0 for NEX and ILCE-3000/3500, also seen for SLT/ILCA with non-AF lens
|
8630
8658
|
# 1 0 0 0 for ILCE-5000/5100/6000/7/7M2/7R/7S/QX1
|
8631
|
-
# 6 0 0 0 for ILCE-6300/6400/6500/7M3/7RM2/7RM3/7SM2/9
|
8659
|
+
# 6 0 0 0 for ILCE-6300/6400/6500/7M3/7RM2/7RM3/7RM4/7SM2/9
|
8632
8660
|
# 0 2 0 0 for NEX/ILCE with LA-EA2/EA4 Phase-AF adapter
|
8633
8661
|
# 2 0 0 0 seen for a few NEX-5N images
|
8634
8662
|
# 2 2 0 0 seen for a few NEX-5N/7 images with LA-EA2 adapter
|
@@ -8921,12 +8949,12 @@ my %isoSetting2010 = (
|
|
8921
8949
|
# other NEX/ILCE: 74 blocks of 164 bytes
|
8922
8950
|
|
8923
8951
|
# 0x1a06 onwards - first seen for ILCE-7RM2: appears to be some kind of metering image
|
8924
|
-
# but not valid anymore for ILCE-6400, ILCE-9 v5.
|
8925
|
-
0x1a06 => { Name => 'TiffMeteringImageWidth', Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 v5.
|
8926
|
-
0x1a07 => { Name => 'TiffMeteringImageHeight', Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 v5.
|
8952
|
+
# but not valid anymore for ILCE-6400, ILCE-9 v5.0x
|
8953
|
+
0x1a06 => { Name => 'TiffMeteringImageWidth', Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 v5.0/' },
|
8954
|
+
0x1a07 => { Name => 'TiffMeteringImageHeight', Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 v5.0/' },
|
8927
8955
|
0x1a08 => { # (2640 bytes: 1 set of 44x30 int16u values)
|
8928
8956
|
Name => 'TiffMeteringImage',
|
8929
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 v5.
|
8957
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 v5.0/',
|
8930
8958
|
Format => 'undef[2640]',
|
8931
8959
|
Notes => q{
|
8932
8960
|
13(?)-bit intensity data from 1320 (1200) metering segments, extracted as a
|