exiftool-vendored.pl 13.42.0 → 13.44.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 (58) hide show
  1. package/bin/Changes +30 -1
  2. package/bin/MANIFEST +2 -0
  3. package/bin/META.json +1 -1
  4. package/bin/META.yml +1 -1
  5. package/bin/README +48 -48
  6. package/bin/exiftool +85 -80
  7. package/bin/lib/Image/ExifTool/Apple.pm +0 -1
  8. package/bin/lib/Image/ExifTool/BuildTagLookup.pm +2 -2
  9. package/bin/lib/Image/ExifTool/Canon.pm +23 -1
  10. package/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
  11. package/bin/lib/Image/ExifTool/DarwinCore.pm +2 -2
  12. package/bin/lib/Image/ExifTool/EXE.pm +1 -1
  13. package/bin/lib/Image/ExifTool/Exif.pm +1 -0
  14. package/bin/lib/Image/ExifTool/FLIR.pm +1 -1
  15. package/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  16. package/bin/lib/Image/ExifTool/FujiFilm.pm +2 -2
  17. package/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
  18. package/bin/lib/Image/ExifTool/Geolocation.pm +1 -1
  19. package/bin/lib/Image/ExifTool/Geotag.pm +1 -1
  20. package/bin/lib/Image/ExifTool/Google.pm +2 -2
  21. package/bin/lib/Image/ExifTool/ICC_Profile.pm +0 -1
  22. package/bin/lib/Image/ExifTool/Import.pm +1 -1
  23. package/bin/lib/Image/ExifTool/Jpeg2000.pm +1 -1
  24. package/bin/lib/Image/ExifTool/Kandao.pm +399 -0
  25. package/bin/lib/Image/ExifTool/LNK.pm +1 -1
  26. package/bin/lib/Image/ExifTool/MRC.pm +4 -4
  27. package/bin/lib/Image/ExifTool/MWG.pm +1 -1
  28. package/bin/lib/Image/ExifTool/MacOS.pm +1 -2
  29. package/bin/lib/Image/ExifTool/Matroska.pm +56 -15
  30. package/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  31. package/bin/lib/Image/ExifTool/Nikon.pm +5 -5
  32. package/bin/lib/Image/ExifTool/NikonCustom.pm +5 -6
  33. package/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  34. package/bin/lib/Image/ExifTool/PPM.pm +1 -1
  35. package/bin/lib/Image/ExifTool/Panasonic.pm +30 -6
  36. package/bin/lib/Image/ExifTool/PhaseOne.pm +17 -1
  37. package/bin/lib/Image/ExifTool/Plot.pm +2 -2
  38. package/bin/lib/Image/ExifTool/Protobuf.pm +2 -2
  39. package/bin/lib/Image/ExifTool/QuickTime.pm +48 -8
  40. package/bin/lib/Image/ExifTool/QuickTimeStream.pl +2 -2
  41. package/bin/lib/Image/ExifTool/README +5 -5
  42. package/bin/lib/Image/ExifTool/RIFF.pm +5 -4
  43. package/bin/lib/Image/ExifTool/Reconyx.pm +2 -2
  44. package/bin/lib/Image/ExifTool/Samsung.pm +11 -1
  45. package/bin/lib/Image/ExifTool/Sony.pm +13 -3
  46. package/bin/lib/Image/ExifTool/TNEF.pm +2 -2
  47. package/bin/lib/Image/ExifTool/TagLookup.pm +7129 -7108
  48. package/bin/lib/Image/ExifTool/TagNames.pod +257 -110
  49. package/bin/lib/Image/ExifTool/Text.pm +1 -1
  50. package/bin/lib/Image/ExifTool/Trailer.pm +1 -1
  51. package/bin/lib/Image/ExifTool/WriteQuickTime.pl +10 -2
  52. package/bin/lib/Image/ExifTool/Writer.pl +3 -2
  53. package/bin/lib/Image/ExifTool/XMP.pm +4 -2
  54. package/bin/lib/Image/ExifTool/ZIP.pm +1 -1
  55. package/bin/lib/Image/ExifTool.pm +5 -2
  56. package/bin/lib/Image/ExifTool.pod +79 -79
  57. package/bin/perl-Image-ExifTool.spec +47 -47
  58. package/package.json +4 -4
