exiftool-vendored.exe 12.28.0 → 12.34.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 +108 -5
- package/bin/exiftool_files/README +2 -2
- package/bin/exiftool_files/arg_files/xmp2exif.args +2 -1
- package/bin/exiftool_files/config_files/example.config +1 -1
- package/bin/exiftool_files/exiftool.pl +40 -26
- 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 +16 -3
- package/bin/exiftool_files/lib/Image/ExifTool/CBOR.pm +331 -0
- package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +35 -5
- package/bin/exiftool_files/lib/Image/ExifTool/Charset.pm +2 -0
- 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/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/ICC_Profile.pm +96 -4
- 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/Lang/nl.pm +60 -59
- package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +81 -14
- package/bin/exiftool_files/lib/Image/ExifTool/MacOS.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +12 -3
- package/bin/exiftool_files/lib/Image/ExifTool/NikonSettings.pm +10 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +8 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Other.pm +93 -0
- package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +11 -12
- package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +7 -6
- package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +2 -1
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +67 -9
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +133 -119
- package/bin/exiftool_files/lib/Image/ExifTool/README +9 -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 +80 -32
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +139 -4
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +224 -30
- 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 +17 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +43 -0
- package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +21 -8
- package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +4 -1
- package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool.pm +8892 -8839
- package/bin/exiftool_files/lib/Image/ExifTool.pod +24 -15
- 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.47';
|
|
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)
|
|
@@ -196,6 +197,8 @@ sub PrintInvLensSpec($;$$);
|
|
|
196
197
|
49465 => 'Tamron 17-70mm F2.8 Di III-A VC RXD', #JR (Model B070)
|
|
197
198
|
49466 => 'Tamron 150-500mm F5-6.7 Di III VC VXD', #JR (Model A057)
|
|
198
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
|
+
|
|
199
202
|
49473 => 'Tokina atx-m 85mm F1.8 FE or Viltrox lens', #JR
|
|
200
203
|
49473.1 => 'Viltrox 23mm F1.4 E', #JR
|
|
201
204
|
49473.2 => 'Viltrox 56mm F1.4 E', #JR
|
|
@@ -234,8 +237,12 @@ sub PrintInvLensSpec($;$$);
|
|
|
234
237
|
50524 => 'Sigma 35mm F2 DG DN | C', #IB (020)
|
|
235
238
|
50525 => 'Sigma 24mm F3.5 DG DN | C', #JR (021)
|
|
236
239
|
50526 => 'Sigma 28-70mm F2.8 DG DN | C', #JR (021)
|
|
240
|
+
50527 => 'Sigma 150-600mm F5-6.3 DG DN OS | S', #JR (021)
|
|
237
241
|
50528 => 'Sigma 35mm F1.4 DG DN | A', #IB/JR (021)
|
|
238
|
-
|
|
242
|
+
50529 => 'Sigma 90mm F2.8 DG DN | C', #JR (021)
|
|
243
|
+
50530 => 'Sigma 24mm F2 DG DN | C', #JR (021)
|
|
244
|
+
50531 => 'Sigma 18-50mm F2.8 DC DN | C', #IB/JR (021)
|
|
245
|
+
|
|
239
246
|
50992 => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR
|
|
240
247
|
50993 => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB
|
|
241
248
|
50994 => 'Voigtlander ULTRA WIDE-HELIAR 12mm F5.6 III', #IB
|
|
@@ -264,7 +271,7 @@ sub PrintInvLensSpec($;$$);
|
|
|
264
271
|
51510 => 'Samyang AF 18mm F2.8 or Samyang AF 35mm F1.8', #JR
|
|
265
272
|
51510.1 => 'Samyang AF 35mm F1.8', #JR
|
|
266
273
|
51512 => 'Samyang AF 75mm F1.8', #IB/JR
|
|
267
|
-
51514 => 'Samyang AF 24mm F1.8
|
|
274
|
+
51514 => 'Samyang AF 24mm F1.8', #IB
|
|
268
275
|
);
|
|
269
276
|
|
|
270
277
|
# ExposureProgram values (ref PH, mainly decoded from A200)
|
|
@@ -1027,7 +1034,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
1027
1034
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010h' },
|
|
1028
1035
|
},{
|
|
1029
1036
|
Name => 'Tag2010i', # ?
|
|
1030
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|DSC-(RX10M4|RX100M6|RX100M5A|RX100M7|HX99|RX0M2)|ZV-1)\b/',
|
|
1037
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|DSC-(RX10M4|RX100M6|RX100M5A|RX100M7|HX99|RX0M2)|ZV-(1|E10))\b/',
|
|
1031
1038
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010i' },
|
|
1032
1039
|
},{
|
|
1033
1040
|
Name => 'Tag_0x2010',
|
|
@@ -1574,6 +1581,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
1574
1581
|
65535 => 'n/a',
|
|
1575
1582
|
},
|
|
1576
1583
|
},
|
|
1584
|
+
# 0x203a - 0x2041: first seen October 2021 for ILCE-7M4
|
|
1577
1585
|
0x3000 => {
|
|
1578
1586
|
Name => 'ShotInfo',
|
|
1579
1587
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::ShotInfo' },
|
|
@@ -1602,21 +1610,21 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
1602
1610
|
# from mid-2015: ILCE-7RM2/7SM2/6300 and newer models use different offsets
|
|
1603
1611
|
{
|
|
1604
1612
|
Name => 'Tag9050a',
|
|
1605
|
-
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-)/',
|
|
1613
|
+
Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(1|6100|6300|6400|6500|6600|7C|7M3|7M4|7RM2|7RM3A?|7RM4A?|7SM2|7SM3|9|9M2)|ILCA-99M2|ILME-FX3|ZV-)/',
|
|
1606
1614
|
SubDirectory => {
|
|
1607
1615
|
TagTable => 'Image::ExifTool::Sony::Tag9050a',
|
|
1608
1616
|
ByteOrder => 'LittleEndian',
|
|
1609
1617
|
},
|
|
1610
1618
|
},{
|
|
1611
1619
|
Name => 'Tag9050b',
|
|
1612
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6300|6400|6500|6600|7C|7M3|7RM2|7RM3A?|7RM4A?|7SM2|9|9M2)|ILCA-99M2)/',
|
|
1620
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6300|6400|6500|6600|7C|7M3|7RM2|7RM3A?|7RM4A?|7SM2|9|9M2)|ILCA-99M2|ZV-E10)/',
|
|
1613
1621
|
SubDirectory => {
|
|
1614
1622
|
TagTable => 'Image::ExifTool::Sony::Tag9050b',
|
|
1615
1623
|
ByteOrder => 'LittleEndian',
|
|
1616
1624
|
},
|
|
1617
1625
|
},{
|
|
1618
1626
|
Name => 'Tag9050c',
|
|
1619
|
-
Condition => '$$self{Model} =~ /^(ILCE-(1|7SM3)|ILME-FX3)/',
|
|
1627
|
+
Condition => '$$self{Model} =~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)/',
|
|
1620
1628
|
SubDirectory => {
|
|
1621
1629
|
TagTable => 'Image::ExifTool::Sony::Tag9050c',
|
|
1622
1630
|
ByteOrder => 'LittleEndian',
|
|
@@ -1635,7 +1643,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
1635
1643
|
# 0x23 (e) for DSC-RX10/HX60V/HX350/HX400V/WX220/WX350, ILCE-7/7R/5000/6000, ILCA-68/77M2
|
|
1636
1644
|
# 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
|
|
1637
1645
|
# 0x26 (e) for ILCE-6100/6400/6600/7M3/7RM3/9, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/HX99
|
|
1638
|
-
# 0x28 (e) for ILCE-7RM4/9M2, DSC-RX100M7, ZV-1
|
|
1646
|
+
# 0x28 (e) for ILCE-7RM4/9M2, DSC-RX100M7, ZV-1/E10
|
|
1639
1647
|
# 0x31 (e) for ILCE-1/7SM3, ILME-FX3
|
|
1640
1648
|
# first byte decoded: 40, 204, 202, 27, 58, 62, 48, 215, 28, 106 respectively
|
|
1641
1649
|
{
|
|
@@ -1651,7 +1659,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
1651
1659
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9400b' },
|
|
1652
1660
|
},{
|
|
1653
1661
|
Name => 'Tag9400c',
|
|
1654
|
-
Condition => '$$valPt =~ /^[\x23\x24\x26\x28\x31]/',
|
|
1662
|
+
Condition => '$$valPt =~ /^[\x23\x24\x26\x28\x31]/',
|
|
1655
1663
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9400c' },
|
|
1656
1664
|
},{
|
|
1657
1665
|
Name => 'Sony_0x9400',
|
|
@@ -1810,7 +1818,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
1810
1818
|
# 142 var (0x25 = 37 var enc.) DSC-HX80/HX90V/RX1RM2/RX10M2/RX10M3/RX100M4/WX500, ILCE-6300/7RM2/7SM2
|
|
1811
1819
|
# 144 var (0xe1 = 225 var enc.) DSC-RX100M5
|
|
1812
1820
|
# 145 var (0x76 = 118 var enc.) ILCA-99M2, ILCE-6500, DSC-RX0
|
|
1813
|
-
# 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
|
|
1821
|
+
# 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
|
|
1814
1822
|
# July 2020: ILCE-7SM3 doesn't write this tag anymore, but writes 0x9416
|
|
1815
1823
|
0x9405 => [{
|
|
1816
1824
|
Name => 'Tag9405a',
|
|
@@ -1864,7 +1872,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
1864
1872
|
},
|
|
1865
1873
|
0x940c => [{
|
|
1866
1874
|
Name => 'Tag940c',
|
|
1867
|
-
Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|Lunar)\b/',
|
|
1875
|
+
Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|Lunar|ZV-E10)\b/',
|
|
1868
1876
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag940c' },
|
|
1869
1877
|
},{
|
|
1870
1878
|
Name => 'Sony_0x940c',
|
|
@@ -2020,10 +2028,13 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
2020
2028
|
379 => 'ILCE-6100', #IB/JR
|
|
2021
2029
|
380 => 'ZV-1', #JR
|
|
2022
2030
|
381 => 'ILCE-7C', #JR
|
|
2031
|
+
382 => 'ZV-E10', #JR
|
|
2023
2032
|
383 => 'ILCE-7SM3',
|
|
2024
2033
|
384 => 'ILCE-1', #PH
|
|
2025
2034
|
385 => 'ILME-FX3', #JR
|
|
2035
|
+
386 => 'ILCE-7RM3A', #JR
|
|
2026
2036
|
387 => 'ILCE-7RM4A', #forum12542
|
|
2037
|
+
388 => 'ILCE-7M4', #IB/JR
|
|
2027
2038
|
},
|
|
2028
2039
|
},
|
|
2029
2040
|
0xb020 => { #2
|
|
@@ -6182,7 +6193,7 @@ my %isoSetting2010 = (
|
|
|
6182
6193
|
43 => 160000,
|
|
6183
6194
|
44 => 204800,
|
|
6184
6195
|
45 => 256000,
|
|
6185
|
-
46 => 320000,
|
|
6196
|
+
46 => 320000,
|
|
6186
6197
|
47 => 409600,
|
|
6187
6198
|
);
|
|
6188
6199
|
|
|
@@ -7610,7 +7621,7 @@ my %isoSetting2010 = (
|
|
|
7610
7621
|
# March 2019: ILCE-9 with v5.0x firmware follows ILCE-6400 in many tags ...
|
|
7611
7622
|
0x0050 => {
|
|
7612
7623
|
Name => 'ShutterCount2',
|
|
7613
|
-
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7RM4A?|9M2))/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/)',
|
|
7624
|
+
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)/)',
|
|
7614
7625
|
Format => 'int32u',
|
|
7615
7626
|
RawConv => '$val & 0x00ffffff',
|
|
7616
7627
|
},
|
|
@@ -7627,13 +7638,13 @@ my %isoSetting2010 = (
|
|
|
7627
7638
|
# 0x0058, 0x0061: E-Mount: ShutterCount and dateTime
|
|
7628
7639
|
0x0058 => { # appears not valid when flash is used ... not for ILCA-99M2
|
|
7629
7640
|
Name => 'ShutterCount2',
|
|
7630
|
-
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} !~ /^(ILCA-99M2|ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9M2))/) and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
|
7641
|
+
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)/',
|
|
7631
7642
|
Format => 'int32u',
|
|
7632
7643
|
RawConv => '$val & 0x00ffffff',
|
|
7633
7644
|
},
|
|
7634
7645
|
0x0061 => { # only minutes-seconds, not for ILCA-99M2, ILCE-9
|
|
7635
7646
|
Name => 'SonyTimeMinSec',
|
|
7636
|
-
Condition => '$$self{Model} !~ /^(ILCA-99M2|ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2))/',
|
|
7647
|
+
Condition => '$$self{Model} !~ /^(ILCA-99M2|ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|ZV-E10)/',
|
|
7637
7648
|
Format => 'undef[2]',
|
|
7638
7649
|
ValueConv => q{
|
|
7639
7650
|
my @v = unpack('C*', $val);
|
|
@@ -7642,7 +7653,7 @@ my %isoSetting2010 = (
|
|
|
7642
7653
|
},
|
|
7643
7654
|
0x006b => {
|
|
7644
7655
|
Name => 'ReleaseMode2',
|
|
7645
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7RM4A?|9M2))/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/',
|
|
7656
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7RM4A?|9M2)|ZV-E10)/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/',
|
|
7646
7657
|
%releaseMode2,
|
|
7647
7658
|
},
|
|
7648
7659
|
0x006d => {
|
|
@@ -7652,7 +7663,7 @@ my %isoSetting2010 = (
|
|
|
7652
7663
|
},
|
|
7653
7664
|
0x0073 => {
|
|
7654
7665
|
Name => 'ReleaseMode2',
|
|
7655
|
-
Condition => '$$self{Model} !~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9M2))/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
|
7666
|
+
Condition => '$$self{Model} !~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9M2)|ZV-E10)/ and $$self{Software} !~ /^ILCE-9 (v5.0|v6.0)/',
|
|
7656
7667
|
%releaseMode2,
|
|
7657
7668
|
},
|
|
7658
7669
|
0x0088 => {
|
|
@@ -7731,7 +7742,7 @@ my %isoSetting2010 = (
|
|
|
7731
7742
|
#
|
|
7732
7743
|
0x019f => {
|
|
7733
7744
|
Name => 'ShutterCount3',
|
|
7734
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2))\b/',
|
|
7745
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|ZV-E10)\b/',
|
|
7735
7746
|
Format => 'int32u',
|
|
7736
7747
|
RawConv => '$val == 0 ? undef : $val',
|
|
7737
7748
|
},
|
|
@@ -7749,7 +7760,7 @@ my %isoSetting2010 = (
|
|
|
7749
7760
|
},
|
|
7750
7761
|
0x01eb => {
|
|
7751
7762
|
Name => 'APS-CSizeCapture',
|
|
7752
|
-
Condition => '$$self{Model} =~ /^ILCE-(7RM4A?|7C|9M2)/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/',
|
|
7763
|
+
Condition => '$$self{Model} =~ /^ILCE-(7RM4A?|7C|9M2)|ZV-E10/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/',
|
|
7753
7764
|
PrintConv => {
|
|
7754
7765
|
0 => 'Off',
|
|
7755
7766
|
1 => 'On',
|
|
@@ -7757,7 +7768,7 @@ my %isoSetting2010 = (
|
|
|
7757
7768
|
},
|
|
7758
7769
|
0x01ed => {
|
|
7759
7770
|
Name => 'LensSpecFeatures',
|
|
7760
|
-
Condition => '$$self{Model} =~ /^ILCE-(7RM4A?|7C|9M2)/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/',
|
|
7771
|
+
Condition => '$$self{Model} =~ /^ILCE-(7RM4A?|7C|9M2)|ZV-E10/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/',
|
|
7761
7772
|
Priority => 0,
|
|
7762
7773
|
Format => 'undef[2]',
|
|
7763
7774
|
ValueConv => 'join " ", unpack "H2H2", $val',
|
|
@@ -7946,7 +7957,7 @@ my %isoSetting2010 = (
|
|
|
7946
7957
|
},
|
|
7947
7958
|
0x0088 => {
|
|
7948
7959
|
Name => 'InternalSerialNumber', #(NC)
|
|
7949
|
-
Condition => '$$self{Model} =~ /^(ILCE-7SM3|ILME-FX3)/',
|
|
7960
|
+
Condition => '$$self{Model} =~ /^(ILCE-(7M4|7SM3)|ILME-FX3)/',
|
|
7950
7961
|
Format => 'int8u[6]',
|
|
7951
7962
|
PrintConv => 'unpack "H*", pack "C*", split " ", $val',
|
|
7952
7963
|
},
|
|
@@ -8184,7 +8195,7 @@ my %isoSetting2010 = (
|
|
|
8184
8195
|
},
|
|
8185
8196
|
0x002a => [{
|
|
8186
8197
|
Name => 'Quality2',
|
|
8187
|
-
Condition => '$$self{Model} !~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
|
|
8198
|
+
Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
|
|
8188
8199
|
PrintConv => {
|
|
8189
8200
|
0 => 'JPEG',
|
|
8190
8201
|
1 => 'RAW',
|
|
@@ -8193,7 +8204,7 @@ my %isoSetting2010 = (
|
|
|
8193
8204
|
},
|
|
8194
8205
|
},{
|
|
8195
8206
|
Name => 'Quality2',
|
|
8196
|
-
Condition => '$$self{Model} =~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
|
|
8207
|
+
Condition => '$$self{Model} =~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
|
|
8197
8208
|
PrintConv => {
|
|
8198
8209
|
1 => 'JPEG',
|
|
8199
8210
|
2 => 'RAW',
|
|
@@ -8204,13 +8215,13 @@ my %isoSetting2010 = (
|
|
|
8204
8215
|
}],
|
|
8205
8216
|
0x0047 => {
|
|
8206
8217
|
Name => 'SonyImageHeight',
|
|
8207
|
-
Condition => '$$self{Model} !~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
|
|
8218
|
+
Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
|
|
8208
8219
|
Format => 'int16u',
|
|
8209
8220
|
PrintConv => '$val > 0 ? 8*$val : "n.a."',
|
|
8210
8221
|
},
|
|
8211
8222
|
0x0053 => {
|
|
8212
8223
|
Name => 'ModelReleaseYear',
|
|
8213
|
-
Condition => '$$self{Model} !~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
|
|
8224
|
+
Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
|
|
8214
8225
|
Format => 'int8u',
|
|
8215
8226
|
PrintConv => 'sprintf("20%.2d", $val)',
|
|
8216
8227
|
},
|
|
@@ -8225,10 +8236,11 @@ my %isoSetting2010 = (
|
|
|
8225
8236
|
FIRST_ENTRY => 0,
|
|
8226
8237
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
|
8227
8238
|
DATAMEMBER => [ 0 ],
|
|
8228
|
-
IS_SUBDIR => [ 0x0498, 0x04a1, 0x04a2, 0x059d, 0x0634, 0x0636, 0x064c, 0x0653, 0x0678, 0x06b8, 0x06de, 0x06e7 ],
|
|
8239
|
+
IS_SUBDIR => [ 0x0498, 0x049d, 0x04a1, 0x04a2, 0x059d, 0x0634, 0x0636, 0x064c, 0x0653, 0x0678, 0x06b8, 0x06de, 0x06e7 ],
|
|
8229
8240
|
0x0000 => { Name => 'Ver9401', Hidden => 1, RawConv => '$$self{Ver9401} = $val; $$self{OPTIONS}{Unknown}<2 ? undef : $val' },
|
|
8230
8241
|
|
|
8231
8242
|
0x0498 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 148', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
|
8243
|
+
0x049d => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 167', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
|
8232
8244
|
0x04a1 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(160|164)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
|
8233
8245
|
0x04a2 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(152|154|155)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
|
8234
8246
|
0x059d => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(144|146)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
|
|
@@ -8367,8 +8379,8 @@ my %isoSetting2010 = (
|
|
|
8367
8379
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
|
8368
8380
|
DATAMEMBER => [ 0x04 ],
|
|
8369
8381
|
0x04 => {
|
|
8370
|
-
# seen values 0,2,3,18,32,49,50,83,148
|
|
8371
|
-
# CameraTemperature is valid for all values except 0
|
|
8382
|
+
# seen values 0,2,3,18,19,32,49,50,83,130,132,148,213,229,255
|
|
8383
|
+
# CameraTemperature is valid for all values above except ==0 and >=130
|
|
8372
8384
|
Name => 'TempTest2',
|
|
8373
8385
|
DataMember => 'TempTest2',
|
|
8374
8386
|
Hidden => 1,
|
|
@@ -8701,7 +8713,7 @@ my %isoSetting2010 = (
|
|
|
8701
8713
|
},
|
|
8702
8714
|
0x034e => {
|
|
8703
8715
|
Name => 'LensZoomPosition',
|
|
8704
|
-
Condition => '$$self{Model} =~ /^(DSC-(RX100M5|RX100M5A|RX100M6|RX100M7|RX10M4|HX99)|ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9M2))/',
|
|
8716
|
+
Condition => '$$self{Model} =~ /^(DSC-(RX100M5|RX100M5A|RX100M6|RX100M7|RX10M4|HX99)|ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9M2)|ZV-E10)/',
|
|
8705
8717
|
Format => 'int16u',
|
|
8706
8718
|
PrintConv => 'sprintf("%.0f%%",$val/10.24)',
|
|
8707
8719
|
PrintConvInv => '$val=~s/ ?%$//; $val * 10.24',
|
|
@@ -8713,7 +8725,7 @@ my %isoSetting2010 = (
|
|
|
8713
8725
|
},
|
|
8714
8726
|
0x035c => {
|
|
8715
8727
|
Name => 'VignettingCorrParams',
|
|
8716
|
-
Condition => '$$self{Model} =~ /^(ILCA-99M2|ILCE-(6100|6400|6500|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2))/',
|
|
8728
|
+
Condition => '$$self{Model} =~ /^(ILCA-99M2|ILCE-(6100|6400|6500|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|ZV-E10)/',
|
|
8717
8729
|
Format => 'int16s[16]',
|
|
8718
8730
|
},
|
|
8719
8731
|
0x035a => {
|
|
@@ -8750,7 +8762,7 @@ my %isoSetting2010 = (
|
|
|
8750
8762
|
},
|
|
8751
8763
|
0x03b8 => {
|
|
8752
8764
|
Name => 'ChromaticAberrationCorrParams',
|
|
8753
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2))/',
|
|
8765
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|ZV-E10)/',
|
|
8754
8766
|
Format => 'int16s[32]',
|
|
8755
8767
|
},
|
|
8756
8768
|
);
|
|
@@ -9497,7 +9509,7 @@ my %isoSetting2010 = (
|
|
|
9497
9509
|
WRITE_PROC => \&WriteEnciphered,
|
|
9498
9510
|
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
|
9499
9511
|
FORMAT => 'int8u',
|
|
9500
|
-
NOTES => 'Valid for the ILCE-1/7SM3, ILME-FX3.',
|
|
9512
|
+
NOTES => 'Valid for the ILCE-1/7M4/7SM3, ILME-FX3.',
|
|
9501
9513
|
FIRST_ENTRY => 0,
|
|
9502
9514
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
|
9503
9515
|
0x0000 => { Name => 'Tag9416_0000', PrintConv => 'sprintf("%3d",$val)', RawConv => '$$self{TagVersion} = $val' },
|
|
@@ -9624,10 +9636,22 @@ my %isoSetting2010 = (
|
|
|
9624
9636
|
},
|
|
9625
9637
|
0x088f => {
|
|
9626
9638
|
Name => 'VignettingCorrParams',
|
|
9639
|
+
Condition => '$$self{Model} !~ /^(ILCE-7M4)/',
|
|
9640
|
+
Format => 'int16s[16]',
|
|
9641
|
+
},
|
|
9642
|
+
0x0891 => {
|
|
9643
|
+
Name => 'VignettingCorrParams',
|
|
9644
|
+
Condition => '$$self{Model} =~ /^(ILCE-7M4)/',
|
|
9627
9645
|
Format => 'int16s[16]',
|
|
9628
9646
|
},
|
|
9629
9647
|
0x0914 => {
|
|
9630
9648
|
Name => 'ChromaticAberrationCorrParams',
|
|
9649
|
+
Condition => '$$self{Model} !~ /^(ILCE-7M4)/',
|
|
9650
|
+
Format => 'int16s[32]',
|
|
9651
|
+
},
|
|
9652
|
+
0x0916 => {
|
|
9653
|
+
Name => 'ChromaticAberrationCorrParams',
|
|
9654
|
+
Condition => '$$self{Model} =~ /^(ILCE-7M4)/',
|
|
9631
9655
|
Format => 'int16s[32]',
|
|
9632
9656
|
},
|
|
9633
9657
|
);
|
|
@@ -10131,6 +10155,10 @@ my %isoSetting2010 = (
|
|
|
10131
10155
|
PrintConv => 'Image::ExifTool::Exif::PrintFNumber($val)',
|
|
10132
10156
|
},
|
|
10133
10157
|
0x8001 => { Name => 'Sony_rtmd_0x8001', Format => 'int16u', %hidUnk },
|
|
10158
|
+
0x8004 => { Name => 'Sony_rtmd_0x8004', Format => 'int16u', %hidUnk },
|
|
10159
|
+
0x8005 => { Name => 'Sony_rtmd_0x8005', Format => 'int16u', %hidUnk },
|
|
10160
|
+
0x800a => { Name => 'Sony_rtmd_0x800a', Format => 'int16u', %hidUnk },
|
|
10161
|
+
0x800b => { Name => 'Sony_rtmd_0x800b', Format => 'int16u', %hidUnk },
|
|
10134
10162
|
# 0x8100 - 16 bytes starting with 0x060e2b340401
|
|
10135
10163
|
0x8100 => { Name => 'Sony_rtmd_0x8100', Format => 'int8u', %hidUnk },
|
|
10136
10164
|
0x8101 => { Name => 'Sony_rtmd_0x8101', Format => 'int8u', %hidUnk }, # seen: 0,1
|
|
@@ -10313,6 +10341,26 @@ my %isoSetting2010 = (
|
|
|
10313
10341
|
ValueConv => '"$val[0] $val[1]Z"',
|
|
10314
10342
|
PrintConv => '$self->ConvertDateTime($val)',
|
|
10315
10343
|
},
|
|
10344
|
+
GPSLatitude => {
|
|
10345
|
+
SubDoc => 1, # generate for all sub-documents
|
|
10346
|
+
Groups => { 2 => 'Location' },
|
|
10347
|
+
Require => {
|
|
10348
|
+
0 => 'Sony:GPSLatitude',
|
|
10349
|
+
1 => 'Sony:GPSLatitudeRef',
|
|
10350
|
+
},
|
|
10351
|
+
ValueConv => '$val[1] =~ /^S/i ? -$val[0] : $val[0]',
|
|
10352
|
+
PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")',
|
|
10353
|
+
},
|
|
10354
|
+
GPSLongitude => {
|
|
10355
|
+
SubDoc => 1, # generate for all sub-documents
|
|
10356
|
+
Groups => { 2 => 'Location' },
|
|
10357
|
+
Require => {
|
|
10358
|
+
0 => 'Sony:GPSLongitude',
|
|
10359
|
+
1 => 'Sony:GPSLongitudeRef',
|
|
10360
|
+
},
|
|
10361
|
+
ValueConv => '$val[1] =~ /^W/i ? -$val[0] : $val[0]',
|
|
10362
|
+
PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "E")',
|
|
10363
|
+
},
|
|
10316
10364
|
);
|
|
10317
10365
|
|
|
10318
10366
|
# add our composite tags
|