exiftool_vendored 12.15.0 → 12.16.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.
- 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
|