exiftool_vendored 12.80.0 → 12.81.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6f29848f7a068302c03f2847eff9e3daf8ce7379cc676fcbfda76a3ef534fba4
4
- data.tar.gz: 80952d3f13272898576e90899f3b3623eec46d3a193fa334daaa7838219a12f0
3
+ metadata.gz: 7ba2444c39547a29d2fc1571e6dd379717eacc8bd4ddabe6eb65fd5129b8b072
4
+ data.tar.gz: 72c5c28b89791790a889835831e94c5dc27eb7b635b8a35b4e8d2c2775684b2a
5
5
  SHA512:
6
- metadata.gz: f8c2b1352e32b75492ab82b890c9745e5fab108779eb0411d6fdfc76d2584e26082a9cbd8cdf9e4a1fe3bd7b370cec4969d3e84459db4e8876155304d3f0f524
7
- data.tar.gz: daeab0ada07d19fa91766bff48d1e3c5d31ea4b3f3856d21972bc31890fbe9f1cba4cf6b1b66672cec07ffa0df62b9432a02960e4a0ab97365c0fecdf8bf030a
6
+ metadata.gz: 38d482929aafd323864314e3dd10f08c43b3798bc345457342010cad7a032fe193a5a6d39daf82666cb7b56c0da7db1da78794811c7ad0fbde63f256e674be6d
7
+ data.tar.gz: a7826bccc3d66f967e5978c4b689a846a510c66f005812283170791a3a1cb24ddaa7ed52d9cc6b86d9ac3f5eabf83cfa950c9a03a907a3974e67c90e9d38b647
data/bin/Changes CHANGED
@@ -7,6 +7,29 @@ RSS feed: https://exiftool.org/rss.xml
7
7
  Note: The most recent production release is Version 12.76. (Other versions are
8
8
  considered development releases, and are not uploaded to MetaCPAN.)
9
9
 
10
+ Mar. 27, 2024 - Version 12.81
11
+
12
+ - Added ability to read EXIF and XMP from EXR images
13
+ - Added ability to delete unknown trailer when writing MOV/MP4 videos
14
+ - Added ability to write a couple of Stable Diffusion PNG tags
15
+ - Added ability to write one of the Microsoft Xtra Description tags (github
16
+ #248)
17
+ - Added support for using alternate city names in reverse Geolocation
18
+ - Added support for reading timed GPS from DOD LS600W TS videos
19
+ - Added support for new version of Canon DR4 files
20
+ - Added a number of new iTunesInfo tags
21
+ - Added a new Olympus LensType
22
+ - Allow regular expressions to be used when writing Geolocate tag
23
+ - Decode a number of new Nikon tags (thanks Warren Hatch)
24
+ - Enhanced writing of Geolocate tag to also write Keys:LocationName
25
+ - Cache the results of the last reverse geolocation search to speed batch
26
+ processing when multiple files have the same search parameters
27
+ - Patched problem that could cause runtime errors with some invaid tag names
28
+ - Fixed a couple of newly added FujiFilm tags
29
+ - Fixed decoding of FujiFilm AFAreaZoneSize
30
+ - API Changes:
31
+ - Added GeolocAltNames option
32
+
10
33
  Mar. 19, 2024 - Version 12.80
11
34
 
12
35
  - Added GeolocationFeatureCode tag
@@ -19,6 +42,8 @@ Mar. 19, 2024 - Version 12.80
19
42
  - Improved accuracy of Geolocation distance/bearing calculations
20
43
  - Changed structure of Geolocation database (now version 1.02)
21
44
  - Minor change to key format for user-defined Geolocation name translations
45
+ - Ignore API Geolocation option when copying tags if none of the Geolocation
46
+ tags are being copied
22
47
  - Fixed case/spacing of "C2PA" in some CBOR tag descriptions
23
48
  - Fixed bug extracting binary data from EXR files
24
49
  - API Changes:
@@ -29,6 +54,7 @@ Mar. 15, 2024 - Version 12.79
29
54
  - Improvements to new Geolocation feature:
30
55
  - Added reverse Geolocation ability (obtain GPS coordinates from city
31
56
  name), with support for regular expressions
57
+ - Added ability to geolocate while geotagging
32
58
  - Added -listgeo option to list the Geolocation database
33
59
  - Added the ability to include user-defined cities in the Geolocation
34
60
  database
data/bin/MANIFEST CHANGED
@@ -626,6 +626,8 @@ t/Geolocation_3.out
626
626
  t/Geolocation_4.out
627
627
  t/Geolocation_5.out
628
628
  t/Geolocation_6.out
629
+ t/Geolocation_7.out
630
+ t/Geolocation_8.out
629
631
  t/Geotag.t
630
632
  t/Geotag_10.out
631
633
  t/Geotag_11.out
data/bin/META.json CHANGED
@@ -50,5 +50,5 @@
50
50
  }
