exiftool-vendored.pl 12.28.0 → 12.34.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 (54) hide show
  1. package/bin/Changes +108 -5
  2. package/bin/MANIFEST +7 -0
  3. package/bin/META.json +1 -1
  4. package/bin/META.yml +1 -1
  5. package/bin/README +2 -2
  6. package/bin/arg_files/xmp2exif.args +2 -1
  7. package/bin/config_files/example.config +1 -1
  8. package/bin/exiftool +39 -25
  9. package/bin/fmt_files/gpx.fmt +1 -1
  10. package/bin/fmt_files/gpx_wpt.fmt +1 -1
  11. package/bin/lib/Image/ExifTool/BuildTagLookup.pm +16 -3
  12. package/bin/lib/Image/ExifTool/CBOR.pm +331 -0
  13. package/bin/lib/Image/ExifTool/Canon.pm +35 -5
  14. package/bin/lib/Image/ExifTool/Charset.pm +2 -0
  15. package/bin/lib/Image/ExifTool/DPX.pm +13 -2
  16. package/bin/lib/Image/ExifTool/Exif.pm +98 -4
  17. package/bin/lib/Image/ExifTool/FujiFilm.pm +1 -0
  18. package/bin/lib/Image/ExifTool/Geotag.pm +13 -2
  19. package/bin/lib/Image/ExifTool/GoPro.pm +16 -1
  20. package/bin/lib/Image/ExifTool/ICC_Profile.pm +96 -4
  21. package/bin/lib/Image/ExifTool/ID3.pm +15 -3
  22. package/bin/lib/Image/ExifTool/JSON.pm +7 -3
  23. package/bin/lib/Image/ExifTool/Jpeg2000.pm +60 -26
  24. package/bin/lib/Image/ExifTool/Lang/nl.pm +60 -59
  25. package/bin/lib/Image/ExifTool/M2TS.pm +81 -14
  26. package/bin/lib/Image/ExifTool/MacOS.pm +2 -2
  27. package/bin/lib/Image/ExifTool/Nikon.pm +12 -3
  28. package/bin/lib/Image/ExifTool/NikonSettings.pm +10 -2
  29. package/bin/lib/Image/ExifTool/Olympus.pm +8 -1
  30. package/bin/lib/Image/ExifTool/Other.pm +93 -0
  31. package/bin/lib/Image/ExifTool/PDF.pm +11 -12
  32. package/bin/lib/Image/ExifTool/PNG.pm +7 -6
  33. package/bin/lib/Image/ExifTool/Panasonic.pm +2 -2
  34. package/bin/lib/Image/ExifTool/Pentax.pm +2 -1
  35. package/bin/lib/Image/ExifTool/QuickTime.pm +67 -9
  36. package/bin/lib/Image/ExifTool/QuickTimeStream.pl +133 -119
  37. package/bin/lib/Image/ExifTool/README +9 -2
  38. package/bin/lib/Image/ExifTool/RIFF.pm +6 -1
  39. package/bin/lib/Image/ExifTool/Samsung.pm +47 -10
  40. package/bin/lib/Image/ExifTool/Sony.pm +80 -32
  41. package/bin/lib/Image/ExifTool/TagLookup.pm +139 -4
  42. package/bin/lib/Image/ExifTool/TagNames.pod +224 -30
  43. package/bin/lib/Image/ExifTool/WritePDF.pl +1 -0
  44. package/bin/lib/Image/ExifTool/WritePNG.pl +2 -0
  45. package/bin/lib/Image/ExifTool/WriteQuickTime.pl +17 -3
  46. package/bin/lib/Image/ExifTool/Writer.pl +43 -0
  47. package/bin/lib/Image/ExifTool/XMP.pm +21 -8
  48. package/bin/lib/Image/ExifTool/XMP2.pl +4 -1
  49. package/bin/lib/Image/ExifTool/XMPStruct.pl +3 -1
  50. package/bin/lib/Image/ExifTool.pm +84 -31
  51. package/bin/lib/Image/ExifTool.pod +24 -15
  52. package/bin/perl-Image-ExifTool.spec +1 -1
  53. package/bin/pp_build_exe.args +6 -4
  54. package/package.json +3 -3
package/bin/Changes CHANGED
@@ -4,9 +4,112 @@ ExifTool Version History
4
4
 
5
5
  RSS feed: https://exiftool.org/rss.xml
