exiftool_vendored 11.67.0 → 11.68.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 +8 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +2 -2
- data/bin/lib/Image/ExifTool.pm +2 -2
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +15 -3
- data/bin/lib/Image/ExifTool/FujiFilm.pm +20 -2
- data/bin/lib/Image/ExifTool/Nikon.pm +3 -1
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +17 -0
- data/bin/lib/Image/ExifTool/TagLookup.pm +2 -1
- data/bin/lib/Image/ExifTool/TagNames.pod +10 -8
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 407204d50d4b6851b6efea2990fc1442469eb598
|
4
|
+
data.tar.gz: dbf9303e5efb7be48d6991ce2da256b750d51e7d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b0ae0e006a6dd37f8fe358f0a695e5c3459d04f5860539fc484431b5776c1af45edb5321dcd247cd460876f8d3cb042240ff42b0ba21fd2a69fc489f119c8b3
|
7
|
+
data.tar.gz: eea2b3eaebdef58508fc000ca2e1e4f94406ce9ca0a770aefd93b429fa9d16d4fa39ad1e321c7a35e8923ee00d8b24d98441a31cad0b79fbcf1d899a7a717e3a
|
data/bin/Changes
CHANGED
@@ -7,6 +7,14 @@ RSS feed: http://owl.phy.queensu.ca/~phil/exiftool/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 11.50. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to CPAN.)
|
9
9
|
|
10
|
+
Oct. 1, 2019 - Version 11.68
|
11
|
+
|
12
|
+
- Added read support for yet another type of streaming GPS in MP4 videos
|
13
|
+
- Added a number of new FujiFlashMode values
|
14
|
+
- Decode a new FujiFilm tag
|
15
|
+
- Made NikonCaptureOffsets and NikonCaptureVersion deletable
|
16
|
+
- Enhanced tag name documentation to indicate deletable makernote tags
|
17
|
+
|
10
18
|
Sept. 30, 2019 - Version 11.67
|
11
19
|
|
12
20
|
- Added config_files/thinkware.config to the distribution
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -104,8 +104,8 @@ your home directory, then you would type the following commands in a
|
|
104
104
|
terminal window to extract and run ExifTool:
|
105
105
|
|
106
106
|
cd ~/Desktop
|
107
|
-
gzip -dc Image-ExifTool-11.
|
108
|
-
cd Image-ExifTool-11.
|
107
|
+
gzip -dc Image-ExifTool-11.68.tar.gz | tar -xf -
|
108
|
+
cd Image-ExifTool-11.68
|
109
109
|
./exiftool t/images/ExifTool.jpg
|
110
110
|
|
111
111
|
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 = '11.
|
13
|
+
my $version = '11.68';
|
14
14
|
|
15
15
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
16
16
|
my $exeDir;
|
@@ -5173,7 +5173,7 @@ with this command:
|
|
5173
5173
|
|
5174
5174
|
produces output like this:
|
5175
5175
|
|
5176
|
-
-- Generated by ExifTool 11.
|
5176
|
+
-- Generated by ExifTool 11.68 --
|
5177
5177
|
File: a.jpg - 2003:10:31 15:44:19
|
5178
5178
|
(f/5.6, 1/60s, ISO 100)
|
5179
5179
|
File: b.jpg - 2006:05:23 11:57:38
|
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -27,7 +27,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
27
27
|
%mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
|
28
28
|
%jpegMarker %specialTags %fileTypeLookup);
|
29
29
|
|
30
|
-
$VERSION = '11.
|
30
|
+
$VERSION = '11.68';
|
31
31
|
$RELEASE = '';
|
32
32
|
@ISA = qw(Exporter);
|
33
33
|
%EXPORT_TAGS = (
|
@@ -327,7 +327,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
|
|
327
327
|
IND => ['IND', 'Adobe InDesign'],
|
328
328
|
INDD => ['IND', 'Adobe InDesign Document'],
|
329
329
|
INDT => ['IND', 'Adobe InDesign Template'],
|
330
|
-
INSV => '
|
330
|
+
INSV => ['MOV', 'Insta360 Video'],
|
331
331
|
INX => ['XMP', 'Adobe InDesign Interchange'],
|
332
332
|
ISO => ['ISO', 'ISO 9660 disk image'],
|
333
333
|
ITC => ['ITC', 'iTunes Cover Flow'],
|
@@ -35,7 +35,7 @@ use Image::ExifTool::Sony;
|
|
35
35
|
use Image::ExifTool::Validate;
|
36
36
|
use Image::ExifTool::MacOS;
|
37
37
|
|
38
|
-
$VERSION = '3.
|
38
|
+
$VERSION = '3.29';
|
39
39
|
@ISA = qw(Exporter);
|
40
40
|
|
41
41
|
sub NumbersFirst($$);
|
@@ -213,7 +213,8 @@ writable directly, but is written automatically by ExifTool (often when a
|
|
213
213
|
corresponding L<Composite|Image::ExifTool::TagNames/Composite Tags> or
|
214
214
|
L<Extra|Image::ExifTool::TagNames/Extra Tags> tag is written). A colon
|
215
215
|
(C<:>) indicates a I<Mandatory> tag which may be added automatically when
|
216
|
-
writing.
|
216
|
+
writing. Normally, makernote tags may not be deleted individually, but a
|
217
|
+
caret (C<^>) indicates a I<Deletable> makernote tag.
|
217
218
|
|
218
219
|
The HTML version of these tables also lists possible B<Values> for
|
219
220
|
discrete-valued tags, as well as B<Notes> for some tags. The B<Values> are
|
@@ -1265,6 +1266,11 @@ TagID: foreach $tagID (@keys) {
|
|
1265
1266
|
$writable = '-' . ($tw ? $writable : '');
|
1266
1267
|
$writable .= '!' if $tw and ($$tagInfo{Protected} || 0) & 0x01;
|
1267
1268
|
$writable .= '+' if $$tagInfo{List};
|
1269
|
+
if (defined $$tagInfo{Permanent}) {
|
1270
|
+
$writable .= '^' unless $$tagInfo{Permanent};
|
1271
|
+
} elsif (defined $$table{PERMANENT}) {
|
1272
|
+
$writable .= '^' unless $$table{PERMANENT};
|
1273
|
+
}
|
1268
1274
|
} else {
|
1269
1275
|
# not writable if we can't do the inverse conversions
|
1270
1276
|
my $noPrintConvInv;
|
@@ -1312,6 +1318,11 @@ TagID: foreach $tagID (@keys) {
|
|
1312
1318
|
$writable .= '_' if defined $$tagInfo{Flat};
|
1313
1319
|
$writable .= '+' if $$tagInfo{List};
|
1314
1320
|
$writable .= ':' if $$tagInfo{Mandatory};
|
1321
|
+
if (defined $$tagInfo{Permanent}) {
|
1322
|
+
$writable .= '^' unless $$tagInfo{Permanent};
|
1323
|
+
} elsif (defined $$table{PERMANENT}) {
|
1324
|
+
$writable .= '^' unless $$table{PERMANENT};
|
1325
|
+
}
|
1315
1326
|
# separate tables link like subdirectories (flagged with leading '-')
|
1316
1327
|
$writable = "-$writable" if $subdir;
|
1317
1328
|
}
|
@@ -2514,10 +2525,11 @@ sub WriteTagNames($$)
|
|
2514
2525
|
'!' => 'Unsafe',
|
2515
2526
|
'*' => 'Protected',
|
2516
2527
|
':' => 'Mandatory',
|
2528
|
+
'^' => 'Deletable',
|
2517
2529
|
);
|
2518
2530
|
my ($wstr, %hasAttr, @hasAttr);
|
2519
2531
|
foreach $wstr (@$writable) {
|
2520
|
-
next unless $wstr =~ m{([+/~!*:_]+)$};
|
2532
|
+
next unless $wstr =~ m{([+/~!*:_^]+)$};
|
2521
2533
|
my @a = split //, $1;
|
2522
2534
|
foreach (@a) {
|
2523
2535
|
next if $hasAttr{$_};
|
@@ -19,6 +19,7 @@
|
|
19
19
|
# 10) Albert Shan private communication
|
20
20
|
# 11) http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,8377.0.html
|
21
21
|
# 12) http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,9607.0.html
|
22
|
+
# 13) http://u88.n24.queensu.ca/exiftool/forum/index.php/topic=10481.0.html
|
22
23
|
# IB) Iliah Borg private communication (LibRaw)
|
23
24
|
# JD) Jens Duttke private communication
|
24
25
|
#------------------------------------------------------------------------------
|
@@ -30,7 +31,7 @@ use vars qw($VERSION);
|
|
30
31
|
use Image::ExifTool qw(:DataAccess :Utils);
|
31
32
|
use Image::ExifTool::Exif;
|
32
33
|
|
33
|
-
$VERSION = '1.
|
34
|
+
$VERSION = '1.74';
|
34
35
|
|
35
36
|
sub ProcessFujiDir($$$);
|
36
37
|
sub ProcessFaceRec($$$);
|
@@ -263,10 +264,22 @@ my %faceCategories = (
|
|
263
264
|
16 => 'Commander',
|
264
265
|
0x8000 => 'Not Attached', #10 (X-T2) (or external flash off)
|
265
266
|
0x8120 => 'TTL', #10 (X-T2)
|
267
|
+
0x8320 => 'TTL Auto - Did not fire',
|
266
268
|
0x9840 => 'Manual', #10 (X-T2)
|
269
|
+
0x9860 => 'Flash Commander', #13
|
267
270
|
0x9880 => 'Multi-flash', #10 (X-T2)
|
268
271
|
0xa920 => '1st Curtain (front)', #10 (EF-X500 flash)
|
272
|
+
0xaa20 => 'TTL Slow - 1st Curtain (front)', #13
|
273
|
+
0xab20 => 'TTL Auto - 1st Curtain (front)', #13
|
274
|
+
0xad20 => 'TTL - Red-eye Flash - 1st Curtain (front)', #13
|
275
|
+
0xae20 => 'TTL Slow - Red-eye Flash - 1st Curtain (front)', #13
|
276
|
+
0xaf20 => 'TTL Auto - Red-eye Flash - 1st Curtain (front)', #13
|
269
277
|
0xc920 => '2nd Curtain (rear)', #10
|
278
|
+
0xca20 => 'TTL Slow - 2nd Curtain (rear)', #13
|
279
|
+
0xcb20 => 'TTL Auto - 2nd Curtain (rear)', #13
|
280
|
+
0xcd20 => 'TTL - Red-eye Flash - 2nd Curtain (rear)', #13
|
281
|
+
0xce20 => 'TTL Slow - Red-eye Flash - 2nd Curtain (rear)', #13
|
282
|
+
0xcf20 => 'TTL Auto - Red-eye Flash - 2nd Curtain (rear)', #13
|
270
283
|
0xe920 => 'High Speed Sync (HSS)', #10
|
271
284
|
},
|
272
285
|
},
|
@@ -639,7 +652,7 @@ my %faceCategories = (
|
|
639
652
|
},
|
640
653
|
# 0x1408 - values: '0100', 'S100', 'VQ10'
|
641
654
|
# 0x1409 - values: same as 0x1408
|
642
|
-
# 0x140a - values: 0, 1, 3, 5, 7 (bit 2=red-eye detection, ref 11)
|
655
|
+
# 0x140a - values: 0, 1, 3, 5, 7 (bit 2=red-eye detection, ref 11/13)
|
643
656
|
0x140b => { #6
|
644
657
|
Name => 'AutoDynamicRange',
|
645
658
|
Writable => 'int16u',
|
@@ -763,6 +776,11 @@ my %faceCategories = (
|
|
763
776
|
Writable => 'int16u',
|
764
777
|
Groups => { 2 => 'Video' },
|
765
778
|
},
|
779
|
+
0x3824 => { #forum10480 (X-T3)
|
780
|
+
Name => 'FullHDHighSpeedRec',
|
781
|
+
Writable => 'int32u',
|
782
|
+
Groups => { 1 => 'Off', 2 => 'On' },
|
783
|
+
},
|
766
784
|
0x4005 => { #forum9634
|
767
785
|
Name => 'FaceElementSelected', # (could be face or eye)
|
768
786
|
Writable => 'int16u',
|
@@ -2283,11 +2283,13 @@ my %binaryDataAttrs = (
|
|
2283
2283
|
0x0e09 => { #12
|
2284
2284
|
Name => 'NikonCaptureVersion',
|
2285
2285
|
Writable => 'string',
|
2286
|
-
|
2286
|
+
Permanent => 0,
|
2287
2287
|
},
|
2288
2288
|
# 0x0e0e is in D70 Nikon Capture files (not out-of-the-camera D70 files) - PH
|
2289
2289
|
0x0e0e => { #PH
|
2290
2290
|
Name => 'NikonCaptureOffsets',
|
2291
|
+
Writable => 'undef',
|
2292
|
+
Permanent => 0,
|
2291
2293
|
SubDirectory => {
|
2292
2294
|
TagTable => 'Image::ExifTool::Nikon::CaptureOffsets',
|
2293
2295
|
Validate => '$val =~ /^0100/',
|
@@ -910,6 +910,23 @@ sub ProcessFreeGPS($$$)
|
|
910
910
|
map { $_ = $_ - 4294967296 if $_ >= 0x80000000; $_ /= 256 } @acc;
|
911
911
|
}
|
912
912
|
|
913
|
+
} elsif ($$dataPt =~ /^.{40}A([NS])([EW])/s) {
|
914
|
+
|
915
|
+
# decode freeGPS from ViofoA119v3 dashcam (similar to Novatek GPS format)
|
916
|
+
# 0000: 00 00 40 00 66 72 65 65 47 50 53 20 f0 03 00 00 [..@.freeGPS ....]
|
917
|
+
# 0010: 05 00 00 00 2f 00 00 00 03 00 00 00 13 00 00 00 [..../...........]
|
918
|
+
# 0020: 09 00 00 00 1b 00 00 00 41 4e 57 00 25 d1 99 45 [........ANW.%..E]
|
919
|
+
# 0030: f1 47 40 46 66 66 d2 41 85 eb 83 41 00 00 00 00 [.G@Fff.A...A....]
|
920
|
+
($latRef, $lonRef) = ($1, $2);
|
921
|
+
($hr,$min,$sec,$yr,$mon,$day) = unpack('x16V6', $$dataPt);
|
922
|
+
$yr += 2000;
|
923
|
+
SetByteOrder('II');
|
924
|
+
$lat = GetFloat($dataPt, 0x2c);
|
925
|
+
$lon = GetFloat($dataPt, 0x30);
|
926
|
+
$spd = GetFloat($dataPt, 0x34) * 1.852; # (convert knots to km/h)
|
927
|
+
$trk = GetFloat($dataPt, 0x38);
|
928
|
+
SetByteOrder('MM');
|
929
|
+
|
913
930
|
} else {
|
914
931
|
|
915
932
|
# decode binary GPS format (Viofo A119S, ref 2)
|
@@ -2644,6 +2644,7 @@ my %tagLookup = (
|
|
2644
2644
|
'freebytes' => { 93 => 0x1 },
|
2645
2645
|
'freememorycardimages' => { 174 => [0x37,0x54], 175 => [0x2d,0x4a], 176 => 0x32 },
|
2646
2646
|
'fujiflashmode' => { 123 => 0x1010 },
|
2647
|
+
'fullhdhighspeedrec' => { 123 => 0x3824 },
|
2647
2648
|
'fullimagesize' => { 401 => 0xb02b },
|
2648
2649
|
'fullpanoheightpixels' => { 444 => 'FullPanoHeightPixels', 445 => 'FullPanoHeightPixels' },
|
2649
2650
|
'fullpanowidthpixels' => { 444 => 'FullPanoWidthPixels', 445 => 'FullPanoWidthPixels' },
|
@@ -3936,6 +3937,7 @@ my %tagLookup = (
|
|
3936
3937
|
'nickname' => { 480 => 'Nickname' },
|
3937
3938
|
'nikoncapturedata' => { 216 => 0xe01 },
|
3938
3939
|
'nikoncaptureeditversions' => { 216 => 0xe13 },
|
3940
|
+
'nikoncaptureoffsets' => { 216 => 0xe0e },
|
3939
3941
|
'nikoncaptureoutput' => { 216 => 0xe1e },
|
3940
3942
|
'nikoncaptureversion' => { 216 => 0xe09 },
|
3941
3943
|
'nikoniccprofile' => { 216 => 0xe1d },
|
@@ -8895,7 +8897,6 @@ my %tagExists = (
|
|
8895
8897
|
'nifnonlinearity16bit' => 1,
|
8896
8898
|
'nifnonlinearityext' => 1,
|
8897
8899
|
'nikon' => 1,
|
8898
|
-
'nikoncaptureoffsets' => 1,
|
8899
8900
|
'nikondata' => 1,
|
8900
8901
|
'nikondatetime' => 1,
|
8901
8902
|
'nikonncdb' => 1,
|
@@ -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 23036 tags, with 15080 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
|
@@ -62,7 +62,8 @@ writable directly, but is written automatically by ExifTool (often when a
|
|
62
62
|
corresponding L<Composite|Image::ExifTool::TagNames/Composite Tags> or
|
63
63
|
L<Extra|Image::ExifTool::TagNames/Extra Tags> tag is written). A colon
|
64
64
|
(C<:>) indicates a I<Mandatory> tag which may be added automatically when
|
65
|
-
writing.
|
65
|
+
writing. Normally, makernote tags may not be deleted individually, but a
|
66
|
+
caret (C<^>) indicates a I<Deletable> makernote tag.
|
66
67
|
|
67
68
|
The HTML version of these tables also lists possible B<Values> for
|
68
69
|
discrete-valued tags, as well as B<Notes> for some tags. The B<Values> are
|
@@ -8988,6 +8989,7 @@ Tags extracted from FLIR Public image Format (FPF) files.
|
|
8988
8989
|
0x3820 FrameRate int16u
|
8989
8990
|
0x3821 FrameWidth int16u
|
8990
8991
|
0x3822 FrameHeight int16u
|
8992
|
+
0x3824 FullHDHighSpeedRec int32u
|
8991
8993
|
0x4005 FaceElementSelected int16u[4]
|
8992
8994
|
0x4100 FacesDetected int16u
|
8993
8995
|
0x4103 FacePositions int16u[n]
|
@@ -11376,11 +11378,11 @@ DiMAGE X and Xt.
|
|
11376
11378
|
0x00c3 BarometerInfo Nikon BarometerInfo
|
11377
11379
|
0x0e00 PrintIM PrintIM
|
11378
11380
|
0x0e01 NikonCaptureData NikonCapture
|
11379
|
-
0x0e09 NikonCaptureVersion string
|
11381
|
+
0x0e09 NikonCaptureVersion string^
|
11380
11382
|
0x0e0e NikonCaptureOffsets Nikon CaptureOffsets
|
11381
11383
|
0x0e10 NikonScanIFD Nikon Scan
|
11382
11384
|
0x0e13 NikonCaptureEditVersions NikonCapture
|
11383
|
-
NikonCaptureEditVersions undef
|
11385
|
+
NikonCaptureEditVersions undef!^
|
11384
11386
|
0x0e1d NikonICCProfile ICC_Profile
|
11385
11387
|
0x0e1e NikonCaptureOutput Nikon CaptureOutput
|
11386
11388
|
0x0e22 NEFBitDepth int16u[4]!
|
@@ -18346,8 +18348,8 @@ ExifTool is used to write XMP to a CRW image.
|
|
18346
18348
|
0x1835 DecoderTable CanonRaw DecoderTable
|
18347
18349
|
0x183b SerialNumberFormat int32u
|
18348
18350
|
0x2005 RawData no
|
18349
|
-
0x2007 JpgFromRaw resize
|
18350
|
-
0x2008 ThumbnailImage resize
|
18351
|
+
0x2007 JpgFromRaw resize^
|
18352
|
+
0x2008 ThumbnailImage resize^
|
18351
18353
|
0x2804 ImageDescription CanonRaw
|
18352
18354
|
0x2807 CameraObject CanonRaw
|
18353
18355
|
0x3002 ShootingRecord CanonRaw
|
@@ -33460,8 +33462,8 @@ FileName.
|
|
33460
33462
|
Tag Name Group Writable
|
33461
33463
|
-------- ----- --------
|
33462
33464
|
Adobe Adobe yes!
|
33463
|
-
CanonDR4 CanonVRD yes
|
33464
|
-
CanonVRD CanonVRD yes
|
33465
|
+
CanonDR4 CanonVRD yes!^
|
33466
|
+
CanonVRD CanonVRD yes!^
|
33465
33467
|
Comment File yes
|
33466
33468
|
CurrentIPTCDigest File no
|
33467
33469
|
Directory System yes!
|