exiftool_vendored 11.65.0 → 11.67.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 +28 -5
- data/bin/MANIFEST +1 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +3 -2
- data/bin/config_files/thinkware.config +144 -0
- data/bin/exiftool +6 -4
- data/bin/lib/Image/ExifTool.pm +10 -4
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +3 -3
- data/bin/lib/Image/ExifTool/Canon.pm +25 -5
- data/bin/lib/Image/ExifTool/Exif.pm +12 -1
- data/bin/lib/Image/ExifTool/FlashPix.pm +3 -2
- data/bin/lib/Image/ExifTool/Minolta.pm +3 -3
- data/bin/lib/Image/ExifTool/Nikon.pm +6 -4
- data/bin/lib/Image/ExifTool/Olympus.pm +5 -5
- data/bin/lib/Image/ExifTool/PDF.pm +17 -2
- data/bin/lib/Image/ExifTool/Photoshop.pm +11 -2
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +2 -2
- data/bin/lib/Image/ExifTool/RIFF.pm +12 -2
- data/bin/lib/Image/ExifTool/Ricoh.pm +7 -3
- data/bin/lib/Image/ExifTool/Samsung.pm +121 -12
- data/bin/lib/Image/ExifTool/TagLookup.pm +5315 -5274
- data/bin/lib/Image/ExifTool/TagNames.pod +65 -7
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +5 -2
- data/bin/lib/Image/ExifTool/WriteXMP.pl +2 -1
- data/bin/lib/Image/ExifTool/Writer.pl +4 -1
- data/bin/lib/Image/ExifTool/XMP.pm +1 -1
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bde7c46f693f484613c7cf4fe77dec3d59a38aef
|
|
4
|
+
data.tar.gz: 90b28efc64aca6df9015a99c18591e3bdf0edc77
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 459ee5aa30a83cc36b44ad84cc86bfdf767c745f3707704035cde596c74b0ea7cfd7667f5529db48ea67a9d21e2483cde62c26123d82ecb071a36961f490672b
|
|
7
|
+
data.tar.gz: 1d7f84c0ed3bc2e6ea28ff1b511e0763e8fc49342ac888df64977b7113e65246497d98e2f09b90dbaeb6e4c3a1028d92fa7ac39975b754470bf667a75d7a2e4b
|
data/bin/Changes
CHANGED
|
@@ -7,14 +7,37 @@ 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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
Sept. 30, 2019 - Version 11.67
|
|
11
|
+
|
|
12
|
+
- Added config_files/thinkware.config to the distribution
|
|
13
|
+
- Fixed bug decoding negative GPS coordinates from INSV videos
|
|
14
|
+
|
|
15
|
+
Sept. 30, 2019 - Version 11.66
|
|
16
|
+
|
|
17
|
+
- Added a new Nikon LensID (thanks LibRaw)
|
|
18
|
+
- Added a few new Canon LensType values (thanks LibRaw and Tom Lachecki)
|
|
19
|
+
- Decode a few more Hasselblad tags (thanks LibRaw)
|
|
20
|
+
- Decode a new Canon tag (thanks Laurent Clevy)
|
|
21
|
+
- Decode more Samsung trailer tags
|
|
22
|
+
- Extract BWF iXML, aXML and UMID from RIFF-format files
|
|
23
|
+
- Extract ICC_Profile from more types of PDF files
|
|
24
|
+
- Enhanced %s of the -W option to recognize the PICT format
|
|
25
|
+
- Recognize MacOS alias files
|
|
26
|
+
- Changed name of Ricoh CropMode35mm tag and added a new value (thanks LibRaw)
|
|
27
|
+
- Minor change to a Minolta lens name (thanks Jos Roost)
|
|
28
|
+
- Fixed problem where NikonCapture information couldn't be deleted from an NEF
|
|
29
|
+
- Fixed problem identifying some SVG files
|
|
30
|
+
- Fixed typo in a CanonModelID value (thanks Dmitry)
|
|
31
|
+
- Fixed bug which could result in "Internal error: no list index" warning when
|
|
32
|
+
creating nested XMP lang-alt lists
|
|
33
|
+
- Fixed the names of a few Tamron lenses for Nikon (thanks Tom Lachecki)
|
|
34
|
+
- Fixed problem extracting Layer information from some PSD files
|
|
35
|
+
- Fixed writing of QuickTime GPSCoordinates to use the correct number of
|
|
36
|
+
digits before the decimal point for latitude and longitude
|
|
13
37
|
|
|
14
38
|
Aug. 29, 2019 - Version 11.65
|
|
15
39
|
|
|
16
|
-
- Added
|
|
17
|
-
Roost)
|
|
40
|
+
- Added new SonyModelID and Sony LensType values (thanks LibRaw and Jos Roost)
|
|
18
41
|
- Added support for some new Sony models (thanks Jos Roost)
|
|
19
42
|
- Added a couple of new CanonModelID values (thanks LibRaw)
|
|
20
43
|
- Added a new Canon ColorDataVersion value
|
data/bin/MANIFEST
CHANGED
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.67.tar.gz | tar -xf -
|
|
108
|
+
cd Image-ExifTool-11.67
|
|
109
109
|
./exiftool t/images/ExifTool.jpg
|
|
110
110
|
|
|
111
111
|
Note: These commands extract meta information from one of the test images.
|
|
@@ -201,6 +201,7 @@ distribution package:
|
|
|
201
201
|
photoshop_paths.config - For extracting or copying Photoshop paths
|
|
202
202
|
picasa_faces.config - Convert from Picasa to MWG/MP face regions
|
|
203
203
|
rotate_regions.config - Rotate MWG and MP region tags
|
|
204
|
+
thinkware.config - Decode text from Thinkware dashcam videos
|
|
204
205
|
tiff_version.config - Determine the version of a TIFF file
|
|
205
206
|
time_zone.config - Calcuate time zone from EXIF tags
|
|
206
207
|
exiftool - The exiftool application (Perl script)
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
#------------------------------------------------------------------------------
|
|
2
|
+
# File: thinkware.config
|
|
3
|
+
#
|
|
4
|
+
# Description: This config file defines Composite tags to decode subtitle text
|
|
5
|
+
# from Thinkware dashcam videos
|
|
6
|
+
#
|
|
7
|
+
# Usage: exiftool -config thinkware.config -ee FILE
|
|
8
|
+
#
|
|
9
|
+
# Example command to create .gpx log file from Thinkware video
|
|
10
|
+
# (requires gpx.fmt available in the full Exiftool distribution):
|
|
11
|
+
#
|
|
12
|
+
# exiftool -config thinkware.config -p gpx.fmt -ee -api QuickTimeUTC FILE
|
|
13
|
+
#
|
|
14
|
+
# Requires: ExifTool version 10.75 or later
|
|
15
|
+
#
|
|
16
|
+
# Revisions: 2019/09/30 - P. Harvey Created
|
|
17
|
+
#------------------------------------------------------------------------------
|
|
18
|
+
|
|
19
|
+
use Time::Local;
|
|
20
|
+
|
|
21
|
+
#------------------------------------------------------------------------------
|
|
22
|
+
# Decode GPS from Thinkware subtitle Text
|
|
23
|
+
# Inputs: 0) ExifTool ref, 1) Text value
|
|
24
|
+
# Returns: Hash containing GPS tags
|
|
25
|
+
sub Image::ExifTool::UserDefined::DecodeGPS($$)
|
|
26
|
+
{
|
|
27
|
+
my ($et, $val) = @_;
|
|
28
|
+
unless ($$et{ThinkwareInfo}{Text} and $val eq $$et{ThinkwareInfo}{Text}) {
|
|
29
|
+
my %gps;
|
|
30
|
+
$$et{ThinkwareInfo}{GPS} = \%gps;
|
|
31
|
+
$$et{ThinkwareInfo}{Text} = $val;
|
|
32
|
+
#
|
|
33
|
+
# Example embedded "Text" from a Thinkware Q800:
|
|
34
|
+
#
|
|
35
|
+
# "gsensori,4,512,-67,-12,100;GNRMC,161313.00,A,4529.87489,N,07337.01215,W,6.225,35.34,310819,,,A*52..;
|
|
36
|
+
# CAR,0,0,0,0.0,0,0,0,0,0,0,0,0"
|
|
37
|
+
#
|
|
38
|
+
if ($val =~ /[A-Z]{2}RMC,(\d{2})(\d{2})(\d+(\.\d*)?),A?,(\d*?)(\d{1,2}\.\d+),([NS]),(\d*?)(\d{1,2}\.\d+),([EW]),(\d*\.?\d*),(\d*\.?\d*),(\d{2})(\d{2})(\d+)/ and
|
|
39
|
+
# do some basic sanity checks on the date
|
|
40
|
+
$13 <= 31 and $14 <= 12 and $15 <= 99)
|
|
41
|
+
{
|
|
42
|
+
$gps{lat} = (($5 || 0) + $6/60) * ($7 eq 'N' ? 1 : -1);
|
|
43
|
+
$gps{lon} = (($8 || 0) + $9/60) * ($10 eq 'E' ? 1 : -1);
|
|
44
|
+
$gps{speed} = $11 if length $11;
|
|
45
|
+
$gps{track} = $12 if length $12;
|
|
46
|
+
my $year = $15 + ($15 >= 70 ? 1900 : 2000);
|
|
47
|
+
$gps{datetime} = sprintf('%.4d:%.2d:%.2d %.2d:%.2d:%.2dZ', $year, $14, $13, $1, $2, $3);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return $$et{ThinkwareInfo}{GPS};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
# Composite tags to decode information from subtitle Text
|
|
54
|
+
%Image::ExifTool::UserDefined = (
|
|
55
|
+
'Image::ExifTool::Composite' => {
|
|
56
|
+
GROUPS => { 2 => 'Location' },
|
|
57
|
+
#
|
|
58
|
+
# Note: SubDoc flag is set for all these tags so they will be generated for
|
|
59
|
+
# all embedded documents
|
|
60
|
+
#
|
|
61
|
+
GPSDateTime => {
|
|
62
|
+
Description => 'GPS Date/Time',
|
|
63
|
+
Groups => { 2 => 'Time' },
|
|
64
|
+
SubDoc => 1,
|
|
65
|
+
Require => 'Text',
|
|
66
|
+
RawConv => q{
|
|
67
|
+
my $gps = Image::ExifTool::UserDefined::DecodeGPS($self, $val[0]);
|
|
68
|
+
return $$gps{datetime};
|
|
69
|
+
},
|
|
70
|
+
PrintConv => '$self->ConvertDateTime($val)',
|
|
71
|
+
},
|
|
72
|
+
GPSLatitude => {
|
|
73
|
+
SubDoc => 1,
|
|
74
|
+
Require => 'Text',
|
|
75
|
+
RawConv => q{
|
|
76
|
+
my $gps = Image::ExifTool::UserDefined::DecodeGPS($self, $val[0]);
|
|
77
|
+
return $$gps{lat};
|
|
78
|
+
},
|
|
79
|
+
PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")',
|
|
80
|
+
},
|
|
81
|
+
GPSLongitude => {
|
|
82
|
+
SubDoc => 1,
|
|
83
|
+
Require => 'Text',
|
|
84
|
+
RawConv => q{
|
|
85
|
+
my $gps = Image::ExifTool::UserDefined::DecodeGPS($self, $val[0]);
|
|
86
|
+
return $$gps{lon};
|
|
87
|
+
},
|
|
88
|
+
PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "E")',
|
|
89
|
+
},
|
|
90
|
+
GPSSpeed => {
|
|
91
|
+
SubDoc => 1,
|
|
92
|
+
Require => 'Text',
|
|
93
|
+
RawConv => q{
|
|
94
|
+
my $gps = Image::ExifTool::UserDefined::DecodeGPS($self, $val[0]);
|
|
95
|
+
# convert from knots to km/hr
|
|
96
|
+
return defined $$gps{speed} ? $$gps{speed} * 1.852 : undef;
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
GPSSpeedRef => {
|
|
100
|
+
SubDoc => 1,
|
|
101
|
+
Require => 'Text',
|
|
102
|
+
RawConv => q{
|
|
103
|
+
my $gps = Image::ExifTool::UserDefined::DecodeGPS($self, $val[0]);
|
|
104
|
+
return defined $$gps{speed} ? 'K' : undef;
|
|
105
|
+
},
|
|
106
|
+
PrintConv => { K => 'km/h', M => 'mph', N => 'knots' },
|
|
107
|
+
},
|
|
108
|
+
GPSTrack => {
|
|
109
|
+
SubDoc => 1,
|
|
110
|
+
Require => 'Text',
|
|
111
|
+
RawConv => q{
|
|
112
|
+
my $gps = Image::ExifTool::UserDefined::DecodeGPS($self, $val[0]);
|
|
113
|
+
return $$gps{track};
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
GPSTrackRef => {
|
|
117
|
+
SubDoc => 1,
|
|
118
|
+
Require => 'Text',
|
|
119
|
+
RawConv => q{
|
|
120
|
+
my $gps = Image::ExifTool::UserDefined::DecodeGPS($self, $val[0]);
|
|
121
|
+
return defined $$gps{track} ? 'T' : undef;
|
|
122
|
+
},
|
|
123
|
+
PrintConv => { M => 'Magnetic North', T => 'True North' },
|
|
124
|
+
},
|
|
125
|
+
GSensor => {
|
|
126
|
+
SubDoc => 1,
|
|
127
|
+
Require => 'Text',
|
|
128
|
+
RawConv => q{
|
|
129
|
+
return undef unless $val[0] =~ /gsensori,(.*?)(;|$)/;
|
|
130
|
+
return $1;
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
Car => {
|
|
134
|
+
SubDoc => 1,
|
|
135
|
+
Require => 'Text',
|
|
136
|
+
RawConv => q{
|
|
137
|
+
return undef unless $val[0] =~ /CAR,(.*?)(;|$)/;
|
|
138
|
+
return $1;
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
);
|
|
143
|
+
|
|
144
|
+
1; #end
|
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.67';
|
|
14
14
|
|
|
15
15
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
|
16
16
|
my $exeDir;
|
|
@@ -3787,6 +3787,8 @@ sub SuggestedExtension($$$)
|
|
|
3787
3787
|
$ext = 'vrd';
|
|
3788
3788
|
} elsif ($$valPt =~ /^IIII\x04\0\x04\0/) {
|
|
3789
3789
|
$ext = 'dr4';
|
|
3790
|
+
} elsif ($$valPt =~ /^(.{10}|.{522})(\x11\x01|\x00\x11)/) {
|
|
3791
|
+
$ext = 'pict';
|
|
3790
3792
|
} else {
|
|
3791
3793
|
$ext = 'dat';
|
|
3792
3794
|
}
|
|
@@ -4274,8 +4276,8 @@ directory are processed (in write mode only writable types are processed).
|
|
|
4274
4276
|
However, files may be specified by name, or the B<-ext> option may be used
|
|
4275
4277
|
to force processing of files with any extension. Hidden files in the
|
|
4276
4278
|
directory are also processed. Adding the B<-r> option causes subdirectories
|
|
4277
|
-
to be processed recursively, but
|
|
4278
|
-
skipped unless B<-r.> is used.
|
|
4279
|
+
to be processed recursively, but subdirectories with names beginning with
|
|
4280
|
+
"." are skipped unless B<-r.> is used.
|
|
4279
4281
|
|
|
4280
4282
|
Below is a list of file types and meta information formats currently
|
|
4281
4283
|
supported by ExifTool (r = read, w = write, c = create):
|
|
@@ -5171,7 +5173,7 @@ with this command:
|
|
|
5171
5173
|
|
|
5172
5174
|
produces output like this:
|
|
5173
5175
|
|
|
5174
|
-
-- Generated by ExifTool 11.
|
|
5176
|
+
-- Generated by ExifTool 11.67 --
|
|
5175
5177
|
File: a.jpg - 2003:10:31 15:44:19
|
|
5176
5178
|
(f/5.6, 1/60s, ISO 100)
|
|
5177
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.67';
|
|
31
31
|
$RELEASE = '';
|
|
32
32
|
@ISA = qw(Exporter);
|
|
33
33
|
%EXPORT_TAGS = (
|
|
@@ -186,7 +186,7 @@ $defaultLang = 'en'; # default language
|
|
|
186
186
|
HTML VRD RTF FITS XCF DSS QTIF FPX PICT ZIP GZIP PLIST RAR BZ2
|
|
187
187
|
TAR RWZ EXE EXR HDR CHM LNK WMF AVC DEX DPX RAW Font RSRC M2TS
|
|
188
188
|
PHP PCX DCX DWF DWG WTV Torrent VCard LRI R3D AA PDB MOI ISO
|
|
189
|
-
JSON MP3 DICOM PCD);
|
|
189
|
+
ALIAS JSON MP3 DICOM PCD);
|
|
190
190
|
|
|
191
191
|
# file types that we can write (edit)
|
|
192
192
|
my @writeTypes = qw(JPEG TIFF GIF CRW MRW ORF RAF RAW PNG MIE PSD XMP PPM EPS
|
|
@@ -227,6 +227,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
|
|
|
227
227
|
AIFC => ['AIFF', 'Audio Interchange File Format Compressed'],
|
|
228
228
|
AIFF => ['AIFF', 'Audio Interchange File Format'],
|
|
229
229
|
AIT => 'AI',
|
|
230
|
+
ALIAS=> ['ALIAS','MacOS file alias'],
|
|
230
231
|
APE => ['APE', "Monkey's Audio format"],
|
|
231
232
|
APNG => ['PNG', 'Animated Portable Network Graphics'],
|
|
232
233
|
ARW => ['TIFF', 'Sony Alpha RAW format'],
|
|
@@ -554,6 +555,7 @@ my %fileDescription = (
|
|
|
554
555
|
AAE => 'application/vnd.apple.photos',
|
|
555
556
|
AI => 'application/vnd.adobe.illustrator',
|
|
556
557
|
AIFF => 'audio/x-aiff',
|
|
558
|
+
ALIAS=> 'application/x-macos',
|
|
557
559
|
APE => 'audio/x-monkeys-audio',
|
|
558
560
|
APNG => 'image/apng',
|
|
559
561
|
ASF => 'video/x-ms-asf',
|
|
@@ -749,6 +751,7 @@ my %fileDescription = (
|
|
|
749
751
|
# - module name '0' indicates a recognized but unsupported file
|
|
750
752
|
my %moduleName = (
|
|
751
753
|
AA => 'Audible',
|
|
754
|
+
ALIAS=> 0,
|
|
752
755
|
AVC => 0,
|
|
753
756
|
BTF => 'BigTIFF',
|
|
754
757
|
BZ2 => 0,
|
|
@@ -811,6 +814,7 @@ my %moduleName = (
|
|
|
811
814
|
%magicNumber = (
|
|
812
815
|
AA => '.{4}\x57\x90\x75\x36',
|
|
813
816
|
AIFF => '(FORM....AIF[FC]|AT&TFORM)',
|
|
817
|
+
ALIAS=> "book\0\0\0\0mark\0\0\0\0",
|
|
814
818
|
APE => '(MAC |APETAGEX|ID3)',
|
|
815
819
|
ASF => '\x30\x26\xb2\x75\x8e\x66\xcf\x11\xa6\xd9\x00\xaa\x00\x62\xce\x6c',
|
|
816
820
|
AVC => '\+A\+V\+C\+',
|
|
@@ -855,7 +859,7 @@ my %moduleName = (
|
|
|
855
859
|
ITC => '.{4}itch',
|
|
856
860
|
JP2 => '(\0\0\0\x0cjP( |\x1a\x1a)\x0d\x0a\x87\x0a|\xff\x4f\xff\x51\0)',
|
|
857
861
|
JPEG => '\xff\xd8\xff',
|
|
858
|
-
JSON => '(\xef\xbb\xbf)?\s*(\[\s*)?\{\s*"[^"]
|
|
862
|
+
JSON => '(\xef\xbb\xbf)?\s*(\[\s*)?\{\s*"[^"]*"\s*:',
|
|
859
863
|
LFP => '\x89LFP\x0d\x0a\x1a\x0a',
|
|
860
864
|
LNK => '.{4}\x01\x14\x02\0{5}\xc0\0{6}\x46',
|
|
861
865
|
LRI => 'LELR \0',
|
|
@@ -2240,7 +2244,7 @@ sub ExtractInfo($;@)
|
|
|
2240
2244
|
my $fast = $$options{FastScan};
|
|
2241
2245
|
my $req = $$self{REQ_TAG_LOOKUP};
|
|
2242
2246
|
my $reqAll = $$options{RequestAll} || 0;
|
|
2243
|
-
my (%saveOptions, $reEntry, $rsize, $type, @startTime);
|
|
2247
|
+
my (%saveOptions, $reEntry, $rsize, $type, @startTime, $saveOrder);
|
|
2244
2248
|
|
|
2245
2249
|
# check for internal ReEntry option to allow recursive calls to ExtractInfo
|
|
2246
2250
|
if (ref $_[1] eq 'HASH' and $_[1]{ReEntry} and
|
|
@@ -2254,6 +2258,7 @@ sub ExtractInfo($;@)
|
|
|
2254
2258
|
EXIF_POS => $$self{EXIF_POS},
|
|
2255
2259
|
FILE_TYPE => $$self{FILE_TYPE},
|
|
2256
2260
|
};
|
|
2261
|
+
$saveOrder = GetByteOrder(),
|
|
2257
2262
|
$$self{RAF} = new File::RandomAccess($_[0]);
|
|
2258
2263
|
$$self{PROCESSED} = { };
|
|
2259
2264
|
delete $$self{EXIF_DATA};
|
|
@@ -2645,6 +2650,7 @@ sub ExtractInfo($;@)
|
|
|
2645
2650
|
if ($reEntry) {
|
|
2646
2651
|
# restore necessary members when exiting re-entrant code
|
|
2647
2652
|
$$self{$_} = $$reEntry{$_} foreach keys %$reEntry;
|
|
2653
|
+
SetByteOrder($saveOrder);
|
|
2648
2654
|
}
|
|
2649
2655
|
|
|
2650
2656
|
# ($type may be undef without an Error when processing sub-documents)
|
|
@@ -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.28';
|
|
39
39
|
@ISA = qw(Exporter);
|
|
40
40
|
|
|
41
41
|
sub NumbersFirst($$);
|
|
@@ -217,8 +217,8 @@ writing.
|
|
|
217
217
|
|
|
218
218
|
The HTML version of these tables also lists possible B<Values> for
|
|
219
219
|
discrete-valued tags, as well as B<Notes> for some tags. The B<Values> are
|
|
220
|
-
listed
|
|
221
|
-
|
|
220
|
+
listed with the computer-readable values on the left of the equals sign
|
|
221
|
+
(C<=>), and the human-readable values on the right. The human-readable
|
|
222
222
|
values are used by default when reading and writing, but the
|
|
223
223
|
computer-readable values may be accessed by disabling the value conversion
|
|
224
224
|
with the -n option on the command line, by setting the L<PrintConv|../ExifTool.html#PrintConv> option to 0
|
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
|
88
88
|
sub ProcessExifInfo($$$);
|
|
89
89
|
sub SwapWords($);
|
|
90
90
|
|
|
91
|
-
$VERSION = '4.
|
|
91
|
+
$VERSION = '4.25';
|
|
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)
|
|
@@ -224,7 +224,8 @@ $VERSION = '4.24';
|
|
|
224
224
|
124 => 'Canon MP-E 65mm f/2.8 1-5x Macro Photo', #9
|
|
225
225
|
125 => 'Canon TS-E 24mm f/3.5L',
|
|
226
226
|
126 => 'Canon TS-E 45mm f/2.8', #15
|
|
227
|
-
127 => 'Canon TS-E 90mm f/2.8', #15
|
|
227
|
+
127 => 'Canon TS-E 90mm f/2.8 or Tamron Lens', #15
|
|
228
|
+
127.1 => 'Tamron 18-200mm f/3.5-6.3 Di II VC', #TomLachecki (model B018)
|
|
228
229
|
129 => 'Canon EF 300mm f/2.8L USM', #32
|
|
229
230
|
130 => 'Canon EF 50mm f/1.0L USM', #10/15
|
|
230
231
|
131 => 'Canon EF 28-80mm f/2.8-4L USM or Sigma Lens', #32
|
|
@@ -242,6 +243,7 @@ $VERSION = '4.24';
|
|
|
242
243
|
134 => 'Canon EF 600mm f/4L IS USM', #15
|
|
243
244
|
135 => 'Canon EF 200mm f/1.8L USM',
|
|
244
245
|
136 => 'Canon EF 300mm f/2.8L USM',
|
|
246
|
+
136.1 => 'Tamron SP 15-30mm f/2.8 Di VC USD', #TomLachecki (model A012)
|
|
245
247
|
137 => 'Canon EF 85mm f/1.2L USM or Sigma or Tamron Lens', #10
|
|
246
248
|
137.1 => 'Sigma 18-50mm f/2.8-4.5 DC OS HSM', #PH
|
|
247
249
|
137.2 => 'Sigma 50-200mm f/4-5.6 DC OS HSM', #PH
|
|
@@ -345,6 +347,7 @@ $VERSION = '4.24';
|
|
|
345
347
|
173.2 => 'Sigma APO Macro 150mm f/2.8 EX DG HSM', #14
|
|
346
348
|
173.3 => 'Sigma 10mm f/2.8 EX DC Fisheye', #IB
|
|
347
349
|
173.4 => 'Sigma 15mm f/2.8 EX DG Diagonal Fisheye', #IB
|
|
350
|
+
173.5 => 'Venus Laowa 100mm F2.8 2X Ultra Macro APO', #IB
|
|
348
351
|
174 => 'Canon EF 135mm f/2L USM or Other Lens', #9
|
|
349
352
|
174.1 => 'Sigma 70-200mm f/2.8 EX DG APO OS HSM', #PH (probably version II of this lens)
|
|
350
353
|
174.2 => 'Sigma 50-500mm f/4.5-6.3 APO DG OS HSM', #forum4031
|
|
@@ -908,7 +911,7 @@ $VERSION = '4.24';
|
|
|
908
911
|
0x80000408 => 'EOS 77D / 9000D',
|
|
909
912
|
0x80000417 => 'EOS Rebel SL2 / 200D / Kiss X9', #IB/42
|
|
910
913
|
0x80000422 => 'EOS Rebel T100 / 4000D / 3000D', #IB (3000D in China; Kiss? - PH)
|
|
911
|
-
0x80000424 => '
|
|
914
|
+
0x80000424 => 'EOS R', #IB
|
|
912
915
|
0x80000432 => 'EOS Rebel T7 / 2000D / 1500D / Kiss X90', #IB
|
|
913
916
|
0x80000433 => 'EOS RP',
|
|
914
917
|
0x80000436 => 'EOS SL3 / 250D / Kiss X10', #25
|
|
@@ -1885,7 +1888,7 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
|
1885
1888
|
},
|
|
1886
1889
|
0x4008 => { #53
|
|
1887
1890
|
Name => 'PictureStyleUserDef', # (BasePictStyleOfUser)
|
|
1888
|
-
|
|
1891
|
+
Writable => 'int16u',
|
|
1889
1892
|
Count => 3, # UserDef1, UserDef2, UserDef3
|
|
1890
1893
|
PrintHex => 1,
|
|
1891
1894
|
SeparateTable => 'PictureStyle',
|
|
@@ -1893,7 +1896,7 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
|
1893
1896
|
},
|
|
1894
1897
|
0x4009 => { #53
|
|
1895
1898
|
Name => 'PictureStylePC', # (BasePictStyleOfUser)
|
|
1896
|
-
|
|
1899
|
+
Writable => 'int16u',
|
|
1897
1900
|
Count => 3, # PC1, PC2, PC3
|
|
1898
1901
|
PrintHex => 1,
|
|
1899
1902
|
SeparateTable => 'PictureStyle',
|
|
@@ -1997,6 +2000,13 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
|
1997
2000
|
TagTable => 'Image::ExifTool::Canon::AFConfig',
|
|
1998
2001
|
}
|
|
1999
2002
|
},
|
|
2003
|
+
0x403f => { #25
|
|
2004
|
+
Name => 'RawBurstModeRoll',
|
|
2005
|
+
SubDirectory => {
|
|
2006
|
+
Validate => 'Image::ExifTool::Canon::Validate($dirData,$subdirStart,$size)',
|
|
2007
|
+
TagTable => 'Image::ExifTool::Canon::RawBurstInfo',
|
|
2008
|
+
}
|
|
2009
|
+
},
|
|
2000
2010
|
);
|
|
2001
2011
|
|
|
2002
2012
|
#..............................................................................
|
|
@@ -8438,6 +8448,16 @@ my %filterConv = (
|
|
|
8438
8448
|
},
|
|
8439
8449
|
);
|
|
8440
8450
|
|
|
8451
|
+
# RAW burst mode info (MakerNotes tag 0x403f) (ref 25)
|
|
8452
|
+
%Image::ExifTool::Canon::RawBurstInfo = (
|
|
8453
|
+
%binaryDataAttrs,
|
|
8454
|
+
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
|
8455
|
+
FORMAT => 'int32u',
|
|
8456
|
+
FIRST_ENTRY => 1,
|
|
8457
|
+
1 => 'RawBurstImageNum',
|
|
8458
|
+
2 => 'RawBurstImageCount',
|
|
8459
|
+
);
|
|
8460
|
+
|
|
8441
8461
|
# Canon UUID atoms (ref PH, SX280)
|
|
8442
8462
|
%Image::ExifTool::Canon::uuid = (
|
|
8443
8463
|
GROUPS => { 0 => 'MakerNotes', 1 => 'Canon', 2 => 'Video' },
|