exiftool_vendored 13.21.0 → 13.24.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: e09f4452fe21aa8e743a6060c2eab2bd13d43b65eceb0a3665f5c85d58db0103
4
- data.tar.gz: 33e426b70e4a07102f6d60c61d1e162fbc5164198be900b9548f665e4a58f03a
3
+ metadata.gz: f33904cf1cb68c4430d4c01c96d72b95f075598f22d8dc3d11dd675d748d2d07
4
+ data.tar.gz: feb3c0a6a5adcdb9d641fe9c525fccbae1f418b6ea2410114a982e405361bef2
5
5
  SHA512:
6
- metadata.gz: 5195564935d181ce7d5338fe53be6b88918ddcef2042d41045dc6dae27046aac9fe4317e0e3d333882315339bf11f8811d00084fa9274e3c57388cafe8c179d4
7
- data.tar.gz: a04e8fc3f16ba37322ba42c7e6ec9bd8b7662232975b0f7cf6ee9483cc78ce1e7b4e136df76f1e6b7f3682a3a17b2084a4ac1fc35e3d4bc38448129b0ac88a79
6
+ metadata.gz: 715c7f81c667b8805769396e03b36bd2b2fc22c0085a4755e6f4eb12e9ede928732f3a28f484f14f854e6547bc473466992812ad57b35a70553d86b1f61c30ea
7
+ data.tar.gz: b3a603f49067c3d03fb7cd4ec1aaee82d3924010e532622ae46f7398e40d6612cbf3fcb8f7e02c0adddb305c971e31a4e8fce19470867b6b68b26567d6931ebb
data/bin/Changes CHANGED
@@ -7,10 +7,45 @@ RSS feed: https://exiftool.org/rss.xml
7
7
  Note: The most recent production release is Version 13.10. (Other versions are
8
8
  considered development releases, and are not uploaded to MetaCPAN.)
9
9
 
