exiftool_vendored 12.15.0 → 12.16.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of exiftool_vendored might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bin/Changes +9 -1
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +11 -6
- data/bin/lib/Image/ExifTool.pm +1 -1
- data/bin/lib/Image/ExifTool.pod +3 -1
- data/bin/lib/Image/ExifTool/DPX.pm +3 -3
- data/bin/lib/Image/ExifTool/Nikon.pm +3 -2
- data/bin/lib/Image/ExifTool/QuickTime.pm +11 -5
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +21 -3
- data/bin/lib/Image/ExifTool/TagNames.pod +5 -2
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e5f50165965c391eee5f2088b8220f437030d2c6f03f3f1af04df861f962f24
|
4
|
+
data.tar.gz: e9c7f8127928dfc92efcbe0e851dffeea05f6a97282497ff7a1e456c4802c9b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54b390d7d5dd0b4e8420b747301442137dba8efea7fb6fb3b509634560ac1f5845f5d8dfae09b35c8ce6793a13cdd88e8620068464437d97632f19fb567da837
|
7
|
+
data.tar.gz: c2f4c386d46378f95d080c67e9a06d8c0b4a8e48038aff3dda4dc3da32cfa280dd79f39ac85c15174dd6186a24e8093157ec2529944a72d19312f4a569806f77
|
data/bin/Changes
CHANGED
@@ -4,9 +4,17 @@ ExifTool Version History
|
|
4
4
|
|
5
5
|
RSS feed: https://exiftool.org/rss.xml
|
6
6
|
|
7
|
-
Note: The most recent production release is Version 12.
|
7
|
+
Note: The most recent production release is Version 12.16. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
9
9
|
|
10
|
+
Jan. 21, 2021 - Version 12.16 (production release)
|
11
|
+
|
12
|
+
- Extract another form of video subtitle text
|
13
|
+
- Enhanced -ee option with -ee2 and -ee3 to allow parsing of the H264 video
|
14
|
+
stream in MP4 files
|
15
|
+
- Changed a Nikon FlashMode value
|
16
|
+
- Fixed problem that caused a failed DPX test on Strawberry Perl
|
17
|
+
|
10
18
|
Jan. 18, 2021 - Version 12.15 (production release)
|
11
19
|
|
12
20
|
- Added a couple of new Sony LensType values (thanks LibRaw and Jos Roost)
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -106,8 +106,8 @@ your home directory, then you would type the following commands in a
|
|
106
106
|
terminal window to extract and run ExifTool:
|
107
107
|
|
108
108
|
cd ~/Desktop
|
109
|
-
gzip -dc Image-ExifTool-12.
|
110
|
-
cd Image-ExifTool-12.
|
109
|
+
gzip -dc Image-ExifTool-12.16.tar.gz | tar -xf -
|
110
|
+
cd Image-ExifTool-12.16
|
111
111
|
./exiftool t/images/ExifTool.jpg
|
112
112
|
|
113
113
|
Note: These commands extract meta information from one of the test images.
|
data/bin/exiftool
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
use strict;
|
11
11
|
require 5.004;
|
12
12
|
|
13
|
-
my $version = '12.
|
13
|
+
my $version = '12.16';
|
14
14
|
|
15
15
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
16
16
|
my $exeDir;
|
@@ -894,8 +894,8 @@ for (;;) {
|
|
894
894
|
$helped = 1;
|
895
895
|
next;
|
896
896
|
}
|
897
|
-
if (/^(ee|extractembedded)$/i) {
|
898
|
-
$mt->Options(ExtractEmbedded => 1);
|
897
|
+
if (/^(ee|extractembedded)(\d*)$/i) {
|
898
|
+
$mt->Options(ExtractEmbedded => $2 || 1);
|
899
899
|
$mt->Options(Duplicates => 1);
|
900
900
|
next;
|
901
901
|
}
|
@@ -4573,7 +4573,7 @@ L<Processing control|/Processing control>
|
|
4573
4573
|
|
4574
4574
|
-a (-duplicates) Allow duplicate tags to be extracted
|
4575
4575
|
-e (--composite) Do not generate composite tags
|
4576
|
-
-ee
|
4576
|
+
-ee[NUM] (-extractEmbedded) Extract information from embedded files
|
4577
4577
|
-ext[+] EXT (-extension) Process files with specified extension
|
4578
4578
|
-F[OFFSET] (-fixBase) Fix the base for maker notes offsets
|
4579
4579
|
-fast[NUM] Increase speed when extracting metadata
|
@@ -5367,7 +5367,7 @@ with this command:
|
|
5367
5367
|
|
5368
5368
|
produces output like this:
|
5369
5369
|
|
5370
|
-
-- Generated by ExifTool 12.
|
5370
|
+
-- Generated by ExifTool 12.16 --
|
5371
5371
|
File: a.jpg - 2003:10:31 15:44:19
|
5372
5372
|
(f/5.6, 1/60s, ISO 100)
|
5373
5373
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -5706,7 +5706,7 @@ when copying.
|
|
5706
5706
|
|
5707
5707
|
Extract existing tags only -- don't generate composite tags.
|
5708
5708
|
|
5709
|
-
=item B<-ee> (B<-extractEmbedded>)
|
5709
|
+
=item B<-ee>[I<NUM>] (B<-extractEmbedded>)
|
5710
5710
|
|
5711
5711
|
Extract information from embedded documents in EPS files, embedded EPS
|
5712
5712
|
information and JPEG and Jpeg2000 images in PDF files, embedded MPF images
|
@@ -5724,6 +5724,11 @@ document as if it were a separate input file. This allows, for example,
|
|
5724
5724
|
generation of GPS track logs from timed metadata in videos. See
|
5725
5725
|
L<https://exiftool.org/geotag.html#Inverse> for examples.
|
5726
5726
|
|
5727
|
+
Setting I<NUM> to 2 causes the H264 video stream in MP4 videos to be parsed
|
5728
|
+
until the first Supplemental Enhancement Information (SEI) message is
|
5729
|
+
decoded, or 3 to parse the entire H624 stream and decode all SEI
|
5730
|
+
information.
|
5731
|
+
|
5727
5732
|
=item B<-ext>[+] I<EXT>, B<--ext> I<EXT> (B<-extension>)
|
5728
5733
|
|
5729
5734
|
Process only files with (B<-ext>) or without (B<--ext>) a specified
|
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -28,7 +28,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
28
28
|
%mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exePath);
|
30
30
|
|
31
|
-
$VERSION = '12.
|
31
|
+
$VERSION = '12.16';
|
32
32
|
$RELEASE = '';
|
33
33
|
@ISA = qw(Exporter);
|
34
34
|
%EXPORT_TAGS = (
|
data/bin/lib/Image/ExifTool.pod
CHANGED
@@ -626,7 +626,9 @@ XMP to be extracted.
|
|
626
626
|
Flag to extract information from embedded documents in EPS files, embedded
|
627
627
|
EPS information and JPEG and Jpeg2000 images in PDF files, embedded MPF
|
628
628
|
images in JPEG and MPO files, timed metadata in videos, and the resource
|
629
|
-
fork of Mac OS files.
|
629
|
+
fork of Mac OS files. A setting of 2 also causes the H264 video stream in
|
630
|
+
MP4 files to be parsed until the first SEI message is decoded, or 3 to
|
631
|
+
parse the entire stream. Default is undef.
|
630
632
|
|
631
633
|
=item FastScan
|
632
634
|
|
@@ -15,7 +15,7 @@ use strict;
|
|
15
15
|
use vars qw($VERSION);
|
16
16
|
use Image::ExifTool qw(:DataAccess :Utils);
|
17
17
|
|
18
|
-
$VERSION = '1.
|
18
|
+
$VERSION = '1.05';
|
19
19
|
|
20
20
|
# DPX tags
|
21
21
|
%Image::ExifTool::DPX::Main = (
|
@@ -158,11 +158,11 @@ $VERSION = '1.04';
|
|
158
158
|
1588=> { Name => 'InputDeviceSerialNumber', Format => 'string[32]' },
|
159
159
|
# 1620=> { Name => 'AspectRatio', Format => 'int32u' },
|
160
160
|
1724 => { Name => 'OriginalFrameRate',Format => 'float' },
|
161
|
-
1728 => { Name => 'ShutterAngle', Format => 'float', RawConv => '$val =~ /\d/ ? $val : undef' }, #2
|
161
|
+
1728 => { Name => 'ShutterAngle', Format => 'float', RawConv => '($val =~ /\d/ and $val !~ /nan/i) ? $val : undef' }, #2
|
162
162
|
1732 => { Name => 'FrameID', Format => 'string[32]' },
|
163
163
|
1764 => { Name => 'SlateInformation', Format => 'string[100]' },
|
164
164
|
1920 => { Name => 'TimeCode', Format => 'int32u' }, #2
|
165
|
-
1940 => { Name => 'FrameRate', Format => 'float', RawConv => '$val =~ /\d/ ? $val : undef' }, #2
|
165
|
+
1940 => { Name => 'FrameRate', Format => 'float', RawConv => '($val =~ /\d/ and $val !~ /nan/i) ? $val : undef' }, #2
|
166
166
|
1972 => { Name => 'Reserved5', Format => 'string[76]', Unknown => 1 },
|
167
167
|
2048 => { Name => 'UserID', Format => 'string[32]' },
|
168
168
|
);
|
@@ -62,7 +62,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
62
62
|
use Image::ExifTool::Exif;
|
63
63
|
use Image::ExifTool::GPS;
|
64
64
|
|
65
|
-
$VERSION = '3.
|
65
|
+
$VERSION = '3.92';
|
66
66
|
|
67
67
|
sub LensIDConv($$$);
|
68
68
|
sub ProcessNikonAVI($$$);
|
@@ -1520,7 +1520,7 @@ my %binaryDataAttrs = (
|
|
1520
1520
|
7 => 'Fired, External', #14
|
1521
1521
|
8 => 'Fired, Commander Mode',
|
1522
1522
|
9 => 'Fired, TTL Mode',
|
1523
|
-
18 => '
|
1523
|
+
18 => 'LED Light', #G.F. (movie LED light)
|
1524
1524
|
},
|
1525
1525
|
},
|
1526
1526
|
0x0088 => [
|
@@ -9184,6 +9184,7 @@ my %nikonFocalConversions = (
|
|
9184
9184
|
7 => 'Fired, External', #14
|
9185
9185
|
8 => 'Fired, Commander Mode',
|
9186
9186
|
9 => 'Fired, TTL Mode',
|
9187
|
+
18 => 'LED Light', #G.F. (movie LED light)
|
9187
9188
|
},
|
9188
9189
|
},
|
9189
9190
|
0x2000098 => [
|
@@ -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.57';
|
51
51
|
|
52
52
|
sub ProcessMOV($$;$);
|
53
53
|
sub ProcessKeys($$$);
|
@@ -424,7 +424,6 @@ my %eeBox = (
|
|
424
424
|
# (note: vide is only processed if specific atoms exist in the VideoSampleDesc)
|
425
425
|
vide => { %eeStd,
|
426
426
|
JPEG => 'stsd',
|
427
|
-
# avcC => 'stsd', # (uncomment to parse H264 stream)
|
428
427
|
},
|
429
428
|
text => { %eeStd },
|
430
429
|
meta => { %eeStd },
|
@@ -434,6 +433,10 @@ my %eeBox = (
|
|
434
433
|
ctbx => { %eeStd }, # (GM cars)
|
435
434
|
'' => { 'gps ' => 'moov', 'GPS ' => 'main' }, # (no handler -- in top level 'moov' box, and main)
|
436
435
|
);
|
436
|
+
# boxes to save when ExtractEmbedded is set to 2 or higher
|
437
|
+
my %eeBox2 = (
|
438
|
+
vide => { avcC => 'stsd' }, # (parses H264 video stream)
|
439
|
+
);
|
437
440
|
|
438
441
|
# QuickTime atoms
|
439
442
|
%Image::ExifTool::QuickTime::Main = (
|
@@ -8884,7 +8887,7 @@ sub ProcessMOV($$;$)
|
|
8884
8887
|
my $dirID = $$dirInfo{DirID} || '';
|
8885
8888
|
my $charsetQuickTime = $et->Options('CharsetQuickTime');
|
8886
8889
|
my ($buff, $tag, $size, $track, $isUserData, %triplet, $doDefaultLang, $index);
|
8887
|
-
my ($dirEnd, $
|
8890
|
+
my ($dirEnd, $unkOpt, %saveOptions, $atomCount);
|
8888
8891
|
|
8889
8892
|
my $topLevel = not $$et{InQuickTime};
|
8890
8893
|
$$et{InQuickTime} = 1;
|
@@ -8948,8 +8951,8 @@ sub ProcessMOV($$;$)
|
|
8948
8951
|
}
|
8949
8952
|
$$raf{NoBuffer} = 1 if $et->Options('FastScan'); # disable buffering in FastScan mode
|
8950
8953
|
|
8951
|
-
|
8952
|
-
|
8954
|
+
my $ee = $$et{OPTIONS}{ExtractEmbedded};
|
8955
|
+
if ($ee) {
|
8953
8956
|
$unkOpt = $$et{OPTIONS}{Unknown};
|
8954
8957
|
require 'Image/ExifTool/QuickTimeStream.pl';
|
8955
8958
|
}
|
@@ -9032,6 +9035,9 @@ sub ProcessMOV($$;$)
|
|
9032
9035
|
} elsif ($handlerType ne 'vide' and not $$et{OPTIONS}{Validate}) {
|
9033
9036
|
EEWarn($et);
|
9034
9037
|
}
|
9038
|
+
} elsif ($ee and $ee > 1 and $eeBox2{$handlerType} and $eeBox2{$handlerType}{$tag}) {
|
9039
|
+
$eeTag = 1;
|
9040
|
+
$$et{OPTIONS}{Unknown} = 1;
|
9035
9041
|
}
|
9036
9042
|
my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
|
9037
9043
|
|
@@ -531,7 +531,10 @@ my %insvLimit = (
|
|
531
531
|
PROCESS_PROC => \&Process_tx3g,
|
532
532
|
GROUPS => { 2 => 'Location' },
|
533
533
|
FIRST_ENTRY => 0,
|
534
|
-
NOTES =>
|
534
|
+
NOTES => q{
|
535
|
+
Tags extracted from the tx3g sbtl timed metadata of Yuneec drones, and
|
536
|
+
subtitle text in some other videos.
|
537
|
+
},
|
535
538
|
Lat => {
|
536
539
|
Name => 'GPSLatitude',
|
537
540
|
RawConv => '$$self{FoundGPSLatitude} = 1; $val',
|
@@ -552,6 +555,11 @@ my %insvLimit = (
|
|
552
555
|
GimYaw => 'GimbalYaw',
|
553
556
|
GimPitch => 'GimbalPitch',
|
554
557
|
GimRoll => 'GimbalRoll',
|
558
|
+
DateTime => { # for date/time-format subtitle text
|
559
|
+
Groups => { 2 => 'Time' },
|
560
|
+
PrintConv => '$self->ConvertDateTime($val)',
|
561
|
+
},
|
562
|
+
Text => { Groups => { 2 => 'Other' } },
|
555
563
|
);
|
556
564
|
|
557
565
|
%Image::ExifTool::QuickTime::INSV_MakerNotes = (
|
@@ -1195,6 +1203,10 @@ sub ProcessSamples($)
|
|
1195
1203
|
$pos += $hdrLen + $len;
|
1196
1204
|
last if $pos + $hdrLen >= length($buff);
|
1197
1205
|
}
|
1206
|
+
if ($$et{GotNAL06}) {
|
1207
|
+
my $eeOpt = $et->Options('ExtractEmbedded');
|
1208
|
+
last unless $eeOpt and $eeOpt > 2;
|
1209
|
+
}
|
1198
1210
|
next;
|
1199
1211
|
}
|
1200
1212
|
if ($verbose > 1) {
|
@@ -1981,7 +1993,13 @@ sub Process_tx3g($$$)
|
|
1981
1993
|
my $dataPt = $$dirInfo{DataPt};
|
1982
1994
|
return 0 if length $$dataPt < 2;
|
1983
1995
|
pos($$dataPt) = 2; # skip 2-byte length word
|
1984
|
-
$et->
|
1996
|
+
$et->VerboseDir('tx3g', undef, length($$dataPt)-2);
|
1997
|
+
$et->HandleTag($tagTablePtr, 'Text', substr($$dataPt, 2));
|
1998
|
+
if ($$dataPt =~ /^..\w{3} (\d{4})-(\d{2})-(\d{2}) (\d{2}:\d{2}:\d{2}) ?([-+])(\d{2}):?(\d{2})$/s) {
|
1999
|
+
$et->HandleTag($tagTablePtr, 'DateTime', "$1:$2:$3 $4$5$6:$7");
|
2000
|
+
} else {
|
2001
|
+
$et->HandleTag($tagTablePtr, $1, $2) while $$dataPt =~ /(\w+):([^:]*[^:\s])(\s|$)/sg;
|
2002
|
+
}
|
1985
2003
|
return 1;
|
1986
2004
|
}
|
1987
2005
|
|
@@ -2513,7 +2531,7 @@ sub ProcessInsta360($;$)
|
|
2513
2531
|
$et->HandleTag($tagTbl, GPSTrack => $a[9]);
|
2514
2532
|
$et->HandleTag($tagTbl, GPSTrackRef => 'T');
|
2515
2533
|
$et->HandleTag($tagTbl, GPSAltitude => $a[10]);
|
2516
|
-
$et->HandleTag($tagTbl, Unknown02 => "@a[1,2]") if $unknown;
|
2534
|
+
$et->HandleTag($tagTbl, Unknown02 => "@a[1,2]") if $unknown; # millisecond counter (https://exiftool.org/forum/index.php?topic=9884.msg65143#msg65143)
|
2517
2535
|
}
|
2518
2536
|
}
|
2519
2537
|
} elsif ($id == 0x101) {
|
@@ -12,7 +12,7 @@ meta information extracted from or written to a file.
|
|
12
12
|
=head1 TAG TABLES
|
13
13
|
|
14
14
|
The tables listed below give the names of all tags recognized by ExifTool.
|
15
|
-
They contain a total of
|
15
|
+
They contain a total of 23982 tags, with 15546 unique tag names.
|
16
16
|
|
17
17
|
B<Tag ID>, B<Index#> or B<Sequence> is given in the first column of each
|
18
18
|
table. A B<Tag ID> is the computer-readable equivalent of a tag name, and
|
@@ -25951,11 +25951,13 @@ changed via the config file.
|
|
25951
25951
|
|
25952
25952
|
=head3 QuickTime tx3g Tags
|
25953
25953
|
|
25954
|
-
Tags extracted from the tx3g sbtl timed metadata of Yuneec drones
|
25954
|
+
Tags extracted from the tx3g sbtl timed metadata of Yuneec drones, and
|
25955
|
+
subtitle text in some other videos.
|
25955
25956
|
|
25956
25957
|
Tag ID Tag Name Writable
|
25957
25958
|
------ -------- --------
|
25958
25959
|
'Alt' GPSAltitude no
|
25960
|
+
'DateTime' DateTime no
|
25959
25961
|
'GimPitch' GimbalPitch no
|
25960
25962
|
'GimRoll' GimbalRoll no
|
25961
25963
|
'GimYaw' GimbalYaw no
|
@@ -25963,6 +25965,7 @@ Tags extracted from the tx3g sbtl timed metadata of Yuneec drones.
|
|
25963
25965
|
'Lon' GPSLongitude no
|
25964
25966
|
'Pitch' Pitch no
|
25965
25967
|
'Roll' Roll no
|
25968
|
+
'Text' Text no
|
25966
25969
|
'Yaw' Yaw no
|
25967
25970
|
|
25968
25971
|
=head3 QuickTime FileType Tags
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exiftool_vendored
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 12.
|
4
|
+
version: 12.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew McEachen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-01-
|
12
|
+
date: 2021-01-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|