exiftool_vendored 13.22.0 → 13.25.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ad918781e3d8bd85a5482713e9f0007a5c6a49baf150bc89899989a38d2976b4
4
- data.tar.gz: 6c73a902a729e31ca68eb9cfb10162cc9cb58e4f5530a8383c791bd00f358f93
3
+ metadata.gz: b32fb55b43516b86b41460ed80654d3214bcee87257d0a90c614c40bb29fa16f
4
+ data.tar.gz: 02d0ebd73cd108f256854da2ae9994f0e33fe2db0c84a3af5b76c6510d0d3e10
5
5
  SHA512:
6
- metadata.gz: 7140b651487bbf72d3977a7af1dff81162a4e11de366121a9fcfffd6ef767df7c91e5e84c4f184ee2f0691fd014f90bdf1ed24bb71262d9b2b10225e3ae59374
7
- data.tar.gz: 607ce339d770ac81eb2bea3d1cf1a2029c3916bd717ebc300c20807ad7c443218c34ede0769f3329dea40fba4abdd1fedf6e7e18ae367c5fa6901a790f6048fd
6
+ metadata.gz: 44f7894cac459290dbf545321f068ae903b2212abc5cd88ef399949bfa667511e01cbc9049b6329301a268a7daf4b4a5bb05c66625655010356b9bc895d23954
7
+ data.tar.gz: 74d8a93399c703661ad4ed05d7f3a4748f994950be72be4b1237cb033a8c5b494ba9ce93a0bd79f9acae788afd74c8149e4ae3250b85d66d9bff18dd6209ec99
data/bin/Changes CHANGED
@@ -4,9 +4,42 @@ 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.10. (Other versions are
7
+ Note: The most recent production release is Version 13.25. (Other versions are
8
8
  considered development releases, and are not uploaded to MetaCPAN.)
9
9
 
10
+ Mar. 11, 2025 - Version 13.25 (production release)
11
+
12
+ - IMPORTANT: Fixed issue which could corrupt HEIC images from newer iPhones
13
+ when writing QuickTime:Rotation
14
+ - Decode more PLIST information from HEIC images
15
+ - Updated Geolocation databases from current geonames.org files
16
+ - Updated DarwinCore for the 2023 specification (thanks Herb)
17
+ - API Changes:
18
+ - Added KeepUTCTime option
19
+
20
+ Mar. 7, 2025 - Version 13.24
21
+
22
+ - Changed -listf, -listr and -listwf options to print descriptions when either
23
+ -v or -l is added (previously only -l did this)
24
+ - Patched to avoid failed PCAP test due to differing time zones (github #319)
25
+
26
+ Mar. 7, 2025 - Version 13.23
27
+
28
+ - Added read support for CAP, PCAP and PACPNG files (github #318)
29
+ - Added a number of new Sony LensType2 values (thanks Jos Roost)
30
+ - Added the 2 new GPSAltitudeRef values defined by EXIF 3.0
31
+ - Decode APP4 "Qualcomm Dual Camera Attributes" metadata
32
+ - EXIF X/YResolution, ResolutionUnit and FlashpixVersion are no longer treated
33
+ as mandatory tags (they were changed to optional in the EXIF 3.0 specification)
34
+ - Patched decoding of Nikon Z8 MenuSettings to accommodate changes in the data
35
+ structure as of firmware version 2.1
36
+ - Patched to avoid bug in Perl v5.26.3 which could cause hang when reading
37
+ very large and corrupted XMP
38
+ - Patched -plot option to avoid bug in Google Chrome SVG marker rendering
39
+ - API Changes:
40
+ - Fixed documentation for LargeFileSupport option to reflect current
41
+ default
42
+
10
43
  Mar. 1, 2025 - Version 13.22
11
44
 
12
45
  - Improvements and additions to the new plot feature
data/bin/MANIFEST CHANGED
@@ -137,6 +137,7 @@ html/TagNames/Olympus.html
137
137
  html/TagNames/OpenEXR.html
138
138
  html/TagNames/Opus.html
139
139
  html/TagNames/Other.html
140
+ html/TagNames/PCAP.html
140
141
  html/TagNames/PCX.html
141
142
  html/TagNames/PDF.html
142
143
  html/TagNames/PGF.html
@@ -387,6 +388,7 @@ lib/Image/ExifTool/Olympus.pm
387
388
  lib/Image/ExifTool/OpenEXR.pm
388
389
  lib/Image/ExifTool/Opus.pm
389
390
  lib/Image/ExifTool/Other.pm
391
+ lib/Image/ExifTool/PCAP.pm
390
392
  lib/Image/ExifTool/PCX.pm
391
393
  lib/Image/ExifTool/PDF.pm
392
394
  lib/Image/ExifTool/PGF.pm
@@ -758,6 +760,8 @@ t/OpenEXR.t
758
760
  t/OpenEXR_2.out
759
761
  t/Opus.t
760
762
  t/Opus_2.out
763
+ t/PCAP.t
764
+ t/PCAP_2.out
761
765
  t/PCX.t
762
766
  t/PCX_2.out
763
767
  t/PDF.t
@@ -1131,6 +1135,7 @@ t/images/OlympusE1.jpg
1131
1135
  t/images/OpenDoc.ods
1132
1136
  t/images/OpenEXR.exr
1133
1137
  t/images/Opus.opus
1138
+ t/images/PCAP.pcapng
1134
1139
  t/images/PCX.pcx
1135
1140
  t/images/PDF.pdf
1136
1141
  t/images/PDF2.pdf
data/bin/META.json CHANGED
@@ -50,5 +50,5 @@
50
50
  }
51
51
  },
52
52
  "release_status" : "stable",
53
- "version" : "13.22"
53
+ "version" : "13.25"
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: '13.22'
34
+ version: '13.25'
data/bin/README CHANGED
@@ -14,50 +14,50 @@ supported by ExifTool (r = read, w = write, c = create):
14
14
 
15
15
  File Types
16
16
  ------------+-------------+-------------+-------------+------------
17
- 360 r/w | DOCX r | ITC r | NUMBERS r | RAW r/w
18
- 3FR r | DPX r | J2C r | NXD r | RIFF r
19
- 3G2 r/w | DR4 r/w/c | JNG r/w | O r | RSRC r
20
- 3GP r/w | DSS r | JP2 r/w | ODP r | RTF r
21
- 7Z r | DV r | JPEG r/w | ODS r | RW2 r/w
22
- A r | DVB r/w | JSON r | ODT r | RWL r/w
23
- AA r | DVR-MS r | JXL r/w | OFR r | RWZ r
24
- AAC r | DYLIB r | K25 r | OGG r | RM r
25
- AAE r | EIP r | KDC r | OGV r | SEQ r
26
- AAX r/w | EPS r/w | KEY r | ONP r | SKETCH r
27
- ACR r | EPUB r | LA r | OPUS r | SO r
28
- AFM r | ERF r/w | LFP r | ORF r/w | SR2 r/w
29
- AI r/w | EXE r | LIF r | ORI r/w | SRF r
30
- AIFF r | EXIF r/w/c | LNK r | OTF r | SRW r/w
31
- APE r | EXR r | LRV r/w | PAC r | SVG r
32
- ARQ r/w | EXV r/w/c | M2TS r | PAGES r | SWF r
33
- ARW r/w | F4A/V r/w | M4A/V r/w | PBM r/w | THM r/w
34
- ASF r | FFF r/w | MACOS r | PCD r | TIFF r/w
35
- AVI r | FITS r | MAX r | PCX r | TORRENT r
36
- AVIF r/w | FLA r | MEF r/w | PDB r | TTC r
37
- AZW r | FLAC r | MIE r/w/c | PDF r/w | TTF r
38
- BMP r | FLIF r/w | MIFF r | PEF r/w | TXT r
39
- BPG r | FLV r | MKA r | PFA r | VCF r
40
- BTF r | FPF r | MKS r | PFB r | VNT r
41
- C2PA r | FPX r | MKV r | PFM r | VRD r/w/c
42
- CHM r | GIF r/w | MNG r/w | PGF r | VSD r
43
- COS r | GLV r/w | MOBI r | PGM r/w | WAV r
44
- CR2 r/w | GPR r/w | MODD r | PLIST r | WDP r/w
45
- CR3 r/w | GZ r | MOI r | PICT r | WEBP r/w
46
- CRM r/w | HDP r/w | MOS r/w | PMP r | WEBM r
47
- CRW r/w | HDR r | MOV r/w | PNG r/w | WMA r
48
- CS1 r/w | HEIC r/w | MP3 r | PPM r/w | WMV r
49
- CSV r | HEIF r/w | MP4 r/w | PPT r | WPG r
50
- CUR r | HTML r | MPC r | PPTX r | WTV r
51
- CZI r | ICC r/w/c | MPG r | PS r/w | WV r
52
- DCM r | ICO r | MPO r/w | PSB r/w | X3F r/w
53
- DCP r/w | ICS r | MQV r/w | PSD r/w | XCF r
54
- DCR r | IDML r | MRC r | PSP r | XISF r
55
- DFONT r | IIQ r/w | MRW r/w | QTIF r/w | XLS r
56
- DIVX r | IND r/w | MXF r | R3D r | XLSX r
57
- DJVU r | INSP r/w | NEF r/w | RA r | XMP r/w/c
58
- DLL r | INSV r | NKA r | RAF r/w | ZIP r
59
- DNG r/w | INX r | NKSC r/w | RAM r |
60
- DOC r | ISO r | NRW r/w | RAR r |
17
+ 360 r/w | DOCX r | ITC r | NUMBERS r | RAM r
18
+ 3FR r | DPX r | J2C r | NXD r | RAR r
19
+ 3G2 r/w | DR4 r/w/c | JNG r/w | O r | RAW r/w
20
+ 3GP r/w | DSS r | JP2 r/w | ODP r | RIFF r
21
+ 7Z r | DV r | JPEG r/w | ODS r | RSRC r
22
+ A r | DVB r/w | JSON r | ODT r | RTF r
23
+ AA r | DVR-MS r | JXL r/w | OFR r | RW2 r/w
24
+ AAC r | DYLIB r | K25 r | OGG r | RWL r/w
25
+ AAE r | EIP r | KDC r | OGV r | RWZ r
26
+ AAX r/w | EPS r/w | KEY r | ONP r | RM r
27
+ ACR r | EPUB r | LA r | OPUS r | SEQ r
28
+ AFM r | ERF r/w | LFP r | ORF r/w | SKETCH r
29
+ AI r/w | EXE r | LIF r | ORI r/w | SO r
30
+ AIFF r | EXIF r/w/c | LNK r | OTF r | SR2 r/w
31
+ APE r | EXR r | LRV r/w | PAC r | SRF r
32
+ ARQ r/w | EXV r/w/c | M2TS r | PAGES r | SRW r/w
33
+ ARW r/w | F4A/V r/w | M4A/V r/w | PBM r/w | SVG r
34
+ ASF r | FFF r/w | MACOS r | PCAP r | SWF r
35
+ AVI r | FITS r | MAX r | PCAPNG r | THM r/w
36
+ AVIF r/w | FLA r | MEF r/w | PCD r | TIFF r/w
37
+ AZW r | FLAC r | MIE r/w/c | PCX r | TORRENT r
38
+ BMP r | FLIF r/w | MIFF r | PDB r | TTC r
39
+ BPG r | FLV r | MKA r | PDF r/w | TTF r
40
+ BTF r | FPF r | MKS r | PEF r/w | TXT r
41
+ C2PA r | FPX r | MKV r | PFA r | VCF r
42
+ CHM r | GIF r/w | MNG r/w | PFB r | VNT r
43
+ COS r | GLV r/w | MOBI r | PFM r | VRD r/w/c
44
+ CR2 r/w | GPR r/w | MODD r | PGF r | VSD r
45
+ CR3 r/w | GZ r | MOI r | PGM r/w | WAV r
46
+ CRM r/w | HDP r/w | MOS r/w | PLIST r | WDP r/w
47
+ CRW r/w | HDR r | MOV r/w | PICT r | WEBP r/w
48
+ CS1 r/w | HEIC r/w | MP3 r | PMP r | WEBM r
49
+ CSV r | HEIF r/w | MP4 r/w | PNG r/w | WMA r
50
+ CUR r | HTML r | MPC r | PPM r/w | WMV r
51
+ CZI r | ICC r/w/c | MPG r | PPT r | WPG r
52
+ DCM r | ICO r | MPO r/w | PPTX r | WTV r
53
+ DCP r/w | ICS r | MQV r/w | PS r/w | WV r
54
+ DCR r | IDML r | MRC r | PSB r/w | X3F r/w
55
+ DFONT r | IIQ r/w | MRW r/w | PSD r/w | XCF r
56
+ DIVX r | IND r/w | MXF r | PSP r | XISF r
57
+ DJVU r | INSP r/w | NEF r/w | QTIF r/w | XLS r
58
+ DLL r | INSV r | NKA r | R3D r | XLSX r
59
+ DNG r/w | INX r | NKSC r/w | RA r | XMP r/w/c
60
+ DOC r | ISO r | NRW r/w | RAF r/w | ZIP r
61
61
 
62
62
  Meta Information
63
63
  ----------------------+----------------------+---------------------
@@ -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-13.22.tar.gz | tar -xf -
113
- cd Image-ExifTool-13.22
112
+ gzip -dc Image-ExifTool-13.25.tar.gz | tar -xf -
113
+ cd Image-ExifTool-13.25
114
114
  ./exiftool t/images/ExifTool.jpg
115
115
 
116
116
  Note: These commands extract meta information from one of the test images.
data/bin/exiftool CHANGED
@@ -11,7 +11,7 @@ use strict;
11
11
  use warnings;
12
12
  require 5.004;
13
13
 
14
- my $version = '13.22';
14
+ my $version = '13.25';
15
15
 
16
16
  $^W = 1; # enable global warnings
17
17
 
@@ -4952,7 +4952,7 @@ sub PrintTagList($@)
4952
4952
  my $msg = shift;
4953
4953
  print $msg, ":\n" unless $quiet;
4954
4954
  my $tag;
4955
- if ($outFormat < 0 and $msg =~ /file extensions$/ and @_) {
4955
+ if (($outFormat < 0 or $verbose) and $msg =~ /file extensions$/ and @_) {
4956
4956
  foreach $tag (@_) {
4957
4957
  printf(" %-11s %s\n", $tag, GetFileType($tag, 1));
4958
4958
  }
@@ -5055,50 +5055,50 @@ supported by ExifTool (r = read, w = write, c = create):
5055
5055
 
5056
5056
  File Types
5057
5057
  ------------+-------------+-------------+-------------+------------
5058
- 360 r/w | DOCX r | ITC r | NUMBERS r | RAW r/w
5059
- 3FR r | DPX r | J2C r | NXD r | RIFF r
5060
- 3G2 r/w | DR4 r/w/c | JNG r/w | O r | RSRC r
5061
- 3GP r/w | DSS r | JP2 r/w | ODP r | RTF r
5062
- 7Z r | DV r | JPEG r/w | ODS r | RW2 r/w
5063
- A r | DVB r/w | JSON r | ODT r | RWL r/w
5064
- AA r | DVR-MS r | JXL r/w | OFR r | RWZ r
5065
- AAC r | DYLIB r | K25 r | OGG r | RM r
5066
- AAE r | EIP r | KDC r | OGV r | SEQ r
5067
- AAX r/w | EPS r/w | KEY r | ONP r | SKETCH r
5068
- ACR r | EPUB r | LA r | OPUS r | SO r
5069
- AFM r | ERF r/w | LFP r | ORF r/w | SR2 r/w
5070
- AI r/w | EXE r | LIF r | ORI r/w | SRF r
5071
- AIFF r | EXIF r/w/c | LNK r | OTF r | SRW r/w
5072
- APE r | EXR r | LRV r/w | PAC r | SVG r
5073
- ARQ r/w | EXV r/w/c | M2TS r | PAGES r | SWF r
5074
- ARW r/w | F4A/V r/w | M4A/V r/w | PBM r/w | THM r/w
5075
- ASF r | FFF r/w | MACOS r | PCD r | TIFF r/w
5076
- AVI r | FITS r | MAX r | PCX r | TORRENT r
5077
- AVIF r/w | FLA r | MEF r/w | PDB r | TTC r
5078
- AZW r | FLAC r | MIE r/w/c | PDF r/w | TTF r
5079
- BMP r | FLIF r/w | MIFF r | PEF r/w | TXT r
5080
- BPG r | FLV r | MKA r | PFA r | VCF r
5081
- BTF r | FPF r | MKS r | PFB r | VNT r
5082
- C2PA r | FPX r | MKV r | PFM r | VRD r/w/c
5083
- CHM r | GIF r/w | MNG r/w | PGF r | VSD r
5084
- COS r | GLV r/w | MOBI r | PGM r/w | WAV r
5085
- CR2 r/w | GPR r/w | MODD r | PLIST r | WDP r/w
5086
- CR3 r/w | GZ r | MOI r | PICT r | WEBP r/w
5087
- CRM r/w | HDP r/w | MOS r/w | PMP r | WEBM r
5088
- CRW r/w | HDR r | MOV r/w | PNG r/w | WMA r
5089
- CS1 r/w | HEIC r/w | MP3 r | PPM r/w | WMV r
5090
- CSV r | HEIF r/w | MP4 r/w | PPT r | WPG r
5091
- CUR r | HTML r | MPC r | PPTX r | WTV r
5092
- CZI r | ICC r/w/c | MPG r | PS r/w | WV r
5093
- DCM r | ICO r | MPO r/w | PSB r/w | X3F r/w
5094
- DCP r/w | ICS r | MQV r/w | PSD r/w | XCF r
5095
- DCR r | IDML r | MRC r | PSP r | XISF r
5096
- DFONT r | IIQ r/w | MRW r/w | QTIF r/w | XLS r
5097
- DIVX r | IND r/w | MXF r | R3D r | XLSX r
5098
- DJVU r | INSP r/w | NEF r/w | RA r | XMP r/w/c
5099
- DLL r | INSV r | NKA r | RAF r/w | ZIP r
5100
- DNG r/w | INX r | NKSC r/w | RAM r |
5101
- DOC r | ISO r | NRW r/w | RAR r |
5058
+ 360 r/w | DOCX r | ITC r | NUMBERS r | RAM r
5059
+ 3FR r | DPX r | J2C r | NXD r | RAR r
5060
+ 3G2 r/w | DR4 r/w/c | JNG r/w | O r | RAW r/w
5061
+ 3GP r/w | DSS r | JP2 r/w | ODP r | RIFF r
5062
+ 7Z r | DV r | JPEG r/w | ODS r | RSRC r
5063
+ A r | DVB r/w | JSON r | ODT r | RTF r
5064
+ AA r | DVR-MS r | JXL r/w | OFR r | RW2 r/w
5065
+ AAC r | DYLIB r | K25 r | OGG r | RWL r/w
5066
+ AAE r | EIP r | KDC r | OGV r | RWZ r
5067
+ AAX r/w | EPS r/w | KEY r | ONP r | RM r
5068
+ ACR r | EPUB r | LA r | OPUS r | SEQ r
5069
+ AFM r | ERF r/w | LFP r | ORF r/w | SKETCH r
5070
+ AI r/w | EXE r | LIF r | ORI r/w | SO r
5071
+ AIFF r | EXIF r/w/c | LNK r | OTF r | SR2 r/w
5072
+ APE r | EXR r | LRV r/w | PAC r | SRF r
5073
+ ARQ r/w | EXV r/w/c | M2TS r | PAGES r | SRW r/w
5074
+ ARW r/w | F4A/V r/w | M4A/V r/w | PBM r/w | SVG r
5075
+ ASF r | FFF r/w | MACOS r | PCAP r | SWF r
5076
+ AVI r | FITS r | MAX r | PCAPNG r | THM r/w
5077
+ AVIF r/w | FLA r | MEF r/w | PCD r | TIFF r/w
5078
+ AZW r | FLAC r | MIE r/w/c | PCX r | TORRENT r
5079
+ BMP r | FLIF r/w | MIFF r | PDB r | TTC r
5080
+ BPG r | FLV r | MKA r | PDF r/w | TTF r
5081
+ BTF r | FPF r | MKS r | PEF r/w | TXT r
5082
+ C2PA r | FPX r | MKV r | PFA r | VCF r
5083
+ CHM r | GIF r/w | MNG r/w | PFB r | VNT r
5084
+ COS r | GLV r/w | MOBI r | PFM r | VRD r/w/c
5085
+ CR2 r/w | GPR r/w | MODD r | PGF r | VSD r
5086
+ CR3 r/w | GZ r | MOI r | PGM r/w | WAV r
5087
+ CRM r/w | HDP r/w | MOS r/w | PLIST r | WDP r/w
5088
+ CRW r/w | HDR r | MOV r/w | PICT r | WEBP r/w
5089
+ CS1 r/w | HEIC r/w | MP3 r | PMP r | WEBM r
5090
+ CSV r | HEIF r/w | MP4 r/w | PNG r/w | WMA r
5091
+ CUR r | HTML r | MPC r | PPM r/w | WMV r
5092
+ CZI r | ICC r/w/c | MPG r | PPT r | WPG r
5093
+ DCM r | ICO r | MPO r/w | PPTX r | WTV r
5094
+ DCP r/w | ICS r | MQV r/w | PS r/w | WV r
5095
+ DCR r | IDML r | MRC r | PSB r/w | X3F r/w
5096
+ DFONT r | IIQ r/w | MRW r/w | PSD r/w | XCF r
5097
+ DIVX r | IND r/w | MXF r | PSP r | XISF r
5098
+ DJVU r | INSP r/w | NEF r/w | QTIF r/w | XLS r
5099
+ DLL r | INSV r | NKA r | R3D r | XLSX r
5100
+ DNG r/w | INX r | NKSC r/w | RA r | XMP r/w/c
5101
+ DOC r | ISO r | NRW r/w | RAF r/w | ZIP r
5102
5102
 
5103
5103
  Meta Information
5104
5104
  ----------------------+----------------------+---------------------
@@ -6053,7 +6053,7 @@ with this command:
6053
6053
 
6054
6054
  produces output like this:
6055
6055
 
6056
- -- Generated by ExifTool 13.22 --
6056
+ -- Generated by ExifTool 13.25 --
6057
6057
  File: a.jpg - 2003:10:31 15:44:19
6058
6058
  (f/5.6, 1/60s, ISO 100)
6059
6059
  File: b.jpg - 2006:05:23 11:57:38
@@ -6859,12 +6859,12 @@ B<-listw> and B<-listx> options may be followed by an additional argument of
6859
6859
  the form C<-GROUP:All> to list only tags in a specific group, where C<GROUP>
6860
6860
  is one or more family 0-2 group names (excepting EXIF IFD groups) separated
6861
6861
  by colons. With B<-listg>, I<NUM> may be given to specify the group family,
6862
- otherwise family 0 is assumed. The B<-l> option may be combined with
6863
- B<-listf>, B<-listr> or B<-listwf> to add file descriptions to the list.
6864
- The B<-lang> option may be combined with B<-listx> to output descriptions in
6865
- a single language, and the B<-sort> and/or B<-lang> options may be combined
6866
- with B<-listgeo>. Also, the API GeolocMinPop, GeolocFeature and
6867
- GeolocAltNames options apply to the B<-listgeo> output. Here are some
6862
+ otherwise family 0 is assumed. The B<-l> or B<-v> option may be combined
6863
+ with B<-listf>, B<-listr> or B<-listwf> to add file descriptions to the
6864
+ list. The B<-lang> option may be combined with B<-listx> to output
6865
+ descriptions in a single language, and the B<-sort> and/or B<-lang> options
6866
+ may be combined with B<-listgeo>. Also, the API GeolocMinPop, GeolocFeature
6867
+ and GeolocAltNames options apply to the B<-listgeo> output. Here are some
6868
6868
  examples:
6869
6869
 
6870
6870
  -list # list all tag names
@@ -16,7 +16,7 @@ use vars qw($VERSION);
16
16
  use Image::ExifTool::Exif;
17
17
  use Image::ExifTool::PLIST;
18
18
 
19
- $VERSION = '1.14';
19
+ $VERSION = '1.15';
20
20
 
21
21
  sub ConvertPLIST($$);
22
22
 
@@ -307,7 +307,17 @@ sub ConvertPLIST($$);
307
307
  Name => 'Apple_0x004f',
308
308
  Unknown => 1,
309
309
  ValueConv => \&ConvertPLIST,
310
- }
310
+ },
311
+ 0x0054 => {
312
+ Name => 'Apple_0x0054',
313
+ Unknown => 1,
314
+ ValueConv => \&ConvertPLIST,
315
+ },
316
+ 0x005a => {
317
+ Name => 'Apple_0x005a',
318
+ Unknown => 1,
319
+ ValueConv => \&ConvertPLIST,
320
+ },
311
321
  );
