exiftool-vendored.pl 13.31.0 → 13.32.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.
@@ -12,7 +12,7 @@ meta information extracted from or written to a file.
12
12
  =head1 TAG TABLES
13
13
 
14
14
  The tables listed below give the names of all tags recognized by ExifTool.
15
- They contain a total of 28455 tags, with 17676 unique tag names.
15
+ They contain a total of 28465 tags, with 17681 unique tag names.
16
16
 
17
17
  B<Tag ID>, B<Index#> or B<Sequence> is given in the first column of each
18
18
  table. A B<Tag ID> is the computer-readable equivalent of a tag name, and
@@ -364,11 +364,11 @@ tags remain.
364
364
 
365
365
  The table below lists all EXIF tags. Also listed are TIFF, DNG, HDP and
366
366
  other tags which are not part of the EXIF specification, but may co-exist
367
- with EXIF tags in some images. Tags which are part of the EXIF 2.32
367
+ with EXIF tags in some images. Tags which are part of the EXIF 3.0
368
368
  specification have an underlined B<Tag Name> in the HTML version of this
369
369
  documentation. See
370
- L<https://web.archive.org/web/20190624045241if_/http://www.cipa.jp:80/std/documents/e/DC-008-Translation-2019-E.pdf>
371
- for the official EXIF 2.32 specification.
370
+ L<https://www.cipa.jp/std/documents/download_e.html?CIPA_DC-008-2024-E>
371
+ for the official EXIF 3.0 specification.
372
372
 
373
373
  Tag ID Tag Name Group Writable
374
374
  ------ -------- ----- --------
@@ -1039,6 +1039,8 @@ for the official EXIF 2.32 specification.
1039
1039
  0xc7aa CacheVersion SubIFD2 int32u!
1040
1040
  0xc7b5 DefaultUserCrop SubIFD rational64u[4]!
1041
1041
  0xc7d5 NikonNEFInfo - Nikon NEFInfo
1042
+ 0xc7d7 ZIFMetadata - no
1043
+ 0xc7d8 ZIFAnnotations - no
1042
1044
  0xc7e9 DepthFormat IFD0 int16u!
1043
1045
  0xc7ea DepthNear IFD0 rational64u!
1044
1046
  0xc7eb DepthFar IFD0 rational64u!
@@ -8049,6 +8051,7 @@ boot, not including standby time.
8049
8051
  42 ColorTone int16s
8050
8052
  46 SRAWQuality int16s
8051
8053
  51 Clarity int16s
8054
+ 52 HDR-PQ int16s
8052
8055
 
8053
8056
  =head3 Canon FocalLength Tags
8054
8057
 
@@ -20360,6 +20363,7 @@ These tags are used in Pentax/Asahi cameras.
20360
20363
  0x0402 ToneCurve yes~
20361
20364
  0x0403 ToneCurves yes~
20362
20365
  0x0405 UnknownBlock? undef
20366
+ 0x040c AFInfoK3III Pentax AFInfoK3III
20363
20367
  0x0e00 PrintIM PrintIM
20364
20368
 
20365
20369
  =head3 Pentax LensRec Tags
@@ -20934,6 +20938,20 @@ sensors are located in the camera.
20934
20938
  ------ -------- --------
20935
20939
  [no tags known]
20936
20940
 
20941
+ =head3 Pentax AFInfoK3III Tags
20942
+
20943
+ AF tags written by the K-3 Mark III, GR III and GR IIIx.
20944
+
20945
+ Index2 Tag Name Writable
20946
+ ------ -------- --------
20947
+ 0 AFInfo? int16u[$size/2]
20948
+ 0.1 AFMode int16u
20949
+ 1 AFSelectionMode int16u
20950
+ 3 NumAFPoints int16u
20951
+ 7 AFFrameSize no
20952
+ 7.1 AFAreas no+
20953
+ 11 AFAreaSize no
20954
+
20937
20955
  =head3 Pentax Type2 Tags
20938
20956
 
20939
20957
  These tags are used by the Pentax Optio 330 and 430, and are similar to the
@@ -1907,7 +1907,7 @@ sub RestoreNewValues($)
1907
1907
  #------------------------------------------------------------------------------
1908
1908
  # Set alternate file for extracting information
1909
1909
  # Inputs: 0) ExifTool ref, 1) family 8 group name (of the form "File#" where # is any number)
1910
- # 2) alternate file name, or undef to reset
1910
+ # 2) alternate file name (may contain tag names with leading "$"), or undef to reset
1911
1911
  # Returns: 1 on success, or 0 on invalid group name
1912
1912
  sub SetAlternateFile($$$)
