exiftool_vendored 11.67.0 → 11.68.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 +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!
|