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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fe98ce5f03c86564e64f053a399d231c67e02c5cefc2ae0533e933e52b2e5632
4
- data.tar.gz: 7a7c7cd4a94746c50996474af6e3ad1b44bd4f3c2e2386435bde5be75f0439c1
3
+ metadata.gz: 47f8feb5a44a6bb4ae7c01fc5283a6b0407be026ac355bdfd28249e5b9118d96
4
+ data.tar.gz: c4f5c0cc1862c2fad3dc1c79bc7c0fbd546534018ce380a8abfb2fdb16f3d48b
5
5
  SHA512:
6
- metadata.gz: ca5b1e6bb5faf24f0f213c83a5035747c1fb065ecb1ba7a9c19eadb404421248c1588bfe1da2d58251c5a5e3090e1bb6a0a07602ce1838ab1eee81e0c487484b
7
- data.tar.gz: 8f07194647af977527b357417691574667ae8f67cb861f41eeb069b160446bc2fe8ba3b9c0bdc87abb015ce45389583dd624774cb779dcaa35318ef2b1f8293f
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
@@ -50,6 +50,6 @@
50
50
  }
51
51
  },
52
52
  "release_status" : "stable",
53
- "version" : "13.46",
53
+ "version" : "13.47",
54
54
  "x_serialization_backend" : "JSON::PP version 4.06"
55
55
  }
data/bin/META.yml CHANGED
@@ -31,5 +31,5 @@ recommends:
31
31
  Time::HiRes: '0'
32
32
  requires:
33
33
  perl: '5.004'
34
- version: '13.46'
34
+ version: '13.47'
35
35
  x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
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.46.tar.gz | tar -xf -
115
- cd Image-ExifTool-13.46
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.46';
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.46 --
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.85';
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.00';
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.06';
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.26';
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;
@@ -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.46';
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 GPX tags for geotagging' ],
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 #' ],
@@ -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 Location tag based on the GPX 'desc'
824
- property. The tag value is taken from the nearest fix in time. Multiple
825
- tags may be specified using comma separators. Default is undef.
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
 
@@ -1,6 +1,6 @@
1
1
  Summary: perl module for image data extraction
2
2
  Name: perl-Image-ExifTool
3
- Version: 13.46
3
+ Version: 13.47
4
4
  Release: 1
5
5
  License: Artistic/GPL
6
6
  Group: Development/Libraries/Perl
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ExiftoolVendored
4
- VERSION = Gem::Version.new('13.46.0')
4
+ VERSION = Gem::Version.new('13.47.0')
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exiftool_vendored
3
3
  version: !ruby/object:Gem::Version
4
- version: 13.46.0
4
+ version: 13.47.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew McEachen