6
6
 
7
- Note: The most recent production release is Version 12.26. (Other versions are
7
+ Note: The most recent production release is Version 12.30. (Other versions are
8
8
  considered development releases, and are not uploaded to MetaCPAN.)
9
9
 
10
+ Oct. 27, 2021 - Version 12.34
11
+
12
+ - Added support for ICC.2:2019 (Profile version 5.0.0 - iccMAX) color profiles
13
+ - Added ability to detect/delete a Windows Zone.Identifier alternate data
14
+ stream (ADS) via the new ZoneIdentifier tag
15
+ - Added support for the Sony ILCE-7M4 (thanks Jos Roost)
16
+ - Added a new Sony lens (thanks LibRaw and Jos Roost)
17
+ - Added a new SonyModelID (thanks LibRaw)
18
+ - Added a new Canon RF lens (thanks Norbert Wasser)
19
+ - Improved handling of some SVG files
20
+ - Patched -overwrite_original_in_place option to open the output file in
21
+ update mode rather than write mode (to allow some write optimizations on
22
+ certain filesystems)
23
+ - Fixed case of tag ID for new XMP-iptcExt:EventID (thanks Michael Steidl)
24
+ - Fixed problem extracting ICC_Profile information from some PDF files
25
+ - API Changes:
26
+ - Added QuickTimePad option
27
+
28
+ Oct. 16, 2021 - Version 12.33
29
+
30
+ - Added support for DNG version 1.6.0.0
31
+ - Added two new Sony LensType values (thanks Jos Roost and LibRaw)
32
+ - Added some new elements to the XMP-crs:Look structure (thanks Herb)
33
+ - Added a few new IPTC XMP tags (thanks Michael Steidl)
34
+ - Added a new Canon RF lens (thanks Norbert Wasser)
35
+ - Decode Canon ShutterMode (thanks John Moyer)
36
+ - Extract LensModel from some Olympus MOV videos
37
+ - Generate MediaDataOffset/Size for MOV videos with zero-sized MDAT chunk
38
+ - Improvements to CBOR reader, including hex dump with -v3 option
39
+ - Recognize Final Cut Pro XML files
40
+ - Allow binary data of Protected tags to be extracted with the -X -j and -php
41
+ options with -b by setting the API RequestAll option to 3
42
+ - Changed name of "Canon EF 80-200mm f/4.5-5.6" lens with LensType 38 to add
43
+ "II" to the name (Exiv2 issue 1906)
44
+ - Fixed runtime warning when processing files with a .DIR extension
45
+
46
+ Sept. 30, 2021 - Version 12.32
47
+
48
+ - Added support for CBOR-format metadata in JUMBF (note that JUMBF support is
49
+ still experimental)
50
+ - Added a new Nikon LensID
51
+ - Added a new Pentax LensType
52
+ - Decode timed GPS for two more dashcam formats
53
+ - Support reference direction columns in -geotag CSV input
54
+ - Removed generation of GPSSpeedRef and GPSTrackRef tags in timed metadata for
55
+ most dashcam formats when speed is km/h and track is relative to true north
56
+ - Patched to allow writing of console output to named pipes
57
+ - Fixed formatting of InternalSerialNumber for some Panasonic cameras
58
+ - Fixed bug in arg_files/xmp2exif.args support file
59
+
60
+ Sept. 22, 2021 - Version 12.31
61
+
62
+ - Added a new SonyModelID and a couple of new Sony lenses (thanks Jos Roost)
63
+ - Added a new Canon LensType (thanks Chris Skopec)
64
+ - Added Composite GPSLatitude/Longitude tags for Sony videos to combine the
65
+ reference hemispheres as with the Composite tags for EXIF GPS
66
+ - Decode DPX AspectRatio
67
+ - Decode more GoPro MP4 tags
68
+ - Extract ICC_Profile from CS0 object in PDF files
69
+ - Extract encrypted GPS from Akaso V1 dashcam videos (can't yet decrypt)
70
+ - Improved handling of QuickTime iTunesInfo tags, and created new "iTunes"
71
+ family 1 group for these
72
+ - Patched so NoPDFList option also applies when writing
73
+ - Patched to allow user-defined PNG TextualData tags to be written only as iTXt
74
+ - Patched PDF reader to avoid concatenating values of multiple List-type tags
75
+ into a single tag
76
+
77
+ Aug. 12, 2021 - Version 12.30 (production release)
78
+
79
+ - Added read support for Portable FloatMap (PFM) images (this was a bit of a
80
+ pain because they have the same file extension as Printer Font Metrix files)
81
+ - Added a few new Nikon LensID values (thanks LibRaw)
82
+ - Added a new Canon LensType
83
+ - Added a new Olympus CameraType (thanks LibRaw)
84
+ - Added minor warning about unknown data between JPEG segments
85
+ - Added a couple of new NikonSettings tags (thanks Warren Hatch)
86
+ - Added a new Sony LensType (thanks Jos Roost)
87
+ - Decode 'id3 ' chunk in WAV audio files
88
+ - Decode timed GPS from concatenated Garmin dashcam videos
89
+ - Decode SamsungTrailer information from sefd atom in HEIC images
90
+ - Decode more Sony MakerNote tags for the ZV-E10 (thanks Jos Roost)
91
+ - Decode DepthMapTiff from JPEG images of more Samsung models
92
+ - Decode timed GPS from M2TS videos of yet another type of dashcam
93
+ - Extract PreviewImage from Xaiomi MP4 videos
94
+ - Changed name of second EmbeddedImage in Samsung trailer to EmbeddedImage2
95
+ - Improved Dutch translations for GPS tags (thanks Peter Dubbelman)
96
+ - Allow ICC_Profile to be "deleted" from AVIF files (actually, the profile
97
+ isn't really deleted. Instead, a zero-length profile is written to allow a
98
+ profile to be added back later since QuickTime item property containers
99
+ currently can't be created)
100
+ - Patched to remove 2 GB size limit when reading Photoshop ImageSourceData
101
+
102
+ July 9, 2021 - Version 12.29
103
+
104
+ - Added a few new Nikon and Olympus lenses (thanks LibRaw)
105
+ - Improved a QuickTime "File format error" message to be more meaningful, and
106
+ made it a minor error
107
+ - Changed PNG writer to add EXIF before IDAT
108
+ - Some changes the way JUMBF metadata is handled
109
+ - Patched to read timed GPS from a different type of INSV videos
110
+ - Patched a security issue
111
+ - Fixed problem where ExifTool could hang when processing mebx timed metadata
112
+
10
113
  June 22, 2021 - Version 12.28
11
114
 
12
115
  - Added read support for Leica Image File (LIF) images
@@ -27,7 +130,7 @@ June 9, 2021 - Version 12.27
27
130
  - Added warning if IPTCDigest is not current
28
131
  - Decode a couple more Pentax tags (thanks LibRaw)
29
132
  - Decode streaming GPS from Novatek INNOVV MP4 and TS videos
30
- - Improved tag names in confi_files/covert_regions.config (thanks StarGeek)
133
+ - Improved tag names in config_files/covert_regions.config (thanks StarGeek)
31
134
  - Changed MIME types for MS Office macro-enabled formats to add the .12
32
135
  - Patched Canon LensID logic to properly identify the Canon RF 24-105mm F4 L
33
136
  IS USM lens
@@ -1417,8 +1520,8 @@ Oct. 9, 2018 - Version 11.13
1417
1520
  - Added a new Canon LensType (thanks LibRaw)
1418
1521
  - Minor improvements to verbose dump of streaming GPS metadata
1419
1522
  - Reverted change of version 10.71 which resulted in Windows not recognizing
1420
- PNG CreationTime as written by ExifTool (added this feature to the
1421
- StrictDate API option instead)
1523
+ PNG CreationTime as written by ExifTool (added this feature to the API
1524
+ StrictDate option instead)
1422
1525
  - Improved decoding of Nikon CropHiSpeed (thanks LibRaw)
1423
1526
  - Improved -fast option to reduce memory usage when reading JPG, PNG,
1424
1527
  QuickTime-based and RIFF-based files via a sequential stream
@@ -1532,7 +1635,7 @@ June 21, 2018 - Version 11.03
1532
1635
  June 13, 2018 - Version 11.02
1533
1636
 
1534
1637
  - Added support for a different format of Apple iWorks files
1535
- - Added undocumented FixCorruptedMOV API option to allow fixing MOV videos
1638
+ - Added undocumented API FixCorruptedMOV option to allow fixing MOV videos
1536
1639
  with multiple 'mdat' atoms which were corrupted by ExifTool
1537
1640
  - Decode more QuickTime tags
1538
1641
  - Decode more PanasonicRaw tags (thanks Klaus Homeister)
package/bin/MANIFEST CHANGED
@@ -48,6 +48,7 @@ html/TagNames/Apple.html
48
48
  html/TagNames/Audible.html
49
49
  html/TagNames/BMP.html
50
50
  html/TagNames/BPG.html
51
+ html/TagNames/CBOR.html
51
52
  html/TagNames/Canon.html
52
53
  html/TagNames/CanonCustom.html
53
54
  html/TagNames/CanonRaw.html
@@ -125,6 +126,7 @@ html/TagNames/Ogg.html
125
126
  html/TagNames/Olympus.html
126
127
  html/TagNames/OpenEXR.html
127
128
  html/TagNames/Opus.html
129
+ html/TagNames/Other.html
128
130
  html/TagNames/PCX.html
129
131
  html/TagNames/PDF.html
130
132
  html/TagNames/PGF.html
@@ -216,6 +218,7 @@ lib/Image/ExifTool/BPG.pm
216
218
  lib/Image/ExifTool/BZZ.pm
217
219
  lib/Image/ExifTool/BigTIFF.pm
218
220
  lib/Image/ExifTool/BuildTagLookup.pm
221
+ lib/Image/ExifTool/CBOR.pm
219
222
  lib/Image/ExifTool/Canon.pm
220
223
  lib/Image/ExifTool/CanonCustom.pm
221
224
  lib/Image/ExifTool/CanonRaw.pm
@@ -350,6 +353,7 @@ lib/Image/ExifTool/Ogg.pm
350
353
  lib/Image/ExifTool/Olympus.pm
351
354
  lib/Image/ExifTool/OpenEXR.pm
352
355
  lib/Image/ExifTool/Opus.pm
356
+ lib/Image/ExifTool/Other.pm
353
357
  lib/Image/ExifTool/PCX.pm
354
358
  lib/Image/ExifTool/PDF.pm
355
359
  lib/Image/ExifTool/PGF.pm
@@ -717,6 +721,8 @@ t/PDF_6.out
717
721
  t/PDF_7.out
718
722
  t/PDF_8.out
719
723
  t/PDF_9.out
724
+ t/PFM.t
725
+ t/PFM_2.out
720
726
  t/PGF.t
721
727
  t/PGF_2.out
722
728
  t/PICT.t
@@ -1050,6 +1056,7 @@ t/images/Opus.opus
1050
1056
  t/images/PCX.pcx
1051
1057
  t/images/PDF.pdf
1052
1058
  t/images/PDF2.pdf
1059
+ t/images/PFM.pfm
1053
1060
  t/images/PGF.pgf
1054
1061
  t/images/PICT.pict
1055
1062
  t/images/PLIST-bin.plist
package/bin/META.json CHANGED
@@ -47,6 +47,6 @@
47
47
  }
48
48
  },
49
49
  "release_status" : "stable",
50
- "version" : "12.28",
50
+ "version" : "12.34",
51
51
  "x_serialization_backend" : "JSON::PP version 4.02"
52
52
  }