package/bin/Changes CHANGED
@@ -4,9 +4,38 @@ 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 13.36. (Other versions are
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
+ Dec. 15, 2025 - Version 13.44 (production release)
11
+
12
+ - Added read support for Kandao KVAR files
13
+ - Added a few new Panasonic tags (github #365)
14
+ - Added a new XMP-crs tag
15
+ - Added a few new Matroska tags
16
+ - Added a few values related to the new RAW file types for the Sony ILCE-7M5
17
+ (thanks Milos Komarcevic)
18
+ - Decode a few new PhaseOne tags ( (github #372)
19
+ - Decode timed GPS and other metadata from Kandao MP4 videos
20
+ - Improvements to family 1 and 5 groups for tags in Matroska videos, and
21
+ prioritize top-level tags when duplicates exist
22
+ - Assume a default TimecodeScale of 1ms for MKV videos
23
+ - Patched to avoid runtime warning when parsing corrupted QuickTime data
24
+ (thanks Neal Krawetz)
25
+ - Fixed decoding of ShutterCount for Sony ILCE-7M5 (github #369)
26
+
27
+ Dec. 4, 2025 - Version 13.43
28
+
29
+ - Added support for a couple of new Android QuickTime Keys tags
30
+ - Added date/time conversion for RIFF DateCreated
31
+ - Added ability to read/write (but not create/delete) the HEIF Mirroring tag
32
+ - Added a new SonyModelID
33
+ - Added a new Canon LensType (thanks Matthias)
34
+ - Decode ShutterCount for the Canon EOS R6 Mark III
35
+ - Decode another Samsung trailer tag
36
+ - Convert invalid Panasonic AFPointPosition to 'n/a'
37
+ - Fixed issue extracting timed GPS from some Wolfbox G900 MP4 videos
38
+
10
39
  Nov. 17, 2025 - Version 13.42
11
40
 
12
41
  - Added warning if tag arguments come before -csv= or -json= in a command
package/bin/MANIFEST CHANGED
@@ -105,6 +105,7 @@ html/TagNames/JPEG.html
105
105
  html/TagNames/JSON.html
106
106
  html/TagNames/JVC.html
107
107
  html/TagNames/Jpeg2000.html
108
+ html/TagNames/Kandao.html
108
109
  html/TagNames/Kodak.html
109
110
  html/TagNames/KyoceraRaw.html
110
111
  html/TagNames/LIF.html
@@ -339,6 +340,7 @@ lib/Image/ExifTool/JPEGDigest.pm
339
340
  lib/Image/ExifTool/JSON.pm
340
341
  lib/Image/ExifTool/JVC.pm
341
342
  lib/Image/ExifTool/Jpeg2000.pm
343
+ lib/Image/ExifTool/Kandao.pm
342
344
  lib/Image/ExifTool/Kodak.pm
343
345
  lib/Image/ExifTool/KyoceraRaw.pm
344
346
  lib/Image/ExifTool/LIF.pm
package/bin/META.json CHANGED
@@ -50,6 +50,6 @@
50
50
  }
51
51
  },
52
52
  "release_status" : "stable",
53
- "version" : "13.42",
53
+ "version" : "13.44",
54
54
  "x_serialization_backend" : "JSON::PP version 4.06"
55
55
  }
package/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.42'
34
+ version: '13.44'
35
35
  x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
package/bin/README CHANGED
@@ -14,52 +14,52 @@ supported by ExifTool (r = read, w = write, c = create):
14
14
 
15
15
  File Types
16
16
  ------------+-------------+-------------+-------------+------------
17
- 360 r/w | DR4 r/w/c | JP2 r/w | ODT r | RWL r/w
18
- 3FR r | DSF r | JPEG r/w | OFR r | RWZ r
19
- 3G2 r/w | DSS r | JSON r | OGG r | RM r
20
- 3GP r/w | DV r | JXL r/w | OGV r | SEQ r
21
- 7Z r | DVB r/w | K25 r | ONP r | SKETCH r
22
- A r | DVR-MS r | KDC r | OPUS r | SO r
23
- AA r | DYLIB r | KEY r | ORF r/w | SR2 r/w
24
- AAC r | EIP r | LA r | ORI r/w | SRF r
25
- AAE r | EPS r/w | LFP r | OTF r | SRW r/w
26
- AAX r/w | EPUB r | LIF r | PAC r | SVG r
27
- ACR r | ERF r/w | LNK r | PAGES r | SWF r
28
- AFM r | EXE r | LRV r/w | PBM r/w | THM r/w
29
- AI r/w | EXIF r/w/c | M2TS r | PCAP r | TIFF r/w
30
- AIFF r | EXR r | M4A/V r/w | PCAPNG r | TNEF r
31
- APE r | EXV r/w/c | MACOS r | PCD r | TORRENT r
32
- ARQ r/w | F4A/V r/w | MAX r | PCX r | TTC r
33
- ARW r/w | FFF r/w | MEF r/w | PDB r | TTF r
34
- ASF r | FITS r | MIE r/w/c | PDF r/w | TXT r
35
- AVI r | FLA r | MIFF r | PEF r/w | URL r
36
- AVIF r/w | FLAC r | MKA r | PFA r | VCF r
37
- AZW r | FLIF r/w | MKS r | PFB r | VNT r
38
- BMP r | FLV r | MKV r | PFM r | VRD r/w/c
39
- BPG r | FPF r | MNG r/w | PGF r | VSD r
40
- BTF r | FPX r | MOBI r | PGM r/w | VSDX r
41
- C2PA r | GIF r/w | MODD r | PLIST r | WAV r
42
- CHM r | GLV r/w | MOI r | PICT r | WDP r/w
43
- COS r | GPR r/w | MOS r/w | PMP r | WEBP r/w
44
- CR2 r/w | GZ r | MOV r/w | PNG r/w | WEBM r
45
- CR3 r/w | HDP r/w | MP3 r | PPM r/w | WMA r
46
- CRM r/w | HDR r | MP4 r/w | PPT r | WMV r
47
- CRW r/w | HEIC r/w | MPC r | PPTX r | WOFF r
48
- CS1 r/w | HEIF r/w | MPG r | PS r/w | WOFF2 r
49
- CSV r | HTML r | MPO r/w | PSB r/w | WPG r
50
- CUR r | ICC r/w/c | MQV r/w | PSD r/w | WTV r
51
- CZI r | ICO r | MRC r | PSP r | WV r
52
- DCM r | ICS r | MRW r/w | QTIF r/w | X3F r/w
53
- DCP r/w | IDML r | MXF r | R3D r | XCF r
54
- DCR r | IIQ r/w | NEF r/w | RA r | XISF r
55
- DFONT r | IND r/w | NKA r | RAF r/w | XLS r
56
- DIVX r | INSP r/w | NKSC r/w | RAM r | XLSX r
57
- DJVU r | INSV r | NRW r/w | RAR r | XMP r/w/c
58
- DLL r | INX r | NUMBERS r | RAW r/w | ZIP r
59
- DNG r/w | ISO r | NXD r | RIFF r |
60
- DOC r | ITC r | O r | RSRC r |
61
- DOCX r | J2C r | ODP r | RTF r |
62
- DPX r | JNG r/w | ODS r | RW2 r/w |
17
+ 360 r/w | DR4 r/w/c | JP2 r/w | ODS r | RW2 r/w
18
+ 3FR r | DSF r | JPEG r/w | ODT r | RWL r/w
19
+ 3G2 r/w | DSS r | JSON r | OFR r | RWZ r
20
+ 3GP r/w | DV r | JXL r/w | OGG r | RM r
21
+ 7Z r | DVB r/w | K25 r | OGV r | SEQ r
22
+ A r | DVR-MS r | KDC r | ONP r | SKETCH r
23
+ AA r | DYLIB r | KEY r | OPUS r | SO r
24
+ AAC r | EIP r | KVAR r | ORF r/w | SR2 r/w
25
+ AAE r | EPS r/w | LA r | ORI r/w | SRF r
26
+ AAX r/w | EPUB r | LFP r | OTF r | SRW r/w
27
+ ACR r | ERF r/w | LIF r | PAC r | SVG r
28
+ AFM r | EXE r | LNK r | PAGES r | SWF r
29
+ AI r/w | EXIF r/w/c | LRV r/w | PBM r/w | THM r/w
30
+ AIFF r | EXR r | M2TS r | PCAP r | TIFF r/w
31
+ APE r | EXV r/w/c | M4A/V r/w | PCAPNG r | TNEF r
32
+ ARQ r/w | F4A/V r/w | MACOS r | PCD r | TORRENT r
33
+ ARW r/w | FFF r/w | MAX r | PCX r | TTC r
34
+ ASF r | FITS r | MEF r/w | PDB r | TTF r
35
+ AVI r | FLA r | MIE r/w/c | PDF r/w | TXT r
36
+ AVIF r/w | FLAC r | MIFF r | PEF r/w | URL r
37
+ AZW r | FLIF r/w | MKA r | PFA r | VCF r
38
+ BMP r | FLV r | MKS r | PFB r | VNT r
39
+ BPG r | FPF r | MKV r | PFM r | VRD r/w/c
40
+ BTF r | FPX r | MNG r/w | PGF r | VSD r
41
+ C2PA r | GIF r/w | MOBI r | PGM r/w | VSDX r
42
+ CHM r | GLV r/w | MODD r | PLIST r | WAV r
43
+ COS r | GPR r/w | MOI r | PICT r | WDP r/w
44
+ CR2 r/w | GZ r | MOS r/w | PMP r | WEBP r/w
45
+ CR3 r/w | HDP r/w | MOV r/w | PNG r/w | WEBM r
46
+ CRM r/w | HDR r | MP3 r | PPM r/w | WMA r
47
+ CRW r/w | HEIC r/w | MP4 r/w | PPT r | WMV r
48
+ CS1 r/w | HEIF r/w | MPC r | PPTX r | WOFF r
49
+ CSV r | HTML r | MPG r | PS r/w | WOFF2 r
50
+ CUR r | ICC r/w/c | MPO r/w | PSB r/w | WPG r
51
+ CZI r | ICO r | MQV r/w | PSD r/w | WTV r
52
+ DCM r | ICS r | MRC r | PSP r | WV r
53
+ DCP r/w | IDML r | MRW r/w | QTIF r/w | X3F r/w
54
+ DCR r | IIQ r/w | MXF r | R3D r | XCF r
55
+ DFONT r | IND r/w | NEF r/w | RA r | XISF r
56
+ DIVX r | INSP r/w | NKA r | RAF r/w | XLS r
57
+ DJVU r | INSV r | NKSC r/w | RAM r | XLSX r
58
+ DLL r | INX r | NRW r/w | RAR r | XMP r/w/c
59
+ DNG r/w | ISO r | NUMBERS r | RAW r/w | ZIP r
60
+ DOC r | ITC r | NXD r | RIFF r |
61
+ DOCX r | J2C r | O r | RSRC r |
62
+ DPX r | JNG r/w | ODP r | RTF r |
63
63
 
64
64
  Meta Information
65
65
  ----------------------+----------------------+---------------------
@@ -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.42.tar.gz | tar -xf -
115
- cd Image-ExifTool-13.42
114
+ gzip -dc Image-ExifTool-13.44.tar.gz | tar -xf -
115
+ cd Image-ExifTool-13.44
116
116
  ./exiftool t/images/ExifTool.jpg
117
117
 
118
118
  Note: These commands extract meta information from one of the test images.
package/bin/exiftool CHANGED
@@ -11,7 +11,7 @@ use strict;
11
11
  use warnings;
12
12
  require 5.004;
13
13
 
14
- my $version = '13.42';
14
+ my $version = '13.44';
15
15
 
16
16
  $^W = 1; # enable global warnings
17
17
 
@@ -3287,7 +3287,7 @@ sub SetImageInfo($$$)
3287
3287
  }
3288
3288
  }
