exiftool-vendored.exe 12.78.0 → 12.80.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.
Files changed (40) hide show
  1. package/bin/exiftool_files/Changes +36 -3
  2. package/bin/exiftool_files/README +2 -2
  3. package/bin/exiftool_files/config_files/acdsee.config +37 -57
  4. package/bin/exiftool_files/config_files/example.config +6 -0
  5. package/bin/exiftool_files/exiftool.pl +41 -19
  6. package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +3 -0
  7. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/cs.pm +978 -0
  8. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/de.pm +1975 -0
  9. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/en_ca.pm +44 -0
  10. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/en_gb.pm +124 -0
  11. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/es.pm +2921 -0
  12. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/fi.pm +1116 -0
  13. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/fr.pm +3171 -0
  14. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/it.pm +2750 -0
  15. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/ja.pm +10256 -0
  16. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/ko.pm +4499 -0
  17. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/nl.pm +1270 -0
  18. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/pl.pm +3019 -0
  19. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/ru.pm +18220 -0
  20. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/sk.pm +441 -0
  21. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/sv.pm +714 -0
  22. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/tr.pm +452 -0
  23. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/zh_cn.pm +2225 -0
  24. package/bin/exiftool_files/lib/Image/ExifTool/GeoLang/zh_tw.pm +72 -0
  25. package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.dat +0 -0
  26. package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.pm +678 -140
  27. package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +7 -0
  28. package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +7 -2
  29. package/bin/exiftool_files/lib/Image/ExifTool/OpenEXR.pm +17 -17
  30. package/bin/exiftool_files/lib/Image/ExifTool/README +6 -5
  31. package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +2547 -2517
  32. package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +72 -1
  33. package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +1 -0
  34. package/bin/exiftool_files/lib/Image/ExifTool/WriteXMP.pl +1 -1
  35. package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +50 -0
  36. package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +17 -2
  37. package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +64 -0
  38. package/bin/exiftool_files/lib/Image/ExifTool.pm +165 -88
  39. package/bin/exiftool_files/lib/Image/ExifTool.pod +20 -7
  40. package/package.json +2 -2
@@ -1218,6 +1218,13 @@ Category: foreach $category (qw{pos track alt orient atemp}) {
1218
1218
  $coords .= " $alt";
1219
1219
  }
1220
1220
  @r = $et->SetNewValue(GPSCoordinates => $coords, %opts);
1221
+ # also Geolocate if specified
1222
+ my $nvHash;
1223
+ my $geoloc = $et->GetNewValue('Geolocate', \$nvHash);
1224
+ if ($geoloc and lc($geoloc) eq 'geotag') {
1225
+ $geoloc = ($$nvHash{WantGroup} ? "$$nvHash{WantGroup}:" : '') . 'Geolocate';
1226
+ $et->SetNewValue($geoloc => "$$fix{lat},$$fix{lon}");
1227
+ }
1221
1228
  return $err if $qt; # all done if writing to QuickTime only
1222
1229
  # (capture error messages by calling SetNewValue in list context)
1223
1230
  @r = $et->SetNewValue(GPSLatitude => $$fix{lat}, %opts);
@@ -14,7 +14,7 @@ use vars qw($VERSION);
14
14
  use Image::ExifTool qw(:DataAccess :Utils);
15
15
  use Image::ExifTool::Import;
16
16
 
17
- $VERSION = '1.07';
17
+ $VERSION = '1.08';
18
18
 
19
19
  sub ProcessJSON($$);
20
20
  sub ProcessTag($$$$%);