51
51
  },
52
52
  "release_status" : "stable",
53
- "version" : "12.80"
53
+ "version" : "12.81"
54
54
  }
data/bin/META.yml CHANGED
@@ -31,4 +31,4 @@ recommends:
31
31
  Time::HiRes: 0
32
32
  requires:
33
33
  perl: 5.004
34
- version: 12.80
34
+ version: 12.81
data/bin/README CHANGED
@@ -109,8 +109,8 @@ your home directory, then you would type the following commands in a
109
109
  terminal window to extract and run ExifTool:
110
110
 
111
111
  cd ~/Desktop
112
- gzip -dc Image-ExifTool-12.80.tar.gz | tar -xf -
113
- cd Image-ExifTool-12.80
112
+ gzip -dc Image-ExifTool-12.81.tar.gz | tar -xf -
113
+ cd Image-ExifTool-12.81
114
114
  ./exiftool t/images/ExifTool.jpg
115
115
 
116
116
  Note: These commands extract meta information from one of the test images.
@@ -238,6 +238,7 @@ information:
238
238
  html/ExifTool.html - API documentation
239
239
  html/TagNames/index.html - Tag name documentation
240
240
  html/geotag.html - Geotag feature
241
+ html/geolocation.html - Geolocation feature
241
242
  html/faq.html - Frequently asked questions
242
243
  html/filename.html - Renaming/moving files
243
244
  html/metafiles.html - Working with metadata sidecar files
data/bin/exiftool CHANGED
@@ -11,7 +11,7 @@ use strict;
11
11
  use warnings;
12
12
  require 5.004;
13
13
 
14
- my $version = '12.80';
14
+ my $version = '12.81';
15
15
 
16
16
  # add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
17
17
  my $exePath;