3289
3289
  next;
3290
- }
3290
+ }
3291
3291
  my @exclTags = @csvExclude;
3292
3292
  foreach (@exclTags) {
3293
3293
  tr/-0-9a-zA-Z_:#?*//dc; # remove illegal characters
@@ -5088,7 +5088,7 @@ input. Metadata is read from source files and printed in readable form to
5088
5088
  the console (or written to output text files with B<-w>).
5089
5089
 
5090
5090
  To write or delete metadata, tag values are assigned using
5091
- -I<TAG>=[I<VALUE>], and/or the B<-geotag>, B<-csv=> or B<-json=> options.
5091
+ -I<TAG>=[I<VALUE>], and/or the B<-geotag>, B<-csv=> or B<-json=> options.
5092
5092
  To copy or move metadata, the B<-tagsFromFile> feature is used. By default
5093
5093
  the original files are preserved with C<_original> appended to their names
5094
5094
  -- be sure to verify that the new files are OK before erasing the originals.
@@ -5107,52 +5107,52 @@ supported by ExifTool (r = read, w = write, c = create):
5107
5107
 
5108
5108
  File Types
5109
5109
  ------------+-------------+-------------+-------------+------------
5110
- 360 r/w | DR4 r/w/c | JP2 r/w | ODT r | RWL r/w
5111
- 3FR r | DSF r | JPEG r/w | OFR r | RWZ r
5112
- 3G2 r/w | DSS r | JSON r | OGG r | RM r
5113
- 3GP r/w | DV r | JXL r/w | OGV r | SEQ r
5114
- 7Z r | DVB r/w | K25 r | ONP r | SKETCH r
5115
- A r | DVR-MS r | KDC r | OPUS r | SO r
5116
- AA r | DYLIB r | KEY r | ORF r/w | SR2 r/w
5117
- AAC r | EIP r | LA r | ORI r/w | SRF r
5118
- AAE r | EPS r/w | LFP r | OTF r | SRW r/w
5119
- AAX r/w | EPUB r | LIF r | PAC r | SVG r
5120
- ACR r | ERF r/w | LNK r | PAGES r | SWF r
5121
- AFM r | EXE r | LRV r/w | PBM r/w | THM r/w
5122
- AI r/w | EXIF r/w/c | M2TS r | PCAP r | TIFF r/w
5123
- AIFF r | EXR r | M4A/V r/w | PCAPNG r | TNEF r
5124
- APE r | EXV r/w/c | MACOS r | PCD r | TORRENT r
5125
- ARQ r/w | F4A/V r/w | MAX r | PCX r | TTC r
5126
- ARW r/w | FFF r/w | MEF r/w | PDB r | TTF r
5127
- ASF r | FITS r | MIE r/w/c | PDF r/w | TXT r
5128
- AVI r | FLA r | MIFF r | PEF r/w | URL r
5129
- AVIF r/w | FLAC r | MKA r | PFA r | VCF r
5130
- AZW r | FLIF r/w | MKS r | PFB r | VNT r
5131
- BMP r | FLV r | MKV r | PFM r | VRD r/w/c
5132
- BPG r | FPF r | MNG r/w | PGF r | VSD r
5133
- BTF r | FPX r | MOBI r | PGM r/w | VSDX r
5134
- C2PA r | GIF r/w | MODD r | PLIST r | WAV r
5135
- CHM r | GLV r/w | MOI r | PICT r | WDP r/w
5136
- COS r | GPR r/w | MOS r/w | PMP r | WEBP r/w
5137
- CR2 r/w | GZ r | MOV r/w | PNG r/w | WEBM r
5138
- CR3 r/w | HDP r/w | MP3 r | PPM r/w | WMA r
5139
- CRM r/w | HDR r | MP4 r/w | PPT r | WMV r
5140
- CRW r/w | HEIC r/w | MPC r | PPTX r | WOFF r
5141
- CS1 r/w | HEIF r/w | MPG r | PS r/w | WOFF2 r
5142
- CSV r | HTML r | MPO r/w | PSB r/w | WPG r
5143
- CUR r | ICC r/w/c | MQV r/w | PSD r/w | WTV r
5144
- CZI r | ICO r | MRC r | PSP r | WV r
5145
- DCM r | ICS r | MRW r/w | QTIF r/w | X3F r/w
5146
- DCP r/w | IDML r | MXF r | R3D r | XCF r
5147
- DCR r | IIQ r/w | NEF r/w | RA r | XISF r
5148
- DFONT r | IND r/w | NKA r | RAF r/w | XLS r
5149
- DIVX r | INSP r/w | NKSC r/w | RAM r | XLSX r
5150
- DJVU r | INSV r | NRW r/w | RAR r | XMP r/w/c
5151
- DLL r | INX r | NUMBERS r | RAW r/w | ZIP r
5152
- DNG r/w | ISO r | NXD r | RIFF r |
5153
- DOC r | ITC r | O r | RSRC r |
5154
- DOCX r | J2C r | ODP r | RTF r |
5155
- DPX r | JNG r/w | ODS r | RW2 r/w |
5110
+ 360 r/w | DR4 r/w/c | JP2 r/w | ODS r | RW2 r/w
5111
+ 3FR r | DSF r | JPEG r/w | ODT r | RWL r/w
5112
+ 3G2 r/w | DSS r | JSON r | OFR r | RWZ r
5113
+ 3GP r/w | DV r | JXL r/w | OGG r | RM r
5114
+ 7Z r | DVB r/w | K25 r | OGV r | SEQ r
5115
+ A r | DVR-MS r | KDC r | ONP r | SKETCH r
5116
+ AA r | DYLIB r | KEY r | OPUS r | SO r
5117
+ AAC r | EIP r | KVAR r | ORF r/w | SR2 r/w
5118
+ AAE r | EPS r/w | LA r | ORI r/w | SRF r
5119
+ AAX r/w | EPUB r | LFP r | OTF r | SRW r/w
5120
+ ACR r | ERF r/w | LIF r | PAC r | SVG r
5121
+ AFM r | EXE r | LNK r | PAGES r | SWF r
5122
+ AI r/w | EXIF r/w/c | LRV r/w | PBM r/w | THM r/w
5123
+ AIFF r | EXR r | M2TS r | PCAP r | TIFF r/w
5124
+ APE r | EXV r/w/c | M4A/V r/w | PCAPNG r | TNEF r
5125
+ ARQ r/w | F4A/V r/w | MACOS r | PCD r | TORRENT r
5126
+ ARW r/w | FFF r/w | MAX r | PCX r | TTC r
5127
+ ASF r | FITS r | MEF r/w | PDB r | TTF r
5128
+ AVI r | FLA r | MIE r/w/c | PDF r/w | TXT r
5129
+ AVIF r/w | FLAC r | MIFF r | PEF r/w | URL r
5130
+ AZW r | FLIF r/w | MKA r | PFA r | VCF r
5131
+ BMP r | FLV r | MKS r | PFB r | VNT r
5132
+ BPG r | FPF r | MKV r | PFM r | VRD r/w/c
5133
+ BTF r | FPX r | MNG r/w | PGF r | VSD r
5134
+ C2PA r | GIF r/w | MOBI r | PGM r/w | VSDX r
5135
+ CHM r | GLV r/w | MODD r | PLIST r | WAV r
5136
+ COS r | GPR r/w | MOI r | PICT r | WDP r/w
5137
+ CR2 r/w | GZ r | MOS r/w | PMP r | WEBP r/w
5138
+ CR3 r/w | HDP r/w | MOV r/w | PNG r/w | WEBM r
5139
+ CRM r/w | HDR r | MP3 r | PPM r/w | WMA r
5140
+ CRW r/w | HEIC r/w | MP4 r/w | PPT r | WMV r
5141
+ CS1 r/w | HEIF r/w | MPC r | PPTX r | WOFF r
5142
+ CSV r | HTML r | MPG r | PS r/w | WOFF2 r
5143
+ CUR r | ICC r/w/c | MPO r/w | PSB r/w | WPG r
5144
+ CZI r | ICO r | MQV r/w | PSD r/w | WTV r
5145
+ DCM r | ICS r | MRC r | PSP r | WV r
5146
+ DCP r/w | IDML r | MRW r/w | QTIF r/w | X3F r/w
5147
+ DCR r | IIQ r/w | MXF r | R3D r | XCF r
5148
+ DFONT r | IND r/w | NEF r/w | RA r | XISF r
5149
+ DIVX r | INSP r/w | NKA r | RAF r/w | XLS r
5150
+ DJVU r | INSV r | NKSC r/w | RAM r | XLSX r
5151
+ DLL r | INX r | NRW r/w | RAR r | XMP r/w/c
5152
+ DNG r/w | ISO r | NUMBERS r | RAW r/w | ZIP r
5153
+ DOC r | ITC r | NXD r | RIFF r |
5154
+ DOCX r | J2C r | O r | RSRC r |
5155
+ DPX r | JNG r/w | ODP r | RTF r |
5156
5156
 
5157
5157
  Meta Information
5158
5158
  ----------------------+----------------------+---------------------
@@ -5338,7 +5338,7 @@ information. Use the B<-s> option to see the tag names instead.
5338
5338
  =item B<-->I<TAG>
5339
5339
 
5340
5340
  Exclude specified tag from extracted information. Same as the B<-x> option.
5341
- Group names and wildcards are permitted as described above for B<->I<TAG>.
5341
+ Group names and wildcards are permitted as described above for B<->I<TAG>.
5342
5342
  Once excluded from the output, a tag may not be re-included by a subsequent
5343
5343
  option. May also be used following a B<-tagsFromFile> option to exclude
5344
5344
  tags from being copied (when redirecting to another tag, it is the source
@@ -5367,7 +5367,7 @@ add or remove existing entries from a list, or to shift date/time values
5367
5367
  values (or decrement if I<VALUE> is negative), and C<-=> may be used to
5368
5368
  conditionally delete or replace a tag (see L</WRITING EXAMPLES> for
5369
5369
  examples). C<^=> is used to write an empty string instead of deleting the
5370
- tag when no I<VALUE> is given, but otherwise it is equivalent to C<=>.
5370
+ tag when no I<VALUE> is given, but otherwise it is equivalent to C<=>.
5371
5371
  (Note that the caret must be quoted on the Windows command line.)
5372
5372
 
5373
5373
  I<TAG> may contain one or more leading family 0, 1, 2 or 7 group names,
@@ -5432,7 +5432,7 @@ deleting all groups. For example, C<-2all:all=> deletes tags individually,
5432
5432
  while C<-all:all=> deletes entire blocks.
5433
5433
 
5434
5434
  5) The "APP" group names ("APP0" through "APP15") are used to delete JPEG
5435
- application segments which are not associated with another deletable group.
5435
+ application segments which are not associated with another deletable group.
5436
5436
  For example, specifying C<-APP14:All=> will NOT delete the APP14 "Adobe"
5437
5437
  segment because this is accomplished with C<-Adobe:All>. But note that
5438
5438
  these unnamed APP segments may not be excluded with C<--APPxx:all> when
@@ -5444,7 +5444,7 @@ command line. To shift a date/time value and copy it to another tag in the
5444
5444
  same operation, use the B<-globalTimeShift> option.
5445
5445
 
5446
5446
  7) The C<+=> operator may not be used to shift a List-type date/time tag
