exiftool-vendored.exe 13.41.0 → 13.43.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.exe +0 -0
- package/bin/exiftool_files/exiftool.pl +66 -77
- package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +27 -2
- package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +7 -6
- package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +13 -5
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +26 -4
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +2 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +137 -4
- package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +5 -2
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +7178 -7107
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +127 -3
- package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +17 -2
- package/bin/exiftool_files/lib/Image/ExifTool.pm +3 -3
- package/bin/exiftool_files/windows_exiftool.txt +28 -20
- package/package.json +4 -4
|
@@ -21,8 +21,9 @@ use strict;
|
|
|
21
21
|
use vars qw($VERSION %samsungLensTypes);
|
|
22
22
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
23
23
|
use Image::ExifTool::Exif;
|
|
24
|
+
use Image::ExifTool::JSON;
|
|
24
25
|
|
|
25
|
-
$VERSION = '1.
|
|
26
|
+
$VERSION = '1.60';
|
|
26
27
|
|
|
27
28
|
sub WriteSTMN($$$);
|
|
28
29
|
sub ProcessINFO($$$);
|
|
@@ -1277,7 +1278,15 @@ my %formatMinMax = (
|
|
|
1277
1278
|
# 0x0b51-name - seen 'Intelligent_PhotoEditor_Data' #forum16086
|
|
1278
1279
|
# 0x0b60-name - seen 'UltraWide_PhotoEditor_Data' #forum16086
|
|
1279
1280
|
# 0x0b90-name - seen 'Document_Scan_Info' #forum16086
|
|
1280
|
-
# 0x0ba1-name - seen 'Original_Path_Hash_Key', 'PhotoEditor_Re_Edit_Data', 'deco_doodle_bitmap', 'deco_sticker_bitmap', 'deco_text_bitmap'
|
|
1281
|
+
# 0x0ba1-name - seen 'Original_Path_Hash_Key', 'PhotoEditor_Re_Edit_Data', 'deco_doodle_bitmap', 'deco_sticker_bitmap', 'deco_text_bitmap','PhotoEditor_Re_Edit_Data'
|
|
1282
|
+
'0x0ba1' => [{
|
|
1283
|
+
Name => 'ReEditData',
|
|
1284
|
+
Condition => '$$self{SamsungTagName} eq "PhotoEditor_Re_Edit_Data"',
|
|
1285
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Samsung::ReEditData' },
|
|
1286
|
+
},{
|
|
1287
|
+
Name => 'OriginalPathHashKey',
|
|
1288
|
+
Condition => '$$self{SamsungTagName} eq "Original_Path_Hash_Key"',
|
|
1289
|
+
}],
|
|
1281
1290
|
# 0x0ba2-name - seen 'Copy_Available_Edit_Info' #forum16086
|
|
1282
1291
|
# 0x0bc0-name - seen 'Single_Relighting_Bokeh_Info' #forum16086
|
|
1283
1292
|
# 0x0bd0-name - seen 'Dual_Relighting_Bokeh_Info' #forum16086
|
|
@@ -1300,12 +1309,22 @@ my %formatMinMax = (
|
|
|
1300
1309
|
'0x0d91' => { #forum16086/16242
|
|
1301
1310
|
Name => 'PEg_Info',
|
|
1302
1311
|
Description => 'PEg Info',
|
|
1303
|
-
SubDirectory => { TagTable => 'Image::ExifTool::
|
|
1312
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Samsung::PEgInfo' },
|
|
1304
1313
|
},
|
|
1305
1314
|
# 0x0da1-name - seen 'Captured_App_Info' #forum16086
|
|
1306
1315
|
# 0xa050-name - seen 'Jpeg360_2D_Info' (Samsung Gear 360)
|
|
1307
1316
|
# 0xa050 - seen 'Jpeg3602D' (Samsung Gear 360)
|
|
1317
|
+
# 0x0c61-name - seen 'Camera_Capture_Mode_Info'
|
|
1318
|
+
# 0x0c61 - seen '1'
|
|
1308
1319
|
# 0x0c81-name - seen 'Watermark_Info'
|
|
1320
|
+
# 0x0ce1-name - seen 'Gallery_DC_Data'
|
|
1321
|
+
# 0x0ce1 - seen '0,109,2,19010102,4000,3000,0,0,0,0;116.284004;1.0'
|
|
1322
|
+
# 0x0e41-name - seen 'Video_Edited_UTC_Offset'
|
|
1323
|
+
# 0x0e41 - seen '+0800'
|
|
1324
|
+
'0x0e41' => {
|
|
1325
|
+
Name => 'VideoEditedTimeZone',
|
|
1326
|
+
Groups => { 2 => 'Time' },
|
|
1327
|
+
},
|
|
1309
1328
|
);
|
|
1310
1329
|
|
|
1311
1330
|
# DualShot Extra Info (ref PH)
|
|
@@ -1380,6 +1399,113 @@ my %formatMinMax = (
|
|
|
1380
1399
|
perfMode => { },
|
|
1381
1400
|
);
|
|
1382
1401
|
|
|
1402
|
+
%Image::ExifTool::Samsung::ReEditData = (
|
|
1403
|
+
GROUPS => { 0 => 'JSON', 2 => 'Image' },
|
|
1404
|
+
PROCESS_PROC => \&Image::ExifTool::JSON::ProcessJSON,
|
|
1405
|
+
VARS => { LONG_TAGS => 2 },
|
|
1406
|
+
originalPath => { },
|
|
1407
|
+
representativeFrameLoc => { },
|
|
1408
|
+
startMotionVideo => { },
|
|
1409
|
+
endMotionVideo => { },
|
|
1410
|
+
isMotionVideoMute => { },
|
|
1411
|
+
isTrimMotionVideo => { },
|
|
1412
|
+
clipInfoValue => { SubDirectory => { TagTable => 'Image::ExifTool::Samsung::ClipInfo' } },
|
|
1413
|
+
toneValue => { SubDirectory => { TagTable => 'Image::ExifTool::Samsung::ToneInfo' } },
|
|
1414
|
+
effectValue => { SubDirectory => { TagTable => 'Image::ExifTool::Samsung::EffectInfo' } },
|
|
1415
|
+
portraitEffectValue => { SubDirectory => { TagTable => 'Image::ExifTool::Samsung::PortraitEffect' } },
|
|
1416
|
+
isBlending => { },
|
|
1417
|
+
isNotReEdit => { },
|
|
1418
|
+
sepVersion => { Name => 'SEPVersion' },
|
|
1419
|
+
ndeVersion => { Name => 'NDEVersion' },
|
|
1420
|
+
reSize => { },
|
|
1421
|
+
isScaleAI => { },
|
|
1422
|
+
rotation => { },
|
|
1423
|
+
adjustmentValue => { },
|
|
1424
|
+
isApplyShapeCorrection => { },
|
|
1425
|
+
isNewReEditOnly => { },
|
|
1426
|
+
isDecoReEditOnly => { },
|
|
1427
|
+
isAIFilterReEditOnly=> { },
|
|
1428
|
+
);
|
|
1429
|
+
|
|
1430
|
+
%Image::ExifTool::Samsung::ClipInfo = (
|
|
1431
|
+
GROUPS => { 0 => 'JSON', 2 => 'Image' },
|
|
1432
|
+
PROCESS_PROC => \&Image::ExifTool::JSON::ProcessJSON,
|
|
1433
|
+
mCenterX => { Name => 'ClipCenterX' },
|
|
1434
|
+
mCenterY => { Name => 'ClipCenterY' },
|
|
1435
|
+
mWidth => { Name => 'ClipWidth' },
|
|
1436
|
+
mHeight => { Name => 'ClipHeight' },
|
|
1437
|
+
mRotation => { Name => 'ClipRotation' },
|
|
1438
|
+
mRotate => { Name => 'ClipRotate' },
|
|
1439
|
+
mHFlip => { Name => 'ClipHFlip' },
|
|
1440
|
+
mVFlip => { Name => 'ClipVFlip' },
|
|
1441
|
+
mRotationEffect => { Name => 'ClipRotationEffect' },
|
|
1442
|
+
mRotateEffect => { Name => 'ClipRotateEffect' },
|
|
1443
|
+
mHFlipEffect => { Name => 'ClipHFlipEffect' },
|
|
1444
|
+
mVFlipEffect => { Name => 'ClipVFlipEffect' },
|
|
1445
|
+
mHozPerspective => { Name => 'ClipHozPerspective' },
|
|
1446
|
+
mVerPerspective => { Name => 'ClipVerPerspective' },
|
|
1447
|
+
);
|
|
1448
|
+
|
|
1449
|
+
%Image::ExifTool::Samsung::ToneInfo = (
|
|
1450
|
+
GROUPS => { 0 => 'JSON', 2 => 'Image' },
|
|
1451
|
+
PROCESS_PROC => \&Image::ExifTool::JSON::ProcessJSON,
|
|
1452
|
+
brightness => { },
|
|
1453
|
+
exposure => { },
|
|
1454
|
+
contrast => { },
|
|
1455
|
+
saturation => { },
|
|
1456
|
+
hue => { },
|
|
1457
|
+
wbMode => { Name => 'WBMode' },
|
|
1458
|
+
wbTemperature => { Name => 'WBTemperature' },
|
|
1459
|
+
tint => { },
|
|
1460
|
+
shadow => { },
|
|
1461
|
+
highlight => { },
|
|
1462
|
+
lightbalance => { },
|
|
1463
|
+
sharpness => { },
|
|
1464
|
+
definition => { },
|
|
1465
|
+
isBrightnessIPE => { },
|
|
1466
|
+
isExposureIPE => { },
|
|
1467
|
+
isContrastIPE => { },
|
|
1468
|
+
isSaturationIPE => { },
|
|
1469
|
+
);
|
|
1470
|
+
|
|
1471
|
+
%Image::ExifTool::Samsung::EffectInfo = (
|
|
1472
|
+
GROUPS => { 0 => 'JSON', 2 => 'Image' },
|
|
1473
|
+
PROCESS_PROC => \&Image::ExifTool::JSON::ProcessJSON,
|
|
1474
|
+
filterIndication=> { },
|
|
1475
|
+
alphaValue => { },
|
|
1476
|
+
filterType => { },
|
|
1477
|
+
);
|
|
1478
|
+
|
|
1479
|
+
%Image::ExifTool::Samsung::PortraitEffect = (
|
|
1480
|
+
GROUPS => { 0 => 'JSON', 2 => 'Image' },
|
|
1481
|
+
PROCESS_PROC => \&Image::ExifTool::JSON::ProcessJSON,
|
|
1482
|
+
VARS => { LONG_TAGS => 1 },
|
|
1483
|
+
effectId => { Name => 'PortraitEffectID' },
|
|
1484
|
+
effectLevel => { Name => 'PortraitEffectLevel' },
|
|
1485
|
+
exifRotation => { Name => 'PortraitExifRotation' },
|
|
1486
|
+
lightLevel => { Name => 'PortraitLightLevel' },
|
|
1487
|
+
touchX => { Name => 'PortraitTouchX' },
|
|
1488
|
+
touchY => { Name => 'PortraitTouchY' },
|
|
1489
|
+
refocusX => { Name => 'PortraitRefocusX' },
|
|
1490
|
+
refocusY => { Name => 'PortraitRefocusY' },
|
|
1491
|
+
effectIdOriginal => { Name => 'PortraitEffectIDOriginal' },
|
|
1492
|
+
effectLevelOriginal => { Name => 'EffectLevelOriginal' },
|
|
1493
|
+
lightLevelOriginal => { Name => 'LightLevelOriginal' },
|
|
1494
|
+
touchXOriginal => { },
|
|
1495
|
+
touchYOriginal => { },
|
|
1496
|
+
refocusXOriginal=> { },
|
|
1497
|
+
refocusYOriginal=> { },
|
|
1498
|
+
waterMarkRemoved=> { Name => 'WaterMarkRemoved' },
|
|
1499
|
+
waterMarkRemovedOriginal => { Name => 'WaterMarkRemovedOriginal' },
|
|
1500
|
+
);
|
|
1501
|
+
|
|
1502
|
+
%Image::ExifTool::Samsung::PEgInfo = (
|
|
1503
|
+
GROUPS => { 0 => 'JSON', 2 => 'Image' },
|
|
1504
|
+
PROCESS_PROC => \&Image::ExifTool::JSON::ProcessJSON,
|
|
1505
|
+
genImageVersion => { },
|
|
1506
|
+
connectorType => { },
|
|
1507
|
+
);
|
|
1508
|
+
|
|
1383
1509
|
# Samsung composite tags
|
|
1384
1510
|
%Image::ExifTool::Samsung::Composite = (
|
|
1385
1511
|
GROUPS => { 2 => 'Image' },
|
|
@@ -1625,7 +1751,14 @@ SamBlock:
|
|
|
1625
1751
|
}
|
|
1626
1752
|
next;
|
|
1627
1753
|
}
|
|
1628
|
-
|
|
1754
|
+
# validate SEFH header
|
|
1755
|
+
unless ($buff =~ /^SEFH/ and $len >= 12) {
|
|
1756
|
+
# tolerate extra junk written by Samsung Gallery
|
|
1757
|
+
last unless $buff =~ /\0\0SEFT/g;
|
|
1758
|
+
$et->Warn('Trailer likely corrupted by Samsung Gallery');
|
|
1759
|
+
$blockEnd += pos($buff);
|
|
1760
|
+
next;
|
|
1761
|
+
}
|
|
1629
1762
|
my $dirPos = $raf->Tell() - $len;
|
|
1630
1763
|
# my $ver = Get32u(\$buff, 0x04); # version (=101)
|
|
1631
1764
|
my $count = Get32u(\$buff, 0x08);
|
|
@@ -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.81';
|
|
38
38
|
|
|
39
39
|
sub ProcessSRF($$$);
|
|
40
40
|
sub ProcessSR2($$$);
|
|
@@ -2215,6 +2215,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
2215
2215
|
403 => 'ILCE-6100A', #JR
|
|
2216
2216
|
404 => 'DSC-RX100M7A', #github347
|
|
2217
2217
|
406 => 'ILME-FX2', #JR
|
|
2218
|
+
407 => 'ILCE-7M5', #PH
|
|
2218
2219
|
408 => 'ZV-1A', #JR
|
|
2219
2220
|
},
|
|
2220
2221
|
},
|
|
@@ -10656,7 +10657,7 @@ my %isoSetting2010 = (
|
|
|
10656
10657
|
0x8101 => { Name => 'Sony_rtmd_0x8101', Format => 'int8u', %hidUnk }, # seen: 0,1,2
|
|
10657
10658
|
0x8104 => { Name => 'Sony_rtmd_0x8104', Format => 'int16u', %hidUnk }, # seen: 35616
|
|
10658
10659
|
0x8105 => { Name => 'Sony_rtmd_0x8105', Format => 'int16u', %hidUnk }, # seen: 20092
|
|
10659
|
-
0x8106 => { Name => '
|
|
10660
|
+
0x8106 => { Name => 'FrameRate', Format => 'rational64u', PrintConv => 'sprintf("%.2f",$val)' },
|
|
10660
10661
|
0x8109 => { #forum12218
|
|
10661
10662
|
Name => 'ExposureTime',
|
|
10662
10663
|
Format => 'rational64u',
|
|
@@ -10674,7 +10675,9 @@ my %isoSetting2010 = (
|
|
|
10674
10675
|
Format => 'int16u',
|
|
10675
10676
|
},
|
|
10676
10677
|
0x810d => { Name => 'Sony_rtmd_0x810d', Format => 'int8u', %hidUnk }, # seen: 0,1
|
|
10678
|
+
0x8114 => { Name => 'SerialNumber', Format => 'string' }, # (and model, eg. "ILCE-7SM3 5072108")
|
|
10677
10679
|
0x8115 => { Name => 'Sony_rtmd_0x8115', Format => 'int16u', %hidUnk }, # seen: 100 - ISO
|
|
10680
|
+
# 0x8119 - seen "P" (same as 0x811e?)
|
|
10678
10681
|
# 0x8300 - container for other tags in this format
|
|
10679
10682
|
0x8500 => {
|
|
10680
10683
|
Name => 'GPSVersionID',
|