exiftool_vendored 12.83.0 → 12.86.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/Changes +51 -1
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +46 -46
- data/bin/build_geolocation +99 -21
- data/bin/config_files/example.config +7 -2
- data/bin/exiftool +52 -50
- data/bin/lib/Image/ExifTool/Apple.pm +52 -7
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +3 -2
- data/bin/lib/Image/ExifTool/Canon.pm +38 -4
- data/bin/lib/Image/ExifTool/CanonVRD.pm +17 -2
- data/bin/lib/Image/ExifTool/DPX.pm +3 -3
- data/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
- data/bin/lib/Image/ExifTool/Geolocation.pm +132 -79
- data/bin/lib/Image/ExifTool/Geotag.pm +18 -10
- data/bin/lib/Image/ExifTool/ID3.pm +36 -8
- data/bin/lib/Image/ExifTool/Nikon.pm +19 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +27 -17
- data/bin/lib/Image/ExifTool/Pentax.pm +64 -13
- data/bin/lib/Image/ExifTool/QuickTime.pm +28 -9
- data/bin/lib/Image/ExifTool/Samsung.pm +29 -1
- data/bin/lib/Image/ExifTool/TagLookup.pm +3550 -3539
- data/bin/lib/Image/ExifTool/TagNames.pod +51 -22
- data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +2 -1
- data/bin/lib/Image/ExifTool/Writer.pl +5 -5
- data/bin/lib/Image/ExifTool/XMP.pm +2 -0
- data/bin/lib/Image/ExifTool.pm +91 -49
- data/bin/lib/Image/ExifTool.pod +61 -51
- data/bin/perl-Image-ExifTool.spec +45 -45
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +3 -3
@@ -1935,6 +1935,7 @@ my %indexInfo = (
|
|
1935
1935
|
3 => 'Trains',
|
1936
1936
|
4 => 'Birds',
|
1937
1937
|
5 => 'Dogs & Cats',
|
1938
|
+
6 => 'Human', #forum16072
|
1938
1939
|
},{
|
1939
1940
|
0 => 'Object Not Found',
|
1940
1941
|
1 => 'Object Found',
|
@@ -2842,24 +2843,32 @@ my %indexInfo = (
|
|
2842
2843
|
RawConv => '$val=~s/\0+$//; $val', # (may be null terminated)
|
2843
2844
|
Count => 4,
|
2844
2845
|
},
|
2845
|
-
0x100 => {
|
2846
|
+
0x100 => { #6
|
2847
|
+
Name => 'WB_RBLevels',
|
2848
|
+
Writable => 'int16u',
|
2849
|
+
Notes => q{
|
2850
|
+
These tags store 2 values, red and blue levels, for some models, but 4
|
2851
|
+
values, presumably RBGG levels, for other models
|
2852
|
+
},
|
2853
|
+
Count => -1,
|
2854
|
+
}, #6
|
2846
2855
|
# 0x101 - in-camera AutoWB unless it is all 0's or all 256's (ref IB)
|
2847
|
-
0x102 => { Name => 'WB_RBLevels3000K', Writable => 'int16u', Count =>
|
2848
|
-
0x103 => { Name => 'WB_RBLevels3300K', Writable => 'int16u', Count =>
|
2849
|
-
0x104 => { Name => 'WB_RBLevels3600K', Writable => 'int16u', Count =>
|
2850
|
-
0x105 => { Name => 'WB_RBLevels3900K', Writable => 'int16u', Count =>
|
2851
|
-
0x106 => { Name => 'WB_RBLevels4000K', Writable => 'int16u', Count =>
|
2852
|
-
0x107 => { Name => 'WB_RBLevels4300K', Writable => 'int16u', Count =>
|
2853
|
-
0x108 => { Name => 'WB_RBLevels4500K', Writable => 'int16u', Count =>
|
2854
|
-
0x109 => { Name => 'WB_RBLevels4800K', Writable => 'int16u', Count =>
|
2855
|
-
0x10a => { Name => 'WB_RBLevels5300K', Writable => 'int16u', Count =>
|
2856
|
-
0x10b => { Name => 'WB_RBLevels6000K', Writable => 'int16u', Count =>
|
2857
|
-
0x10c => { Name => 'WB_RBLevels6600K', Writable => 'int16u', Count =>
|
2858
|
-
0x10d => { Name => 'WB_RBLevels7500K', Writable => 'int16u', Count =>
|
2859
|
-
0x10e => { Name => 'WB_RBLevelsCWB1', Writable => 'int16u', Count =>
|
2860
|
-
0x10f => { Name => 'WB_RBLevelsCWB2', Writable => 'int16u', Count =>
|
2861
|
-
0x110 => { Name => 'WB_RBLevelsCWB3', Writable => 'int16u', Count =>
|
2862
|
-
0x111 => { Name => 'WB_RBLevelsCWB4', Writable => 'int16u', Count =>
|
2856
|
+
0x102 => { Name => 'WB_RBLevels3000K', Writable => 'int16u', Count => -1 }, #11
|
2857
|
+
0x103 => { Name => 'WB_RBLevels3300K', Writable => 'int16u', Count => -1 }, #11
|
2858
|
+
0x104 => { Name => 'WB_RBLevels3600K', Writable => 'int16u', Count => -1 }, #11
|
2859
|
+
0x105 => { Name => 'WB_RBLevels3900K', Writable => 'int16u', Count => -1 }, #11
|
2860
|
+
0x106 => { Name => 'WB_RBLevels4000K', Writable => 'int16u', Count => -1 }, #11
|
2861
|
+
0x107 => { Name => 'WB_RBLevels4300K', Writable => 'int16u', Count => -1 }, #11
|
2862
|
+
0x108 => { Name => 'WB_RBLevels4500K', Writable => 'int16u', Count => -1 }, #11
|
2863
|
+
0x109 => { Name => 'WB_RBLevels4800K', Writable => 'int16u', Count => -1 }, #11
|
2864
|
+
0x10a => { Name => 'WB_RBLevels5300K', Writable => 'int16u', Count => -1 }, #11
|
2865
|
+
0x10b => { Name => 'WB_RBLevels6000K', Writable => 'int16u', Count => -1 }, #11
|
2866
|
+
0x10c => { Name => 'WB_RBLevels6600K', Writable => 'int16u', Count => -1 }, #11
|
2867
|
+
0x10d => { Name => 'WB_RBLevels7500K', Writable => 'int16u', Count => -1 }, #11
|
2868
|
+
0x10e => { Name => 'WB_RBLevelsCWB1', Writable => 'int16u', Count => -1 }, #11
|
2869
|
+
0x10f => { Name => 'WB_RBLevelsCWB2', Writable => 'int16u', Count => -1 }, #11
|
2870
|
+
0x110 => { Name => 'WB_RBLevelsCWB3', Writable => 'int16u', Count => -1 }, #11
|
2871
|
+
0x111 => { Name => 'WB_RBLevelsCWB4', Writable => 'int16u', Count => -1 }, #11
|
2863
2872
|
0x113 => { Name => 'WB_GLevel3000K', Writable => 'int16u' }, #11
|
2864
2873
|
0x114 => { Name => 'WB_GLevel3300K', Writable => 'int16u' }, #11
|
2865
2874
|
0x115 => { Name => 'WB_GLevel3600K', Writable => 'int16u' }, #11
|
@@ -3246,6 +3255,7 @@ my %indexInfo = (
|
|
3246
3255
|
3 => 'Trains',
|
3247
3256
|
4 => 'Birds',
|
3248
3257
|
5 => 'Dogs & Cats',
|
3258
|
+
6 => 'Human', #forum16072
|
3249
3259
|
},{
|
3250
3260
|
0 => 'Face Priority',
|
3251
3261
|
1 => 'Target Priority',
|
@@ -58,7 +58,7 @@ use Image::ExifTool::Exif;
|
|
58
58
|
use Image::ExifTool::GPS;
|
59
59
|
use Image::ExifTool::HP;
|
60
60
|
|
61
|
-
$VERSION = '3.
|
61
|
+
$VERSION = '3.47';
|
62
62
|
|
63
63
|
sub CryptShutterCount($$);
|
64
64
|
sub PrintFilter($$$);
|
@@ -2741,8 +2741,8 @@ my %binaryDataAttrs = (
|
|
2741
2741
|
SubDirectory => { TagTable => 'Image::ExifTool::Pentax::AEInfo2' },
|
2742
2742
|
},{
|
2743
2743
|
Name => 'AEInfo3',
|
2744
|
-
# size: K-30=48
|
2745
|
-
Condition => '$count == 48',
|
2744
|
+
# size: K-30=48, K-1mkII,K-70,KP=64
|
2745
|
+
Condition => '$count == 48 or $count == 64',
|
2746
2746
|
SubDirectory => { TagTable => 'Image::ExifTool::Pentax::AEInfo3' },
|
2747
2747
|
},{
|
2748
2748
|
Name => 'AEInfoUnknown',
|
@@ -2972,10 +2972,14 @@ my %binaryDataAttrs = (
|
|
2972
2972
|
ByteOrder => 'BigEndian',
|
2973
2973
|
},
|
2974
2974
|
}],
|
2975
|
-
0x022b => {
|
2975
|
+
0x022b => [{
|
2976
|
+
Name => 'LevelInfoK3III',
|
2977
|
+
Condition => '$$self{Model} eq "PENTAX K-3 Mark III"',
|
2978
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Pentax::LevelInfoK3III' },
|
2979
|
+
},{ #PH (K-5)
|
2976
2980
|
Name => 'LevelInfo',
|
2977
2981
|
SubDirectory => { TagTable => 'Image::ExifTool::Pentax::LevelInfo' },
|
2978
|
-
},
|
2982
|
+
}],
|
2979
2983
|
# 0x022c - undef[46] (K-5)
|
2980
2984
|
0x022d => { #28
|
2981
2985
|
Name => 'WBLevels',
|
@@ -4034,7 +4038,10 @@ my %binaryDataAttrs = (
|
|
4034
4038
|
%Image::ExifTool::Pentax::AEInfo3 = (
|
4035
4039
|
%binaryDataAttrs,
|
4036
4040
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
4037
|
-
NOTES =>
|
4041
|
+
NOTES => q{
|
4042
|
+
Auto-exposure information for the K-1mkII, K-3, K-30, K-50, K-70, K-500 and
|
4043
|
+
KP.
|
4044
|
+
},
|
4038
4045
|
# instead of /8, should these be PentaxEv(), as in CameraSettings? - PH
|
4039
4046
|
16 => {
|
4040
4047
|
Name => 'AEExposureTime',
|
@@ -4060,6 +4067,7 @@ my %binaryDataAttrs = (
|
|
4060
4067
|
PrintConv => 'int($val + 0.5)',
|
4061
4068
|
PrintConvInv => '$val',
|
4062
4069
|
},
|
4070
|
+
# 23 - bit 0 is related to LiveView, but it isn't reliable
|
4063
4071
|
28 => {
|
4064
4072
|
Name => 'AEMaxAperture',
|
4065
4073
|
Notes => 'val = 2**((raw-68)/16)',
|
@@ -4676,8 +4684,9 @@ my %binaryDataAttrs = (
|
|
4676
4684
|
# battery grips available for:
|
4677
4685
|
# BG1 (*istD), BG2 (K10D/K20D), BG3 (K200D), BG4 (K-7,K-5)
|
4678
4686
|
# no grip available: K-x
|
4679
|
-
0.1 => { #19
|
4687
|
+
0.1 => [{ #19
|
4680
4688
|
Name => 'PowerSource',
|
4689
|
+
Condition => '$$self{Model} !~ /K-3 Mark III/',
|
4681
4690
|
Mask => 0x0f,
|
4682
4691
|
# have seen the upper bit set (value of 0x82) for the
|
4683
4692
|
# *istDS and K100D, but I'm not sure what this means - PH
|
@@ -4688,7 +4697,20 @@ my %binaryDataAttrs = (
|
|
4688
4697
|
3 => 'Grip Battery',
|
4689
4698
|
4 => 'External Power Supply', #PH
|
4690
4699
|
},
|
4691
|
-
},
|
4700
|
+
},{ #PH
|
4701
|
+
Name => 'PowerSource',
|
4702
|
+
Mask => 0x0f,
|
4703
|
+
Notes => 'K-3III',
|
4704
|
+
# have seen the upper bit set (value of 0x82) for the
|
4705
|
+
# *istDS and K100D, but I'm not sure what this means - PH
|
4706
|
+
# I've also seen: 0x42 (K2000), 0xf2 (K-7,K-r,K-5), 0x12,0x22 (K-x) - PH
|
4707
|
+
PrintConv => {
|
4708
|
+
1 => 'Body Battery',
|
4709
|
+
2 => 'Grip Battery',
|
4710
|
+
4 => 'External Power Supply',
|
4711
|
+
},
|
4712
|
+
},{
|
4713
|
+
}],
|
4692
4714
|
1.1 => [
|
4693
4715
|
{
|
4694
4716
|
Name => 'BodyBatteryState',
|
@@ -4703,8 +4725,8 @@ my %binaryDataAttrs = (
|
|
4703
4725
|
},
|
4704
4726
|
},{
|
4705
4727
|
Name => 'BodyBatteryState',
|
4706
|
-
Condition => '$$self{Model} !~ /(K110D|K2000|K-m)\b/',
|
4707
|
-
Notes => 'other models except the K110D, K2000 and K-
|
4728
|
+
Condition => '$$self{Model} !~ /(K110D|K2000|K-m|K-3 Mark III)\b/',
|
4729
|
+
Notes => 'most other models except the K110D, K2000, K-m and K-3III',
|
4708
4730
|
Mask => 0xf0,
|
4709
4731
|
PrintConv => {
|
4710
4732
|
1 => 'Empty or Missing',
|
@@ -4715,7 +4737,8 @@ my %binaryDataAttrs = (
|
|
4715
4737
|
},
|
4716
4738
|
},{
|
4717
4739
|
Name => 'BodyBatteryState',
|
4718
|
-
Notes => 'decoding unknown for
|
4740
|
+
Notes => 'decoding unknown for some models',
|
4741
|
+
Unknown => 1, # (doesn't appear to be valid for the K-3 III)
|
4719
4742
|
Mask => 0xf0,
|
4720
4743
|
},
|
4721
4744
|
],
|
@@ -4758,7 +4781,7 @@ my %binaryDataAttrs = (
|
|
4758
4781
|
},
|
4759
4782
|
{
|
4760
4783
|
Name => 'BodyBatteryVoltage1', # (static?)
|
4761
|
-
Condition => '$$self{Model}
|
4784
|
+
Condition => '$$self{Model} =~ /(645D|645Z|K-(1|01|3|5|7|30|50|70|500|r|x|S[12])|KP)\b/ and $$self{Model} !~ /III/',
|
4762
4785
|
Format => 'int16u',
|
4763
4786
|
ValueConv => '$val / 100',
|
4764
4787
|
ValueConvInv => '$val * 100',
|
@@ -4797,7 +4820,7 @@ my %binaryDataAttrs = (
|
|
4797
4820
|
},
|
4798
4821
|
{
|
4799
4822
|
Name => 'BodyBatteryVoltage2', # (less than BodyBatteryVoltage1 -- under load?)
|
4800
|
-
Condition => '$$self{Model}
|
4823
|
+
Condition => '$$self{Model} =~ /(645D|645Z|K-(1|01|3|5|7|30|50|70|500|r|x|S[12])|KP)\b/ and $$self{Model} !~ /III/',
|
4801
4824
|
Format => 'int16u',
|
4802
4825
|
ValueConv => '$val / 100',
|
4803
4826
|
ValueConvInv => '$val * 100',
|
@@ -4940,6 +4963,12 @@ my %binaryDataAttrs = (
|
|
4940
4963
|
20 => 'Mid-right',
|
4941
4964
|
},
|
4942
4965
|
},
|
4966
|
+
0x1fa => {
|
4967
|
+
Name => 'LiveView',
|
4968
|
+
Notes => 'decoded only for the K-3 III',
|
4969
|
+
Condition => '$$self{Model} eq "PENTAX K-3 Mark III"', # and other models?
|
4970
|
+
PrintConv => { 0 => 'Off', 1 => 'On' },
|
4971
|
+
},
|
4943
4972
|
0x1fd => {
|
4944
4973
|
Name => 'AFHold',
|
4945
4974
|
Notes => 'decoded only for the K-3 II',
|
@@ -5006,6 +5035,10 @@ my %binaryDataAttrs = (
|
|
5006
5035
|
1 => 'As EV Steps',
|
5007
5036
|
},
|
5008
5037
|
},
|
5038
|
+
3 => { #PH
|
5039
|
+
Name => 'LiveView',
|
5040
|
+
PrintConv => { 0 => 'Off', 1 => 'On' },
|
5041
|
+
},
|
5009
5042
|
);
|
5010
5043
|
|
5011
5044
|
# shot information? - ref PH (K-5)
|
@@ -5483,6 +5516,24 @@ my %binaryDataAttrs = (
|
|
5483
5516
|
},
|
5484
5517
|
);
|
5485
5518
|
|
5519
|
+
%Image::ExifTool::Pentax::LevelInfoK3III = (
|
5520
|
+
%binaryDataAttrs,
|
5521
|
+
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
5522
|
+
FORMAT => 'int8s',
|
5523
|
+
NOTES => 'Tags decoded from the electronic level information for the K-3 III.',
|
5524
|
+
3 => {
|
5525
|
+
Name => 'RollAngle',
|
5526
|
+
Format => 'int16s',
|
5527
|
+
ValueConv => '-$val / 2',
|
5528
|
+
ValueConvInv => '-$val * 2',
|
5529
|
+
},
|
5530
|
+
5 => {
|
5531
|
+
Name => 'PitchAngle',
|
5532
|
+
Format => 'int16s',
|
5533
|
+
ValueConv => '-$val / 2',
|
5534
|
+
ValueConvInv => '-$val * 2',
|
5535
|
+
},
|
5536
|
+
);
|
5486
5537
|
# white balance RGGB levels (ref 28)
|
5487
5538
|
%Image::ExifTool::Pentax::WBLevels = (
|
5488
5539
|
%binaryDataAttrs,
|
@@ -48,7 +48,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
48
48
|
use Image::ExifTool::Exif;
|
49
49
|
use Image::ExifTool::GPS;
|
50
50
|
|
51
|
-
$VERSION = '2.
|
51
|
+
$VERSION = '2.97';
|
52
52
|
|
53
53
|
sub ProcessMOV($$;$);
|
54
54
|
sub ProcessKeys($$$);
|
@@ -503,6 +503,11 @@ my %eeBox2 = (
|
|
503
503
|
# image types in AVIF and HEIC files
|
504
504
|
my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
505
505
|
|
506
|
+
my %userDefined = (
|
507
|
+
ALBUMARTISTSORT => 'AlbumArtistSort',
|
508
|
+
ASIN => 'ASIN',
|
509
|
+
);
|
510
|
+
|
506
511
|
# QuickTime atoms
|
507
512
|
%Image::ExifTool::QuickTime::Main = (
|
508
513
|
PROCESS_PROC => \&ProcessMOV,
|
@@ -1415,6 +1420,8 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
1415
1420
|
%durationInfo,
|
1416
1421
|
# this is int64u if MovieHeaderVersion == 1 (ref 13)
|
1417
1422
|
Hook => '$$self{MovieHeaderVersion} and $format = "int64u", $varSize += 4',
|
1423
|
+
# (Note: this Duration seems to be the time of the key frame in
|
1424
|
+
# the NRT Metadata track of iPhone live-photo MOV videos)
|
1418
1425
|
},
|
1419
1426
|
5 => {
|
1420
1427
|
Name => 'PreferredRate',
|
@@ -2330,6 +2337,14 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
2330
2337
|
Binary => 1,
|
2331
2338
|
}],
|
2332
2339
|
# ---- Ricoh ----
|
2340
|
+
RICO => { #PH (G900SE)
|
2341
|
+
Name => 'RicohInfo',
|
2342
|
+
Condition => '$$valPt =~ /^\xff\xe1..Exif\0\0/s',
|
2343
|
+
SubDirectory => {
|
2344
|
+
TagTable => 'Image::ExifTool::JPEG::Main',
|
2345
|
+
ProcessProc => \&Image::ExifTool::ProcessJPEG,
|
2346
|
+
}
|
2347
|
+
},
|
2333
2348
|
RTHU => { #PH (GR)
|
2334
2349
|
Name => 'PreviewImage',
|
2335
2350
|
Groups => { 2 => 'Preview' },
|
@@ -2927,8 +2942,12 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
2927
2942
|
Format => 'int8u',
|
2928
2943
|
Writable => 'int8u',
|
2929
2944
|
Protected => 1,
|
2930
|
-
|
2931
|
-
|
2945
|
+
PrintConv => {
|
2946
|
+
0 => 'Horizontal (Normal)',
|
2947
|
+
1 => 'Rotate 270 CW',
|
2948
|
+
2 => 'Rotate 180',
|
2949
|
+
3 => 'Rotate 90 CW',
|
2950
|
+
},
|
2932
2951
|
},
|
2933
2952
|
ispe => {
|
2934
2953
|
Name => 'ImageSpatialExtent',
|
@@ -3423,7 +3442,7 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
3423
3442
|
SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::iTunesInfo' },
|
3424
3443
|
},
|
3425
3444
|
aART => { Name => 'AlbumArtist', Groups => { 2 => 'Author' } },
|
3426
|
-
covr => { Name => 'CoverArt', Groups => { 2 => 'Preview' } },
|
3445
|
+
covr => { Name => 'CoverArt', Groups => { 2 => 'Preview' }, Binary => 1 },
|
3427
3446
|
cpil => { #10
|
3428
3447
|
Name => 'Compilation',
|
3429
3448
|
Format => 'int8u', #27 (ref 23 contradicts what AtomicParsley actually writes, which is int8s)
|
@@ -6495,8 +6514,8 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
6495
6514
|
ownr => 'Owner', #PH (obscure) (ref ChrisAdan private communication)
|
6496
6515
|
'xid ' => 'ISRC', #PH
|
6497
6516
|
# found in DJI Osmo Action4 video
|
6498
|
-
tnal => { Name => 'ThumbnailImage', Groups => { 2 => 'Preview' } },
|
6499
|
-
snal => { Name => 'PreviewImage', Groups => { 2 => 'Preview' } },
|
6517
|
+
tnal => { Name => 'ThumbnailImage', Binary => 1, Groups => { 2 => 'Preview' } },
|
6518
|
+
snal => { Name => 'PreviewImage', Binary => 1, Groups => { 2 => 'Preview' } },
|
6500
6519
|
);
|
6501
6520
|
|
6502
6521
|
# tag decoded from timed face records
|
@@ -8253,8 +8272,8 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
8253
8272
|
GROUPS => { 2 => 'Video' },
|
8254
8273
|
Rotation => {
|
8255
8274
|
Notes => q{
|
8256
|
-
|
8257
|
-
non-zero image size
|
8275
|
+
degrees of clockwise camera rotation. Writing this tag updates QuickTime
|
8276
|
+
MatrixStructure for all tracks with a non-zero image size
|
8258
8277
|
},
|
8259
8278
|
Require => {
|
8260
8279
|
0 => 'QuickTime:MatrixStructure',
|
@@ -9756,7 +9775,7 @@ ItemID: foreach $id (reverse sort { $a <=> $b } keys %$items) {
|
|
9756
9775
|
}
|
9757
9776
|
# use value to get tag info if necessary
|
9758
9777
|
$tagInfo or $tagInfo = $et->GetTagInfo($tagTablePtr, $tag, \$val);
|
9759
|
-
my $hasData = ($$dirInfo{HasData} and $val =~
|
9778
|
+
my $hasData = ($$dirInfo{HasData} and $val =~ /^....data\0/s);
|
9760
9779
|
if ($verbose and not $hasData) {
|
9761
9780
|
my $tval;
|
9762
9781
|
if ($tagInfo and $$tagInfo{Format}) {
|
@@ -979,6 +979,7 @@ my %formatMinMax = (
|
|
979
979
|
# 0x0800 - unknown (29 bytes) (contains already-extracted EmbeddedAudioFileName)
|
980
980
|
# 0x0830-name - seen '1165724808.pre'
|
981
981
|
# 0x0830 - unknown (164004 bytes)
|
982
|
+
# 0x08c0-name - seen 'Auto_Enhance_Info' #forum16086
|
982
983
|
# 0x08d0-name - seen 'Interactive_Panorama_Info'
|
983
984
|
# 0x08d0 - unknown (7984 bytes)
|
984
985
|
# 0x08e0-name - seen 'Panorama_Shot_Info'
|
@@ -988,6 +989,8 @@ my %formatMinMax = (
|
|
988
989
|
# 0x0910 - string, seen 'Front_Cam_Selfie_Info'
|
989
990
|
# 0x09e0-name - seen 'Burst_Shot_Info'
|
990
991
|
# 0x09e0 - string, seen '489489125'
|
992
|
+
# 0x09e1-name - seen 'BurstShot_Best_Photo_Info' #forum16086
|
993
|
+
# 0x09f0-name - seen 'Pro_Mode_Info' #forum16086
|
991
994
|
# 0x0a01-name - seen 'Image_UTC_Data'
|
992
995
|
'0x0a01' => { #forum7161
|
993
996
|
Name => 'TimeStamp',
|
@@ -999,6 +1002,7 @@ my %formatMinMax = (
|
|
999
1002
|
'0x0a20' => { Name => 'DualCameraImage', Groups => { 2 => 'Preview' }, Binary => 1 },
|
1000
1003
|
'0x0a30-name' => 'EmbeddedVideoType', # ("MotionPhoto_Data")
|
1001
1004
|
'0x0a30' => { Name => 'EmbeddedVideoFile', Groups => { 2 => 'Video' }, Binary => 1 }, #forum7161
|
1005
|
+
# 0x0a41-name - seen 'BackupRestore_Data' #forum16086
|
1002
1006
|
# 0x0aa1-name - seen 'MCC_Data'
|
1003
1007
|
# 0x0aa1 - seen '204','222','234','302','429'
|
1004
1008
|
'0x0aa1' => {
|
@@ -1254,15 +1258,39 @@ my %formatMinMax = (
|
|
1254
1258
|
Name => 'DualShotExtra',
|
1255
1259
|
SubDirectory => { TagTable => 'Image::ExifTool::Samsung::DualShotExtra' },
|
1256
1260
|
},
|
1261
|
+
# 0x0ab4-name - seen 'DualShot_Core_Info' #forum16086
|
1257
1262
|
# 0x0ac0-name - seen 'ZoomInOut_Info' (SM-N950U)
|
1258
1263
|
# 0x0ac0 - 2048 bytes of interesting stuff including firmware version? (SM-N950U)
|
1264
|
+
# 0x0b30-name - seen 'Camera_Sticker_Info' #forum16086
|
1259
1265
|
'0x0b40' => { # (SM-N975X front camera)
|
1260
1266
|
Name => 'SingleShotMeta',
|
1261
1267
|
SubDirectory => { TagTable => 'Image::ExifTool::Samsung::SingleShotMeta' },
|
1262
1268
|
},
|
1263
1269
|
# 0x0b41-name - seen 'SingeShot_DepthMap_1' (Yes, "Singe") (SM-N975X front camera)
|
1264
1270
|
'0x0b41' => { Name => 'SingleShotDepthMap', Binary => 1 },
|
1265
|
-
#
|
1271
|
+
# 0x0b51-name - seen 'Intelligent_PhotoEditor_Data' #forum16086
|
1272
|
+
# 0x0b60-name - seen 'UltraWide_PhotoEditor_Data' #forum16086
|
1273
|
+
# 0x0b90-name - seen 'Document_Scan_Info' #forum16086
|
1274
|
+
# 0x0ba1-name - seen 'Original_Path_Hash_Key', 'PhotoEditor_Re_Edit_Data', 'deco_doodle_bitmap', 'deco_sticker_bitmap', 'deco_text_bitmap'
|
1275
|
+
# 0x0ba2-name - seen 'Copy_Available_Edit_Info' #forum16086
|
1276
|
+
# 0x0bc0-name - seen 'Single_Relighting_Bokeh_Info' #forum16086
|
1277
|
+
# 0x0bd0-name - seen 'Dual_Relighting_Bokeh_Info' #forum16086
|
1278
|
+
# 0x0be0-name - seen 'Livefocus_JDM_Info' #forum16086
|
1279
|
+
# 0x0bf0-name - seen 'Remaster_Info' #forum16086
|
1280
|
+
# 0x0c21-name - seen 'Portrait_Effect_Info' #forum16086
|
1281
|
+
# 0x0c51-name - seen 'Samsung_Capture_Info' #forum16086
|
1282
|
+
# 0x0c61-name - seen 'Camera_Capture_Mode_Info' #forum16086
|
1283
|
+
# 0x0c71-name - seen 'Pro_White_Balance_Info' #forum16086
|
1284
|
+
# 0x0c81-name - seen 'Watermark_Info' #forum16086
|
1285
|
+
# 0x0cc1-name - seen 'Color_Display_P3' #forum16086
|
1286
|
+
# 0x0cd2-name - seen 'Photo_HDR_Info' #forum16086
|
1287
|
+
# 0x0ce1-name - seen 'Gallery_DC_Data' #forum16086
|
1288
|
+
# 0x0d01-name - seen 'Camera_Scene_Info', 'Camera_Scene_Info2', 'Camera_Scene_Info3' #forum16086
|
1289
|
+
# 0x0d11-name - seen 'Video_Snapshot_Info' #forum16086
|
1290
|
+
# 0x0d21-name - seen 'Camera_Scene_Info' #forum16086
|
1291
|
+
# 0x0d31-name - seen 'Food_Blur_Effect_Info' #forum16086
|
1292
|
+
# 0x0d91-name - seen 'PEg_Info' #forum16086
|
1293
|
+
# 0x0da1-name - seen 'Captured_App_Info' #forum16086
|
1266
1294
|
# 0xa050-name - seen 'Jpeg360_2D_Info' (Samsung Gear 360)
|
1267
1295
|
# 0xa050 - seen 'Jpeg3602D' (Samsung Gear 360)
|
1268
1296
|
# 0x0c81-name - seen 'Watermark_Info'
|