5447
- (eg. XMP-dc:Date) because C<+=> is used to add elements to the list.
5447
+ (eg. XMP-dc:Date) because C<+=> is used to add elements to the list.
5448
5448
  Instead, the B<-globalTimeShift> option should be used.
5449
5449
 
5450
5450
  Special feature: Integer values may be specified in hexadecimal with a
@@ -5459,7 +5459,8 @@ option for more details). Note that quotes are required around this
5459
5459
  argument to prevent shell redirection since it contains a C<E<lt>> symbol.
5460
5460
  If I<DATFILE>/I<FMT> is not provided, the effect is the same as C<-TAG=>,
5461
5461
  and the tag is simply deleted. C<+E<lt>=> or C<-E<lt>=> may also be used to
5462
- add or delete specific list entries, or to shift date/time values.
5462
+ add or delete specific list entries, to conditionally delete/replace tags,
5463
+ or to shift date/time values.
5463
5464
 
5464
5465
  =item B<-tagsFromFile> I<SRCFILE> or I<FMT>
5465
5466
 
@@ -5514,15 +5515,15 @@ destination group is specified, the information is written to the preferred
5514
5515
  group. Whitespace around the C<E<gt>> or C<E<lt>> is ignored. As a
5515
5516
  convenience, C<-tagsFromFile @> is assumed for any redirected tags which are