312
322
 
313
323
  # PLIST-format CMTime structure (ref PH)
@@ -1795,8 +1795,8 @@ sub NumbersFirst($$)
1795
1795
  my ($a2, $b2) = ($a, $b);
1796
1796
  # expand numbers to 3 digits (with restrictions to avoid messing up
1797
1797
  # ascii-hex tags -- Nikon LensID's are 23 characters long)
1798
- $a2 =~ s/(\d+)/sprintf("%.3d",$1)/eg if $a2 =~ /^(APP|DMC-\w+ |dvtm_.*)?[.0-9 ]*$/ and length($a2)<23;
1799
- $b2 =~ s/(\d+)/sprintf("%.3d",$1)/eg if $b2 =~ /^(APP|DMC-\w+ |dvtm_.*)?[.0-9 ]*$/ and length($b2)<23;
1798
+ $a2 =~ s/(\d+)/sprintf("%.3d",$1)/eg if $a2 =~ /^(APP|DMC-\w+ |dvtm_.*|(IDB|SHB)-)?[.0-9 ]*$/ and length($a2)<23;
1799
+ $b2 =~ s/(\d+)/sprintf("%.3d",$1)/eg if $b2 =~ /^(APP|DMC-\w+ |dvtm_.*|(IDB|SHB)-)?[.0-9 ]*$/ and length($b2)<23;
1800
1800
  $caseInsensitive and $rtnVal = (lc($a2) cmp lc($b2));
