exiftool_vendored 13.46.0 → 13.47.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/Geotag.pm +5 -1
- data/bin/lib/Image/ExifTool/Google.pm +4 -1
- data/bin/lib/Image/ExifTool/Protobuf.pm +4 -3
- data/bin/lib/Image/ExifTool/QuickTime.pm +2 -2
- data/bin/lib/Image/ExifTool.pm +2 -2
- data/bin/lib/Image/ExifTool.pod +6 -5
- 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
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 47f8feb5a44a6bb4ae7c01fc5283a6b0407be026ac355bdfd28249e5b9118d96
|
|
4
|
+
data.tar.gz: c4f5c0cc1862c2fad3dc1c79bc7c0fbd546534018ce380a8abfb2fdb16f3d48b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f66737b1a83f6e4c4c493a9845fb6f9eae5813fb08733fb3cda7d572ea58a0ad94c136deff3c0e73bc79e2f1b02871679b49fbd00da2d98d33986b7bf4ec8dce
|
|
7
|
+
data.tar.gz: f0f87c67bacd26a6047039f9ee95ef8a6a695fcaf9c0d3be5ed7c5130118814cf2263a374f4c598a4c10fb2b1145179a0d8cb81c3b93f3e3c17c1f0622313fa4
|
data/bin/Changes
CHANGED
|
@@ -7,6 +7,14 @@ RSS feed: https://exiftool.org/rss.xml
|
|
|
7
7
|
Note: The most recent production release is Version 13.44. (Other versions are
|
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
|
9
9
|
|
|
10
|
+
Jan. 27, 2026 - Version 13.47
|
|
11
|
+
|
|
12
|
+
- Enhanced -fast option to avoid scanning QuickTime MediaData for metadata
|
|
13
|
+
(improves performance when reading CR3 files from slow media, github #384)
|
|
14
|
+
and -fast2 to avoid reading HDRP maker notes
|
|
15
|
+
- API Changes:
|
|
16
|
+
- Added CSV support to GeoUserTag option
|
|
17
|
+
|
|
10
18
|
Jan. 25, 2026 - Version 13.46
|
|
11
19
|
|
|
12
20
|
- Added a new Pentax LensType
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
|
@@ -111,8 +111,8 @@ your home directory, then you would type the following commands in a
|
|
|
111
111
|
terminal window to extract and run ExifTool:
|
|
112
112
|
|
|
113
113
|
cd ~/Desktop
|
|
114
|
-
gzip -dc Image-ExifTool-13.
|
|
115
|
-
cd Image-ExifTool-13.
|
|
114
|
+
gzip -dc Image-ExifTool-13.47.tar.gz | tar -xf -
|
|
115
|
+
cd Image-ExifTool-13.47
|
|
116
116
|
./exiftool t/images/ExifTool.jpg
|
|
117
117
|
|
|
118
118
|
Note: These commands extract meta information from one of the test images.
|
data/bin/exiftool
CHANGED
|
@@ -11,7 +11,7 @@ use strict;
|
|
|
11
11
|
use warnings;
|
|
12
12
|
require 5.004;
|
|
13
13
|
|
|
14
|
-
my $version = '13.
|
|
14
|
+
my $version = '13.47';
|
|
15
15
|
|
|
16
16
|
$^W = 1; # enable global warnings
|
|
17
17
|
|
|
@@ -6136,7 +6136,7 @@ with this command:
|
|
|
6136
6136
|
|
|
6137
6137
|
produces output like this:
|
|
6138
6138
|
|
|
6139
|
-
-- Generated by ExifTool 13.
|
|
6139
|
+
-- Generated by ExifTool 13.47 --
|
|
6140
6140
|
File: a.jpg - 2003:10:31 15:44:19
|
|
6141
6141
|
(f/5.6, 1/60s, ISO 100)
|
|
6142
6142
|
File: b.jpg - 2006:05:23 11:57:38
|
|
@@ -36,7 +36,7 @@ use vars qw($VERSION);
|
|
|
36
36
|
use Image::ExifTool qw(:Public);
|
|
37
37
|
use Image::ExifTool::GPS;
|
|
38
38
|
|
|
39
|
-
$VERSION = '1.
|
|
39
|
+
$VERSION = '1.86';
|
|
40
40
|
|
|
41
41
|
sub JITTER() { return 2 } # maximum time jitter
|
|
42
42
|
|
|
@@ -336,6 +336,8 @@ sub LoadTrackLog($$;$)
|
|
|
336
336
|
$param = 'roll';
|
|
337
337
|
} elsif (/^Img ?Dir/i) {
|
|
338
338
|
$param = 'dir';
|
|
339
|
+
} elsif ($userTag{lc $_}) {
|
|
340
|
+
$param = $userTag{lc $_};
|
|
339
341
|
}
|
|
340
342
|
if ($param) {
|
|
341
343
|
$et->VPrint(2, "CSV column '${head}' is $param$xtra\n");
|
|
@@ -581,6 +583,8 @@ DoneFix: $isDate = 1;
|
|
|
581
583
|
} elsif ($param eq 'runtime') {
|
|
582
584
|
$date = $trackTime;
|
|
583
585
|
$secs = $val;
|
|
586
|
+
} elsif ($param =~ /^_/) {
|
|
587
|
+
$$fix{$param} = $val;
|
|
584
588
|
} else {
|
|
585
589
|
$val /= $scaleSpeed if $scaleSpeed and $param eq 'speed';
|
|
586
590
|
$$fix{$param} = $val;
|
|
@@ -15,7 +15,7 @@ use vars qw($VERSION);
|
|
|
15
15
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
16
16
|
use Image::ExifTool::XMP;
|
|
17
17
|
|
|
18
|
-
$VERSION = '1.
|
|
18
|
+
$VERSION = '1.01';
|
|
19
19
|
|
|
20
20
|
sub ProcessHDRP($$$);
|
|
21
21
|
|
|
@@ -672,8 +672,11 @@ sub ProcessHDRP($$$)
|
|
|
672
672
|
my $tagInfo = $$dirInfo{TagInfo};
|
|
673
673
|
my $tagName = $tagInfo ? $$tagInfo{Name} : '';
|
|
674
674
|
my $verbose = $et->Options('Verbose');
|
|
675
|
+
my $fast = $et->Options('FastScan') || 0;
|
|
675
676
|
my ($ver, $valPt);
|
|
676
677
|
|
|
678
|
+
return undef if $fast > 1;
|
|
679
|
+
|
|
677
680
|
if ($$dirInfo{DirStart}) {
|
|
678
681
|
my $dat = substr($$dataPt, $$dirInfo{DirStart}, $$dirInfo{DirLen});
|
|
679
682
|
$dataPt = \$dat;
|
|
@@ -21,7 +21,7 @@ use strict;
|
|
|
21
21
|
use vars qw($VERSION);
|
|
22
22
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
23
23
|
|
|
24
|
-
$VERSION = '1.
|
|
24
|
+
$VERSION = '1.07';
|
|
25
25
|
|
|
26
26
|
sub ProcessProtobuf($$$;$);
|
|
27
27
|
|
|
@@ -59,12 +59,14 @@ sub VarInt($)
|
|
|
59
59
|
my $val = ord($buff) & 0x7f;
|
|
60
60
|
$$dirInfo{Bit0} = $val & 0x01;
|
|
61
61
|
my $mult = 128;
|
|
62
|
+
my $i = 0;
|
|
62
63
|
for (;;) {
|
|
63
64
|
last unless ord($buff) & 0x80;
|
|
64
65
|
$buff = GetBytes($dirInfo, 1);
|
|
65
66
|
return undef unless defined $buff;
|
|
66
67
|
$val += (ord($buff) & 0x7f) * $mult;
|
|
67
68
|
last unless ord($buff) & 0x80;
|
|
69
|
+
return undef if ++$i > 32; # set a reasonable limit
|
|
68
70
|
$mult *= 128; # (Note: don't use integer bit shift to avoid integer overflow)
|
|
69
71
|
}
|
|
70
72
|
return $val;
|
|
@@ -73,7 +75,7 @@ sub VarInt($)
|
|
|
73
75
|
#------------------------------------------------------------------------------
|
|
74
76
|
# Read protobuf record
|
|
75
77
|
# Inputs: 0) dirInfo ref
|
|
76
|
-
# Returns: 0) record payload (plus tag id and format type in list context)
|
|
78
|
+
# Returns: 0) record payload (plus tag id and format type in list context) or undef on error
|
|
77
79
|
# Notes: Updates $$dirInfo{Pos} to start of next record, and sets $$dirInfo{Bit0}
|
|
78
80
|
# according to the least significant bit of type 0 (varInt) records
|
|
79
81
|
sub ReadRecord($)
|
|
@@ -138,7 +140,6 @@ sub ProcessProtobuf($$$;$)
|
|
|
138
140
|
|
|
139
141
|
$$dirInfo{Pos} = $$dirInfo{DirStart} || 0; # initialize buffer Pos
|
|
140
142
|
$et->VerboseDir('Protobuf', undef, $dirLen);
|
|
141
|
-
|
|
142
143
|
unless ($prefix) {
|
|
143
144
|
$prefix = '';
|
|
144
145
|
$$et{ProtoPrefix}{$dirName} = '' unless defined $$et{ProtoPrefix}{$dirName};
|
|
@@ -49,7 +49,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
|
49
49
|
use Image::ExifTool::Exif;
|
|
50
50
|
use Image::ExifTool::GPS;
|
|
51
51
|
|
|
52
|
-
$VERSION = '3.
|
|
52
|
+
$VERSION = '3.27';
|
|
53
53
|
|
|
54
54
|
sub ProcessMOV($$;$);
|
|
55
55
|
sub ProcessKeys($$$);
|
|
@@ -10638,7 +10638,7 @@ QTLang: foreach $tag (@{$$et{QTLang}}) {
|
|
|
10638
10638
|
}
|
|
10639
10639
|
# brute force scan for metadata embedded in media data
|
|
10640
10640
|
# (and process Insta360 trailer if it exists)
|
|
10641
|
-
ScanMediaData($et) if $ee and $topLevel;
|
|
10641
|
+
ScanMediaData($et) if $ee and $topLevel and not $$et{OPTIONS}{FastScan};
|
|
10642
10642
|
|
|
10643
10643
|
# restore any changed options
|
|
10644
10644
|
$et->Options($_ => $saveOptions{$_}) foreach keys %saveOptions;
|
data/bin/lib/Image/ExifTool.pm
CHANGED
|
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
|
|
30
30
|
%static_vars $advFmtSelf $configFile @configFiles $noConfig);
|
|
31
31
|
|
|
32
|
-
$VERSION = '13.
|
|
32
|
+
$VERSION = '13.47';
|
|
33
33
|
$RELEASE = '';
|
|
34
34
|
@ISA = qw(Exporter);
|
|
35
35
|
%EXPORT_TAGS = (
|
|
@@ -1147,7 +1147,7 @@ my @availableOptions = (
|
|
|
1147
1147
|
[ 'GeoMinSats', undef, 'geotag minimum satellites' ],
|
|
1148
1148
|
[ 'GeoHPosErr', undef, 'geotag GPSHPositioningError based on $GPSDOP' ],
|
|
1149
1149
|
[ 'GeoSpeedRef', undef, 'geotag GPSSpeedRef' ],
|
|
1150
|
-
[ 'GeoUserTag', undef, 'user-defined
|
|
1150
|
+
[ 'GeoUserTag', undef, 'user-defined tags for geotagging' ],
|
|
1151
1151
|
[ 'GlobalTimeShift', undef, 'apply time shift to all extracted date/time values' ],
|
|
1152
1152
|
[ 'GPSQuadrant', undef, 'quadrant for GPS if not otherwise known' ],
|
|
1153
1153
|
[ 'Group#', undef, 'return tags for specified groups in family #' ],
|
data/bin/lib/Image/ExifTool.pod
CHANGED
|
@@ -817,12 +817,13 @@ Reference units for writing GPSSpeed when geotagging:
|
|
|
817
817
|
|
|
818
818
|
=item GeoUserTag
|
|
819
819
|
|
|
820
|
-
Additional user-defined tags to write when geotagging from GPX files.
|
|
820
|
+
Additional user-defined tags to write when geotagging from GPX or CSV files.
|
|
821
821
|
Format is 'I<TAG>=I<TOKEN>,...' where I<TAG> is an ExifTool tag name (with
|
|
822
|
-
optional group name), and I<TOKEN> is is the property name in the GPX file
|
|
823
|
-
eg) C<Location=desc> will write the
|
|
824
|
-
|
|
825
|
-
|
|
822
|
+
optional group name), and I<TOKEN> is is the property name in the GPX file
|
|
823
|
+
or the column name in the CSV file. eg) C<Location=desc> will write the
|
|
824
|
+
Location tag based on the value of 'desc' in the GPS log file. The tag
|
|
825
|
+
value is taken from the nearest fix in time. Multiple tags may be specified
|
|
826
|
+
using comma separators. Default is undef.
|
|
826
827
|
|
|
827
828
|
=item GlobalTimeShift
|
|
828
829
|
|