exiftool_vendored 12.63.0 → 12.64.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 +22 -1
- data/bin/MANIFEST +3 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +47 -46
- data/bin/config_files/guano.config +161 -0
- data/bin/exiftool +73 -53
- data/bin/lib/Image/ExifTool/Apple.pm +6 -3
- data/bin/lib/Image/ExifTool/CanonVRD.pm +4 -1
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +4 -3
- data/bin/lib/Image/ExifTool/Lang/fr.pm +1467 -202
- data/bin/lib/Image/ExifTool/Matroska.pm +16 -1
- data/bin/lib/Image/ExifTool/Nikon.pm +419 -5
- data/bin/lib/Image/ExifTool/NikonCustom.pm +13 -3
- data/bin/lib/Image/ExifTool/PDF.pm +9 -1
- data/bin/lib/Image/ExifTool/PLIST.pm +8 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +33 -9
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +2 -1
- data/bin/lib/Image/ExifTool/README +1 -1
- data/bin/lib/Image/ExifTool/Sony.pm +1 -0
- data/bin/lib/Image/ExifTool/TagLookup.pm +4719 -4640
- data/bin/lib/Image/ExifTool/TagNames.pod +175 -1
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +21 -9
- data/bin/lib/Image/ExifTool/WriteXMP.pl +2 -2
- data/bin/lib/Image/ExifTool/Writer.pl +21 -4
- data/bin/lib/Image/ExifTool/XMPStruct.pl +96 -28
- data/bin/lib/Image/ExifTool.pm +17 -10
- data/bin/lib/Image/ExifTool.pod +71 -51
- data/bin/perl-Image-ExifTool.spec +44 -44
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +3 -2
@@ -47,7 +47,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
47
47
|
use Image::ExifTool::Exif;
|
48
48
|
use Image::ExifTool::GPS;
|
49
49
|
|
50
|
-
$VERSION = '2.
|
50
|
+
$VERSION = '2.86';
|
51
51
|
|
52
52
|
sub ProcessMOV($$;$);
|
53
53
|
sub ProcessKeys($$$);
|
@@ -224,6 +224,9 @@ my %ftypLookup = (
|
|
224
224
|
'crx ' => 'Canon Raw (.CRX)', #PH (CR3 or CRM; use Canon CompressorVersion to decide)
|
225
225
|
);
|
226
226
|
|
227
|
+
# use extension to determine file type
|
228
|
+
my %useExt = ( GLV => 'MP4' );
|
229
|
+
|
227
230
|
# information for int32u date/time tags (time zero is Jan 1, 1904)
|
228
231
|
my %timeInfo = (
|
229
232
|
Notes => 'converted from UTC to local time if the QuickTimeUTC option is set',
|
@@ -1006,7 +1009,8 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
1006
1009
|
0 => 'Monoscopic',
|
1007
1010
|
1 => 'Stereoscopic Top-Bottom',
|
1008
1011
|
2 => 'Stereoscopic Left-Right',
|
1009
|
-
3 => 'Stereoscopic Stereo-Custom',
|
1012
|
+
3 => 'Stereoscopic Stereo-Custom',
|
1013
|
+
4 => 'Stereoscopic Right-Left',
|
1010
1014
|
},
|
1011
1015
|
},
|
1012
1016
|
sv3d => {
|
@@ -2070,8 +2074,8 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
2070
2074
|
ValueConv => 'substr($val, 4)',
|
2071
2075
|
ValueConvInv => '"\0\0\0\x01$val"',
|
2072
2076
|
},
|
2073
|
-
# hmtp - "\0\0\0\x01"
|
2074
|
-
# vrin - "\0\0\0\x01" followed by 8 bytes of zero
|
2077
|
+
# hmtp - 412 bytes: "\0\0\0\x01" then maybe "\0\0\0\x64" and the rest zeros
|
2078
|
+
# vrin - 12 bytes: "\0\0\0\x01" followed by 8 bytes of zero
|
2075
2079
|
# ---- GoPro ---- (ref PH)
|
2076
2080
|
GoPr => 'GoProType', # (Hero3+)
|
2077
2081
|
FIRM => { Name => 'FirmwareVersion', Avoid => 1 }, # (Hero4)
|
@@ -2920,8 +2924,8 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
2920
2924
|
1 => 'BT.709',
|
2921
2925
|
2 => 'Unspecified',
|
2922
2926
|
3 => 'For future use (3)',
|
2923
|
-
4 => 'BT.470 System M (historical)',
|
2924
|
-
5 => 'BT.470 System B, G (historical)',
|
2927
|
+
4 => 'BT.470 System M (historical)', # Gamma 2.2? (ref forum14960)
|
2928
|
+
5 => 'BT.470 System B, G (historical)', # Gamma 2.8? (ref forum14960)
|
2925
2929
|
6 => 'BT.601',
|
2926
2930
|
7 => 'SMPTE 240 M',
|
2927
2931
|
8 => 'Linear',
|
@@ -7216,7 +7220,7 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
7216
7220
|
#
|
7217
7221
|
# AudioFormat Offset Child atoms
|
7218
7222
|
# ----------- ------ ----------------
|
7219
|
-
# mp4a 52 * wave, chan, esds, SA3D(Insta360 spherical video params?,also GoPro Max)
|
7223
|
+
# mp4a 52 * wave, chan, esds, SA3D(Insta360 spherical video params?,also GoPro Max and Garmin VIRB 360)
|
7220
7224
|
# in24 52 wave, chan
|
7221
7225
|
# "ms\0\x11" 52 wave
|
7222
7226
|
# sowt 52 chan
|
@@ -7249,11 +7253,14 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
7249
7253
|
chan => {
|
7250
7254
|
Name => 'AudioChannelLayout',
|
7251
7255
|
SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::ChannelLayout' },
|
7252
|
-
}
|
7256
|
+
},
|
7257
|
+
SA3D => { # written by Garmin VIRB360
|
7258
|
+
Name => 'SpatialAudio',
|
7259
|
+
SubDirectory => { TagTable => 'Image::ExifTool::QuickTime::SpatialAudio' },
|
7260
|
+
},
|
7253
7261
|
# alac - 28 bytes
|
7254
7262
|
# adrm - AAX DRM atom? 148 bytes
|
7255
7263
|
# aabd - AAX unknown 17kB (contains 'aavd' strings)
|
7256
|
-
# SA3D - written by Garmin VIRB360
|
7257
7264
|
);
|
7258
7265
|
|
7259
7266
|
# AMR decode config box (ref 3)
|
@@ -7601,6 +7608,20 @@ my %isImageData = ( av01 => 1, avc1 => 1, hvc1 => 1, lhv1 => 1, hvt1 => 1 );
|
|
7601
7608
|
# (arbitrarily decode only first 8 channels)
|
7602
7609
|
);
|
7603
7610
|
|
7611
|
+
# spatial audio (ref https://github.com/google/spatial-media/blob/master/docs/spatial-audio-rfc.md)
|
7612
|
+
%Image::ExifTool::QuickTime::SpatialAudio = (
|
7613
|
+
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
7614
|
+
GROUPS => { 2 => 'Audio' },
|
7615
|
+
NOTES => 'Spatial Audio tags.',
|
7616
|
+
0 => 'SpatialAudioVersion',
|
7617
|
+
1 => { Name => 'AmbisonicType', PrintConv => { 0 => 'Periphonic' } },
|
7618
|
+
2 => { Name => 'AmbisonicOrder', Format => 'int32u' },
|
7619
|
+
6 => { Name => 'AmbisonicChannelOrdering', PrintConv => { 0 => 'ACN' } },
|
7620
|
+
7 => { Name => 'AmbisonicNormalization', PrintConv => { 0 => 'SN3D' } },
|
7621
|
+
8 => { Name => 'AmbisonicChannels', Format => 'int32u' },
|
7622
|
+
12 => { Name => 'AmbisonicChannelMap', Format => 'int32u[$val{8}]' },
|
7623
|
+
);
|
7624
|
+
|
7604
7625
|
# scheme type atom
|
7605
7626
|
# ref http://xhelmboyx.tripod.com/formats/mp4-layout.txt
|
7606
7627
|
%Image::ExifTool::QuickTime::SchemeType = (
|
@@ -9314,6 +9335,9 @@ sub ProcessMOV($$;$)
|
|
9314
9335
|
}
|
9315
9336
|
}
|
9316
9337
|
$fileType or $fileType = 'MP4'; # default to MP4
|
9338
|
+
# set file type from extension if appropriate
|
9339
|
+
my $ext = $$et{FILE_EXT};
|
9340
|
+
$fileType = $ext if $ext and $useExt{$ext} and $fileType eq $useExt{$ext};
|
9317
9341
|
$et->SetFileType($fileType, $mimeLookup{$fileType} || 'video/mp4');
|
9318
9342
|
# temporarily set ExtractEmbedded option for CRX files
|
9319
9343
|
$saveOptions{ExtractEmbedded} = $et->Options(ExtractEmbedded => 1) if $fileType eq 'CRX';
|
@@ -1378,7 +1378,7 @@ Sample: for ($i=0; ; ) {
|
|
1378
1378
|
DataPos => $$start[$i],
|
1379
1379
|
SampleTime => $time[$i],
|
1380
1380
|
SampleDuration => $dur[$i],
|
1381
|
-
}, $tagTbl)
|
1381
|
+
}, $tagTbl);
|
1382
1382
|
}
|
1383
1383
|
|
1384
1384
|
} elsif ($$tagTbl{$type}) {
|
@@ -2904,6 +2904,7 @@ sub ProcessInsta360($;$)
|
|
2904
2904
|
# when the language is french? ie. "Ouest"?)
|
2905
2905
|
$a[7] eq 'O'))
|
2906
2906
|
{
|
2907
|
+
next if $a[3] eq 'V'; # void fixes don't have N/S E/W
|
2907
2908
|
$et->Warn('Unrecognized INSV GPS format');
|
2908
2909
|
last;
|
2909
2910
|
}
|
@@ -637,7 +637,7 @@ numerical, and generated automatically otherwise.
|
|
637
637
|
RawConv instead to return undef if it is necessary to test the
|
638
638
|
value for validity, otherwise an undef tag may hide a
|
639
639
|
previously defined value when the Duplicates option is not
|
640
|
-
enabled.
|
640
|
+
enabled. If this isn't possible (as with Composite tags where
|
641
641
|
the converted values of the source tags are needed), set the
|
642
642
|
Priority to 0 to avoid taking priority over a valid tag. If
|
643
643
|
ValueConv is not specified, the Raw value is not converted.
|
@@ -263,6 +263,7 @@ sub PrintInvLensSpec($;$$);
|
|
263
263
|
50537 => 'Sigma 50mm F2 DG DN | C', #JR (023)
|
264
264
|
50538 => 'Sigma 17mm F4 DG DN | C', #JR (023)
|
265
265
|
50539 => 'Sigma 50mm F1.4 DG DN | A', #JR (023)
|
266
|
+
50540 => 'Sigma 14mm F1.4 DG DN | A', #JR (023)
|
266
267
|
50544 => 'Sigma 23mm F1.4 DC DN | C', #JR (023)
|
267
268
|
|
268
269
|
50992 => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR
|