1801
1801
  $rtnVal or $rtnVal = ($a2 cmp $b2);
1802
1802
  }
@@ -4,6 +4,7 @@
4
4
  # Description: Darwin Core XMP tags
5
5
  #
6
6
  # Revisions: 2013-01-28 - P. Harvey Created
7
+ # 2025-03-09 - Herb forum17172 changes dwc.tdwg.org 2023
7
8
  #
8
9
  # References: 1) http://rs.tdwg.org/dwc/index.htm
9
10
  # 2) https://exiftool.org/forum/index.php/topic,4442.0/all.html
@@ -15,7 +16,7 @@ use strict;
15
16
  use vars qw($VERSION);
16
17
  use Image::ExifTool::XMP;
17
18
 
18
- $VERSION = '1.07';
19
+ $VERSION = '1.08';
19
20
 
20
21
  my %dateTimeInfo = (
21
22
  # NOTE: Do NOT put "Groups" here because Groups hash must not be common!
@@ -35,7 +36,7 @@ my %event = (
35
36
  STRUCT_NAME => 'DarwinCore Event',
36
37
  NAMESPACE => 'dwc',
37
38
  day => { Writable => 'integer', Groups => { 2 => 'Time' } },
38
- earliestDate => { %dateTimeInfo, Groups => { 2 => 'Time' } },
39
+ earliestDate => { %dateTimeInfo, Groups => { 2 => 'Time' } }, # dwc.tdwg.org removed 2023
39
40
  endDayOfYear => { Writable => 'integer', Groups => { 2 => 'Time' } },
40
41
  eventDate => { %dateTimeInfo, Groups => { 2 => 'Time' } },
41
42
  eventID => { Avoid => 1, Notes => 'avoided in favor of XMP-iptcExt:EventID' },
@@ -63,7 +64,7 @@ my %event = (
63
64
  fieldNotes => { },
64
65
  fieldNumber => { },
65
66
  habitat => { },
66
- latestDate => { %dateTimeInfo, Groups => { 2 => 'Time' } },
67
+ latestDate => { %dateTimeInfo, Groups => { 2 => 'Time' } }, # dwc.tdwg.org removed 2023
67
68
  month => { Writable => 'integer', Groups => { 2 => 'Time' } },
68
69
  parentEventID => { },
69
70
  samplingEffort => { },
@@ -73,6 +74,7 @@ my %event = (
73
74
  startDayOfYear => { Writable => 'integer', Groups => { 2 => 'Time' } },
74
75
  verbatimEventDate => { Groups => { 2 => 'Time' } },
75
76
  year => { Writable => 'integer', Groups => { 2 => 'Time' } },
77
+ eventType => { }, # dwc.tdwg.org added 2023
76
78
  );
77
79
 
78
80
  # Darwin Core tags
@@ -161,6 +163,7 @@ my %event = (
161
163
  measurementType => { },
162
164
  measurementUnit => { },
163
165
  measurementValue => { },
166
+ parentMeasurementID => { }, # dwc.tdwg.org added 2023
164
167
  },
165
168
  },
166
169
  Occurrence => {
@@ -170,25 +173,25 @@ my %event = (
170
173
  associatedMedia => { },
171
174
  associatedOccurrences => { },
172
175
  associatedReferences => { },
173
- associatedSequences => { },
176
+ associatedSequences => { }, # dwc.tdwg.org removed 2023
174
177
  associatedTaxa => { },
175
178
  behavior => { },
176
179
  catalogNumber => { },
177
- disposition => { },
180
+ disposition => { }, # dwc.tdwg.org removed 2023
178
181
  establishmentMeans => { },
179
182
  individualCount => { },
180
- individualID => { },
183
+ individualID => { }, # dwc.tdwg.org removed 2023
181
184
  lifeStage => { },
182
185
  occurrenceDetails => { },
183
- occurrenceID => { },
186
+ occurrenceID => { }, # dwc.tdwg.org removed 2023
184
187
  occurrenceRemarks => { },
185
188
  occurrenceStatus => { },
186
189
  organismQuantity => { },
187
190
  organismQuantityType => { },
188
191
  otherCatalogNumbers => { },
189
192
  preparations => { },
190
- previousIdentifications => { },
191
- recordedBy => { },
193
+ previousIdentifications => { }, # dwc.tdwg.org removed 2023
194
+ recordedBy => { }, # dwc.tdwg.org removed 2023
192
195
  recordNumber => { },
193
196
  reproductiveCondition => { },
194
197
  sex => { },
@@ -197,6 +200,8 @@ my %event = (
197
200
  georeferenceVerificationStatus => { },
198
201
  pathway => { },
199
202
  recordedByID => { },
203
+ caste => { }, # dwc.tdwg.org added 2023
204
+ vitality => { }, # dwc.tdwg.org added 2023
200
205
  },
201
206
  },
202
207
  OccurrenceOccurrenceDetails => { Name => 'OccurrenceDetails', Flat => 1 },
@@ -207,7 +212,7 @@ my %event = (
207
212
  Struct => {
208
213
  STRUCT_NAME => 'DarwinCore Organism',
209
214
  NAMESPACE => 'dwc',
210
- associatedOccurrences => { },
215
+ associatedOccurrences => { }, # dwc.tdwg.org removed 2023
211
216
  associatedOrganisms => { },
212
217
  organismID => { },
213
218
  organismName => { },
@@ -291,6 +296,12 @@ my %event = (
291
296
  taxonomicStatus => { },
292
297
  verbatimTaxonRank => { },
293
298
  vernacularName => { Writable => 'lang-alt' },
299
+ superFamily => { }, # dwc.tdwg.org added 2023
300
+ subFamily => { }, # dwc.tdwg.org added 2023
301
+ tribe => { }, # dwc.tdwg.org added 2023
302
+ subTribe => { }, # dwc.tdwg.org added 2023
303
+ genericName => { }, # dwc.tdwg.org added 2023
304
+ infragenericEpithet => { }, # dwc.tdwg.org added 2023
294
305
  },
295
306
  },
296
307
  TaxonTaxonConceptID => { Name => 'TaxonConceptID', Flat => 1 },
@@ -321,7 +332,7 @@ my %event = (
321
332
  georeferenceProtocol => { },
322
333
  georeferenceRemarks => { },
323
334
  georeferenceSources => { },
324
- georeferenceVerificationStatus => { },
335
+ georeferenceVerificationStatus => { }, # dwc.tdwg.org removed 2023
325
336
  higherGeography => { },
326
337
  higherGeographyID => { },
327
338
  island => { },
@@ -12,7 +12,7 @@ use strict;
12
12
  use vars qw($VERSION);
13
13
  use Image::ExifTool::Exif;
14
14
 
15
- $VERSION = '1.57';
15
+ $VERSION = '1.58';
16
16
 
17
17
  my %coordConv = (
18
18
  ValueConv => 'Image::ExifTool::GPS::ToDegrees($val)',
@@ -112,8 +112,8 @@ my %printConvLonRef = (
112
112
  },
113
113
  0 => 'Above Sea Level', # (ellipsoidal surface, Exif 3.0)
114
114
  1 => 'Below Sea Level', # (ellipsoidal surface, Exif 3.0)
115
- # 2 => 'Above Sea Level', # (Exif 3.0)
116
- # 3 => 'Below Sea Level', # (Exif 3.0)
115
+ 2 => 'Positive Sea Level (sea-level ref)', # sea-level reference, Exif 3.0
116
+ 3 => 'Negative Sea Level (sea-level ref)', # sea-level reference, Exif 3.0
117
117
  },
118
118
  },
119
119
  0x0006 => {
Binary file
@@ -134,6 +134,10 @@ sub ProcessJPEG_HDR($$$);
134
134
  Name => 'FPXR', # (non-standard location written by some HP models)
135
135
  Condition => '$$valPt =~ /^FPXR\0/',
136
136
  SubDirectory => { TagTable => 'Image::ExifTool::FlashPix::Main' },
137
+ }, {
138
+ Name => 'QualcommDualCamera',
139
+ Condition => '$$valPt =~ /^Qualcomm Dual Camera Attributes/',
140
+ SubDirectory => { TagTable => 'Image::ExifTool::Qualcomm::DualCamera' },
137
141
  }, {
138
142
  Name => 'InfiRayFactory',
139
143
  Condition => '$$self{HasIJPEG}"',