exiftool_vendored 13.30.0 → 13.33.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 +4 -4
- data/bin/Changes +57 -1
- data/bin/MANIFEST +5 -0
- data/bin/META.json +4 -3
- data/bin/META.yml +3 -2
- data/bin/README +47 -46
- data/bin/exiftool +88 -60
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +7 -5
- data/bin/lib/Image/ExifTool/Canon.pm +16 -5
- data/bin/lib/Image/ExifTool/Exif.pm +7 -4
- data/bin/lib/Image/ExifTool/FlashPix.pm +4 -159
- data/bin/lib/Image/ExifTool/FujiFilm.pm +13 -3
- data/bin/lib/Image/ExifTool/Geotag.pm +5 -3
- data/bin/lib/Image/ExifTool/GoPro.pm +23 -4
- data/bin/lib/Image/ExifTool/LNK.pm +24 -3
- data/bin/lib/Image/ExifTool/Lang/cs.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/de.pm +2 -2
- data/bin/lib/Image/ExifTool/Lang/fr.pm +2 -2
- data/bin/lib/Image/ExifTool/Lang/it.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/ja.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/nl.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/pl.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +0 -1
- data/bin/lib/Image/ExifTool/LigoGPS.pm +14 -6
- data/bin/lib/Image/ExifTool/Microsoft.pm +158 -1
- data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
- data/bin/lib/Image/ExifTool/Nikon.pm +80 -39
- data/bin/lib/Image/ExifTool/NikonCustom.pm +40 -10
- data/bin/lib/Image/ExifTool/Olympus.pm +240 -35
- data/bin/lib/Image/ExifTool/PDF.pm +1 -0
- data/bin/lib/Image/ExifTool/Panasonic.pm +4 -4
- data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +276 -56
- data/bin/lib/Image/ExifTool/Plot.pm +2 -3
- data/bin/lib/Image/ExifTool/QuickTime.pm +13 -5
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +41 -17
- data/bin/lib/Image/ExifTool/Sigma.pm +19 -1
- data/bin/lib/Image/ExifTool/Sony.pm +5 -2
- data/bin/lib/Image/ExifTool/TNEF.pm +487 -0
- data/bin/lib/Image/ExifTool/TagLookup.pm +4374 -4262
- data/bin/lib/Image/ExifTool/TagNames.pod +259 -22
- data/bin/lib/Image/ExifTool/WriteExif.pl +14 -12
- data/bin/lib/Image/ExifTool/WritePDF.pl +1 -0
- data/bin/lib/Image/ExifTool/Writer.pl +142 -139
- data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- data/bin/lib/Image/ExifTool.pm +16 -7
- data/bin/lib/Image/ExifTool.pod +45 -44
- data/bin/perl-Image-ExifTool.spec +46 -45
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5188f2fb9bb03c179101219cd17d5129411b4f517c3e6acd10c915336d0fa89e
|
4
|
+
data.tar.gz: 953b6ce7f3f1a259cbc4f34e7b72a4851460d762297132f9498306644aede5e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6bc2708043ba0de2e7f492c456f0257a342771e7d962a306620ded3ce97a30727087a0d5200ed615ac083b394f8dee318b4e7e68e472739028df1c98d91e17fa
|
7
|
+
data.tar.gz: b2ce97b5597a47050ed22df9baec8a3b760f3da83956fd7c842e0d4eddbcc6b44597b0c40f024bfca54421141f27c954aae6bee6f51dbdb3eba271fa84cfb69f
|
data/bin/Changes
CHANGED
@@ -7,6 +7,60 @@ RSS feed: https://exiftool.org/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 13.30. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
9
9
|
|
10
|
+
July 25, 2025 - Version 13.33
|
11
|
+
|
12
|
+
- Added read support for TNEF files (eg. "winmail.dat")
|
13
|
+
- Added a new Canon HighlightTonePriority value (github #339)
|
14
|
+
- Decode Canon FocusBracketing tag (github #340)
|
15
|
+
- Decode more tags for newer Nikon Z models (thanks Warren Hatch)
|
16
|
+
- Decode a few more Olympus tags (thanks Karsten Gieselmann)
|
17
|
+
- Decode a few more FujiFilm tags (github #343)
|
18
|
+
- Handle Olympus RawDev2IFD tag 0x8000 (named it RawDevSubIFD)
|
19
|
+
- Improved recognition of some Sony lenses (github #342)
|
20
|
+
- Enhanced the -p option to cycle through sub-subdocuments
|
21
|
+
- Improved extraction of GoPro timed GPS to use sub-subdocuments to separate
|
22
|
+
the individual fixes, allowing -p to extract all fixes at sub-second
|
23
|
+
resolution (althought for earlier models these don't all contain timestamps)
|
24
|
+
- Extract EXIF information from Sigma fp MOV videos
|
25
|
+
- Patched to avoid "multi-segment EXIF with external pointers" error when
|
26
|
+
writing Olympus OM-1 JPG files converted by some utilities
|
27
|
+
- Fixed decoding of Panasonic LongExposureNRUsed (thanks AndrewJ)
|
28
|
+
- Fixed long-standing bug when using special characters in the -d option
|
29
|
+
argument
|
30
|
+
|
31
|
+
July 2, 2025 - Version 13.32
|
32
|
+
|
33
|
+
- Added a new Olympus CameraType (thanks Herb and Albert Shan)
|
34
|
+
- Added a new Sony LensType (github #335)
|
35
|
+
- Added a new Nikon CropHiSpeed value (thanks Albert Shan)
|
36
|
+
- Added a warning if a tag value couldn't be packed for writing to a binary
|
37
|
+
data structure
|
38
|
+
- Decode more Ricoh/Pentax AF tags for some models (thanks Karsten Gieselmann)
|
39
|
+
- Decode Canon HDR-PQ tag (github #336)
|
40
|
+
- Extract a couple more EXIF tags
|
41
|
+
- Patched to allow a dot (.) in the name of a structure element when writing
|
42
|
+
- Fixed "uninitialized value" bug when using -w with the -stay_open feature
|
43
|
+
- Fixed bug in -file option when using tag names to specify the name of the
|
44
|
+
alternate file (the tags were taken only from the first input file unless a
|
45
|
+
file name formatting code was also specified)
|
46
|
+
|
47
|
+
June 19, 2025 - Version 13.31
|
48
|
+
|
49
|
+
- Added a new CanonModelID and RFLensType (thanks Norbert Wasser)
|
50
|
+
- Added some new FujiFilm AdvancedFilter values (thanks Greybeard)
|
51
|
+
- Added a new Nikon Z LensID (thanks Warren Hatch)
|
52
|
+
- Decode a few new Sigma tags
|
53
|
+
- Decode two more types of timed GPS from MP4 videos
|
54
|
+
- Decode more Pentax AF tags for some models (thanks Karsten Gieselmann)
|
55
|
+
- Extract Pages MediaBox from PDF files (github #333)
|
56
|
+
- Enhanced Validate feature to check some embedded images
|
57
|
+
- Remove sub-seconds if they exist when writing a PDF date
|
58
|
+
- Removed a debugging warning left in the -plot update of 13.28
|
59
|
+
- Changed DNG ProfileIFD RGBTables to Binary-type tag (github #334)
|
60
|
+
- Internal code improvements in the handling of some trailers
|
61
|
+
- Patched LNK string parsing for Windows nonconformity (github #332)
|
62
|
+
- Fixed a few possible "uninitialized value" warnings
|
63
|
+
|
10
64
|
May 22, 2025 - Version 13.30 (production release)
|
11
65
|
|
12
66
|
- Added a new Canon RF lens (thanks Norbert Wasser)
|
@@ -50,6 +104,8 @@ Apr. 25, 2025 - Version 13.28
|
|
50
104
|
- Decode ShutterCount for Canon EOS R8 and R50 (github #325)
|
51
105
|
- Decode ThumbnailTIFF from some Insta360 videos
|
52
106
|
- Decode AROT:HDRGainCurveSize from APP10
|
107
|
+
- Enhanced the -plot feature to allow Multi option to specify a different
|
108
|
+
number of datasets for each plot
|
53
109
|
- Updated to the 2025 MPF specification
|
54
110
|
- Renamed K-3III AFPoints to AFPointsSelected and changed decoding
|
55
111
|
- Fixed bug introduced in 13.23 that could cause an incorrect parsing of XMP
|
@@ -388,7 +444,7 @@ Nov. 12, 2024 - Version 13.03
|
|
388
444
|
Nov. 5, 2024 - Version 13.02
|
389
445
|
|
390
446
|
- Enhanced -j -l output to add optional "fmt" and "hex" fields
|
391
|
-
- Enhanced -geotag option to support
|
447
|
+
- Enhanced -geotag option to support Google Maps "Export Timeline data" JSON
|
392
448
|
format
|
393
449
|
- Changed ProductVersion of Windows launcher to match ExifTool version
|
394
450
|
- Patched to use empty group name instead of "Copy0" for family 4 group name
|
data/bin/MANIFEST
CHANGED
@@ -177,6 +177,7 @@ html/TagNames/SigmaRaw.html
|
|
177
177
|
html/TagNames/Sony.html
|
178
178
|
html/TagNames/SonyIDC.html
|
179
179
|
html/TagNames/Stim.html
|
180
|
+
html/TagNames/TNEF.html
|
180
181
|
html/TagNames/Text.html
|
181
182
|
html/TagNames/Theora.html
|
182
183
|
html/TagNames/Torrent.html
|
@@ -434,6 +435,7 @@ lib/Image/ExifTool/SigmaRaw.pm
|
|
434
435
|
lib/Image/ExifTool/Sony.pm
|
435
436
|
lib/Image/ExifTool/SonyIDC.pm
|
436
437
|
lib/Image/ExifTool/Stim.pm
|
438
|
+
lib/Image/ExifTool/TNEF.pm
|
437
439
|
lib/Image/ExifTool/TagInfoXML.pm
|
438
440
|
lib/Image/ExifTool/TagLookup.pm
|
439
441
|
lib/Image/ExifTool/TagNames.pod
|
@@ -887,6 +889,8 @@ t/Sony.t
|
|
887
889
|
t/Sony_2.out
|
888
890
|
t/Sony_3.out
|
889
891
|
t/Sony_5.out
|
892
|
+
t/TNEF.t
|
893
|
+
t/TNEF_2.out
|
890
894
|
t/TestLib.pm
|
891
895
|
t/Text.t
|
892
896
|
t/Text_2.out
|
@@ -1179,6 +1183,7 @@ t/images/Sigma.x3f
|
|
1179
1183
|
t/images/SigmaDP2.x3f
|
1180
1184
|
t/images/Sony.jpg
|
1181
1185
|
t/images/Sony.pmp
|
1186
|
+
t/images/TNEF.tnef
|
1182
1187
|
t/images/Text.csv
|
1183
1188
|
t/images/Text1.txt
|
1184
1189
|
t/images/Text2.txt
|
data/bin/META.json
CHANGED
@@ -4,13 +4,13 @@
|
|
4
4
|
"Phil Harvey (philharvey66 at gmail.com)"
|
5
5
|
],
|
6
6
|
"dynamic_config" : 1,
|
7
|
-
"generated_by" : "ExtUtils::MakeMaker version 7.
|
7
|
+
"generated_by" : "ExtUtils::MakeMaker version 7.62, CPAN::Meta::Converter version 2.150010",
|
8
8
|
"license" : [
|
9
9
|
"perl_5"
|
10
10
|
],
|
11
11
|
"meta-spec" : {
|
12
12
|
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
|
13
|
-
"version" :
|
13
|
+
"version" : 2
|
14
14
|
},
|
15
15
|
"name" : "Image-ExifTool",
|
16
16
|
"no_index" : {
|
@@ -50,5 +50,6 @@
|
|
50
50
|
}
|
51
51
|
},
|
52
52
|
"release_status" : "stable",
|
53
|
-
"version" : "13.
|
53
|
+
"version" : "13.33",
|
54
|
+
"x_serialization_backend" : "JSON::PP version 4.06"
|
54
55
|
}
|
data/bin/META.yml
CHANGED
@@ -7,7 +7,7 @@ build_requires:
|
|
7
7
|
configure_requires:
|
8
8
|
ExtUtils::MakeMaker: '0'
|
9
9
|
dynamic_config: 1
|
10
|
-
generated_by: 'ExtUtils::MakeMaker version 7.
|
10
|
+
generated_by: 'ExtUtils::MakeMaker version 7.62, CPAN::Meta::Converter version 2.150010'
|
11
11
|
license: perl
|
12
12
|
meta-spec:
|
13
13
|
url: http://module-build.sourceforge.net/META-spec-v1.4.html
|
@@ -31,4 +31,5 @@ recommends:
|
|
31
31
|
Time::HiRes: '0'
|
32
32
|
requires:
|
33
33
|
perl: '5.004'
|
34
|
-
version: '13.
|
34
|
+
version: '13.33'
|
35
|
+
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
|
data/bin/README
CHANGED
@@ -14,50 +14,51 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
14
14
|
|
15
15
|
File Types
|
16
16
|
------------+-------------+-------------+-------------+------------
|
17
|
-
360 r/w |
|
18
|
-
3FR r |
|
19
|
-
3G2 r/w |
|
20
|
-
3GP r/w |
|
21
|
-
7Z r |
|
22
|
-
A r |
|
23
|
-
AA r |
|
24
|
-
AAC r |
|
25
|
-
AAE r |
|
26
|
-
AAX r/w |
|
27
|
-
ACR r |
|
28
|
-
AFM r |
|
29
|
-
AI r/w |
|
30
|
-
AIFF r |
|
31
|
-
APE r |
|
32
|
-
ARQ r/w |
|
33
|
-
ARW r/w |
|
34
|
-
ASF r |
|
35
|
-
AVI r |
|
36
|
-
AVIF r/w |
|
37
|
-
AZW r |
|
38
|
-
BMP r |
|
39
|
-
BPG r |
|
40
|
-
BTF r |
|
41
|
-
C2PA r |
|
42
|
-
CHM r |
|
43
|
-
COS r |
|
44
|
-
CR2 r/w |
|
45
|
-
CR3 r/w |
|
46
|
-
CRM r/w |
|
47
|
-
CRW r/w |
|
48
|
-
CS1 r/w |
|
49
|
-
CSV r |
|
50
|
-
CUR r |
|
51
|
-
CZI r |
|
52
|
-
DCM r |
|
53
|
-
DCP r/w |
|
54
|
-
DCR r |
|
55
|
-
DFONT r |
|
56
|
-
DIVX r |
|
57
|
-
DJVU r |
|
58
|
-
DLL r |
|
59
|
-
DNG r/w |
|
60
|
-
DOC r |
|
17
|
+
360 r/w | DPX r | JNG r/w | ODP r | RSRC r
|
18
|
+
3FR r | DR4 r/w/c | JP2 r/w | ODS r | RTF r
|
19
|
+
3G2 r/w | DSS r | JPEG r/w | ODT r | RW2 r/w
|
20
|
+
3GP r/w | DV r | JSON r | OFR r | RWL r/w
|
21
|
+
7Z r | DVB r/w | JXL r/w | OGG r | RWZ r
|
22
|
+
A r | DVR-MS r | K25 r | OGV r | RM r
|
23
|
+
AA r | DYLIB r | KDC r | ONP r | SEQ r
|
24
|
+
AAC r | EIP r | KEY r | OPUS r | SKETCH r
|
25
|
+
AAE r | EPS r/w | LA r | ORF r/w | SO r
|
26
|
+
AAX r/w | EPUB r | LFP r | ORI r/w | SR2 r/w
|
27
|
+
ACR r | ERF r/w | LIF r | OTF r | SRF r
|
28
|
+
AFM r | EXE r | LNK r | PAC r | SRW r/w
|
29
|
+
AI r/w | EXIF r/w/c | LRV r/w | PAGES r | SVG r
|
30
|
+
AIFF r | EXR r | M2TS r | PBM r/w | SWF r
|
31
|
+
APE r | EXV r/w/c | M4A/V r/w | PCAP r | THM r/w
|
32
|
+
ARQ r/w | F4A/V r/w | MACOS r | PCAPNG r | TIFF r/w
|
33
|
+
ARW r/w | FFF r/w | MAX r | PCD r | TNEF r
|
34
|
+
ASF r | FITS r | MEF r/w | PCX r | TORRENT r
|
35
|
+
AVI r | FLA r | MIE r/w/c | PDB r | TTC r
|
36
|
+
AVIF r/w | FLAC r | MIFF r | PDF r/w | TTF r
|
37
|
+
AZW r | FLIF r/w | MKA r | PEF r/w | TXT r
|
38
|
+
BMP r | FLV r | MKS r | PFA r | VCF r
|
39
|
+
BPG r | FPF r | MKV r | PFB r | VNT r
|
40
|
+
BTF r | FPX r | MNG r/w | PFM r | VRD r/w/c
|
41
|
+
C2PA r | GIF r/w | MOBI r | PGF r | VSD r
|
42
|
+
CHM r | GLV r/w | MODD r | PGM r/w | WAV r
|
43
|
+
COS r | GPR r/w | MOI r | PLIST r | WDP r/w
|
44
|
+
CR2 r/w | GZ r | MOS r/w | PICT r | WEBP r/w
|
45
|
+
CR3 r/w | HDP r/w | MOV r/w | PMP r | WEBM r
|
46
|
+
CRM r/w | HDR r | MP3 r | PNG r/w | WMA r
|
47
|
+
CRW r/w | HEIC r/w | MP4 r/w | PPM r/w | WMV r
|
48
|
+
CS1 r/w | HEIF r/w | MPC r | PPT r | WPG r
|
49
|
+
CSV r | HTML r | MPG r | PPTX r | WTV r
|
50
|
+
CUR r | ICC r/w/c | MPO r/w | PS r/w | WV r
|
51
|
+
CZI r | ICO r | MQV r/w | PSB r/w | X3F r/w
|
52
|
+
DCM r | ICS r | MRC r | PSD r/w | XCF r
|
53
|
+
DCP r/w | IDML r | MRW r/w | PSP r | XISF r
|
54
|
+
DCR r | IIQ r/w | MXF r | QTIF r/w | XLS r
|
55
|
+
DFONT r | IND r/w | NEF r/w | R3D r | XLSX r
|
56
|
+
DIVX r | INSP r/w | NKA r | RA r | XMP r/w/c
|
57
|
+
DJVU r | INSV r | NKSC r/w | RAF r/w | ZIP r
|
58
|
+
DLL r | INX r | NRW r/w | RAM r |
|
59
|
+
DNG r/w | ISO r | NUMBERS r | RAR r |
|
60
|
+
DOC r | ITC r | NXD r | RAW r/w |
|
61
|
+
DOCX r | J2C r | O r | RIFF r |
|
61
62
|
|
62
63
|
Meta Information
|
63
64
|
----------------------+----------------------+---------------------
|
@@ -109,8 +110,8 @@ your home directory, then you would type the following commands in a
|
|
109
110
|
terminal window to extract and run ExifTool:
|
110
111
|
|
111
112
|
cd ~/Desktop
|
112
|
-
gzip -dc Image-ExifTool-13.
|
113
|
-
cd Image-ExifTool-13.
|
113
|
+
gzip -dc Image-ExifTool-13.33.tar.gz | tar -xf -
|
114
|
+
cd Image-ExifTool-13.33
|
114
115
|
./exiftool t/images/ExifTool.jpg
|
115
116
|
|
116
117
|
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.
|
14
|
+
my $version = '13.33';
|
15
15
|
|
16
16
|
$^W = 1; # enable global warnings
|
17
17
|
|
@@ -101,9 +101,9 @@ my @csvFiles; # list of files when reading with CSV option (in ExifTool Ch
|
|
101
101
|
my @csvTags; # order of tags for first file with CSV option (lower case)
|
102
102
|
my @delFiles; # list of files to delete
|
103
103
|
my @dynamicFiles; # list of -tagsFromFile files with dynamic names and -TAG<=FMT pairs
|
104
|
+
my (@echo3, @echo4);# stdout and stderr echo after processing is complete
|
104
105
|
my @efile; # files for writing list of error/fail/same file names
|
105
106
|
my @exclude; # list of excluded tags
|
106
|
-
my (@echo3, @echo4);# stdout and stderr echo after processing is complete
|
107
107
|
my @files; # list of files and directories to scan
|
108
108
|
my @moreArgs; # more arguments to process after -stay_open -@
|
109
109
|
my @newValues; # list of new tag values to set
|
@@ -118,7 +118,6 @@ my %csvTags; # lookup for all found tags with CSV option (lower case keys
|
|
118
118
|
my %database; # lookup for database information based on file name (in ExifTool Charset)
|
119
119
|
my %filterExt; # lookup for filtered extensions
|
120
120
|
my %ignore; # directory names to ignore
|
121
|
-
my $ignoreHidden; # flag to ignore hidden files
|
122
121
|
my %outComma; # flag that output text file needs a comma
|
123
122
|
my %outTrailer; # trailer for output text file
|
124
123
|
my %preserveTime; # preserved timestamps for files
|
@@ -130,6 +129,7 @@ my %usedFileName; # lookup for file names we already used in TestName feature
|
|
130
129
|
my %utf8FileName; # lookup for file names that are UTF-8 encoded
|
131
130
|
my %warnedOnce; # lookup for once-only warnings
|
132
131
|
my %wext; # -W extensions to write
|
132
|
+
my %wroteHEAD; # list of output txt files to which we wrote HEAD
|
133
133
|
my $allGroup; # show group name for all tags
|
134
134
|
my $altEnc; # alternate character encoding if not UTF-8
|
135
135
|
my $argFormat; # use exiftool argument-format output
|
@@ -175,6 +175,7 @@ my $forcePrint; # string to use for missing tag values (undef to not print t
|
|
175
175
|
my $geoOnly; # flag to extract Geolocation tags only
|
176
176
|
my $helped; # flag to avoid printing help if no tags specified
|
177
177
|
my $html; # flag for html-formatted output (2=html dump)
|
178
|
+
my $ignoreHidden; # flag to ignore hidden files
|
178
179
|
my $interrupted; # flag set if CTRL-C is pressed during a critical process
|
179
180
|
my $isBinary; # true if value is a SCALAR ref
|
180
181
|
my $isWriting; # flag set if we are writing tags
|
@@ -227,7 +228,6 @@ my $validFile; # flag indicating we processed a valid file
|
|
227
228
|
my $verbose; # verbose setting
|
228
229
|
my $vout; # verbose output file reference (\*STDOUT or \*STDERR by default)
|
229
230
|
my $windowTitle; # title for console window
|
230
|
-
my %wroteHEAD; # list of output txt files to which we wrote HEAD
|
231
231
|
my $xml; # flag for XML-formatted output
|
232
232
|
|
233
233
|
# flag to keep the input -@ argfile open:
|
@@ -451,8 +451,10 @@ undef @efile;
|
|
451
451
|
undef @exclude;
|
452
452
|
undef @files;
|
453
453
|
undef @newValues;
|
454
|
+
undef @requestTags;
|
454
455
|
undef @srcFmt;
|
455
456
|
undef @tags;
|
457
|
+
undef %altFile;
|
456
458
|
undef %appended;
|
457
459
|
undef %countLink;
|
458
460
|
undef %created;
|
@@ -472,6 +474,7 @@ undef %usedFileName;
|
|
472
474
|
undef %utf8FileName;
|
473
475
|
undef %warnedOnce;
|
474
476
|
undef %wext;
|
477
|
+
undef %wroteHEAD;
|
475
478
|
undef $allGroup;
|
476
479
|
undef $altEnc;
|
477
480
|
undef $argFormat;
|
@@ -488,8 +491,8 @@ undef $doSetFileName;
|
|
488
491
|
undef $doUnzip;
|
489
492
|
undef $end;
|
490
493
|
undef $endDir;
|
491
|
-
undef $escapeHTML;
|
492
494
|
undef $escapeC;
|
495
|
+
undef $escapeHTML;
|
493
496
|
undef $evalWarning;
|
494
497
|
undef $executeID;
|
495
498
|
undef $failCondition;
|
@@ -500,18 +503,22 @@ undef $fixLen;
|
|
500
503
|
undef $forcePrint;
|
501
504
|
undef $geoOnly;
|
502
505
|
undef $ignoreHidden;
|
506
|
+
undef $isBinary;
|
503
507
|
undef $joinLists;
|
504
508
|
undef $langOpt;
|
509
|
+
undef $listDir;
|
505
510
|
undef $listItem;
|
506
511
|
undef $multiFile;
|
507
512
|
undef $noBinary;
|
508
513
|
undef $outOpt;
|
514
|
+
undef $plot;
|
509
515
|
undef $preserveTime;
|
510
516
|
undef $progress;
|
511
517
|
undef $progressCount;
|
512
518
|
undef $progressIncr;
|
513
519
|
undef $progressMax;
|
514
520
|
undef $progressNext;
|
521
|
+
undef $rafStdin;
|
515
522
|
undef $recurse;
|
516
523
|
undef $scanWritable;
|
517
524
|
undef $sectHeader;
|
@@ -521,6 +528,7 @@ undef $showTagID;
|
|
521
528
|
undef $structOpt;
|
522
529
|
undef $tagOut;
|
523
530
|
undef $textOut;
|
531
|
+
undef $textOut2;
|
524
532
|
undef $textOverwrite;
|
525
533
|
undef $tmpFile;
|
526
534
|
undef $tmpText;
|
@@ -2529,7 +2537,7 @@ T2: foreach $t2 (@tags2) {
|
|
2529
2537
|
# print the results for this file
|
2530
2538
|
if (%printFmt) {
|
2531
2539
|
# output using print format file (-p) option
|
2532
|
-
my ($type,
|
2540
|
+
my ($type, @doc, $grp, $lastDoc, $cache);
|
2533
2541
|
$fileTrailer = '';
|
2534
2542
|
# repeat for each embedded document if necessary (only if -ee used)
|
2535
2543
|
if ($et->Options('ExtractEmbedded')) {
|
@@ -2538,7 +2546,8 @@ T2: foreach $t2 (@tags2) {
|
|
2538
2546
|
} else {
|
2539
2547
|
$lastDoc = 0;
|
2540
2548
|
}
|
2541
|
-
for ($doc=0; $doc<=$lastDoc;
|
2549
|
+
for ($doc[0]=0; $doc[0]<=$lastDoc; ) {
|
2550
|
+
my $doc = join '-', @doc;
|
2542
2551
|
my ($skipBody, $opt);
|
2543
2552
|
foreach $type (qw(HEAD SECT IF BODY ENDS TAIL)) {
|
2544
2553
|
my $prf = $printFmt{$type} or next;
|
@@ -2548,7 +2557,7 @@ T2: foreach $t2 (@tags2) {
|
|
2548
2557
|
}
|
2549
2558
|
next if $type eq 'BODY' and $skipBody;
|
2550
2559
|
# silence "IF" warnings and warnings for subdocuments > 1
|
2551
|
-
if ($type eq 'IF' or ($doc > 1 and not $$et{OPTIONS}{IgnoreMinorErrors})) {
|
2560
|
+
if ($type eq 'IF' or (($doc[0] > 1 or @doc > 1) and not $$et{OPTIONS}{IgnoreMinorErrors})) {
|
2552
2561
|
$opt = 'Silent';
|
2553
2562
|
} else {
|
2554
2563
|
$opt = 'Warn';
|
@@ -2587,6 +2596,14 @@ T2: foreach $t2 (@tags2) {
|
|
2587
2596
|
print $fp @lines;
|
2588
2597
|
}
|
2589
2598
|
}
|
2599
|
+
# find next available doc-subdoc
|
2600
|
+
push @doc, 1;
|
2601
|
+
while (@doc > 1) {
|
2602
|
+
my $nextDoc = join '-', @doc;
|
2603
|
+
last if $$et{HAS_DOC}{$nextDoc};
|
2604
|
+
pop @doc;
|
2605
|
+
++$doc[-1];
|
2606
|
+
}
|
2590
2607
|
}
|
2591
2608
|
delete $printFmt{HEAD} unless defined $outfile; # print header only once per output file
|
2592
2609
|
my $errs = $et->GetInfo('Warning', 'Error');
|
@@ -4518,6 +4535,10 @@ sub SuggestedExtension($$$)
|
|
4518
4535
|
} elsif ($$valPt =~ /^.{4}ftyp(3gp|mp4|f4v|qt )/s) {
|
4519
4536
|
my %movType = ( 'qt ' => 'mov' );
|
4520
4537
|
$ext = $movType{$1} || $1;
|
4538
|
+
} elsif ($$valPt =~ /^<(!DOCTYPE )?html/i) {
|
4539
|
+
$ext = 'html';
|
4540
|
+
} elsif ($$valPt =~ /^[\n\r]*\{[\n\r]*\\rtf/) {
|
4541
|
+
$ext = 'rtf';
|
4521
4542
|
} elsif ($$valPt !~ /^.{0,4096}\0/s) {
|
4522
4543
|
$ext = 'txt';
|
4523
4544
|
} elsif ($$valPt =~ /^BM.{15}\0/s) {
|
@@ -5054,50 +5075,51 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
5054
5075
|
|
5055
5076
|
File Types
|
5056
5077
|
------------+-------------+-------------+-------------+------------
|
5057
|
-
360 r/w |
|
5058
|
-
3FR r |
|
5059
|
-
3G2 r/w |
|
5060
|
-
3GP r/w |
|
5061
|
-
7Z r |
|
5062
|
-
A r |
|
5063
|
-
AA r |
|
5064
|
-
AAC r |
|
5065
|
-
AAE r |
|
5066
|
-
AAX r/w |
|
5067
|
-
ACR r |
|
5068
|
-
AFM r |
|
5069
|
-
AI r/w |
|
5070
|
-
AIFF r |
|
5071
|
-
APE r |
|
5072
|
-
ARQ r/w |
|
5073
|
-
ARW r/w |
|
5074
|
-
ASF r |
|
5075
|
-
AVI r |
|
5076
|
-
AVIF r/w |
|
5077
|
-
AZW r |
|
5078
|
-
BMP r |
|
5079
|
-
BPG r |
|
5080
|
-
BTF r |
|
5081
|
-
C2PA r |
|
5082
|
-
CHM r |
|
5083
|
-
COS r |
|
5084
|
-
CR2 r/w |
|
5085
|
-
CR3 r/w |
|
5086
|
-
CRM r/w |
|
5087
|
-
CRW r/w |
|
5088
|
-
CS1 r/w |
|
5089
|
-
CSV r |
|
5090
|
-
CUR r |
|
5091
|
-
CZI r |
|
5092
|
-
DCM r |
|
5093
|
-
DCP r/w |
|
5094
|
-
DCR r |
|
5095
|
-
DFONT r |
|
5096
|
-
DIVX r |
|
5097
|
-
DJVU r |
|
5098
|
-
DLL r |
|
5099
|
-
DNG r/w |
|
5100
|
-
DOC r |
|
5078
|
+
360 r/w | DPX r | JNG r/w | ODP r | RSRC r
|
5079
|
+
3FR r | DR4 r/w/c | JP2 r/w | ODS r | RTF r
|
5080
|
+
3G2 r/w | DSS r | JPEG r/w | ODT r | RW2 r/w
|
5081
|
+
3GP r/w | DV r | JSON r | OFR r | RWL r/w
|
5082
|
+
7Z r | DVB r/w | JXL r/w | OGG r | RWZ r
|
5083
|
+
A r | DVR-MS r | K25 r | OGV r | RM r
|
5084
|
+
AA r | DYLIB r | KDC r | ONP r | SEQ r
|
5085
|
+
AAC r | EIP r | KEY r | OPUS r | SKETCH r
|
5086
|
+
AAE r | EPS r/w | LA r | ORF r/w | SO r
|
5087
|
+
AAX r/w | EPUB r | LFP r | ORI r/w | SR2 r/w
|
5088
|
+
ACR r | ERF r/w | LIF r | OTF r | SRF r
|
5089
|
+
AFM r | EXE r | LNK r | PAC r | SRW r/w
|
5090
|
+
AI r/w | EXIF r/w/c | LRV r/w | PAGES r | SVG r
|
5091
|
+
AIFF r | EXR r | M2TS r | PBM r/w | SWF r
|
5092
|
+
APE r | EXV r/w/c | M4A/V r/w | PCAP r | THM r/w
|
5093
|
+
ARQ r/w | F4A/V r/w | MACOS r | PCAPNG r | TIFF r/w
|
5094
|
+
ARW r/w | FFF r/w | MAX r | PCD r | TNEF r
|
5095
|
+
ASF r | FITS r | MEF r/w | PCX r | TORRENT r
|
5096
|
+
AVI r | FLA r | MIE r/w/c | PDB r | TTC r
|
5097
|
+
AVIF r/w | FLAC r | MIFF r | PDF r/w | TTF r
|
5098
|
+
AZW r | FLIF r/w | MKA r | PEF r/w | TXT r
|
5099
|
+
BMP r | FLV r | MKS r | PFA r | VCF r
|
5100
|
+
BPG r | FPF r | MKV r | PFB r | VNT r
|
5101
|
+
BTF r | FPX r | MNG r/w | PFM r | VRD r/w/c
|
5102
|
+
C2PA r | GIF r/w | MOBI r | PGF r | VSD r
|
5103
|
+
CHM r | GLV r/w | MODD r | PGM r/w | WAV r
|
5104
|
+
COS r | GPR r/w | MOI r | PLIST r | WDP r/w
|
5105
|
+
CR2 r/w | GZ r | MOS r/w | PICT r | WEBP r/w
|
5106
|
+
CR3 r/w | HDP r/w | MOV r/w | PMP r | WEBM r
|
5107
|
+
CRM r/w | HDR r | MP3 r | PNG r/w | WMA r
|
5108
|
+
CRW r/w | HEIC r/w | MP4 r/w | PPM r/w | WMV r
|
5109
|
+
CS1 r/w | HEIF r/w | MPC r | PPT r | WPG r
|
5110
|
+
CSV r | HTML r | MPG r | PPTX r | WTV r
|
5111
|
+
CUR r | ICC r/w/c | MPO r/w | PS r/w | WV r
|
5112
|
+
CZI r | ICO r | MQV r/w | PSB r/w | X3F r/w
|
5113
|
+
DCM r | ICS r | MRC r | PSD r/w | XCF r
|
5114
|
+
DCP r/w | IDML r | MRW r/w | PSP r | XISF r
|
5115
|
+
DCR r | IIQ r/w | MXF r | QTIF r/w | XLS r
|
5116
|
+
DFONT r | IND r/w | NEF r/w | R3D r | XLSX r
|
5117
|
+
DIVX r | INSP r/w | NKA r | RA r | XMP r/w/c
|
5118
|
+
DJVU r | INSV r | NKSC r/w | RAF r/w | ZIP r
|
5119
|
+
DLL r | INX r | NRW r/w | RAM r |
|
5120
|
+
DNG r/w | ISO r | NUMBERS r | RAR r |
|
5121
|
+
DOC r | ITC r | NXD r | RAW r/w |
|
5122
|
+
DOCX r | J2C r | O r | RIFF r |
|
5101
5123
|
|
5102
5124
|
Meta Information
|
5103
5125
|
----------------------+----------------------+---------------------
|
@@ -5595,7 +5617,9 @@ Output requested metadata in binary format without tag names or descriptions
|
|
5595
5617
|
images or other binary data, but it may also be useful for some text strings
|
5596
5618
|
since control characters (such as newlines) are not replaced by '.' as they
|
5597
5619
|
are in the default output. By default, list items are separated by a
|
5598
|
-
newline when extracted with the B<-b> option
|
5620
|
+
newline when extracted with the B<-b> option and no terminator is added
|
5621
|
+
after each tag value, but the list separator may be changed with a B<-sep>
|
5622
|
+
option and a terminator may be set by adding a second B<-sep> option (see
|
5599
5623
|
the B<-sep> option for details). May be combined with B<-j>, B<-php> or
|
5600
5624
|
B<-X> to extract binary data in JSON, PHP or XML format, but note that
|
5601
5625
|
"Unsafe" tags are not extracted as binary unless they are specified
|
@@ -5977,7 +6001,7 @@ translation, follow these steps (you must have Perl installed for this):
|
|
5977
6001
|
6. Edit the generated language module lib/Image/ExifTool/Lang/ru.pm, and
|
5978
6002
|
search and replace all 'MISSING' strings in the file with your translations.
|
5979
6003
|
|
5980
|
-
7. Email the module ('ru.pm' in this example) to
|
6004
|
+
7. Email the module ('ru.pm' in this example) to exiftool.team@gmail.com
|
5981
6005
|
|
5982
6006
|
8. Thank you!!
|
5983
6007
|
|
@@ -6052,7 +6076,7 @@ with this command:
|
|
6052
6076
|
|
6053
6077
|
produces output like this:
|
6054
6078
|
|
6055
|
-
-- Generated by ExifTool 13.
|
6079
|
+
-- Generated by ExifTool 13.33 --
|
6056
6080
|
File: a.jpg - 2003:10:31 15:44:19
|
6057
6081
|
(f/5.6, 1/60s, ISO 100)
|
6058
6082
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -6629,6 +6653,9 @@ condition (ie. "$OK").
|
|
6629
6653
|
7) The API RequestTags option is automatically set for all tags used in the
|
6630
6654
|
B<-if> condition.
|
6631
6655
|
|
6656
|
+
8) The condition fails if a Perl error occurs. This could happen for
|
6657
|
+
instance if an undefined value (eg. a missing tag) is used improperly.
|
6658
|
+
|
6632
6659
|
=item B<-m> (B<-ignoreMinorErrors>)
|
6633
6660
|
|
6634
6661
|
Ignore minor errors and warnings. This enables writing to files with minor
|
@@ -6863,9 +6890,10 @@ otherwise family 0 is assumed. The B<-l> or B<-v> option may be combined
|
|
6863
6890
|
with B<-listf>, B<-listr> or B<-listwf> to add file descriptions to the
|
6864
6891
|
list. The B<-lang> option may be combined with B<-listx> to output
|
6865
6892
|
descriptions in a single language, and the B<-sort> and/or B<-lang> options
|
6866
|
-
may be combined with B<-listgeo
|
6867
|
-
|
6868
|
-
|
6893
|
+
may be combined with B<-listgeo> (installation of the alternate database is
|
6894
|
+
required for the additional languages). Also, the API GeolocMinPop,
|
6895
|
+
GeolocFeature and GeolocAltNames options apply to the B<-listgeo> output.
|
6896
|
+
Here are some examples:
|
6869
6897
|
|
6870
6898
|
-list # list all tag names
|
6871
6899
|
-list -EXIF:All # list all EXIF tags
|
@@ -7295,6 +7323,8 @@ used in file names.)
|
|
7295
7323
|
|
7296
7324
|
=head4 Helper functions
|
7297
7325
|
|
7326
|
+
Note that function names are case sensitive.
|
7327
|
+
|
7298
7328
|
C<DateFmt>
|
7299
7329
|
|
7300
7330
|
Simplifies reformatting of individual date/time values. This function acts
|
@@ -7332,8 +7362,6 @@ rewritten unnecessarily:
|
|
7332
7362
|
|
7333
7363
|
exiftool -sep '##' '-keywords<${keywords;NoDups(1)}' a.jpg
|
7334
7364
|
|
7335
|
-
Note that function names are case sensitive.
|
7336
|
-
|
7337
7365
|
ExifTool 12.64 adds an API NoDups option which makes the NoDups helper
|
7338
7366
|
function largely redundant, with all the functionality except the ability to
|
7339
7367
|
avoid rewriting the file if there are no duplicates, but with the advantage
|