5516
5517
  specified without a prior B<-tagsFromFile> option. Copied tags may also be
5517
- added or deleted from a list with arguments of the form
5518
- E<quot>'-I<SRCTAG>+E<lt>I<DSTTAG>'E<quot> or
5518
+ added or deleted from a list, or conditionally deleted/replaced with
5519
+ arguments of the form E<quot>'-I<SRCTAG>+E<lt>I<DSTTAG>'E<quot> or
5519
5520
  E<quot>'-I<SRCTAG>-E<lt>I<DSTTAG>'E<quot> (but see Note 5 below).
5520
5521
 
5521
5522
  An extension of the redirection feature allows strings involving tag names
5522
5523
  to be used on the right hand side of the C<E<lt>> symbol with the syntax
5523
5524
  E<quot>'-I<DSTTAG>E<lt>I<STR>'E<quot>, where tag names in I<STR> are
5524
5525
  prefixed with a C<$> symbol. See the B<-p> option and the
5525
- L</Advanced formatting feature> section for more details about this syntax.
5526
+ L</Advanced formatting feature> section for more details about this syntax.
5526
5527
  Strings starting with a C<=> sign must insert a single space after the
5527
5528
  C<E<lt>> to avoid confusion with the C<E<lt>=> operator which sets the tag
5528
5529
  value from the contents of a file. A single space at the start of the