10
+ Mar. 7, 2025 - Version 13.24
11
+
12
+ - Changed -listf, -listr and -listwf options to print descriptions when either
13
+ -v or -l is added (previously only -l did this)
14
+ - Patched to avoid failed PCAP test due to differing time zones (github #319)
15
+
16
+ Mar. 7, 2025 - Version 13.23
17
+
18
+ - Added read support for CAP, PCAP and PACPNG files
19
+ - Added a number of new Sony LensType2 values (thanks Jos Roost)
20
+ - Added the 2 new GPSAltitudeRef values defined by EXIF 3.0
21
+ - Decode APP4 "Qualcomm Dual Camera Attributes" metadata
22
+ - EXIF X/YResolution, ResolutionUnit and FlashpixVersion are no longer treated
23
+ as mandatory tags (they were changed to optional in the EXIF 3.0 specification)
24
+ - Patched decoding of Nikon Z8 MenuSettings to accommodate changes in the data
25
+ structure as of firmware version 2.1
26
+ - Patched to avoid bug in Perl v5.26.3 which could cause hang when reading
27
+ very large and corrupted XMP
28
+ - Patched -plot option to avoid bug in Google Chrome SVG marker rendering
29
+ - API Changes:
30
+ - Fixed documentation for LargeFileSupport option to reflect current
31
+ default
32
+
33
+ Mar. 1, 2025 - Version 13.22
34
+
35
+ - Improvements and additions to the new plot feature
36
+ - Decode a few more DJI timed metadata tags
37
+ - Extract GainMapImage from PNG images
38
+ - Reverted WebP FileType change of version 13.20
39
+ - Set $^W in the exiftool application to re-enable global warnings (they have
40
+ been disabled since version 12.92 due to the shebang change)
41
+ - Fixed possible incorrect IFD number in "No size tag" warning
42
+ - Fixed "File is empty" error when using -plot with -w to write the output
43
+ file into the same directory as the input files
44
+
10
45
  Feb. 20, 2025 - Version 13.21
11
46
 
12
47
  - Patched issue that could result in runtime warning for some video files
13
- - Fixed a bug that could cause a compiler error when using the -plot option
48
+ - Fixed a bug with the new -plot option that could generate a compiler error
14
49
 
15
50
  Feb. 20, 2025 - Version 13.20
16
51
 
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
@@ -208,6 +209,7 @@ html/htmldump.html
208
209
  html/idiosyncracies.html
209
210
  html/index.html
210
211
  html/install.html
212
+ html/markers.svg
211
213
  html/metafiles.html
212
214
  html/mistakes.html
213
215
  html/overview.png
@@ -216,6 +218,7 @@ html/plot1.svg
216
218
  html/plot2.svg
217
219
  html/plot3.svg
218
220
  html/plot4.svg
221
+ html/plot5.svg
219
222
  html/standards.html
220
223
  html/struct.html
221
224
  html/style.css
@@ -385,6 +388,7 @@ lib/Image/ExifTool/Olympus.pm
385
388
  lib/Image/ExifTool/OpenEXR.pm
386
389
  lib/Image/ExifTool/Opus.pm
387
390
  lib/Image/ExifTool/Other.pm
391
+ lib/Image/ExifTool/PCAP.pm
388
392
  lib/Image/ExifTool/PCX.pm
389
393
  lib/Image/ExifTool/PDF.pm
390
394
  lib/Image/ExifTool/PGF.pm
@@ -756,6 +760,8 @@ t/OpenEXR.t
756
760
  t/OpenEXR_2.out
757
761
  t/Opus.t
758
762
  t/Opus_2.out
763
+ t/PCAP.t
764
+ t/PCAP_2.out
759
765
  t/PCX.t
760
766
  t/PCX_2.out
761
767
  t/PDF.t
@@ -1129,6 +1135,7 @@ t/images/OlympusE1.jpg
1129
1135
  t/images/OpenDoc.ods
1130
1136
  t/images/OpenEXR.exr
1131
1137
  t/images/Opus.opus
1138
+ t/images/PCAP.pcapng
1132
1139
  t/images/PCX.pcx
1133
1140
  t/images/PDF.pdf
1134
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.21"
53
+ "version" : "13.24"
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.21'
34
+ version: '13.24'
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.21.tar.gz | tar -xf -
113
- cd Image-ExifTool-13.21
112
+ gzip -dc Image-ExifTool-13.24.tar.gz | tar -xf -
113
+ cd Image-ExifTool-13.24
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,9 @@ use strict;
11
11
  use warnings;
12
12
  require 5.004;
13
13
 
14
- my $version = '13.21';
14
+ my $version = '13.24';
15
+
16
+ $^W = 1; # enable global warnings
15
17
 
16
18
  # add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
17
19
  my $exePath;
@@ -1551,10 +1553,11 @@ if ($textOut2) {
1551
1553
  undef $textOut2;
1552
1554
  next;
1553
1555
  }
1556
+ # make sure we can write the output text file before processing all input files
1554
1557
  CreateDirectory($textOut2); # create directory if necessary
1555
1558
  if ($mt->Open(\*OUTFILE, $textOut2, '>')) {
1556
- $tmpText = $textOut2; # delete if command aborted
1557
- $textOut2 = \*OUTFILE;
1559
+ close(\*OUTFILE);
1560
+ unlink($textOut2); # (this was just a test)
1558
1561
  } else {
1559
1562
  Error("Error creating $textOut2\n");
1560
1563
  undef $textOut2;
@@ -1968,27 +1971,36 @@ if ($textOut) {
1968
1971
  } else {
1969
1972
  print $sectTrailer if $sectTrailer;
1970
1973
  print $fileTrailer if $fileTrailer and not $fileHeader;
1971
- # print CSV information if necessary
1972
- my $err;
1973
- PrintCSV($textOut2) if $csv and not $isWriting;
1974
- # print SVG plot
1975
- if ($plot) {
1976
- $plot->Draw($textOut2 || \*STDOUT);
1977
- if ($$plot{Error}) {
1978
- Error("Error: $$plot{Error}\n");
1974
+ # print CSV or SVG output file if necessary
1975
+ my ($fp, $err);
1976
+ if ($textOut2) {
1977
+ if ($mt->Open(\*OUTFILE, $textOut2, '>')) {
1978
+ $fp = \*OUTFILE;
1979
+ } else {
1980
+ Error("Error creating $textOut2\n");
1979
1981
  $err = 1;
1980
- } elsif ($$plot{Warn}) {
1981
- Warn("Warning: $$plot{Warn}\n");
1982
1982
  }
1983
1983
  }
1984
- if ($textOut2) {
1985
- close($textOut2) or $err = 1;
1984
+ unless ($err) {
1985
+ PrintCSV($fp) if $csv and not $isWriting;
1986
+ # print SVG plot
1987
+ if ($plot) {
1988
+ $plot->Draw($fp || \*STDOUT);
1989
+ if ($$plot{Error}) {
1990
+ Error("Error: $$plot{Error}\n");
1991
+ $err = 1;
1992
+ } elsif ($$plot{Warn}) {
1993
+ Warn("Warning: $$plot{Warn}\n");
1994
+ }
1995
+ }
1996
+ }
1997
+ if ($fp) {
1998
+ close($fp) or $err = 1;
1986
1999
  if ($err) {
1987
- $mt->Unlink($tmpText);
2000
+ $mt->Unlink($textOut2);
1988
2001
  } else {
1989
2002
  $created{$textOut2} = 1;
1990
2003
  }
1991
- undef $tmpText;
1992
2004
  }
1993
2005
  }
1994
2006
 
@@ -4940,7 +4952,7 @@ sub PrintTagList($@)
4940
4952
  my $msg = shift;
4941
4953
  print $msg, ":\n" unless $quiet;
4942
4954
  my $tag;
4943
- if ($outFormat < 0 and $msg =~ /file extensions$/ and @_) {
4955
+ if (($outFormat < 0 or $verbose) and $msg =~ /file extensions$/ and @_) {
4944
4956
  foreach $tag (@_) {
4945
4957
  printf(" %-11s %s\n", $tag, GetFileType($tag, 1));
4946
4958
  }
@@ -5043,50 +5055,50 @@ supported by ExifTool (r = read, w = write, c = create):
5043
5055
 
5044
5056
  File Types
5045
5057
  ------------+-------------+-------------+-------------+------------
5046
- 360 r/w | DOCX r | ITC r | NUMBERS r | RAW r/w
5047
- 3FR r | DPX r | J2C r | NXD r | RIFF r
5048
- 3G2 r/w | DR4 r/w/c | JNG r/w | O r | RSRC r
5049
- 3GP r/w | DSS r | JP2 r/w | ODP r | RTF r
5050
- 7Z r | DV r | JPEG r/w | ODS r | RW2 r/w
5051
- A r | DVB r/w | JSON r | ODT r | RWL r/w
5052
- AA r | DVR-MS r | JXL r/w | OFR r | RWZ r
5053
- AAC r | DYLIB r | K25 r | OGG r | RM r
5054
- AAE r | EIP r | KDC r | OGV r | SEQ r
5055
- AAX r/w | EPS r/w | KEY r | ONP r | SKETCH r
5056
- ACR r | EPUB r | LA r | OPUS r | SO r
5057
- AFM r | ERF r/w | LFP r | ORF r/w | SR2 r/w
5058
- AI r/w | EXE r | LIF r | ORI r/w | SRF r
5059
- AIFF r | EXIF r/w/c | LNK r | OTF r | SRW r/w
5060
- APE r | EXR r | LRV r/w | PAC r | SVG r
5061
- ARQ r/w | EXV r/w/c | M2TS r | PAGES r | SWF r
5062
- ARW r/w | F4A/V r/w | M4A/V r/w | PBM r/w | THM r/w
5063
- ASF r | FFF r/w | MACOS r | PCD r | TIFF r/w
5064
- AVI r | FITS r | MAX r | PCX r | TORRENT r
5065
- AVIF r/w | FLA r | MEF r/w | PDB r | TTC r
5066
- AZW r | FLAC r | MIE r/w/c | PDF r/w | TTF r
5067
- BMP r | FLIF r/w | MIFF r | PEF r/w | TXT r
5068
- BPG r | FLV r | MKA r | PFA r | VCF r
5069
- BTF r | FPF r | MKS r | PFB r | VNT r
5070
- C2PA r | FPX r | MKV r | PFM r | VRD r/w/c
5071
- CHM r | GIF r/w | MNG r/w | PGF r | VSD r
5072
- COS r | GLV r/w | MOBI r | PGM r/w | WAV r
5073
- CR2 r/w | GPR r/w | MODD r | PLIST r | WDP r/w
5074
- CR3 r/w | GZ r | MOI r | PICT r | WEBP r/w
5075
- CRM r/w | HDP r/w | MOS r/w | PMP r | WEBM r
5076
- CRW r/w | HDR r | MOV r/w | PNG r/w | WMA r
5077
- CS1 r/w | HEIC r/w | MP3 r | PPM r/w | WMV r
5078
- CSV r | HEIF r/w | MP4 r/w | PPT r | WPG r
5079
- CUR r | HTML r | MPC r | PPTX r | WTV r
5080
- CZI r | ICC r/w/c | MPG r | PS r/w | WV r
5081
- DCM r | ICO r | MPO r/w | PSB r/w | X3F r/w
5082
- DCP r/w | ICS r | MQV r/w | PSD r/w | XCF r
5083
- DCR r | IDML r | MRC r | PSP r | XISF r
5084
- DFONT r | IIQ r/w | MRW r/w | QTIF r/w | XLS r
5085
- DIVX r | IND r/w | MXF r | R3D r | XLSX r
5086
- DJVU r | INSP r/w | NEF r/w | RA r | XMP r/w/c
5087
- DLL r | INSV r | NKA r | RAF r/w | ZIP r
5088
- DNG r/w | INX r | NKSC r/w | RAM r |
5089
- 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
5090
5102
 
5091
5103
  Meta Information
5092
5104
  ----------------------+----------------------+---------------------
@@ -6041,7 +6053,7 @@ with this command:
6041
6053
 
6042
6054
  produces output like this:
6043
6055
 
6044
- -- Generated by ExifTool 13.21 --
6056
+ -- Generated by ExifTool 13.24 --
6045
6057
  File: a.jpg - 2003:10:31 15:44:19
6046
6058
  (f/5.6, 1/60s, ISO 100)
6047
6059
  File: b.jpg - 2006:05:23 11:57:38
@@ -6847,12 +6859,12 @@ B<-listw> and B<-listx> options may be followed by an additional argument of
6847
6859
  the form C<-GROUP:All> to list only tags in a specific group, where C<GROUP>
6848
6860
  is one or more family 0-2 group names (excepting EXIF IFD groups) separated
6849
6861
  by colons. With B<-listg>, I<NUM> may be given to specify the group family,
6850
- otherwise family 0 is assumed. The B<-l> option may be combined with
6851
- B<-listf>, B<-listr> or B<-listwf> to add file descriptions to the list.
6852
- The B<-lang> option may be combined with B<-listx> to output descriptions in
6853
- a single language, and the B<-sort> and/or B<-lang> options may be combined
6854
- with B<-listgeo>. Also, the API GeolocMinPop, GeolocFeature and
6855
- 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
6856
6868
  examples:
6857
6869
 
6858
6870
  -list # list all tag names
@@ -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
  }
@@ -18,7 +18,7 @@ use Image::ExifTool::XMP;
18
18
  use Image::ExifTool::GPS;
19
19
  use Image::ExifTool::Protobuf;
20
20
 
21
- $VERSION = '1.13';
21
+ $VERSION = '1.14';
22
22
 
23
23
  sub ProcessDJIInfo($$$);
24
24
  sub ProcessSettings($$$);
@@ -266,6 +266,9 @@ my %convFloat2 = (
266
266
  },
267
267
  'dvtm_ac203_3-2-6-1' => { Name => 'ColorTemperature', Format => 'unsigned' }, # (NC)
268
268
  # dvtm_ac203_3-2-9-1 - looks like Z accerometer measurement, but 2 and 3 don't look like other components
269
+ 'dvtm_ac203_3-2-10-2' => { Name => 'AccelerometerX', Format => 'float' } , # (NC) left/right
270
+ 'dvtm_ac203_3-2-10-3' => { Name => 'AccelerometerY', Format => 'float' } , # (NC) front/back
271
+ 'dvtm_ac203_3-2-10-4' => { Name => 'AccelerometerZ', Format => 'float' } , # (NC) up/down
269
272
  # dvtm_ac203_3-4-1-4 - model code?
270
273
  'dvtm_ac203_3-4-2-1' => {
271
274
  Name => 'GPSInfo',
@@ -301,6 +304,9 @@ my %convFloat2 = (
301
304
  PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
302
305
  },
303
306
  'dvtm_ac204_3-2-6-1' => { Name => 'ColorTemperature', Format => 'unsigned' }, # (NC)
307
+ 'dvtm_ac204_3-2-10-2' => { Name => 'AccelerometerX', Format => 'float' } , # (NC) left/right
308
+ 'dvtm_ac204_3-2-10-3' => { Name => 'AccelerometerY', Format => 'float' } , # (NC) front/back
309
+ 'dvtm_ac204_3-2-10-4' => { Name => 'AccelerometerZ', Format => 'float' } , # (NC) up/down
304
310
  # dvtm_ac204_3-4-1-4 - model code?
305
311
  'dvtm_ac204_3-4-2-1' => {
306
312
  Name => 'GPSInfo',
@@ -413,6 +419,11 @@ my %convFloat2 = (
413
419
  Format => 'rational',
414
420
  PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
415
421
  },
422
+ 'dvtm_pm320_3-2-4-1' => { # (NC)
423
+ Name => 'FNumber',
424
+ Format => 'rational',
425
+ PrintConv => 'Image::ExifTool::Exif::PrintFNumber($val)',
426
+ },
416
427
  'dvtm_pm320_3-2-6-1' => { Name => 'DigitalZoom', Format => 'float' },
417
428
  'dvtm_pm320_3-3-4-1' => {
418
429
  Name => 'GPSInfo',
@@ -437,7 +437,7 @@ sub Process_marl($$$)
437
437
  {
438
438
  my ($et, $dirInfo, $tagTablePtr) = @_;
439
439
  my $dataPt = $$dirInfo{DataPt};
440
- my $dataPos = $$dirInfo{DataPos} + $$dirInfo{Base};
440
+ my $dataPos = ($$dirInfo{DataPos} || 0) + ($$dirInfo{Base} || 0);
441
441
  my $dataLen = length $$dataPt;
442
442
  my $vals = $$et{GMVals}; # running values for each channel (0=TimeStamp)
443
443
  my $chan = $$et{GMChan}; # running channel number
@@ -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 => {
@@ -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}"',
@@ -202,7 +206,7 @@ sub ProcessJPEG_HDR($$$);
202
206
  Groups => { 0 => 'APP6', 1 => 'DJI' },
203
207
  Notes => 'DJI Thermal Analysis Tool record',
204
208
  ValueConv => 'substr($val,7)',
205
- # also seen Motorola APP6 "MMIMETA\0", with sub-types: AL3A,ALED,MMI0,MOTD,QC3A
209
+ # also seen Motorola APP6 "MMIMETA\0", with sub-types: AL3A,ALED,MMI0,MOTD,QC3A,LMB1
206
210
  }],
207
211
  APP7 => [{
208
212
  Name => 'Pentax',