exiftool-vendored.exe 12.26.0 → 12.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/exiftool_files/Changes +119 -4
- package/bin/exiftool_files/README +44 -43
- package/bin/exiftool_files/arg_files/xmp2exif.args +2 -1
- package/bin/exiftool_files/config_files/convert_regions.config +25 -14
- package/bin/exiftool_files/config_files/example.config +1 -1
- package/bin/exiftool_files/exiftool.pl +79 -66
- package/bin/exiftool_files/fmt_files/gpx.fmt +1 -1
- package/bin/exiftool_files/fmt_files/gpx_wpt.fmt +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +11 -3
- package/bin/exiftool_files/lib/Image/ExifTool/CBOR.pm +331 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +26 -7
- package/bin/exiftool_files/lib/Image/ExifTool/DPX.pm +13 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +98 -4
- package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +35 -10
- package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +1 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +13 -2
- package/bin/exiftool_files/lib/Image/ExifTool/GoPro.pm +16 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ID3.pm +15 -3
- package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +7 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +60 -26
- package/bin/exiftool_files/lib/Image/ExifTool/LIF.pm +153 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/nl.pm +60 -59
- package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +103 -7
- package/bin/exiftool_files/lib/Image/ExifTool/MacOS.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +14 -3
- package/bin/exiftool_files/lib/Image/ExifTool/NikonSettings.pm +10 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +9 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Other.pm +93 -0
- package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +9 -12
- package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +7 -6
- package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +14 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +27 -5
- package/bin/exiftool_files/lib/Image/ExifTool/Photoshop.pm +6 -0
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +105 -24
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +203 -121
- package/bin/exiftool_files/lib/Image/ExifTool/README +5 -2
- package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +6 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +47 -10
- package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +85 -34
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +65 -5
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +153 -32
- package/bin/exiftool_files/lib/Image/ExifTool/Torrent.pm +18 -11
- package/bin/exiftool_files/lib/Image/ExifTool/WritePDF.pl +1 -0
- package/bin/exiftool_files/lib/Image/ExifTool/WritePNG.pl +2 -0
- package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +8 -4
- package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +3 -0
- package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +21 -4
- package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ZISRAW.pm +121 -2
- package/bin/exiftool_files/lib/Image/ExifTool.pm +8867 -8835
- package/bin/exiftool_files/lib/Image/ExifTool.pod +58 -56
- package/package.json +3 -3
|
@@ -22,12 +22,13 @@ use vars qw($VERSION %samsungLensTypes);
|
|
|
22
22
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
23
23
|
use Image::ExifTool::Exif;
|
|
24
24
|
|
|
25
|
-
$VERSION = '1.
|
|
25
|
+
$VERSION = '1.50';
|
|
26
26
|
|
|
27
27
|
sub WriteSTMN($$$);
|
|
28
28
|
sub ProcessINFO($$$);
|
|
29
29
|
sub ProcessSamsungMeta($$$);
|
|
30
30
|
sub ProcessSamsungIFD($$$);
|
|
31
|
+
sub ProcessSamsung($$$);
|
|
31
32
|
|
|
32
33
|
# Samsung LensType lookup
|
|
33
34
|
%samsungLensTypes = (
|
|
@@ -940,14 +941,31 @@ my %formatMinMax = (
|
|
|
940
941
|
%Image::ExifTool::Samsung::Trailer = (
|
|
941
942
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Other' },
|
|
942
943
|
VARS => { NO_ID => 1, HEX_ID => 0 },
|
|
944
|
+
PROCESS_PROC => \&ProcessSamsung,
|
|
943
945
|
PRIORITY => 0, # (first one takes priority so DepthMapWidth/Height match first DepthMapData)
|
|
944
946
|
NOTES => q{
|
|
945
947
|
Tags extracted from the trailer of JPEG images written when using certain
|
|
946
948
|
features (such as "Sound & Shot" or "Shot & More") from Samsung models such
|
|
947
|
-
as the Galaxy S4 and Tab S
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
'0x0001' => {
|
|
949
|
+
as the Galaxy S4 and Tab S, and from the 'sefd' atom in HEIC images from the
|
|
950
|
+
Samsung S10+.
|
|
951
|
+
},
|
|
952
|
+
'0x0001-name' => {
|
|
953
|
+
Name => 'EmbeddedImageName', # ("DualShot_1","DualShot_2")
|
|
954
|
+
RawConv => '$$self{EmbeddedImageName} = $val',
|
|
955
|
+
},
|
|
956
|
+
'0x0001' => [
|
|
957
|
+
{
|
|
958
|
+
Name => 'EmbeddedImage',
|
|
959
|
+
Condition => '$$self{EmbeddedImageName} eq "DualShot_1"',
|
|
960
|
+
Groups => { 2 => 'Preview' },
|
|
961
|
+
Binary => 1,
|
|
962
|
+
},
|
|
963
|
+
{
|
|
964
|
+
Name => 'EmbeddedImage2',
|
|
965
|
+
Groups => { 2 => 'Preview' },
|
|
966
|
+
Binary => 1,
|
|
967
|
+
},
|
|
968
|
+
],
|
|
951
969
|
'0x0100-name' => 'EmbeddedAudioFileName', # ("SoundShot_000")
|
|
952
970
|
'0x0100' => { Name => 'EmbeddedAudioFile', Groups => { 2 => 'Audio' }, Binary => 1 },
|
|
953
971
|
'0x0201-name' => 'SurroundShotVideoName', # ("Interactive_Panorama_000")
|
|
@@ -977,10 +995,24 @@ my %formatMinMax = (
|
|
|
977
995
|
'0x0a30-name' => 'EmbeddedVideoType', # ("MotionPhoto_Data")
|
|
978
996
|
'0x0a30' => { Name => 'EmbeddedVideoFile', Groups => { 2 => 'Video' }, Binary => 1 }, #forum7161
|
|
979
997
|
# 0x0aa1-name - seen 'MCC_Data'
|
|
980
|
-
# 0x0aa1 - seen '
|
|
998
|
+
# 0x0aa1 - seen '204','222','234','302','429'
|
|
999
|
+
'0x0aa1' => 'MCCData', # (unknown meaning)
|
|
981
1000
|
# 0x0ab0-name - seen 'DualShot_Meta_Info'
|
|
982
|
-
'0x0ab1-name' =>
|
|
983
|
-
|
|
1001
|
+
'0x0ab1-name' => {
|
|
1002
|
+
Name => 'DepthMapName',
|
|
1003
|
+
# seen 'DualShot_DepthMap_1' (SM-N950U), DualShot_DepthMap_5 (SM-G998W)
|
|
1004
|
+
RawConv => '$$self{DepthMapName} = $val',
|
|
1005
|
+
},
|
|
1006
|
+
'0x0ab1' => [
|
|
1007
|
+
{
|
|
1008
|
+
Name => 'DepthMapData',
|
|
1009
|
+
Condition => '$$self{DepthMapName} eq "DualShot_DepthMap_1"',
|
|
1010
|
+
Binary => 1,
|
|
1011
|
+
},{
|
|
1012
|
+
Name => 'DepthMapData2',
|
|
1013
|
+
Binary => 1,
|
|
1014
|
+
},
|
|
1015
|
+
],
|
|
984
1016
|
# 0x0ab3-name - seen 'DualShot_Extra_Info' (SM-N950U)
|
|
985
1017
|
'0x0ab3' => { # (SM-N950U)
|
|
986
1018
|
Name => 'DualShotExtra',
|
|
@@ -1015,7 +1047,8 @@ my %formatMinMax = (
|
|
|
1015
1047
|
Hook => q{
|
|
1016
1048
|
if ($size >= 96) {
|
|
1017
1049
|
my $tmp = substr($$dataPt, $pos, 64);
|
|
1018
|
-
|
|
1050
|
+
# (have seen 0x01,0x03 and 0x07)
|
|
1051
|
+
if ($tmp =~ /[\x01-\x09]\0\xff\xff/g and not pos($tmp) % 4) {
|
|
1019
1052
|
$$self{DepthMapTagPos} = pos($tmp);
|
|
1020
1053
|
$varSize += $$self{DepthMapTagPos} - 32;
|
|
1021
1054
|
}
|
|
@@ -1274,6 +1307,10 @@ sub ProcessSamsung($$$)
|
|
|
1274
1307
|
my $unknown = $et->Options('Unknown');
|
|
1275
1308
|
my ($buff, $buf2, $index, $offsetPos, $audioNOff, $audioSize);
|
|
1276
1309
|
|
|
1310
|
+
unless ($raf) {
|
|
1311
|
+
$raf = new File::RandomAccess($$dirInfo{DataPt});
|
|
1312
|
+
$et->VerboseDir('SamsungTrailer');
|
|
1313
|
+
}
|
|
1277
1314
|
return 0 unless $raf->Seek(-6-$offset, 2) and $raf->Read($buff, 6) == 6 and
|
|
1278
1315
|
($buff eq 'QDIOBS' or $buff eq "\0\0SEFT");
|
|
1279
1316
|
my $endPos = $raf->Tell();
|
|
@@ -1328,7 +1365,7 @@ SamBlock:
|
|
|
1328
1365
|
# save trailer position and length
|
|
1329
1366
|
my $dataPos = $$dirInfo{DataPos} = $dirPos - $firstBlock;
|
|
1330
1367
|
my $dirLen = $$dirInfo{DirLen} = $endPos - $dataPos;
|
|
1331
|
-
if (($verbose or $$et{HTML_DUMP}) and not $outfile) {
|
|
1368
|
+
if (($verbose or $$et{HTML_DUMP}) and not $outfile and $$dirInfo{RAF}) {
|
|
1332
1369
|
$et->DumpTrailer($dirInfo);
|
|
1333
1370
|
return 1 if $$et{HTML_DUMP};
|
|
1334
1371
|
}
|
|
@@ -34,7 +34,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
|
34
34
|
use Image::ExifTool::Exif;
|
|
35
35
|
use Image::ExifTool::Minolta;
|
|
36
36
|
|
|
37
|
-
$VERSION = '3.
|
|
37
|
+
$VERSION = '3.46';
|
|
38
38
|
|
|
39
39
|
sub ProcessSRF($$$);
|
|
40
40
|
sub ProcessSR2($$$);
|
|
@@ -154,6 +154,7 @@ sub PrintInvLensSpec($;$$);
|
|
|
154
154
|
32866 => 'Sony FE 24mm F2.8 G', #IB
|
|
155
155
|
32867 => 'Sony FE 40mm F2.5 G', #IB
|
|
156
156
|
32868 => 'Sony FE 50mm F2.5 G', #IB
|
|
157
|
+
32874 => 'Sony FE 70-200mm F2.8 GM OSS II', #IB
|
|
157
158
|
|
|
158
159
|
# (comment this out so LensID will report the LensModel, which is more useful)
|
|
159
160
|
# 32952 => 'Metabones Canon EF Speed Booster Ultra', #JR (corresponds to 184, but 'Advanced' mode, LensMount reported as E-mount)
|
|
@@ -194,6 +195,10 @@ sub PrintInvLensSpec($;$$);
|
|
|
194
195
|
49463 => 'Tamron 28-200mm F2.8-5.6 Di III RXD', #JR (Model A071)
|
|
195
196
|
49464 => 'Tamron 70-300mm F4.5-6.3 Di III RXD', #JR (Model A047)
|
|
196
197
|
49465 => 'Tamron 17-70mm F2.8 Di III-A VC RXD', #JR (Model B070)
|
|
198
|
+
49466 => 'Tamron 150-500mm F5-6.7 Di III VC VXD', #JR (Model A057)
|
|
199
|
+
49467 => 'Tamron 11-20mm F2.8 Di III-A RXD', #JR (Model B060)
|
|
200
|
+
49468 => 'Tamron 18-300mm F3.5-6.3 Di III-A VC VXD', #JR (Model B061)
|
|
201
|
+
|
|
197
202
|
49473 => 'Tokina atx-m 85mm F1.8 FE or Viltrox lens', #JR
|
|
198
203
|
49473.1 => 'Viltrox 23mm F1.4 E', #JR
|
|
199
204
|
49473.2 => 'Viltrox 56mm F1.4 E', #JR
|
|
@@ -232,7 +237,10 @@ sub PrintInvLensSpec($;$$);
|
|
|
232
237
|
50524 => 'Sigma 35mm F2 DG DN | C', #IB (020)
|
|
233
238
|
50525 => 'Sigma 24mm F3.5 DG DN | C', #JR (021)
|
|
234
239
|
50526 => 'Sigma 28-70mm F2.8 DG DN | C', #JR (021)
|
|
235
|
-
|
|
240
|
+
50527 => 'Sigma 150-600mm F5-6.3 DG DN OS | S', #JR (021)
|
|
241
|
+
50528 => 'Sigma 35mm F1.4 DG DN | A', #IB/JR (021)
|
|
242
|
+
50529 => 'Sigma 90mm F2.8 DG DN | C', #JR (021)
|
|
243
|
+
50530 => 'Sigma 24mm F2 DG DN | C', #JR (021)
|
|
236
244
|
|
|
237
245
|
50992 => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR
|
|
238
246
|
50993 => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB
|
|
@@ -246,6 +254,7 @@ sub PrintInvLensSpec($;$$);
|
|
|
246
254
|
51001 => 'Voigtlander NOKTON 21mm F1.4 Aspherical', #JR
|
|
247
255
|
51002 => 'Voigtlander APO-LANTHAR 50mm F2 Aspherical', #JR
|
|
248
256
|
51003 => 'Voigtlander NOKTON 35mm F1.2 Aspherical SE', #JR
|
|
257
|
+
51006 => 'Voigtlander APO-LANTHAR 35mm F2 Aspherical', #JR
|
|
249
258
|
|
|
250
259
|
# lenses listed in the Sigma MC-11 list, but not yet seen:
|
|
251
260
|
# 504xx => 'Sigma 18-200mm F3.5-6.3 DC MACRO OS HSM | C + MC-11', # (014)
|
|
@@ -261,7 +270,7 @@ sub PrintInvLensSpec($;$$);
|
|
|
261
270
|
51510 => 'Samyang AF 18mm F2.8 or Samyang AF 35mm F1.8', #JR
|
|
262
271
|
51510.1 => 'Samyang AF 35mm F1.8', #JR
|
|
263
272
|
51512 => 'Samyang AF 75mm F1.8', #IB/JR
|
|
264
|
-
51514 => 'Samyang AF 24mm F1.8
|
|
273
|
+
51514 => 'Samyang AF 24mm F1.8', #IB
|
|
265
274
|
);
|
|
266
275
|
|
|
267
276
|
# ExposureProgram values (ref PH, mainly decoded from A200)
|
|
@@ -1024,7 +1033,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
1024
1033
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010h' },
|
|
1025
1034
|
},{
|
|
1026
1035
|
Name => 'Tag2010i', # ?
|
|
1027
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|
|
|
1036
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|DSC-(RX10M4|RX100M6|RX100M5A|RX100M7|HX99|RX0M2)|ZV-(1|E10))\b/',
|
|
1028
1037
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010i' },
|
|
1029
1038
|
},{
|
|
1030
1039
|
Name => 'Tag_0x2010',
|
|
@@ -1599,14 +1608,14 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
1599
1608
|
# from mid-2015: ILCE-7RM2/7SM2/6300 and newer models use different offsets
|
|
1600
1609
|
{
|
|
1601
1610
|
Name => 'Tag9050a',
|
|
1602
|
-
Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(1|6100|6300|6400|6500|6600|7C|7M3|7RM2|
|
|
1611
|
+
Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(1|6100|6300|6400|6500|6600|7C|7M3|7RM2|7RM3A?|7RM4A?|7SM2|7SM3|9|9M2)|ILCA-99M2|ILME-FX3|ZV-)/',
|
|
1603
1612
|
SubDirectory => {
|
|
1604
1613
|
TagTable => 'Image::ExifTool::Sony::Tag9050a',
|
|
1605
1614
|
ByteOrder => 'LittleEndian',
|
|
1606
1615
|
},
|
|
1607
1616
|
},{
|
|
1608
1617
|
Name => 'Tag9050b',
|
|
1609
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6300|6400|6500|6600|7C|7M3|7RM2|
|
|
1618
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6300|6400|6500|6600|7C|7M3|7RM2|7RM3A?|7RM4A?|7SM2|9|9M2)|ILCA-99M2|ZV-E10)/',
|
|
1610
1619
|
SubDirectory => {
|
|
1611
1620
|
TagTable => 'Image::ExifTool::Sony::Tag9050b',
|
|
1612
1621
|
ByteOrder => 'LittleEndian',
|
|
@@ -1632,7 +1641,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
1632
1641
|
# 0x23 (e) for DSC-RX10/HX60V/HX350/HX400V/WX220/WX350, ILCE-7/7R/5000/6000, ILCA-68/77M2
|
|
1633
1642
|
# 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
|
|
1634
1643
|
# 0x26 (e) for ILCE-6100/6400/6600/7M3/7RM3/9, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/HX99
|
|
1635
|
-
# 0x28 (e) for ILCE-7RM4/9M2, DSC-RX100M7, ZV-1
|
|
1644
|
+
# 0x28 (e) for ILCE-7RM4/9M2, DSC-RX100M7, ZV-1/E10
|
|
1636
1645
|
# 0x31 (e) for ILCE-1/7SM3, ILME-FX3
|
|
1637
1646
|
# first byte decoded: 40, 204, 202, 27, 58, 62, 48, 215, 28, 106 respectively
|
|
1638
1647
|
{
|
|
@@ -1648,7 +1657,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
1648
1657
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9400b' },
|
|
1649
1658
|
},{
|
|
1650
1659
|
Name => 'Tag9400c',
|
|
1651
|
-
Condition => '$$valPt =~ /^[\x23\x24\x26\x28\x31]/',
|
|
1660
|
+
Condition => '$$valPt =~ /^[\x23\x24\x26\x28\x31]/',
|
|
1652
1661
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9400c' },
|
|
1653
1662
|
},{
|
|
1654
1663
|
Name => 'Sony_0x9400',
|
|
@@ -1807,7 +1816,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
1807
1816
|
# 142 var (0x25 = 37 var enc.) DSC-HX80/HX90V/RX1RM2/RX10M2/RX10M3/RX100M4/WX500, ILCE-6300/7RM2/7SM2
|
|
1808
1817
|
# 144 var (0xe1 = 225 var enc.) DSC-RX100M5
|
|
1809
1818
|
# 145 var (0x76 = 118 var enc.) ILCA-99M2, ILCE-6500, DSC-RX0
|
|
1810
|
-
# 163 var (0x8b = 139 var enc.) ILCE-6100/6400/6600/7C/7M3/7RM3/7RM4/9/9M2, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/RX100M7/HX99, ZV-1
|
|
1819
|
+
# 163 var (0x8b = 139 var enc.) ILCE-6100/6400/6600/7C/7M3/7RM3/7RM4/9/9M2, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/RX100M7/HX99, ZV-1/E10
|
|
1811
1820
|
# July 2020: ILCE-7SM3 doesn't write this tag anymore, but writes 0x9416
|
|
1812
1821
|
0x9405 => [{
|
|
1813
1822
|
Name => 'Tag9405a',
|
|
@@ -1861,7 +1870,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
1861
1870
|
},
|
|
1862
1871
|
0x940c => [{
|
|
1863
1872
|
Name => 'Tag940c',
|
|
1864
|
-
Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|Lunar)\b/',
|
|
1873
|
+
Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|Lunar|ZV-E10)\b/',
|
|
1865
1874
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag940c' },
|
|
1866
1875
|
},{
|
|
1867
1876
|
Name => 'Sony_0x940c',
|
|
@@ -2017,9 +2026,12 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
2017
2026
|
379 => 'ILCE-6100', #IB/JR
|
|
2018
2027
|
380 => 'ZV-1', #JR
|
|
2019
2028
|
381 => 'ILCE-7C', #JR
|
|
2029
|
+
382 => 'ZV-E10', #JR
|
|
2020
2030
|
383 => 'ILCE-7SM3',
|
|
2021
2031
|
384 => 'ILCE-1', #PH
|
|
2022
2032
|
385 => 'ILME-FX3', #JR
|
|
2033
|
+
386 => 'ILCE-7RM3A', #JR
|
|
2034
|
+
387 => 'ILCE-7RM4A', #forum12542
|
|
2023
2035
|
},
|
|
2024
2036
|
},
|
|
2025
2037
|
0xb020 => { #2
|
|
@@ -6178,7 +6190,7 @@ my %isoSetting2010 = (
|
|
|
6178
6190
|
43 => 160000,
|
|
6179
6191
|
44 => 204800,
|
|
6180
6192
|
45 => 256000,
|
|
6181
|
-
46 => 320000,
|
|
6193
|
+
46 => 320000,
|
|
6182
6194
|
47 => 409600,
|
|
6183
6195
|
);
|
|
6184
6196
|
|
|
@@ -7606,13 +7618,13 @@ my %isoSetting2010 = (
|
|
|
7606
7618
|
# March 2019: ILCE-9 with v5.0x firmware follows ILCE-6400 in many tags ...
|
|
7607
7619
|
0x0050 => {
|
|
7608
7620
|
Name => 'ShutterCount2',
|
|
7609
|
-
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|
|
|
7621
|
+
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7RM4A?|9M2)|ZV-E10)/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/)',
|
|
7610
7622
|
Format => 'int32u',
|
|
7611
7623
|
RawConv => '$val & 0x00ffffff',
|
|
7612
7624
|
},
|
|
7613
7625
|
0x0052 => {
|
|
7614
7626
|
Name => 'ShutterCount2',
|
|
7615
|
-
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} =~ /^(ILCE-(7M3|
|
|
7627
|
+
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} =~ /^(ILCE-(7M3|7RM3A?))/)',
|
|
7616
7628
|
Format => 'int32u',
|
|
7617
7629
|
RawConv => '$val & 0x00ffffff',
|
|
7618
7630
|
},
|
|
@@ -7623,13 +7635,13 @@ my %isoSetting2010 = (
|
|
|
7623
7635
|
# 0x0058, 0x0061: E-Mount: ShutterCount and dateTime
|
|
7624
7636
|
0x0058 => { # appears not valid when flash is used ... not for ILCA-99M2
|
|
7625
7637
|
Name => 'ShutterCount2',
|
|
7626
|
-
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} !~ /^(ILCA-99M2|ILCE-(6100|6400|6600|7C|7M3|
|
|
7638
|
+
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} !~ /^(ILCA-99M2|ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9M2)|ZV-E10)/) and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
|
7627
7639
|
Format => 'int32u',
|
|
7628
7640
|
RawConv => '$val & 0x00ffffff',
|
|
7629
7641
|
},
|
|
7630
7642
|
0x0061 => { # only minutes-seconds, not for ILCA-99M2, ILCE-9
|
|
7631
7643
|
Name => 'SonyTimeMinSec',
|
|
7632
|
-
Condition => '$$self{Model} !~ /^(ILCA-99M2|ILCE-(6100|6400|6600|7C|7M3|
|
|
7644
|
+
Condition => '$$self{Model} !~ /^(ILCA-99M2|ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|ZV-E10)/',
|
|
7633
7645
|
Format => 'undef[2]',
|
|
7634
7646
|
ValueConv => q{
|
|
7635
7647
|
my @v = unpack('C*', $val);
|
|
@@ -7638,17 +7650,17 @@ my %isoSetting2010 = (
|
|
|
7638
7650
|
},
|
|
7639
7651
|
0x006b => {
|
|
7640
7652
|
Name => 'ReleaseMode2',
|
|
7641
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|
|
|
7653
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7RM4A?|9M2)|ZV-E10)/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/',
|
|
7642
7654
|
%releaseMode2,
|
|
7643
7655
|
},
|
|
7644
7656
|
0x006d => {
|
|
7645
7657
|
Name => 'ReleaseMode2',
|
|
7646
|
-
Condition => '$$self{Model} =~ /^(ILCE-(7M3|
|
|
7658
|
+
Condition => '$$self{Model} =~ /^(ILCE-(7M3|7RM3A?))/',
|
|
7647
7659
|
%releaseMode2,
|
|
7648
7660
|
},
|
|
7649
7661
|
0x0073 => {
|
|
7650
7662
|
Name => 'ReleaseMode2',
|
|
7651
|
-
Condition => '$$self{Model} !~ /^(ILCE-(6100|6400|6600|7C|7M3|
|
|
7663
|
+
Condition => '$$self{Model} !~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9M2)|ZV-E10)/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
|
7652
7664
|
%releaseMode2,
|
|
7653
7665
|
},
|
|
7654
7666
|
0x0088 => {
|
|
@@ -7727,7 +7739,7 @@ my %isoSetting2010 = (
|
|
|
7727
7739
|
#
|
|
7728
7740
|
0x019f => {
|
|
7729
7741
|
Name => 'ShutterCount3',
|
|
7730
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|
|
|
7742
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|ZV-E10)\b/',
|
|
7731
7743
|
Format => 'int32u',
|
|
7732
7744
|
RawConv => '$val == 0 ? undef : $val',
|
|
7733
7745
|
},
|
|
@@ -7745,7 +7757,7 @@ my %isoSetting2010 = (
|
|
|
7745
7757
|
},
|
|
7746
7758
|
0x01eb => {
|
|
7747
7759
|
Name => 'APS-CSizeCapture',
|
|
7748
|
-
Condition => '$$self{Model} =~ /^ILCE-(
|
|
7760
|
+
Condition => '$$self{Model} =~ /^ILCE-(7RM4A?|7C|9M2)|ZV-E10/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/',
|
|
7749
7761
|
PrintConv => {
|
|
7750
7762
|
0 => 'Off',
|
|
7751
7763
|
1 => 'On',
|
|
@@ -7753,7 +7765,7 @@ my %isoSetting2010 = (
|
|
|
7753
7765
|
},
|
|
7754
7766
|
0x01ed => {
|
|
7755
7767
|
Name => 'LensSpecFeatures',
|
|
7756
|
-
Condition => '$$self{Model} =~ /^ILCE-(
|
|
7768
|
+
Condition => '$$self{Model} =~ /^ILCE-(7RM4A?|7C|9M2)|ZV-E10/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/',
|
|
7757
7769
|
Priority => 0,
|
|
7758
7770
|
Format => 'undef[2]',
|
|
7759
7771
|
ValueConv => 'join " ", unpack "H2H2", $val',
|
|
@@ -7766,7 +7778,7 @@ my %isoSetting2010 = (
|
|
|
7766
7778
|
},
|
|
7767
7779
|
0x01ee => {
|
|
7768
7780
|
Name => 'APS-CSizeCapture',
|
|
7769
|
-
Condition => '$$self{Model} =~ /^(ILCE-(7M3|
|
|
7781
|
+
Condition => '$$self{Model} =~ /^(ILCE-(7M3|7RM3A?|9))\b/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
|
7770
7782
|
PrintConv => {
|
|
7771
7783
|
0 => 'Off',
|
|
7772
7784
|
1 => 'On',
|
|
@@ -7774,7 +7786,7 @@ my %isoSetting2010 = (
|
|
|
7774
7786
|
},
|
|
7775
7787
|
0x01f0 => {
|
|
7776
7788
|
Name => 'LensSpecFeatures',
|
|
7777
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|
|
|
7789
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|7RM3A?|9))\b/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
|
7778
7790
|
Priority => 0,
|
|
7779
7791
|
Format => 'undef[2]',
|
|
7780
7792
|
ValueConv => 'join " ", unpack "H2H2", $val',
|
|
@@ -8363,8 +8375,8 @@ my %isoSetting2010 = (
|
|
|
8363
8375
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
|
8364
8376
|
DATAMEMBER => [ 0x04 ],
|
|
8365
8377
|
0x04 => {
|
|
8366
|
-
# seen values 0,2,3,18,32,49,50,83,148
|
|
8367
|
-
# CameraTemperature is valid for all values except 0
|
|
8378
|
+
# seen values 0,2,3,18,19,32,49,50,83,130,132,148,213,229,255
|
|
8379
|
+
# CameraTemperature is valid for all values above except ==0 and >=130
|
|
8368
8380
|
Name => 'TempTest2',
|
|
8369
8381
|
DataMember => 'TempTest2',
|
|
8370
8382
|
Hidden => 1,
|
|
@@ -8685,7 +8697,7 @@ my %isoSetting2010 = (
|
|
|
8685
8697
|
},
|
|
8686
8698
|
0x0342 => {
|
|
8687
8699
|
Name => 'LensZoomPosition',
|
|
8688
|
-
Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7M3|
|
|
8700
|
+
Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7M3|7RM3A?|7RM4A?|7SM2|6100|6300|6400|6500|6600|7C|9|9M2)|DSC-(HX80|HX90V|HX99|RX0|RX10M2|RX10M3|RX10M4|RX100M4|RX100M5|RX100M5A|RX100M6|RX100M7|WX500)|ZV-)/',
|
|
8689
8701
|
Format => 'int16u',
|
|
8690
8702
|
PrintConv => 'sprintf("%.0f%%",$val/10.24)',
|
|
8691
8703
|
PrintConvInv => '$val=~s/ ?%$//; $val * 10.24',
|
|
@@ -8697,7 +8709,7 @@ my %isoSetting2010 = (
|
|
|
8697
8709
|
},
|
|
8698
8710
|
0x034e => {
|
|
8699
8711
|
Name => 'LensZoomPosition',
|
|
8700
|
-
Condition => '$$self{Model} =~ /^(DSC-(RX100M5|RX100M5A|RX100M6|RX100M7|RX10M4|HX99)|ILCE-(6100|6400|6600|7C|7M3|
|
|
8712
|
+
Condition => '$$self{Model} =~ /^(DSC-(RX100M5|RX100M5A|RX100M6|RX100M7|RX10M4|HX99)|ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9M2)|ZV-E10)/',
|
|
8701
8713
|
Format => 'int16u',
|
|
8702
8714
|
PrintConv => 'sprintf("%.0f%%",$val/10.24)',
|
|
8703
8715
|
PrintConvInv => '$val=~s/ ?%$//; $val * 10.24',
|
|
@@ -8709,7 +8721,7 @@ my %isoSetting2010 = (
|
|
|
8709
8721
|
},
|
|
8710
8722
|
0x035c => {
|
|
8711
8723
|
Name => 'VignettingCorrParams',
|
|
8712
|
-
Condition => '$$self{Model} =~ /^(ILCA-99M2|ILCE-(6100|6400|6500|6600|7C|7M3|
|
|
8724
|
+
Condition => '$$self{Model} =~ /^(ILCA-99M2|ILCE-(6100|6400|6500|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|ZV-E10)/',
|
|
8713
8725
|
Format => 'int16s[16]',
|
|
8714
8726
|
},
|
|
8715
8727
|
0x035a => {
|
|
@@ -8746,7 +8758,7 @@ my %isoSetting2010 = (
|
|
|
8746
8758
|
},
|
|
8747
8759
|
0x03b8 => {
|
|
8748
8760
|
Name => 'ChromaticAberrationCorrParams',
|
|
8749
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|
|
|
8761
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|ZV-E10)/',
|
|
8750
8762
|
Format => 'int16s[32]',
|
|
8751
8763
|
},
|
|
8752
8764
|
);
|
|
@@ -9277,11 +9289,11 @@ my %isoSetting2010 = (
|
|
|
9277
9289
|
|
|
9278
9290
|
# 0x1a06 onwards - first seen for ILCE-7RM2: appears to be some kind of metering image
|
|
9279
9291
|
# but not valid anymore for ILCE-6400, ILCE-9 v5.0x
|
|
9280
|
-
0x1a06 => { Name => 'TiffMeteringImageWidth', Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|
|
|
9281
|
-
0x1a07 => { Name => 'TiffMeteringImageHeight', Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|
|
|
9292
|
+
0x1a06 => { Name => 'TiffMeteringImageWidth', Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3A?|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/' },
|
|
9293
|
+
0x1a07 => { Name => 'TiffMeteringImageHeight', Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3A?|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/' },
|
|
9282
9294
|
0x1a08 => { # (2640 bytes: 1 set of 44x30 int16u values)
|
|
9283
9295
|
Name => 'TiffMeteringImage',
|
|
9284
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|
|
|
9296
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6300|6500|7M3|7RM2|7RM3A?|7SM2|9))\b/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
|
9285
9297
|
Format => 'undef[2640]',
|
|
9286
9298
|
Notes => q{
|
|
9287
9299
|
13(?)-bit intensity data from 1320 (1200) metering segments, extracted as a
|
|
@@ -10127,10 +10139,16 @@ my %isoSetting2010 = (
|
|
|
10127
10139
|
PrintConv => 'Image::ExifTool::Exif::PrintFNumber($val)',
|
|
10128
10140
|
},
|
|
10129
10141
|
0x8001 => { Name => 'Sony_rtmd_0x8001', Format => 'int16u', %hidUnk },
|
|
10142
|
+
0x8004 => { Name => 'Sony_rtmd_0x8004', Format => 'int16u', %hidUnk },
|
|
10143
|
+
0x8005 => { Name => 'Sony_rtmd_0x8005', Format => 'int16u', %hidUnk },
|
|
10144
|
+
0x800a => { Name => 'Sony_rtmd_0x800a', Format => 'int16u', %hidUnk },
|
|
10145
|
+
0x800b => { Name => 'Sony_rtmd_0x800b', Format => 'int16u', %hidUnk },
|
|
10130
10146
|
# 0x8100 - 16 bytes starting with 0x060e2b340401
|
|
10131
10147
|
0x8100 => { Name => 'Sony_rtmd_0x8100', Format => 'int8u', %hidUnk },
|
|
10132
10148
|
0x8101 => { Name => 'Sony_rtmd_0x8101', Format => 'int8u', %hidUnk }, # seen: 0,1
|
|
10133
|
-
|
|
10149
|
+
0x8104 => { Name => 'Sony_rtmd_0x8104', Format => 'int16u', %hidUnk }, # seen: 35616
|
|
10150
|
+
0x8105 => { Name => 'Sony_rtmd_0x8105', Format => 'int16u', %hidUnk }, # seen: 20092
|
|
10151
|
+
0x8106 => { Name => 'Sony_rtmd_0x8106', Format => 'int32u', %hidUnk }, # seen: "25 1","24000 1001" frame rate?
|
|
10134
10152
|
0x8109 => { #forum12218
|
|
10135
10153
|
Name => 'ExposureTime',
|
|
10136
10154
|
Format => 'rational64u',
|
|
@@ -10226,7 +10244,7 @@ my %isoSetting2010 = (
|
|
|
10226
10244
|
},
|
|
10227
10245
|
0xe000 => { Name => 'Sony_rtmd_0xe000', Format => 'int8u', %hidUnk }, # (16 bytes)
|
|
10228
10246
|
0xe300 => { Name => 'Sony_rtmd_0xe300', Format => 'int8u', %hidUnk }, # seen: 0,1
|
|
10229
|
-
0xe301 => { Name => 'Sony_rtmd_0xe301', Format => 'int32u', %hidUnk }, # seen: 100,1600
|
|
10247
|
+
0xe301 => { Name => 'Sony_rtmd_0xe301', Format => 'int32u', %hidUnk }, # seen: 100,1600,12800
|
|
10230
10248
|
0xe302 => { Name => 'Sony_rtmd_0xe302', Format => 'int8u', %hidUnk }, # seen: 1
|
|
10231
10249
|
0xe303 => { #forum12218
|
|
10232
10250
|
Name => 'WhiteBalance',
|
|
@@ -10247,6 +10265,19 @@ my %isoSetting2010 = (
|
|
|
10247
10265
|
ValueConv => 'my @a=unpack("x1H4H2H2H2H2H2",$val); "$a[0]:$a[1]:$a[2] $a[3]:$a[4]:$a[5]"',
|
|
10248
10266
|
PrintConv => '$self->ConvertDateTime($val)',
|
|
10249
10267
|
},
|
|
10268
|
+
0xe435 => { Name => 'Sony_rtmd_0xe435', Format => 'int32u', %hidUnk }, # seen: 2000
|
|
10269
|
+
0xe437 => { Name => 'Sony_rtmd_0xe437', Format => 'int32s', %hidUnk }, # seen: -3800 to -3400
|
|
10270
|
+
0xe43b => {
|
|
10271
|
+
Name => 'PitchRollYaw',
|
|
10272
|
+
Format => 'int16s',
|
|
10273
|
+
RawConv => 'substr($val, 8)',
|
|
10274
|
+
},
|
|
10275
|
+
0xe445 => { Name => 'Sony_rtmd_0xe445', Format => 'int32u', %hidUnk }, # seen: 2000
|
|
10276
|
+
0xe44b => {
|
|
10277
|
+
Name => 'Accelerometer', # (NC)
|
|
10278
|
+
Format => 'int16s',
|
|
10279
|
+
RawConv => 'substr($val, 8)',
|
|
10280
|
+
},
|
|
10250
10281
|
# f010 - 2048 bytes
|
|
10251
10282
|
# f020 - 543 bytes
|
|
10252
10283
|
);
|
|
@@ -10294,6 +10325,26 @@ my %isoSetting2010 = (
|
|
|
10294
10325
|
ValueConv => '"$val[0] $val[1]Z"',
|
|
10295
10326
|
PrintConv => '$self->ConvertDateTime($val)',
|
|
10296
10327
|
},
|
|
10328
|
+
GPSLatitude => {
|
|
10329
|
+
SubDoc => 1, # generate for all sub-documents
|
|
10330
|
+
Groups => { 2 => 'Location' },
|
|
10331
|
+
Require => {
|
|
10332
|
+
0 => 'Sony:GPSLatitude',
|
|
10333
|
+
1 => 'Sony:GPSLatitudeRef',
|
|
10334
|
+
},
|
|
10335
|
+
ValueConv => '$val[1] =~ /^S/i ? -$val[0] : $val[0]',
|
|
10336
|
+
PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")',
|
|
10337
|
+
},
|
|
10338
|
+
GPSLongitude => {
|
|
10339
|
+
SubDoc => 1, # generate for all sub-documents
|
|
10340
|
+
Groups => { 2 => 'Location' },
|
|
10341
|
+
Require => {
|
|
10342
|
+
0 => 'Sony:GPSLongitude',
|
|
10343
|
+
1 => 'Sony:GPSLongitudeRef',
|
|
10344
|
+
},
|
|
10345
|
+
ValueConv => '$val[1] =~ /^W/i ? -$val[0] : $val[0]',
|
|
10346
|
+
PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "E")',
|
|
10347
|
+
},
|
|
10297
10348
|
);
|
|
10298
10349
|
|
|
10299
10350
|
# add our composite tags
|