@@ -5598,7 +5599,7 @@ value in a string (with C<$>), but isn't when copying the tag directly.
5598
5599
 
5599
5600
  Finally, the behaviour is different when a destination tag or group of
5600
5601
  C<All> is used. When copying directly, a destination group and/or tag name
5601
- of C<All> writes to the same family 1 group and/or tag name as the source.
5602
+ of C<All> writes to the same family 1 group and/or tag name as the source.
5602
5603
  But when interpolated in a string, the identity of the source tags are lost
5603
5604
  and the value is written to all possible groups/tags. For example, the
5604
5605
  string form must be used in the following command since the intent is to set
@@ -5683,7 +5684,7 @@ when copying tags using the B<-tagsFromFile> option.
5683
5684
 
5684
5685
  2) If the hemisphere is known, a reference direction (N, S, E or W) is
5685
5686
  appended to each printed coordinate, but adding a C<+> or C<-> to the format
5686
- specifier (eg. C<%+.6f> or C<%-.6f>) prints a signed coordinate instead.
5687
+ specifier (eg. C<%+.6f> or C<%-.6f>) prints a signed coordinate instead.
5687
5688
  (C<+> adds a leading "+" for positive coordinates, but C<-> does not.)
5688
5689
 
5689
5690
  3) This print formatting may be disabled with the B<-n> option to extract
@@ -5876,7 +5877,7 @@ Force printing of tags even if they don't exist. This option applies to
5876
5877
  tags specified on the command line, or with the B<-p>, B<-if> (unless the
5877
5878
  API UndefTags option is set), B<-fileNUM> or B<-tagsFromFile> options. When
5878
5879
  B<-f> is used, the value of any missing tag is set to a dash (C<->) by
5879
- default, but this may be configured via the API MissingTagValue option.
5880
+ default, but this may be configured via the API MissingTagValue option.
5880
5881
  B<-f> is also used to add a 'flags' attribute to the B<-listx> output, or to
5881
5882
  allow tags to be deleted when writing with the B<-csv>=I<CSVFILE> feature.
5882
5883
 
@@ -5936,7 +5937,7 @@ into individual tags in the JSON output, but the original structure may be
5936
5937
  preserved with the B<-struct> option (this also causes all list-type XMP
5937
5938
  tags to be output as JSON arrays, otherwise single-item lists would be
5938
5939
  output as simple strings). The B<-a> option is implied when B<-json> is
5939
- used, but entries with identical JSON names are suppressed in the output.
5940
+ used, but entries with identical JSON names are suppressed in the output.
5940
5941
  (B<-G4> may be used to ensure that all tags have unique JSON names.)
5941
5942
 
5942
5943
  Adding the B<-D> or B<-H> option changes tag values to JSON objects with
@@ -6127,7 +6128,7 @@ with this command:
6127
6128
 
6128
6129
  produces output like this:
6129
6130
 
6130
- -- Generated by ExifTool 13.42 --
6131
+ -- Generated by ExifTool 13.44 --
6131
6132
  File: a.jpg - 2003:10:31 15:44:19
6132
6133
  (f/5.6, 1/60s, ISO 100)
6133
6134
  File: b.jpg - 2006:05:23 11:57:38
@@ -6385,7 +6386,7 @@ example:
6385
6386
  A special feature allows the copy number to be incremented for each
6386
6387
  processed file by using %C (upper case) instead of %c. This allows a
6387
6388
  sequential number to be added to output file names, even if the names are
6388
- different. For %C, a copy number of zero is not omitted as it is with %c.
6389
+ different. For %C, a copy number of zero is not omitted as it is with %c.
6389
6390
  A leading '-' causes the number to be reset at the start of each new
6390
6391
  directory (in the original directory structure if the files are being
6391
6392
  moved), and '+' has no effect. The number before the decimal place gives
@@ -6447,7 +6448,7 @@ example, the following pairs of commands give the same result:
6447
6448
  exiftool test.jpg -W+ out.txt # equivalent -W option
6448
6449
 
6449
6450
  4) Adding the B<-v> option to B<-W> sends a list of the tags and output file
6450
- names to the console instead of giving a verbose dump of the entire file.
6451
+ names to the console instead of giving a verbose dump of the entire file.
6451
6452
  (Unless appending all output to one file for each source file by using
6452
6453
  B<-W+> with an output file I<FMT> that does not contain %t, %g, %s or %o.)
6453
6454
 
@@ -6480,7 +6481,7 @@ are formatted as an RDF Bag, but they are combined into a single string when
6480
6481
  B<-s> or B<-sep> is used. Using B<-L> changes the XML encoding from "UTF-8"
6481
6482
  to "windows-1252". Other B<-charset> settings change the encoding only if
6482
6483
  there is a corresponding standard XML character set. The B<-b> option
6483
- causes binary data values to be written, encoded in base64 if necessary.
6484
+ causes binary data values to be written, encoded in base64 if necessary.
6484
6485
  The B<-t> option adds tag table information to the output (see B<-t> for
6485
6486
  details).
6486
6487
 