1913
1913
  {
@@ -1917,7 +1917,9 @@ sub SetAlternateFile($$$)
1917
1917
  # keep the same file if already initialized (possibly has metadata extracted)
1918
1918
  if (not defined $file) {
1919
1919
  delete $$self{ALT_EXIFTOOL}{$g8};
1920
- } elsif (not ($$self{ALT_EXIFTOOL}{$g8} and $$self{ALT_EXIFTOOL}{$g8}{ALT_FILE} eq $file)) {
1920
+ } elsif (not ($$self{ALT_EXIFTOOL}{$g8} and $file !~ /\$/ and
1921
+ $$self{ALT_EXIFTOOL}{$g8}{ALT_FILE} eq $file))
1922
+ {
1921
1923
  my $altExifTool = Image::ExifTool->new;
1922
1924
  $$altExifTool{ALT_FILE} = $file;
1923
1925
  $$self{ALT_EXIFTOOL}{$g8} = $altExifTool;
@@ -6921,7 +6923,7 @@ sub CheckBinaryData($$$)
6921
6923
  $format = $1;
6922
6924
  $count = $2;
6923
6925
  # can't evaluate $count now because we don't know $size yet
6924
- undef $count if $count =~ /\$size/;
6926
+ $count = -1 if $count =~ /\$size/; # (-1 = any count allowed)
6925
6927
  }
6926
6928
  return CheckValue($valPtr, $format, $count);
6927
6929
  }
@@ -7247,6 +7249,8 @@ sub WriteBinaryData($$$)
7247
7249
  $self->VerboseValue("- $dirName:$$tagInfo{Name}", $val);
7248
7250
  $self->VerboseValue("+ $dirName:$$tagInfo{Name}", $newVal);
7249
7251
  ++$$self{CHANGED};
7252
+ } else {
7253
+ $self->Warn("Error packing $$tagInfo{Name} value");
7250
7254
  }
7251
7255
  }
7252
7256
  # add necessary fixups for any offsets
@@ -86,7 +86,7 @@ sub InflateStruct($$;$)
86
86
  my %struct;
87
87
  for (;;) {
88
88
  last unless $sfmt ? $$obj =~ s/^\s*"(.*?)"\s*://s :
89
- $$obj =~ s/^\s*([-\w:]+#?)\s*=//s;
89
+ $$obj =~ s/^\s*([-\w:.]+#?)\s*=//s;
90
90
  my $tag = $1;
91
91
  my ($v, $w) = InflateStruct($et, $obj, '}');
92
92
  $warn = $w if $w and not $warn;
@@ -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.31';
32
+ $VERSION = '13.32';
33
33
  $RELEASE = '';
34
34
  @ISA = qw(Exporter);
35
35
  %EXPORT_TAGS = (
@@ -1,6 +1,6 @@
1
1
  Summary: perl module for image data extraction
2
2
  Name: perl-Image-ExifTool
3
- Version: 13.31
3
+ Version: 13.32
4
4
  Release: 1
5
5
  License: Artistic/GPL
6
6
  Group: Development/Libraries/Perl
@@ -1081,7 +1081,7 @@ OPTIONS
1081
1081
 
1082
1082
  produces output like this:
1083
1083
 
1084
- -- Generated by ExifTool 13.31 --
1084
+ -- Generated by ExifTool 13.32 --
1085
1085
  File: a.jpg - 2003:10:31 15:44:19
1086
1086
  (f/5.6, 1/60s, ISO 100)
1087
1087
  File: b.jpg - 2006:05:23 11:57:38
@@ -2310,6 +2310,8 @@ OPTIONS
2310
2310
  in file names.)
2311
2311
 
2312
2312
  Helper functions
2313
+ Note that function names are case sensitive.
2314
+
2313
2315
  "DateFmt"
2314
2316
 
2315
2317
  Simplifies reformatting of individual date/time values. This function
@@ -2348,8 +2350,6 @@ OPTIONS
2348
2350
 
2349
2351
  exiftool -sep "##" "-keywords<${keywords;NoDups(1)}" a.jpg
2350
2352
 
2351
- Note that function names are case sensitive.
2352
-
2353
2353
  ExifTool 12.64 adds an API NoDups option which makes the NoDups helper
2354
2354
  function largely redundant, with all the functionality except the
2355
2355
  ability to avoid rewriting the file if there are no duplicates, but with
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exiftool-vendored.pl",
3
- "version": "13.31.0",
3
+ "version": "13.32.0",
4
4
  "description": "Vendored perl ExifTool for Node.js",
5
5
  "main": "./index.js",
6
6
  "homepage": "https://github.com/photostructure/exiftool-vendored.pl#readme",
@@ -33,6 +33,7 @@
33
33
  "update": "run-p update:*",
34
34
  "update:deps": "ncu -u",
35
35
  "update:exiftool": "bash -c ./update-exiftool.sh",
36
+ "check-version": "node check-version.js",
36
37
  "install:pinact": "go install github.com/suzuki-shunsuke/pinact/cmd/pinact@latest",
37
38
  "update:actions": "pinact run -u",
38
39
  "release": "release-it"
@@ -51,9 +52,10 @@
51
52
  }
52
53
  },
53
54
  "devDependencies": {
54
- "mocha": "^11.7.0",
55
+ "mocha": "^11.7.1",
55
56
  "npm-run-all": "4.1.5",
56
- "prettier": "^3.5.3",
57
- "release-it": "^19.0.3"
57
+ "prettier": "^3.6.2",
58
+ "release-it": "^19.0.3",
59
+ "xml2js": "^0.6.2"
58
60
  }
59
61
  }