@@ -63,8 +63,13 @@ sub FoundTag($$$$%)
63
63
  unless ($$tagTablePtr{$tag}) {
64
64
  my $name = $tag;
65
65
  $name =~ tr/:/_/; # use underlines in place of colons in tag name
66
+ $name =~ s/^c2pa/C2PA/i; # hack to fix "C2PA" case
67
+ $name = Image::ExifTool::MakeTagName($name);
68
+ my $desc = Image::ExifTool::MakeDescription($name);
69
+ $desc =~ s/^C2 PA/C2PA/; # hack to get "C2PA" correct
66
70
  AddTagToTable($tagTablePtr, $tag, {
67
- Name => Image::ExifTool::MakeTagName($name),
71
+ Name => $name,
72
+ Description => $desc,
68
73
  %flags,
69
74
  Temporary => 1,
70
75
  });
@@ -16,7 +16,7 @@ use vars qw($VERSION);
16
16
  use Image::ExifTool qw(:DataAccess :Utils);
17
17
  use Image::ExifTool::GPS;
18
18
 
19
- $VERSION = '1.04';
19
+ $VERSION = '1.05';
20
20
 
21
21
  # supported EXR value format types (other types are extracted as undef binary data)
22
22
  my %formatType = (
@@ -134,7 +134,7 @@ my %formatType = (
134
134
  multiView => { },
135
135
  owner => { Groups => { 2 => 'Author' } },
136
136
  pixelAspectRatio => { },
137
- preview => { },
137
+ preview => { Groups => { 2 => 'Preview' } },
138
138
  renderingTransform => { },
139
139
  screenWindowCenter => { },
140
140
  screenWindowWidth => { },
@@ -219,25 +219,25 @@ sub ProcessEXR($$)
219
219
  AddTagToTable($tagTablePtr, $tag, $tagInfo);
220
220
  $et->VPrint(0, $$et{INDENT}, "[adding $tag]\n");
221
221
  }
222
- my ($val, $success);
222
+ my ($val, $success, $buf2);
223
223
  my $format = $formatType{$type};
224
224
  if ($format or $binary) {
225
- $raf->Read($buff, $size) == $size and $success = 1;
225
+ $raf->Read($buf2, $size) == $size and $success = 1;
226
226
  if (not $format) {
227
- $val = \$buff; # treat as undef binary data
227
+ $val = \$buf2; # treat as undef binary data
228
228
  } elsif ($format ne '1') {
229
229
  # handle formats which map nicely into ExifTool format codes
230
230
  if ($format =~ /^(\w+)\[?(\d*)/) {
231
231
  my ($fmt, $cnt) = ($1, $2);
232
232
  $cnt = $fmt eq 'string' ? $size : 1 unless $cnt;
233
- $val = ReadValue(\$buff, 0, $fmt, $cnt, $size);
233
+ $val = ReadValue(\$buf2, 0, $fmt, $cnt, $size);
234
234
  }
235
235
  # handle other format types
236
236
  } elsif ($type eq 'tiledesc') {
237
237
  if ($size >= 9) {
238
- my $x = Get32u(\$buff, 0);
239
- my $y = Get32u(\$buff, 4);
240
- my $mode = Get8u(\$buff, 8);
238
+ my $x = Get32u(\$buf2, 0);
239
+ my $y = Get32u(\$buf2, 4);
240
+ my $mode = Get8u(\$buf2, 8);
241
241
  my $lvl = { 0 => 'One Level', 1 => 'MIMAP Levels', 2 => 'RIPMAP Levels' }->{$mode & 0x0f};
242
242
  $lvl or $lvl = 'Unknown Levels (' . ($mode & 0xf) . ')';
243
243
  my $rnd = { 0 => 'Round Down', 1 => 'Round Up' }->{$mode >> 4};
@@ -246,7 +246,7 @@ sub ProcessEXR($$)
246
246
  }
247
247
  } elsif ($type eq 'chlist') {
248
248
  $val = [ ];
249
- while ($buff =~ /\G([^\0]{1,31})\0(.{16})/sg) {
249
+ while ($buf2 =~ /\G([^\0]{1,31})\0(.{16})/sg) {
250
250
  my ($str, $dat) = ($1, $2);
251
251
  my ($pix,$lin,$x,$y) = unpack('VCx3VV', $dat);
252
252
  $pix = { 0 => 'int8u', 1 => 'half', 2 => 'float' }->{$pix} || "unknown($pix)";
@@ -255,14 +255,14 @@ sub ProcessEXR($$)
255
255
  } elsif ($type eq 'stringvector') {
256
256
  $val = [ ];
257
257
  my $pos = 0;
258
- while ($pos + 4 <= length($buff)) {
259
- my $len = Get32u(\$buff, $pos);
260
- last if $pos + 4 + $len > length($buff);
261
- push @$val, substr($buff, $pos + 4, $len);
258
+ while ($pos + 4 <= length($buf2)) {
259
+ my $len = Get32u(\$buf2, $pos);
260
+ last if $pos + 4 + $len > length($buf2);
261
+ push @$val, substr($buf2, $pos + 4, $len);
262
262
  $pos += 4 + $len;
263
263
  }
264
264
  } else {
265
- $val = \$buff; # (shouldn't happen)
265
+ $val = \$buf2; # (shouldn't happen)
266
266
  }
267
267
  } else {
268
268
  # avoid loading binary data
@@ -282,13 +282,13 @@ sub ProcessEXR($$)
282
282
  $dim = [$3 - $1 + 1, $4 - $2 + 1];
283
283
  }
284
284
  if ($verbose) {
285
- my $dataPt = ref $val ? $val : \$val,
285
+ my $dataPt = ref $val eq 'SCALAR' ? $val : \$buf2;
286
286
  $et->VerboseInfo($tag, $tagInfo,
287
287
  Table => $tagTablePtr,
288
288
  Value => $val,
289
289
  Size => $size,
290
290
  Format => $type,
291
- DataPt => \$buff,
291
+ DataPt => $dataPt,
292
292
  Addr => $raf->Tell() - $size,
293
293
  );
294
294
  }
@@ -176,11 +176,12 @@ key:
176
176
  where tags have variable namespaces (in this case each tag must have a
177
177
  Namespace entry).
178
178
 
179
- PREFERRED : Set to true if the tags in this table should always be added when
180
- writing information. Overrides the order specified by SetNewGroups(). When
181
- this feature is used, it may also be desirable to specify a preferred group
182
- when calling InitWriteDirs() to write these tags; this avoids creating other
183
- directories for tags which are already being creating in the preferred group.
179
+ PREFERRED : Set if the tags in this table should always be added when writing
180
+ information. Higher number are higher precedence. Overrides the order
181
+ specified by SetNewGroups(). When this feature is used, it may also be
182
+ desirable to specify a preferred group when calling InitWriteDirs() to write
183
+ these tags -- this avoids creating other directories for tags which are
184
+ already being creating in the preferred group.
184
185
 
185
186
  PERMANENT : Tags in this table are Permanent, and can't be deleted. Maker
186
187
  notes tags are Permanent by default, without the need to set this property.