@@ -6791,7 +6792,7 @@ superseded by any value written to the FileModifyDate tag.
6791
6792
 
6792
6793
  =item B<-password> I<PASSWD>
6793
6794
 
6794
- Specify password to allow processing of password-protected PDF documents.
6795
+ Specify password to allow processing of password-protected PDF documents.
6795
6796
  If a password is required but not given, a warning is issued and the
6796
6797
  document is not processed. This option is ignored if a password is not
6797
6798
  required.
@@ -6896,7 +6897,7 @@ argument per line (NOT one option per line -- some options require
6896
6897
  additional arguments, and all arguments must be placed on separate lines).
6897
6898
  Blank lines and lines beginning with C<#> are ignored (unless they start
6898
6899
  with C<#[CSTR]>, in which case the rest of the line is treated as a C
6899
- string, allowing standard C escape sequences such as "\n" for a newline).
6900
+ string, allowing standard C escape sequences such as "\n" for a newline).
6900
6901
  White space at the start of a line is removed. Normal shell processing of
6901
6902
  arguments is not performed, which among other things means that arguments
6902
6903
  should not be quoted and spaces are treated as any other character.
@@ -6941,7 +6942,7 @@ list. The B<-lang> option may be combined with B<-listx> to output
6941
6942
  descriptions in a single language, and the B<-sort> and/or B<-lang> options
6942
6943
  may be combined with B<-listgeo> (installation of the alternate database is
6943
6944
  required for the additional languages). Also, the API GeolocMinPop,
6944
- GeolocFeature and GeolocAltNames options apply to the B<-listgeo> output.
6945
+ GeolocFeature and GeolocAltNames options apply to the B<-listgeo> output.
6945
6946
  Here are some examples:
6946
6947
 
6947
6948
  -list # list all tag names
@@ -6960,7 +6961,7 @@ Here are some examples:
6960
6961
  When combined with B<-listx>, the B<-s> option shortens the output by
6961
6962
  omitting the descriptions and values (as in the last example above), and
6962
6963
  B<-f> adds 'flags' and 'struct' attributes if applicable. The flags are
6963
- formatted as a comma-separated list of the following possible values:
6964
+ formatted as a comma-separated list of the following possible values:
6964
6965
  Avoid, Binary, List, Mandatory, Permanent, Protected, Unknown and Unsafe
6965
6966
  (see the L<Tag Name documentation|Image::ExifTool::TagNames>). For XMP List
6966
6967
  tags, the list type (Alt, Bag or Seq) is also given, and flattened structure
@@ -7070,7 +7071,7 @@ See L<https://exiftool.org/geolocation.html> for details.
7070
7071
 
7071
7072
  =item B<-globalTimeShift> I<SHIFT>
7072
7073
 
7073
- Shift all formatted date/time values by the specified amount when reading.
7074
+ Shift all formatted date/time values by the specified amount when reading.
7074
7075
  Does not apply to unformatted (B<-n>) output. I<SHIFT> takes the same form
7075
7076
  as the date/time shift when writing (see
7076
7077
  L<Image::ExifTool::Shift.pl|Image::ExifTool::Shift.pl> for details), with a
@@ -7296,7 +7297,7 @@ received up to this point, send a "{ready}" message to stdout when done
7296
7297
  (unless the B<-q> or B<-T> option is used), and continue trying to read
7297
7298
  arguments for the next command from I<ARGFILE>. To aid in command/response
7298
7299
  synchronization, any number appended to the B<-execute> option is echoed in
7299
- the "{ready}" message. For example, C<-execute613> results in "{ready613}".
7300
+ the "{ready}" message. For example, C<-execute613> results in "{ready613}".
7300
7301
  When this number is added, B<-q> no longer suppresses the "{ready}" message.
7301
7302
  (Also, see the B<-echo3> and B<-echo4> options for additional ways to pass
7302
7303
  signals back to your application.)
@@ -7315,7 +7316,7 @@ writing the following lines to the currently open I<ARGFILE>:
7315
7316
  -@
7316
7317
  NEWARGFILE
7317
7318
 
7318
- This causes I<ARGFILE> to be closed, and I<NEWARGFILE> to be kept open.
7319
+ This causes I<ARGFILE> to be closed, and I<NEWARGFILE> to be kept open.
7319
7320
  (Without the B<-stay_open> here, exiftool would have returned to reading
7320
7321
  arguments from I<ARGFILE> after reaching the end of I<NEWARGFILE>.)
7321
7322
 
@@ -7332,7 +7333,7 @@ Set user parameter. I<PARAM> is an arbitrary user parameter name. This is
7332
7333
  an interface to the API UserParam option (see the
7333
7334
  L<Image::ExifTool Options|Image::ExifTool/Options> documentation), and
7334
7335
  provides a method to access user-defined parameters in arguments to the
7335
- B<-if>, B<-p> and B<-fileNUM> options as if they were any other tag.
7336
+ B<-if>, B<-p> and B<-fileNUM> options as if they were any other tag.
7336
7337
  Appending a hash tag (C<#>) to I<PARAM> (eg. C<-userParam MyTag#=yes>) also
7337
7338
  causes the parameter to be extracted as a normal tag in the UserParam group.
7338
7339
  Similar to the B<-api> option, the parameter value is set to 1 if I<=VAL>
@@ -7350,7 +7351,7 @@ interpolated within a B<-if>, B<-p> or B<-fileNUM> argument, or a
7350
7351
  B<-tagsFromFile> redirection string. Tag names within these strings are
7351
7352
  prefixed by a C<$> symbol, and an arbitrary Perl expression may be applied
7352
7353
  to the tag value by placing braces around the tag name and inserting the
7353
- expression after the name, separated by a semicolon (ie. C<${TAG;EXPR}>).
7354
+ expression after the name, separated by a semicolon (ie. C<${TAG;EXPR}>).
7354
7355
  The expression acts on the value of the tag through the default input
7355
7356
  variable (C<$_>), and has access to the full ExifTool API through the
7356
7357
  current ExifTool object (C<$self>) and the tag key (C<$tag>). It may
@@ -7376,6 +7377,10 @@ expression is empty (ie. C<${TAG;}>). This removes the characters / \ ? * :
7376
7377
  illegal in Windows file names, so this feature is useful if tag values are
7377
7378
  used in file names.)