package/bin/META.yml CHANGED
@@ -28,5 +28,5 @@ recommends:
28
28
  Time::HiRes: 0
29
29
  requires:
30
30
  perl: 5.004
31
- version: 12.28
31
+ version: 12.34
32
32
  x_serialization_backend: 'JSON::PP version 4.02'
package/bin/README CHANGED
@@ -107,8 +107,8 @@ your home directory, then you would type the following commands in a
107
107
  terminal window to extract and run ExifTool:
108
108
 
109
109
  cd ~/Desktop
110
- gzip -dc Image-ExifTool-12.28.tar.gz | tar -xf -
111
- cd Image-ExifTool-12.28
110
+ gzip -dc Image-ExifTool-12.34.tar.gz | tar -xf -
111
+ cd Image-ExifTool-12.34
112
112
  ./exiftool t/images/ExifTool.jpg
113
113
 
114
114
  Note: These commands extract meta information from one of the test images.
@@ -13,6 +13,7 @@
13
13
  # 2015/01/12 - PH Avoid copying from non-standard namespaces
14
14
  # 2016/09/26 - PH Write Composite SubSec tags
15
15
  # 2018/05/07 - PH Added support for GPSDestXxxRef tags
16
+ # 2021/09/30 - PH Removed erroneous "-" when copying CreatorTool
16
17
  #
