exiftool_vendored 12.14.0 → 12.18.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.
Potentially problematic release.
This version of exiftool_vendored might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bin/Changes +52 -2
- data/bin/MANIFEST +2 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +39 -32
- data/bin/lib/Image/ExifTool.pm +30 -1
- data/bin/lib/Image/ExifTool.pod +7 -5
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +4 -3
- data/bin/lib/Image/ExifTool/Canon.pm +21 -2
- data/bin/lib/Image/ExifTool/CanonCustom.pm +19 -1
- data/bin/lib/Image/ExifTool/DJI.pm +27 -1
- data/bin/lib/Image/ExifTool/DPX.pm +3 -3
- data/bin/lib/Image/ExifTool/Exif.pm +31 -15
- data/bin/lib/Image/ExifTool/FujiFilm.pm +2 -1
- data/bin/lib/Image/ExifTool/GPS.pm +5 -5
- data/bin/lib/Image/ExifTool/H264.pm +20 -5
- data/bin/lib/Image/ExifTool/JPEG.pm +23 -1
- data/bin/lib/Image/ExifTool/Nikon.pm +312 -36
- data/bin/lib/Image/ExifTool/NikonSettings.pm +2013 -0
- data/bin/lib/Image/ExifTool/PNG.pm +11 -3
- data/bin/lib/Image/ExifTool/QuickTime.pm +31 -19
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +22 -4
- data/bin/lib/Image/ExifTool/README +5 -4
- data/bin/lib/Image/ExifTool/RIFF.pm +8 -7
- data/bin/lib/Image/ExifTool/Sony.pm +20 -18
- data/bin/lib/Image/ExifTool/TagLookup.pm +3983 -3810
- data/bin/lib/Image/ExifTool/TagNames.pod +408 -22
- data/bin/lib/Image/ExifTool/WriteXMP.pl +9 -6
- data/bin/lib/Image/ExifTool/Writer.pl +6 -4
- data/bin/lib/Image/ExifTool/XMP.pm +28 -2
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +36 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94a7d3e31a469a8fc6a58b020168e7076b56172144d98ffeda12f7b49d65a0a0
|
4
|
+
data.tar.gz: 18000853a1b6ae5728074fa49602ff41851844abbde34022ddc8971218607cf0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c1283d44ee24b5b60c13795ad8868359b616522db3b191060a81df0b8bde2f3f31d5dd57e7bebd05de9e2ac7a0ba1d4eba041d024824fbb077084930484ba49f
|
7
|
+
data.tar.gz: 79356beb3ffe088861e355a00c66439c6a4d28c6dfe7efc4591902da5d5d32649fbf110283507c5259ac77bc73f66d5504b64478b0570dfd5df3fb2eb7805221
|
data/bin/Changes
CHANGED
@@ -4,9 +4,59 @@ 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
|
+
Feb. 9, 2021 - Version 12.18
|
11
|
+
|
12
|
+
- Added a new SonyModelID
|
13
|
+
- Decode a number of Sony tags for the ILCE-1 (thanks Jos Roost)
|
14
|
+
- Decode a couple of new Canon tags (thanks LibRaw)
|
15
|
+
- Patched to read differently formatted UserData:Keywords as written by iPhone
|
16
|
+
- Patched to tolerate out-of-order Nikon MakerNote IFD entries when obtaining
|
17
|
+
tags necessary for decryption
|
18
|
+
- Fixed a few possible Condition warnings for some NikonSettings tags
|
19
|
+
|
20
|
+
Feb. 3, 2021 - Version 12.17
|
21
|
+
|
22
|
+
- Added a new Canon FocusMode value
|
23
|
+
- Added a new FujiFilm FilmMode value
|
24
|
+
- Added a number of new XMP-crs tags (thanks Herb)
|
25
|
+
- Decode a new H264 MDPM tag
|
26
|
+
- Allow non-conforming lower-case XMP boolean "true" and "false" values to be
|
27
|
+
written, but only when print conversion is disabled
|
28
|
+
- Improved Validate option to warn about non-capitalized boolean XMP values
|
29
|
+
- Improved logic for setting GPSLatitude/LongitudeRef values when writing
|
30
|
+
- Changed -json and -php options so the -a option is implied even without the
|
31
|
+
-g option
|
32
|
+
- Avoid extracting audio/video data from AVI videos when -ee -u is used
|
33
|
+
- Patched decoding of Canon ContinuousShootingSpeed for newer firmware
|
34
|
+
versions of the EOS-1DXmkIII
|
35
|
+
- Re-worked LensID patch of version 12.00 (github issue #51)
|
36
|
+
- Fixed a few typos in newly-added NikonSettings tags (thanks Herb)
|
37
|
+
- Fixed problem where group could not be specified for PNG-pHYs tags when
|
38
|
+
writing
|
39
|
+
|
40
|
+
Jan. 21, 2021 - Version 12.16 (production release)
|
41
|
+
|
42
|
+
- Extract another form of video subtitle text
|
43
|
+
- Enhanced -ee option with -ee2 and -ee3 to allow parsing of the H264 video
|
44
|
+
stream in MP4 files
|
45
|
+
- Changed a Nikon FlashMode value
|
46
|
+
- Fixed problem that caused a failed DPX test on Strawberry Perl
|
47
|
+
- API Changes:
|
48
|
+
- Enhanced ExtractEmbedded option
|
49
|
+
|
50
|
+
Jan. 18, 2021 - Version 12.15 (production release)
|
51
|
+
|
52
|
+
- Added a couple of new Sony LensType values (thanks LibRaw and Jos Roost)
|
53
|
+
- Added a new Nikon FlashMode value (thanks Mike)
|
54
|
+
- Decode NikonSettings (thanks Warren Hatch)
|
55
|
+
- Decode thermal information from DJI RJPEG images
|
56
|
+
- Fixed extra newline in -echo3 and -echo4 outputs added in version 12.10
|
57
|
+
- Fixed out-of-memory problem when writing some very large PNG files under
|
58
|
+
Windows
|
59
|
+
|
10
60
|
Jan. 6, 2021 - Version 12.14
|
11
61
|
|
12
62
|
- Added support for 2 more types of timed GPS in video files (that makes 49
|
@@ -202,7 +252,7 @@ July 27, 2020 - Version 12.02
|
|
202
252
|
- Improved decoding of some Canon EOS 1DXmkIII custom functions
|
203
253
|
- Allow integer QuickTime TrackNumber and DiskNumber values
|
204
254
|
- Relax validity check of QuickTime:ContentCreateDate when writing with -n
|
205
|
-
- Removed "Com" from the start of some unknown ItemList tag names
|
255
|
+
- Removed "Com" from the start of some unknown QuickTime ItemList tag names
|
206
256
|
- Patched CanonCustom decoding for bug in Canon EOS-1DX firmware
|
207
257
|
- Changed QuickTime CleanAperture tags decode as signed rationals
|
208
258
|
|
data/bin/MANIFEST
CHANGED
@@ -115,6 +115,7 @@ html/TagNames/Motorola.html
|
|
115
115
|
html/TagNames/Nikon.html
|
116
116
|
html/TagNames/NikonCapture.html
|
117
117
|
html/TagNames/NikonCustom.html
|
118
|
+
html/TagNames/NikonSettings.html
|
118
119
|
html/TagNames/Nintendo.html
|
119
120
|
html/TagNames/OOXML.html
|
120
121
|
html/TagNames/Ogg.html
|
@@ -337,6 +338,7 @@ lib/Image/ExifTool/Motorola.pm
|
|
337
338
|
lib/Image/ExifTool/Nikon.pm
|
338
339
|
lib/Image/ExifTool/NikonCapture.pm
|
339
340
|
lib/Image/ExifTool/NikonCustom.pm
|
341
|
+
lib/Image/ExifTool/NikonSettings.pm
|
340
342
|
lib/Image/ExifTool/Nintendo.pm
|
341
343
|
lib/Image/ExifTool/OOXML.pm
|
342
344
|
lib/Image/ExifTool/Ogg.pm
|
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.18.tar.gz | tar -xf -
|
110
|
+
cd Image-ExifTool-12.18
|
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.18';
|
14
14
|
|
15
15
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
16
16
|
my $exeDir;
|
@@ -371,12 +371,12 @@ if (grep /^-common_args$/i, @ARGV) {
|
|
371
371
|
Command: for (;;) {
|
372
372
|
|
373
373
|
if (@echo3) {
|
374
|
-
my $str = join
|
374
|
+
my $str = join("\n", @echo3) . "\n";
|
375
375
|
$str =~ s/\$\{status\}/$rtnVal/ig;
|
376
376
|
print STDOUT $str;
|
377
377
|
}
|
378
378
|
if (@echo4) {
|
379
|
-
my $str = join
|
379
|
+
my $str = join("\n", @echo4) . "\n";
|
380
380
|
$str =~ s/\$\{status\}/$rtnVal/ig;
|
381
381
|
print STDERR $str;
|
382
382
|
}
|
@@ -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
|
}
|
@@ -1264,7 +1264,7 @@ for (;;) {
|
|
1264
1264
|
if (/^php$/i) {
|
1265
1265
|
$json = 2;
|
1266
1266
|
$html = $xml = 0;
|
1267
|
-
$mt->Options(Duplicates=>1);
|
1267
|
+
$mt->Options(Duplicates => 1);
|
1268
1268
|
next;
|
1269
1269
|
}
|
1270
1270
|
if (/^z(ip)?$/i) {
|
@@ -1505,7 +1505,6 @@ if ($xml) {
|
|
1505
1505
|
require Image::ExifTool::XMP if $json == 1; # (for EncodeBase64)
|
1506
1506
|
}
|
1507
1507
|
$mt->Options(List => 1) unless $joinLists;
|
1508
|
-
$mt->Options(Duplicates => 0) unless defined $showGroup;
|
1509
1508
|
$showTagID = 'D' if $tabFormat and not $showTagID;
|
1510
1509
|
} elsif ($structOpt) {
|
1511
1510
|
$mt->Options(List => 1);
|
@@ -2304,7 +2303,7 @@ TAG: foreach $tag (@foundTags) {
|
|
2304
2303
|
$group = $et->GetGroup($tag, $showGroup);
|
2305
2304
|
# look ahead to see if this tag may suppress a priority tag in
|
2306
2305
|
# the same group, and if so suppress this tag instead
|
2307
|
-
next if $noDups and $tag =~ /^(.*?)
|
2306
|
+
next if $noDups and $tag =~ /^(.*?) \(/ and defined $$info{$1} and
|
2308
2307
|
$group eq $et->GetGroup($1, $showGroup);
|
2309
2308
|
$group = 'Unknown' if not $group and ($xml or $json or $csv);
|
2310
2309
|
if ($fp and not ($allGroup or $csv)) {
|
@@ -2327,6 +2326,9 @@ TAG: foreach $tag (@foundTags) {
|
|
2327
2326
|
}
|
2328
2327
|
undef $group; # undefine so we don't print it below
|
2329
2328
|
}
|
2329
|
+
} elsif ($noDups) {
|
2330
|
+
# don't allow duplicates, but avoid suppressing the priority tag
|
2331
|
+
next if $tag =~ /^(.*?) \(/ and defined $$info{$1};
|
2330
2332
|
}
|
2331
2333
|
|
2332
2334
|
++$lineCount; # we are printing something meaningful
|
@@ -4573,7 +4575,7 @@ L<Processing control|/Processing control>
|
|
4573
4575
|
|
4574
4576
|
-a (-duplicates) Allow duplicate tags to be extracted
|
4575
4577
|
-e (--composite) Do not generate composite tags
|
4576
|
-
-ee
|
4578
|
+
-ee[NUM] (-extractEmbedded) Extract information from embedded files
|
4577
4579
|
-ext[+] EXT (-extension) Process files with specified extension
|
4578
4580
|
-F[OFFSET] (-fixBase) Fix the base for maker notes offsets
|
4579
4581
|
-fast[NUM] Increase speed when extracting metadata
|
@@ -4917,7 +4919,7 @@ and the value is written to all possible groups/tags. For example, the
|
|
4917
4919
|
string form must be used in the following command since the intent is to set
|
4918
4920
|
the value of all existing date/time tags from C<CreateDate>:
|
4919
4921
|
|
4920
|
-
exiftool
|
4922
|
+
exiftool '-time:all<$createdate' -wm w FILE
|
4921
4923
|
|
4922
4924
|
=item B<-x> I<TAG> (B<-exclude>)
|
4923
4925
|
|
@@ -4943,7 +4945,7 @@ between images, but allows the metadata to be altered by editing the
|
|
4943
4945
|
intermediate file (C<out.args> in this example):
|
4944
4946
|
|
4945
4947
|
exiftool -args -G1 --filename --directory src.jpg > out.args
|
4946
|
-
exiftool -@ out.args -sep
|
4948
|
+
exiftool -@ out.args -sep ', ' dst.jpg
|
4947
4949
|
|
4948
4950
|
Note: Be careful when copying information with this technique since it is
|
4949
4951
|
easy to write tags which are normally considered "unsafe". For instance,
|
@@ -5207,18 +5209,18 @@ JSON arrays unless B<-sep> is used. By default XMP structures are flattened
|
|
5207
5209
|
into individual tags in the JSON output, but the original structure may be
|
5208
5210
|
preserved with the B<-struct> option (this also causes all list-type XMP
|
5209
5211
|
tags to be output as JSON arrays, otherwise single-item lists would be
|
5210
|
-
output as simple strings). The B<-a> option is implied
|
5211
|
-
|
5212
|
-
|
5213
|
-
|
5214
|
-
|
5215
|
-
|
5216
|
-
|
5217
|
-
|
5218
|
-
|
5219
|
-
|
5220
|
-
|
5221
|
-
|
5212
|
+
output as simple strings). The B<-a> option is implied when B<-json> is
|
5213
|
+
used, but entries with identical JSON names are suppressed in the output.
|
5214
|
+
(B<-G4> may be used to ensure that all tags have unique JSON names.) Adding
|
5215
|
+
the B<-D> or B<-H> option changes tag values to JSON objects with "val" and
|
5216
|
+
"id" fields, and adding B<-l> adds a "desc" field, and a "num" field if the
|
5217
|
+
numerical value is different from the converted "val". The B<-b> option may
|
5218
|
+
be added to output binary data, encoded in base64 if necessary (indicated by
|
5219
|
+
ASCII "base64:" as the first 7 bytes of the value), and B<-t> may be added
|
5220
|
+
to include tag table information (see B<-t> for details). The JSON output
|
5221
|
+
is UTF-8 regardless of any B<-L> or B<-charset> option setting, but the
|
5222
|
+
UTF-8 validation is disabled if a character set other than UTF-8 is
|
5223
|
+
specified.
|
5222
5224
|
|
5223
5225
|
If I<JSONFILE> is specified, the file is imported and the tag definitions
|
5224
5226
|
from the file are used to set tag values on a per-file basis. The special
|
@@ -5367,7 +5369,7 @@ with this command:
|
|
5367
5369
|
|
5368
5370
|
produces output like this:
|
5369
5371
|
|
5370
|
-
-- Generated by ExifTool 12.
|
5372
|
+
-- Generated by ExifTool 12.18 --
|
5371
5373
|
File: a.jpg - 2003:10:31 15:44:19
|
5372
5374
|
(f/5.6, 1/60s, ISO 100)
|
5373
5375
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -5527,18 +5529,18 @@ Notes:
|
|
5527
5529
|
argument like C<%d%f.txt> is written as C<%%d%%f.txt>.
|
5528
5530
|
|
5529
5531
|
2) If the argument for B<-w> does not contain a valid format code (eg. %f),
|
5530
|
-
then it is interpreted as a file extension
|
5531
|
-
|
5532
|
-
multiple source files is typically done by shell redirection, ie)
|
5532
|
+
then it is interpreted as a file extension, but there are three different
|
5533
|
+
ways to create a single output file from multiple source files:
|
5533
5534
|
|
5535
|
+
# 1. Shell redirection
|
5534
5536
|
exiftool FILE1 FILE2 ... > out.txt
|
5535
5537
|
|
5536
|
-
|
5537
|
-
be interpreted as a format string, and the same result may be obtained
|
5538
|
-
without the use of shell redirection:
|
5539
|
-
|
5538
|
+
# 2. With the -w option and a zero-width format code
|
5540
5539
|
exiftool -w+! %0fout.txt FILE1 FILE2 ...
|
5541
5540
|
|
5541
|
+
# 3. With the -W option (see the -W option below)
|
5542
|
+
exiftool -W+! out.txt FILE1 FILE2 ...
|
5543
|
+
|
5542
5544
|
Advanced features:
|
5543
5545
|
|
5544
5546
|
A substring of the original file name, directory or extension may be taken
|
@@ -5706,7 +5708,7 @@ when copying.
|
|
5706
5708
|
|
5707
5709
|
Extract existing tags only -- don't generate composite tags.
|
5708
5710
|
|
5709
|
-
=item B<-ee> (B<-extractEmbedded>)
|
5711
|
+
=item B<-ee>[I<NUM>] (B<-extractEmbedded>)
|
5710
5712
|
|
5711
5713
|
Extract information from embedded documents in EPS files, embedded EPS
|
5712
5714
|
information and JPEG and Jpeg2000 images in PDF files, embedded MPF images
|
@@ -5724,6 +5726,11 @@ document as if it were a separate input file. This allows, for example,
|
|
5724
5726
|
generation of GPS track logs from timed metadata in videos. See
|
5725
5727
|
L<https://exiftool.org/geotag.html#Inverse> for examples.
|
5726
5728
|
|
5729
|
+
Setting I<NUM> to 2 causes the H264 video stream in MP4 videos to be parsed
|
5730
|
+
until the first Supplemental Enhancement Information (SEI) message is
|
5731
|
+
decoded, or 3 to parse the entire H624 stream and decode all SEI
|
5732
|
+
information.
|
5733
|
+
|
5727
5734
|
=item B<-ext>[+] I<EXT>, B<--ext> I<EXT> (B<-extension>)
|
5728
5735
|
|
5729
5736
|
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.18';
|
32
32
|
$RELEASE = '';
|
33
33
|
@ISA = qw(Exporter);
|
34
34
|
%EXPORT_TAGS = (
|
@@ -6695,6 +6695,22 @@ sub ProcessJPEG($$)
|
|
6695
6695
|
# extract the Stim information (it is in standard TIFF format)
|
6696
6696
|
my $tagTablePtr = GetTagTable('Image::ExifTool::Stim::Main');
|
6697
6697
|
$self->ProcessTIFF(\%dirInfo, $tagTablePtr);
|
6698
|
+
} elsif ($$self{Make} eq 'DJI') {
|
6699
|
+
$dumpType = 'DJI ThermalData';
|
6700
|
+
# add this data to the combined data if it exists
|
6701
|
+
my $dataPt = $segDataPt;
|
6702
|
+
if (defined $combinedSegData) {
|
6703
|
+
$combinedSegData .= $$segDataPt;
|
6704
|
+
$dataPt = \$combinedSegData;
|
6705
|
+
}
|
6706
|
+
if ($nextMarker == $marker) {
|
6707
|
+
$combinedSegData = $$segDataPt unless defined $combinedSegData;
|
6708
|
+
} else {
|
6709
|
+
# process DJI FLIR thermal data
|
6710
|
+
my $tagTablePtr = GetTagTable('Image::ExifTool::JPEG::Main');
|
6711
|
+
$self->HandleTag($tagTablePtr, 'APP3', $$dataPt);
|
6712
|
+
undef $combinedSegData;
|
6713
|
+
}
|
6698
6714
|
} elsif ($$segDataPt =~ /^\xff\xd8\xff\xdb/) {
|
6699
6715
|
$dumpType = 'PreviewImage'; # (Samsung, HP, BenQ)
|
6700
6716
|
$preview = $$segDataPt;
|
@@ -6729,6 +6745,11 @@ sub ProcessJPEG($$)
|
|
6729
6745
|
# set flag if this is the last FPXR segment
|
6730
6746
|
$dirInfo{LastFPXR} = not ($nextMarker==$marker and $$nextSegDataPt=~/^FPXR\0/),
|
6731
6747
|
$self->ProcessDirectory(\%dirInfo, $tagTablePtr);
|
6748
|
+
} elsif ($$self{Make} eq 'DJI' and $$segDataPt =~ /^\xaa\x55\x12\x06/) {
|
6749
|
+
$dumpType = 'DJI ThermalParams';
|
6750
|
+
DirStart(\%dirInfo, 0, 0);
|
6751
|
+
my $tagTablePtr = GetTagTable('Image::ExifTool::DJI::ThermalParams');
|
6752
|
+
$self->ProcessDirectory(\%dirInfo, $tagTablePtr);
|
6732
6753
|
} elsif ($preview) {
|
6733
6754
|
# continued Samsung S1060 preview from APP3
|
6734
6755
|
$dumpType = 'PreviewImage';
|
@@ -6751,6 +6772,10 @@ sub ProcessJPEG($$)
|
|
6751
6772
|
} elsif ($$segDataPt =~ /^ssuniqueid\0/) {
|
6752
6773
|
my $tagTablePtr = GetTagTable('Image::ExifTool::Samsung::APP5');
|
6753
6774
|
$self->HandleTag($tagTablePtr, 'ssuniqueid', substr($$segDataPt, 11));
|
6775
|
+
} elsif ($$self{Make} eq 'DJI') {
|
6776
|
+
$dumpType = 'DJI ThermalCal';
|
6777
|
+
my $tagTablePtr = GetTagTable('Image::ExifTool::JPEG::Main');
|
6778
|
+
$self->HandleTag($tagTablePtr, 'APP5', $$segDataPt);
|
6754
6779
|
} elsif ($preview) {
|
6755
6780
|
$dumpType = 'PreviewImage';
|
6756
6781
|
$preview .= $$segDataPt;
|
@@ -6786,6 +6811,10 @@ sub ProcessJPEG($$)
|
|
6786
6811
|
my $tagTablePtr = GetTagTable('Image::ExifTool::GoPro::GPMF');
|
6787
6812
|
DirStart(\%dirInfo, 6);
|
6788
6813
|
$self->ProcessDirectory(\%dirInfo, $tagTablePtr);
|
6814
|
+
} elsif ($$segDataPt =~ /^DTAT\0\0.\{/s) {
|
6815
|
+
$dumpType = 'DJI_DTAT';
|
6816
|
+
my $tagTablePtr = GetTagTable('Image::ExifTool::JPEG::Main');
|
6817
|
+
$self->HandleTag($tagTablePtr, 'APP6', $$segDataPt);
|
6789
6818
|
}
|
6790
6819
|
} elsif ($marker == 0xe7) { # APP7 (Pentax, Huawei, Qualcomm)
|
6791
6820
|
if ($$segDataPt =~ /^PENTAX \0(II|MM)/) {
|
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
|
|
@@ -2298,10 +2300,10 @@ MIE-Orient, MIE-Preview, MIE-Thumbnail, MIE-UTM, MIE-Unknown, MIE-Video,
|
|
2298
2300
|
MIFF, MNG, MOBI, MOI, MPC, MPEG, MPF0, MPImage, MS-DOC, MXF, MacOS,
|
2299
2301
|
MakerNotes, MakerUnknown, Matroska, MediaJukebox, Meta, MetaIFD, Microsoft,
|
2300
2302
|
Minolta, MinoltaRaw, Motorola, NITF, Nikon, NikonCapture, NikonCustom,
|
2301
|
-
NikonScan, Nintendo, Ocad, Ogg, Olympus, OpenEXR, Opus, PDF,
|
2302
|
-
PNG-pHYs, PSP, Palm, Panasonic, PanasonicRaw, Pentax, PhaseOne,
|
2303
|
-
PhotoMechanic, Photoshop, PictureInfo, PostScript, PreviewIFD,
|
2304
|
-
ProfileIFD, Qualcomm, QuickTime, RAF, RAF2, RIFF, RMETA, RSRC, RTF,
|
2303
|
+
NikonScan, NikonSettings, Nintendo, Ocad, Ogg, Olympus, OpenEXR, Opus, PDF,
|
2304
|
+
PICT, PNG, PNG-pHYs, PSP, Palm, Panasonic, PanasonicRaw, Pentax, PhaseOne,
|
2305
|
+
PhotoCD, PhotoMechanic, Photoshop, PictureInfo, PostScript, PreviewIFD,
|
2306
|
+
PrintIM, ProfileIFD, Qualcomm, QuickTime, RAF, RAF2, RIFF, RMETA, RSRC, RTF,
|
2305
2307
|
Radiance, Rawzor, Real, Real-CONT, Real-MDPR, Real-PROP, Real-RA3, Real-RA4,
|
2306
2308
|
Real-RA5, Real-RJMD, Reconyx, Red, Ricoh, SPIFF, SR2, SR2DataIFD, SR2SubIFD,
|
2307
2309
|
SRF#, SVG, Samsung, Sanyo, Scalado, Sigma, SigmaRaw, Sony, SonyIDC, Stim,
|
@@ -310,9 +310,10 @@ C<integer> is a string of digits (possibly beginning with a '+' or '-'),
|
|
310
310
|
C<real> is a floating point number, C<rational> is entered as a floating
|
311
311
|
point number but stored as two C<integer> strings separated by a '/'
|
312
312
|
character, C<date> is a date/time string entered in the format "YYYY:mm:dd
|
313
|
-
HH:MM:SS[.ss][+/-HH:MM]", C<boolean> is either "True" or "False"
|
314
|
-
|
315
|
-
|
313
|
+
HH:MM:SS[.ss][+/-HH:MM]", C<boolean> is either "True" or "False" (but "true"
|
314
|
+
and "false" may be written as a ValueConv value for compatibility with
|
315
|
+
non-conforming applications), C<struct> indicates a structured tag, and
|
316
|
+
C<lang-alt> is a tag that supports alternate languages.
|
316
317
|
|
317
318
|
When reading, C<struct> tags are extracted only if the L<Struct|../ExifTool.html#Struct> (-struct)
|
318
319
|
option is used. Otherwise the corresponding I<Flattened> tags, indicated by
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
88
88
|
sub ProcessExifInfo($$$);
|
89
89
|
sub SwapWords($);
|
90
90
|
|
91
|
-
$VERSION = '4.
|
91
|
+
$VERSION = '4.44';
|
92
92
|
|
93
93
|
# Note: Removed 'USM' from 'L' lenses since it is redundant - PH
|
94
94
|
# (or is it? Ref 32 shows 5 non-USM L-type lenses)
|
@@ -2128,6 +2128,7 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
2128
2128
|
16 => 'Pan Focus', #PH
|
2129
2129
|
# 137 - Single?
|
2130
2130
|
256 => 'AF + MF', #PH (NC, EOS M)
|
2131
|
+
257 => 'Live View', #forum12082
|
2131
2132
|
512 => 'Movie Snap Focus', #48
|
2132
2133
|
519 => 'Movie Servo AF', #PH (NC, EOS M)
|
2133
2134
|
},
|
@@ -4538,6 +4539,16 @@ my %ciMaxFocal = (
|
|
4538
4539
|
2 => 'Rotate 270 CW',
|
4539
4540
|
},
|
4540
4541
|
},
|
4542
|
+
0x3a => { #IB
|
4543
|
+
Name => 'CameraOrientation',
|
4544
|
+
Condition => '$$self{Model} =~ /\b(1200D|REBEL T5|Kiss X70)\b/',
|
4545
|
+
Notes => '1200D only',
|
4546
|
+
PrintConv => {
|
4547
|
+
0 => 'Horizontal (normal)',
|
4548
|
+
1 => 'Rotate 90 CW',
|
4549
|
+
2 => 'Rotate 270 CW',
|
4550
|
+
},
|
4551
|
+
},
|
4541
4552
|
0x55 => {
|
4542
4553
|
Name => 'FocusDistanceUpper',
|
4543
4554
|
Condition => '$$self{Model} =~ /EOS 60D$/',
|
@@ -4678,7 +4689,7 @@ my %ciMaxFocal = (
|
|
4678
4689
|
FIRST_ENTRY => 0,
|
4679
4690
|
PRIORITY => 0,
|
4680
4691
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
4681
|
-
NOTES => 'CameraInfo tags for the EOS
|
4692
|
+
NOTES => 'CameraInfo tags for the EOS 80D.',
|
4682
4693
|
0x03 => { %ciFNumber },
|
4683
4694
|
0x04 => { %ciExposureTime },
|
4684
4695
|
0x06 => { %ciISO },
|
@@ -5254,6 +5265,14 @@ my %ciMaxFocal = (
|
|
5254
5265
|
0x06 => { %ciISO },
|
5255
5266
|
0x1b => { %ciCameraTemperature }, # (700D + 0)
|
5256
5267
|
0x23 => { %ciFocalLength }, # (700D + 0)
|
5268
|
+
0x96 => { #IB (700D + 0x19)
|
5269
|
+
Name => 'CameraOrientation',
|
5270
|
+
PrintConv => {
|
5271
|
+
0 => 'Horizontal (normal)',
|
5272
|
+
1 => 'Rotate 90 CW',
|
5273
|
+
2 => 'Rotate 270 CW',
|
5274
|
+
},
|
5275
|
+
},
|
5257
5276
|
0xa5 => { # (700D + 0x19)
|
5258
5277
|
Name => 'FocusDistanceUpper',
|
5259
5278
|
%focusDistanceByteSwap,
|