7378
7379
 
7380
+ Note that the expression is not evaluated for undefined (non-existant) tags,
7381
+ which may have other values if either the B<-m> or B<-f> command-line option
7382
+ or the API MissingTagValue option is used.
7383
+
7379
7384
  =head4 Helper functions
7380
7385
 
7381
7386
  Note that function names are case sensitive.
@@ -7403,7 +7408,7 @@ shift syntax. For example, to shift a date/time value back by one year:
7403
7408
  B<C<NoDups>>
7404
7409
 
7405
7410
  Removes duplicate items from a list with a separator specified by the
7406
- B<-sep> option. This function is most useful when copying list-type tags.
7411
+ B<-sep> option. This function is most useful when copying list-type tags.
7407
7412
  For example, the following command may be used to remove duplicate Keywords:
7408
7413
 
7409
7414
  exiftool -sep '##' '-keywords<${keywords;NoDups}' a.jpg
@@ -7450,7 +7455,7 @@ ExifTool 9.79 and later allow the file name encoding to be specified with
7450
7455
  C<-charset filename=CHARSET>, where C<CHARSET> is the name of a valid
7451
7456
  ExifTool character set, preferably C<UTF8> (see the B<-charset> option for a
7452
7457
  complete list). Setting this triggers the use of Windows wide-character i/o
7453
- routines, thus providing support for most Unicode file names (see note 4).
7458
+ routines, thus providing support for most Unicode file names (see note 4).
7454
7459
  But note that it is not trivial to pass properly encoded file names on the
7455
7460
  Windows command line (see L<https://exiftool.org/faq.html#Q18> for details),
7456
7461
  so placing them in a UTF-8 encoded B<-@> argfile and using
@@ -7790,14 +7795,14 @@ C<src.jpg>.
7790
7795
  Rebuild all EXIF meta information from scratch in an image. This technique
7791
7796
  can be used in JPEG images to repair corrupted EXIF information which
7792
7797
  otherwise could not be written due to errors. The C<Unsafe> tag is a
7793
- shortcut for unsafe EXIF tags in JPEG images which are not normally copied.
7798
+ shortcut for unsafe EXIF tags in JPEG images which are not normally copied.
7794
7799
  See the L<tag name documentation|Image::ExifTool::TagNames> for more details
7795
7800
  about unsafe tags.
7796
7801
 
7797
7802
  =item C<exiftool -Tagsfromfile a.jpg out.xmp>
7798
7803
 
7799
7804
  Copy meta information from C<a.jpg> to an XMP data file. If the XMP data
7800
- file C<out.xmp> already exists, it will be updated with the new information.
7805
+ file C<out.xmp> already exists, it will be updated with the new information.
7801
7806
  Otherwise the XMP data file will be created. Only metadata-only files may
7802
7807
  be created like this (files containing images may be edited but not
7803
7808
  created). See L</WRITING EXAMPLES> above for another technique to generate
@@ -7837,7 +7842,7 @@ C<dst.jpg>.
7837
7842
 
7838
7843
  =item C<exiftool '-Description<${FileName;s/\.[^.]*$//}' dir>
7839
7844
 
7840
- Set the image Description from the file name after removing the extension.
7845
+ Set the image Description from the file name after removing the extension.
7841
7846
  This example uses the L</Advanced formatting feature> to perform a
7842
7847
  substitution operation to remove the last dot and subsequent characters from
7843
7848
  the file name.
@@ -8068,7 +8073,7 @@ Add an IPTC keyword in a pipeline, saving output to a new file.
8068
8073
 
8069
8074
  =item C<curl -s http://a.domain.com/bigfile.jpg | exiftool -fast ->
8070
8075
 
8071
- Extract information from an image over the internet using the cURL utility.
8076
+ Extract information from an image over the internet using the cURL utility.
8072
8077
  The B<-fast> option prevents exiftool from scanning for trailer information,
8073
8078
  so only the meta information header is transferred.
8074
8079
 
@@ -116,7 +116,6 @@ sub ConvertPLIST($$);
116
116
  # - changed in 12.19 to MediaGroupUUID, NealKrawetz private communication
117
117
  # - changed back to ContentIdentifier since Apple writes this to Keys content.identifier (forum14874)
118
118
  Writable => 'string',
119
-
120
119
  },
121
120
  # 0x0012 - (QRMOutputType, ref 2)
122
121
  # 0x0013 - (SphereExternalForceOffset, ref 2)
@@ -346,7 +346,7 @@ or "Rights-en-US"). (See L<http://www.ietf.org/rfc/rfc3066.txt> for the RFC
346
346
  3066 specification.) A C<lang-alt> tag with no language code accesses the
347
347
  "x-default" language, but causes other languages for this tag to be deleted
348
348
  when writing. The "x-default" language code may be specified when writing
349
- to preserve other existing languages (eg. "XMP-dc:Description-x-default").
349
+ to preserve other existing languages (eg. "XMP-dc:Description-x-default").
350
350
  When reading, "x-default" is not specified.
351
351
 
352
352
  The XMP tags are organized according to schema B<Namespace> in the following
@@ -629,7 +629,7 @@ and RPM).
629
629
  Extra => q{
630
630
  The extra tags provide extra features or extra information extracted or
631
631
  generated by ExifTool that is not directly associated with another tag
632
- group. The B<Group> column lists the family 1 group name when reading.
632
+ group. The B<Group> column lists the family 1 group name when reading.
633
633
  Tags with a "-" in this column are write-only.
634
634
 
635
635
  Tags in the family 1 "System" group are referred to as "pseudo" tags because