17
18
  # References: http://www.metadataworkinggroup.org/specs/
18
19
  #
@@ -34,7 +35,7 @@
34
35
  -Composite:SubSecDateTimeOriginal < XMP-photoshop:DateCreated
35
36
  -Composite:SubSecCreateDate < XMP-xmp:CreateDate
36
37
  -Composite:SubSecModifyDate < XMP-xmp:ModifyDate
37
- -EXIF:Software < -XMP-xmp:CreatorTool
38
+ -EXIF:Software < XMP-xmp:CreatorTool
38
39
  -EXIF:Copyright < XMP-dc:Rights
39
40
  -EXIF:Artist < XMP-dc:Creator
40
41
  # XMP flash information is translated by the Composite Flash tag
@@ -133,7 +133,7 @@
133
133
  # Example 12. PNG:NewPngTag1
134
134
  NewPngTag1 => { },
135
135
  # Example 13. PNG:NewPngTag2
136
- NewPngTag2 => { },
136
+ NewPngTag2 => { iTXt => 1 }, # (force this tag to be written as iTXt)
137
137
  # Example 14. PNG:NewPngTag3
138
138
  NewPngTag3 => { },
139
139
  },
package/bin/exiftool CHANGED
@@ -10,7 +10,7 @@
10
10
  use strict;