@@ -723,17 +723,22 @@ for (;;) {
723
723
  require Image::ExifTool::Geolocation;
724
724
  my ($i, $entry);
725
725
  print "Geolocation database:\n" unless $quiet;
726
- print "City,Region,Subregion,CountryCode,Country,TimeZone,FeatureCode,Population,Latitude,Longitude\n";
726
+ my $isAlt = $mt->Options('GeolocAltNames') ? ',AltNames' : '';
727
+ $isAlt = '' if $isAlt and not Image::ExifTool::Geolocation::ReadAltNames();
728
+ print "City,Region,Subregion,CountryCode,Country,TimeZone,FeatureCode,Population,Latitude,Longitude$isAlt\n";
727
729
  Image::ExifTool::Geolocation::SortDatabase('City') if $sortOpt;
728
730
  my $minPop = $mt->Options('GeolocMinPop');
729
731
  my $feature = $mt->Options('GeolocFeature') || '';
730
732
  my $neg = $feature =~ s/^-//;
731
733
  my %fcodes = map { lc($_) => 1 } split /\s*,\s*/, $feature;
734
+ my @isUTF8 = (0,1,2,4); # items that need converting from UTF8
735
+ push @isUTF8, 10 if $isAlt;
732
736
  for ($i=0; ; ++$i) {
733
- my @entry = Image::ExifTool::Geolocation::GetEntry($i,$langOpt) or last;
737
+ my @entry = Image::ExifTool::Geolocation::GetEntry($i,$langOpt,1) or last;
738
+ push @entry, Image::ExifTool::Geolocation::GetAltNames($i,1) if $isAlt;
734
739
  next if $minPop and $entry[7] < $minPop;
735
740
  next if %fcodes and $neg ? $fcodes{lc $entry[6]} : not $fcodes{lc $entry[6]};
736
- $_ = defined $_ ? $mt->Decode($_, 'UTF8') : '' foreach @entry[0,1,2,4];
741
+ $_ = defined $_ ? $mt->Decode($_, 'UTF8') : '' foreach @entry[@isUTF8];
737
742
  print join(',', @entry), "\n";
738
743
  }
739
744
  } else { # 'g(\d*)'
@@ -1365,11 +1370,11 @@ for (;;) {
1365
1370
  $useMWG = 1;
1366
1371
  } elsif (/^([-\w]+:)*(filename|directory|testname)\b/i) {
1367
1372
  $doSetFileName = 1;
1368
- } elsif (/^([-\w]+:)*(geotag|geotime|geosync)\b/i) {
1373
+ } elsif (/^([-\w]+:)*(geotag|geotime|geosync|geolocate)\b/i) {
1369
1374
  if (lc $2 eq 'geotime') {
1370
1375
  $addGeotime = '';
1371
1376
  } else {
1372
- # add geotag/geosync commands first
1377
+ # add geotag/geosync/geolocate commands first
1373
1378
  unshift @newValues, pop @newValues;
1374
1379
  if (lc $2 eq 'geotag' and (not defined $addGeotime or $addGeotime) and length $val) {
1375
1380
  $addGeotime = ($1 || '') . 'Geotime<DateTimeOriginal#';
@@ -5657,7 +5662,7 @@ with this command:
5657
5662
 
5658
5663
  produces output like this:
5659
5664
 
5660
- -- Generated by ExifTool 12.80 --
5665
+ -- Generated by ExifTool 12.81 --
5661
5666
  File: a.jpg - 2003:10:31 15:44:19
5662
5667
  (f/5.6, 1/60s, ISO 100)
5663
5668
  File: b.jpg - 2006:05:23 11:57:38
@@ -6435,8 +6440,9 @@ otherwise family 0 is assumed. The B<-l> option may be combined with
6435
6440
  B<-listf>, B<-listr> or B<-listwf> to add file descriptions to the list.
6436
6441
  The B<-lang> option may be combined with B<-listx> to output descriptions in
6437
6442
  a single language, and the B<-sort> and/or B<-lang> options may be combined
6438
- with B<-listgeo>. Also, the API GeolocMinPop and GeolocFeature options
6439
- apply to the B<-listgeo> output. Here are some examples:
6443
+ with B<-listgeo>. Also, the API GeolocMinPop, GeolocFeature and
6444
+ GeolocAltNames options apply to the B<-listgeo> output. Here are some
6445
+ examples:
6440
6446
 
6441
6447
  -list # list all tag names
6442
6448
  -list -EXIF:All # list all EXIF tags
@@ -6538,6 +6544,10 @@ examples. Also see "geotag.html" in the full ExifTool distribution and the
6538
6544
  L<Image::ExifTool Options|Image::ExifTool/Options> for more details and for
6539
6545
  information about geotag configuration options.
6540
6546
 
6547
+ The API Geolocation option may be set to the value "geotag" to also write
6548
+ the name, province/state and country of the nearest city while geotagging.
6549
+ See L<https://exiftool.org/geolocation.html> for details.
6550
+
6541
6551
  =item B<-globalTimeShift> I<SHIFT>
6542
6552
 
6543
6553
  Shift all formatted date/time values by the specified amount when reading.
@@ -7435,6 +7445,12 @@ Geotag an image (C<a.jpg>) from position information in a GPS track log
7435
7445
  DateTimeOriginal is used for geotagging. Local system time is assumed
7436
7446
  unless DateTimeOriginal contains a timezone.
7437
7447
 
7448
+ =item exiftool -geotag track.log -geolocate=geotag a.jpg
7449
+
7450
+ Geotag an image and also write geolocation information of the nearest city
7451
+ (city name, state/province and country). Read here for more details about
7452
+ the Geolocation feature: L<https://exiftool.org/geolocation.html#Write>
7453
+
7438
7454
  =item exiftool -geotag t.log -geotime='2009:04:02 13:41:12-05:00' a.jpg
7439
7455
 
7440
7456
  Geotag an image with the GPS position for a specific time.
@@ -23,7 +23,7 @@ use vars qw($VERSION);
23
23
  use Image::ExifTool qw(:DataAccess :Utils);
24
24
  use Image::ExifTool::Canon;
25
25
 
26
- $VERSION = '1.38';
26
+ $VERSION = '1.39';
27
27
 
28
28
  sub ProcessCanonVRD($$;$);
29
29
  sub WriteCanonVRD($$;$);
@@ -1758,7 +1758,7 @@ sub ProcessDR4($$;$)
1758
1758
  } else {
1759
1759
  # load DR4 file into memory
1760
1760
  my $buff;
1761
- $raf->Read($buff, 8) == 8 and $buff eq "IIII\x04\0\x04\0" or return 0;
1761
+ $raf->Read($buff, 8) == 8 and $buff =~ /^IIII[\x04|\x05]\0\x04\0/ or return 0;
1762
1762
  $et->SetFileType();
1763
1763
  $raf->Seek(0, 2) or return $err = 1;
1764
1764
  $dirLen = $raf->Tell();
@@ -31,7 +31,7 @@ use vars qw($VERSION);
31
31
  use Image::ExifTool qw(:DataAccess :Utils);
32
32
  use Image::ExifTool::Exif;
33
33
 
34
- $VERSION = '1.92';
34
+ $VERSION = '1.93';
35
35
 
36
36
  sub ProcessFujiDir($$$);
37
37
  sub ProcessFaceRec($$$);
@@ -550,8 +550,9 @@ my %faceCategories = (
550
550
  3 => 'Electronic Front Curtain', #10
551
551
  },
552
552
  },
553
- 0x1051 => { Name => 'CropTopLeft', Writable => 'int32u' }, #forum15784
554
- 0x1052 => { Name => 'CropCenter', Writable => 'int32u' }, #forum15784
553
+ 0x1051 => { Name => 'Cropped', Writable => 'int8u', PrintConv => { 0 => 'No', 1 => 'Yes' } }, #forum15784
554
+ 0x1052 => { Name => 'CropTopLeft', Writable => 'int32u' }, #forum15784
555
+ 0x1053 => { Name => 'CropSize', Writable => 'int32u' }, #forum15784
555
556
  # 0x1100 - This may not work well for newer cameras (ref forum12682)
556
557
  0x1100 => [{
557
558
  Name => 'AutoBracketing',
@@ -1033,14 +1034,19 @@ my %faceCategories = (
1033
1034
  },
1034
1035
  0.5 => {
1035
1036
  Name => 'AFAreaZoneSize',
1036
- Mask => 0xf0000,
1037
+ Mask => 0xff0000,
1037
1038
  PrintConv => {
1038
1039
  0 => 'n/a',
1039
1040
  OTHER => sub {
1040
1041
  my ($val, $inv) = @_;
1041
- return "$val x $val" unless $inv;
1042
- $val =~ s/ ?x.*//;
1043
- return $val;
1042
+ my ($w, $h);
1043
+ if ($inv) {
1044
+ my ($w, $h) = $val =~ /(\d+)/g;
1045
+ return 0 unless $w and $h;
1046
+ return((($h << 5) & 0xf0) | ($w & 0x0f));
1047
+ }
1048
+ ($w, $h) = ($val & 0x0f, $val >> 5);
1049
+ return "$w x $h";
1044
1050
  },
1045
1051
  },
1046
1052
  },