11
11
  require 5.004;
12
12
 
13
- my $version = '12.28';
13
+ my $version = '12.34';
14
14
 
15
15
  # add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
16
16
  my $exeDir;
@@ -1619,7 +1619,7 @@ if (@newValues) {
1619
1619
  next;
1620
1620
  }
1621
1621
  my %opts = ( Shift => 0 ); # shift values if possible instead of adding/deleting
1622
- # allow writing of 'unsafe' tags unless specified by wildcard
1622
+ # allow writing of 'Unsafe' tags unless specified by wildcard
1623
1623
  $opts{Protected} = 1 unless $tag =~ /[?*]/;
1624
1624
 
1625
1625
  if ($tag =~ s/<// and defined $newVal) {
@@ -1954,10 +1954,19 @@ sub GetImageInfo($$)
1954
1954
  my $pipe = $file;
1955
1955
  if ($doUnzip) {
1956
1956
  # pipe through gzip or bzip2 if necessary
1957
- if ($file =~ /\.gz$/i) {
1958
- $pipe = qq{gzip -dc "$file" |};
1959
- } elsif ($file =~ /\.bz2$/i) {
1960
- $pipe = qq{bzip2 -dc "$file" |};
1957
+ if ($file =~ /\.(gz|bz2)$/i) {
1958
+ my $type = lc $1;
1959
+ if ($file =~ /[^-_.'A-Za-z0-9\/\\]/) {
1960
+ Warn "Error: Insecure zip file name. Skipped\n";
1961
+ EFile($file);
1962
+ ++$countBad;
1963
+ return;
1964
+ }
1965
+ if ($type eq 'gz') {
1966
+ $pipe = qq{gzip -dc "$file" |};
1967
+ } else {
1968
+ $pipe = qq{bzip2 -dc "$file" |};
1969
+ }
1961
1970
  }
1962
1971
  }
1963
1972
  # evaluate -if expression for conditional processing
@@ -2276,7 +2285,7 @@ TAG: foreach $tag (@foundTags) {
2276
2285
  # avoid extracting Protected binary tags (eg. data blocks) [insider information]
2277
2286
  my $lcTag = lc $tag;
2278
2287
  $lcTag =~ s/ .*//;
2279
- next unless $$et{REQ_TAG_LOOKUP}{$lcTag};
2288
+ next unless $$et{REQ_TAG_LOOKUP}{$lcTag} or ($$et{OPTIONS}{RequestAll} || 0) > 2;
2280
2289
  }
2281
2290
  $val = ConvertBinary($val); # convert SCALAR references
2282
2291
  next unless defined $val;
@@ -3052,12 +3061,14 @@ sub SetImageInfo($$$)
3052
3061
  # temporarily disable CTRL-C during this critical operation
3053
3062
  $critical = 1;
3054
3063
  undef $tmpFile; # handle deletion of temporary file ourself
3055
- if ($et->Open(\*ORIG_FILE, $file, '>')) {
3064
+ if ($et->Open(\*ORIG_FILE, $file, '+<')) {
3056
3065
  binmode(ORIG_FILE);
3057
3066
  while (read(NEW_FILE, $buff, 65536)) {
3058
3067
  print ORIG_FILE $buff or $err = 1;
3059
3068
  }
3060
3069
  close(NEW_FILE);
3070
+ # Handle files being shorter than the original
3071
+ eval { truncate(ORIG_FILE, tell(ORIG_FILE)) } or $err = 1;
3061
3072
  close(ORIG_FILE) or $err = 1;
3062
3073
  if ($err) {
3063
3074
  Warn "Couldn't overwrite in place - $file\n";
@@ -3241,7 +3252,8 @@ sub FormatXML($$$)
3241
3252
  } elsif (ref $val eq 'HASH') {
3242
3253
  $gt = " rdf:parseType='Resource'>";
3243
3254
  my $val2 = '';
3244
- foreach (sort keys %$val) {
3255
+ my @keys = $$val{_ordered_keys_} ? @{$$val{_ordered_keys_}} : sort keys %$val;
3256
+ foreach (@keys) {
3245
3257
  # (some variable-namespace XML structure fields may have a different group)
3246
3258
  my $tok = /:/ ? $_ : ($grp . ':' . $_);
3247
3259
  $val2 .= "\n$ind <$tok" . FormatXML($$val{$_}, "$ind ", $grp) . "</$tok>";
@@ -3318,7 +3330,8 @@ sub FormatJSON($$$)
3318
3330
  } elsif (ref $val eq 'HASH') {
3319
3331
  my ($bra, $ket, $sep) = $json == 1 ? ('{','}',':') : ('Array(',')',' =>');
3320
3332
  print $fp $bra;
3321
- foreach (sort keys %$val) {
3333
+ my @keys = $$val{_ordered_keys_} ? @{$$val{_ordered_keys_}} : sort keys %$val;
3334
+ foreach (@keys) {
3322
3335
  print $fp ',' if $comma;
3323
3336
  my $key = EscapeJSON($_, 1);
3324
3337
  print $fp qq(\n$ind $key$sep );
@@ -4721,11 +4734,11 @@ I<TAG> may contain one or more leading family 0, 1, 2 or 7 group names,
4721
4734
  prefixed by optional family numbers, and separated colons. If no group name
4722
4735
  is specified, the tag is created in the preferred group, and updated in any
4723
4736
  other location where a same-named tag already exists. The preferred group
4724
- is the first group in the following list where I<TAG> is valid: 1) EXIF, 2)
4725
- IPTC, 3) XMP.
4737
+ in JPEG and TIFF-format images is the first group in the following list
4738
+ where I<TAG> is valid: 1) EXIF, 2) IPTC, 3) XMP.
4726
4739
 
4727
4740
  The wildcards C<*> and C<?> may be used in tag names to assign the same
4728
- value to multiple tags. When specified with wildcards, "unsafe" tags are
4741
+ value to multiple tags. When specified with wildcards, "Unsafe" tags are
4729
4742
  not written. A tag name of C<All> is equivalent to C<*> (except that it
4730
4743
  doesn't require quoting, while arguments with wildcards do on systems with
4731
4744
  shell globbing), and is often used when deleting all metadata (ie. C<-All=>)
@@ -4871,10 +4884,10 @@ See L</COPYING EXAMPLES> for examples using B<-tagsFromFile>.
4871
4884
  Notes:
4872
4885
 
4873
4886
  1) Some tags (generally tags which may affect the appearance of the image)
4874
- are considered "unsafe" to write, and are only copied if specified
4887
+ are considered "Unsafe" to write, and are only copied if specified
4875
4888
  explicitly (ie. no wildcards). See the
4876
4889
  L<tag name documentation|Image::ExifTool::TagNames> for more details about
4877
- "unsafe" tags.
4890
+ "Unsafe" tags.
4878
4891
 
4879
4892
  2) Be aware of the difference between excluding a tag from being copied
4880
4893
  (--I<TAG>), and deleting a tag (-I<TAG>=). Excluding a tag prevents it from
@@ -4972,7 +4985,7 @@ intermediate file (C<out.args> in this example):
4972
4985
  exiftool -@ out.args -sep ', ' dst.jpg
4973
4986
 
4974
4987
  Note: Be careful when copying information with this technique since it is
4975
- easy to write tags which are normally considered "unsafe". For instance,
4988
+ easy to write tags which are normally considered "Unsafe". For instance,
4976
4989
  the FileName and Directory tags are excluded in the example above to avoid
4977
4990
  renaming and moving the destination file. Also note that the second command
4978
4991
  above will produce warning messages for any tags which are not writable.
@@ -4992,8 +5005,8 @@ are in the default output. By default, list items are separated by a
4992
5005
  newline when extracted with the B<-b> option, but this may be changed (see
4993
5006
  the B<-sep> option for details). May be combined with B<-j>, B<-php> or
4994
5007
  B<-X> to extract binary data in JSON, PHP or XML format, but note that
4995
- "unsafe" tags must be specified explicitly to be extracted as binary in
4996
- these formats.
5008
+ "Unsafe" tags are not extracted as binary unless they are specified explicitly or
5009
+ the API RequestAll option is set to 3 or higher.
4997
5010
 
4998
5011
  With a leading double dash (B<--b> or B<--binary>), tags which contain
4999
5012
  binary data are suppressed in the output when reading.
@@ -5194,7 +5207,7 @@ By default the resulting group name is simplified by removing any leading
5194
5207
  C<Main:> and collapsing adjacent identical group names, but this can be
5195
5208
  avoided by placing a colon before the first family number (eg. B<-g:3:1>).
5196
5209
  Use the B<-listg> option to list group names for a specified family. The
5197
- SavePath and SaveFormat API options are automatically enabled if the
5210
+ API SavePath and SaveFormat options are automatically enabled if the
5198
5211
  respective family 5 or 6 group names are requested. See the
5199
5212
  L<API GetGroup documentation|Image::ExifTool/GetGroup> for more information.
5200
5213
 
@@ -5397,7 +5410,7 @@ with this command:
5397
5410
 
5398
5411
  produces output like this:
5399
5412
 
5400
- -- Generated by ExifTool 12.28 --
5413
+ -- Generated by ExifTool 12.34 --
5401
5414
  File: a.jpg - 2003:10:31 15:44:19
5402
5415
  (f/5.6, 1/60s, ISO 100)
5403
5416
  File: b.jpg - 2006:05:23 11:57:38
@@ -5414,7 +5427,7 @@ are effectively processed as separate input files.
5414
5427
  If a specified tag does not exist, a minor warning is issued and the line
5415
5428
  with the missing tag is not printed. However, the B<-f> option may be used
5416
5429
  to set the value of missing tags to '-' (but this may be configured via the
5417
- MissingTagValue API option), or the B<-m> option may be used to ignore minor
5430
+ API MissingTagValue option), or the B<-m> option may be used to ignore minor
5418
5431
  warnings and leave the missing values empty. Alternatively, B<-q -q> may be
5419
5432
  used to simply suppress the warning messages.
5420
5433
 
@@ -5713,9 +5726,10 @@ The B<-t> option adds tag table information to the output (see B<-t> for
5713
5726
  details).
5714
5727
 
5715
5728
  Note: This output is NOT the same as XMP because it uses
5716
- dynamically-generated property names corresponding to the ExifTool tag
5717
- names, and not the standard XMP properties. To write XMP instead, use the
5718
- B<-o> option with an XMP extension for the output file.
5729
+ dynamically-generated property names corresponding to the ExifTool tag names
5730
+ with ExifTool family 1 group names as namespaces, and not the standard XMP
5731
+ properties and namespaces. To write XMP instead, use the B<-o> option with
5732
+ an XMP extension for the output file.
5719
5733
 
5720
5734
  =back
5721
5735
 
@@ -6362,7 +6376,7 @@ exit status of the command (see L</EXIT STATUS>).
6362
6376
 
6363
6377
  Save the names of files giving errors (I<NUM> missing or 1), files that were
6364
6378
  unchanged (I<NUM> is 2), files that fail the B<-if> condition (I<NUM> is 4),
6365
- or any combination thereof (by summing I<NUM>, eg. B<-efile3> is the same
6379
+ or any combination thereof by summing I<NUM> (eg. B<-efile3> is the same
6366
6380
  has having both B<-efile> and B<-efile2> options with the same I<ERRFILE>).
6367
6381
  By default, file names are appended to any existing I<ERRFILE>, but
6368
6382
  I<ERRFILE> is overwritten if an exclamation point is added to the option
@@ -13,7 +13,7 @@
13
13
  # 2019/10/24 - PH Preserve sub-seconds in GPSDateTime value
14
14
  #
15
15
  # Notes: 1) Input file(s) must contain GPSLatitude and GPSLongitude.
16
- # 2) The -ee option is to extract the full track from video files.
16
+ # 2) The -ee3 option is to extract the full track from video files.
17
17
  # 3) The -fileOrder option may be used to control the order of the
18
18
  # generated track points when processing multiple files.
19
19
  #------------------------------------------------------------------------------
@@ -14,7 +14,7 @@
14
14
  # 2019/10/24 - PH Preserve sub-seconds in GPSDateTime value
15
15
  #
16
16
  # Notes: 1) Input file(s) must contain GPSLatitude and GPSLongitude.
17
- # 2) The -ee option is to extract the full track from video files.
17
+ # 2) The -ee3 option is to extract the full track from video files.
18
18
  # 3) The -fileOrder option may be used to control the order of the
19
19
  # generated track points when processing multiple files.
20
20
  #------------------------------------------------------------------------------
@@ -35,7 +35,7 @@ use Image::ExifTool::Sony;
35
35
  use Image::ExifTool::Validate;
36
36
  use Image::ExifTool::MacOS;
37
37
 
38
- $VERSION = '3.44';
38
+ $VERSION = '3.46';
39
39
  @ISA = qw(Exporter);
40
40
 
41
41
  sub NumbersFirst($$);
@@ -68,6 +68,7 @@ my %tweakOrder = (
68
68
  IPTC => 'Exif', # put IPTC after EXIF,
69
69
  GPS => 'XMP', # etc...
70
70
  Composite => 'Extra',
71
+ CBOR => 'JSON',
71
72
  GeoTiff => 'GPS',
72
73
  CanonVRD=> 'CanonCustom',
73
74
  DJI => 'Casio',
@@ -459,7 +460,7 @@ According to the specification, integer-format QuickTime date/time tags
459
460
  should be stored as UTC. Unfortunately, digital cameras often store local
460
461
  time values instead (presumably because they don't know the time zone). For
461
462
  this reason, by default ExifTool does not assume a time zone for these
462
- values. However, if the L<QuickTimeUTC|../ExifTool.html#QuickTimeUTC> API option is set, then ExifTool will
463
+ values. However, if the API L<QuickTimeUTC|../ExifTool.html#QuickTimeUTC> option is set, then ExifTool will
463
464
  assume these values are properly stored as UTC, and will convert them to
464
465
  local time when extracting.
465
466
 
@@ -468,6 +469,11 @@ the PrintConv option is enabled and no time zone is specified. This is
468
469
  because Apple software may display crazy values if the time zone is missing
469
470
  for some tags.
470
471
 
472
+ By default ExifTool will remove null padding from some QuickTime containers
473
+ in Canon CR3 files when writing, but the
474
+ L<QuickTimePad|../ExifTool.html#QuickTimePad> option may be used to preserve
475
+ the original size by padding with nulls if necessary.
476
+
471
477
  See
472
478
  L<https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/>
473
479
  for the official specification.
@@ -2117,7 +2123,7 @@ sub WriteTagNames($$)
2117
2123
  $short = $$shortName{$tableName};
2118
2124
  my @names = split ' ', $short;
2119
2125
  my $class = shift @names;
2120
- if (@names) {
2126
+ if (@names and $class ne 'Other') {
2121
2127
  # add heading for tables without a Main
2122
2128
  unless ($heading eq $class) {
2123
2129
  $heading = $class;
@@ -2145,6 +2151,13 @@ sub WriteTagNames($$)
2145
2151
  $short = $$shortName{$tableName};
2146
2152
  $short = $tableName unless $short;
2147
2153
  $url = "$short.html";
2154
+ # handle various tables in "Other.pm"
2155
+ if ($short =~ /^Other (.*)/) {
2156
+ $short = $1;
2157
+ $url = 'Other.html#' . $1;
2158
+ } else {
2159
+ $url = "$short.html";
2160
+ }
2148
2161
  print HTMLFILE "<a href='${url}'>$short</a>";
2149
2162
  ++$count;
2150
2163
  }