exiftool_vendored 10.58.0 → 10.65.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 +100 -1
- data/bin/MANIFEST +2 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +39 -38
- data/bin/arg_files/exif2iptc.args +3 -0
- data/bin/arg_files/iptc2exif.args +3 -0
- data/bin/config_files/example.config +16 -14
- data/bin/config_files/photoshop_paths.config +10 -0
- data/bin/exiftool +71 -65
- data/bin/lib/Image/ExifTool/APE.pm +5 -0
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +31 -15
- data/bin/lib/Image/ExifTool/Canon.pm +18 -4
- data/bin/lib/Image/ExifTool/CanonCustom.pm +3 -0
- data/bin/lib/Image/ExifTool/Charset/DOSLatin1.pm +49 -0
- data/bin/lib/Image/ExifTool/Charset/DOSLatinUS.pm +49 -0
- data/bin/lib/Image/ExifTool/Charset.pm +8 -5
- data/bin/lib/Image/ExifTool/Exif.pm +37 -18
- data/bin/lib/Image/ExifTool/FLAC.pm +47 -37
- data/bin/lib/Image/ExifTool/FLIR.pm +3 -3
- data/bin/lib/Image/ExifTool/FujiFilm.pm +5 -2
- data/bin/lib/Image/ExifTool/GPS.pm +6 -6
- data/bin/lib/Image/ExifTool/Geotag.pm +1 -1
- data/bin/lib/Image/ExifTool/H264.pm +2 -0
- data/bin/lib/Image/ExifTool/ID3.pm +8 -3
- data/bin/lib/Image/ExifTool/IPTC.pm +1 -1
- data/bin/lib/Image/ExifTool/Import.pm +4 -1
- data/bin/lib/Image/ExifTool/InDesign.pm +11 -7
- data/bin/lib/Image/ExifTool/Kodak.pm +4 -1
- data/bin/lib/Image/ExifTool/Lang/de.pm +31 -31
- data/bin/lib/Image/ExifTool/MWG.pm +12 -4
- data/bin/lib/Image/ExifTool/MakerNotes.pm +3 -3
- data/bin/lib/Image/ExifTool/Matroska.pm +2 -1
- data/bin/lib/Image/ExifTool/Microsoft.pm +3 -3
- data/bin/lib/Image/ExifTool/Minolta.pm +71 -61
- data/bin/lib/Image/ExifTool/Nikon.pm +286 -43
- data/bin/lib/Image/ExifTool/NikonCustom.pm +1049 -0
- data/bin/lib/Image/ExifTool/Olympus.pm +4 -1
- data/bin/lib/Image/ExifTool/PNG.pm +4 -7
- data/bin/lib/Image/ExifTool/PanasonicRaw.pm +24 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +20 -6
- data/bin/lib/Image/ExifTool/Photoshop.pm +24 -3
- data/bin/lib/Image/ExifTool/QuickTime.pm +545 -14
- data/bin/lib/Image/ExifTool/README +16 -9
- data/bin/lib/Image/ExifTool/RIFF.pm +8 -1
- data/bin/lib/Image/ExifTool/Samsung.pm +5 -4
- data/bin/lib/Image/ExifTool/Sigma.pm +9 -1
- data/bin/lib/Image/ExifTool/Sony.pm +327 -153
- data/bin/lib/Image/ExifTool/TagLookup.pm +3273 -3220
- data/bin/lib/Image/ExifTool/TagNames.pod +317 -38
- data/bin/lib/Image/ExifTool/Validate.pm +15 -1
- data/bin/lib/Image/ExifTool/WriteExif.pl +5 -0
- data/bin/lib/Image/ExifTool/WriteIPTC.pl +23 -1
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +8 -2
- data/bin/lib/Image/ExifTool/WriteXMP.pl +7 -0
- data/bin/lib/Image/ExifTool/Writer.pl +96 -18
- data/bin/lib/Image/ExifTool/XMP.pm +20 -11
- data/bin/lib/Image/ExifTool/XMP2.pl +634 -583
- data/bin/lib/Image/ExifTool.pm +124 -17
- data/bin/lib/Image/ExifTool.pod +86 -82
- data/bin/perl-Image-ExifTool.spec +38 -37
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 27a44a58ea12d15a33606f84733a1812f93425ce
|
|
4
|
+
data.tar.gz: 146f7d7515b8ac7d284a8002cf3fbb2645b7b9e3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f642258f4a9d9f62063d0194623763af4e9e2d419420c6bce9bcc3e2df5d101f2ce895537f45c8a9c65ea35fa1d28f0652a0b338832fa1daa715825d351d7193
|
|
7
|
+
data.tar.gz: d4f6acbbe47771276b279e978dfd6364be06d785e6684a74f5bc25d826f0d037cfbe1a7995c7a87497988a34a62f60441ddcf1b490035b318424e02d7e47a088
|
data/bin/Changes
CHANGED
|
@@ -7,13 +7,112 @@ RSS feed: http://owl.phy.queensu.ca/~phil/exiftool/rss.xml
|
|
|
7
7
|
Note: The most recent production release is Version 10.55. (Other versions are
|
|
8
8
|
considered development releases, and are not uploaded to CPAN.)
|
|
9
9
|
|
|
10
|
+
Oct. 31, 2017 - Version 10.65
|
|
11
|
+
|
|
12
|
+
- Added support for DOSLatinUS (cp437) and DOSLatin1 (cp850) character sets
|
|
13
|
+
- Added Extra ForceWrite tag for forcing metadata in a file to be rewritten
|
|
14
|
+
- Added write support for RAF images from some newer FujiFilm models
|
|
15
|
+
- Added a new SonyModelID, Sony LensType and Olympus LensTypes (thanks LibRaw)
|
|
16
|
+
- Added a new Pentax LensType
|
|
17
|
+
- Added a new Nikon LensID
|
|
18
|
+
- Decode more Sony tags for new models (thanks Jos Roost)
|
|
19
|
+
- Decode Nikon D850 ShotInfo tags and custom settings (thanks Warren Hatch)
|
|
20
|
+
- Decode Nikon D850 ColorTemperatureAuto (thanks LibRaw)
|
|
21
|
+
- Decode Photoshop LayerModifyDates and LayerIDs
|
|
22
|
+
- Improved decoding of Nikon D5/D500/D810 ShotInfo tags
|
|
23
|
+
- Allow advanced formatting expressions to return a list reference
|
|
24
|
+
- Fixed problem in Composite:GPSAltitude when derived from an "undef" altitude
|
|
25
|
+
- Fixed bug which could result in runtime warning when excluding some tags
|
|
26
|
+
from being extracted
|
|
27
|
+
|
|
28
|
+
Oct. 17, 2017 - Version 10.64
|
|
29
|
+
|
|
30
|
+
- Added a new Nikon LensID
|
|
31
|
+
- Added a new SonyModelID
|
|
32
|
+
- Added a new CanonModelID (thanks LibRaw)
|
|
33
|
+
- Added some new non-standard CustomRendered values
|
|
34
|
+
- Decode FrameRate from FLIR SEQ files (thanks Sebastian Hani)
|
|
35
|
+
- Enhanced shift feature to be able to shift some not-so-simple numerical
|
|
36
|
+
values (eg. GPSLatitude) with -TAG+=VALUE syntax
|
|
37
|
+
- Fixed problem with possible malformed UTF-8 when writing IPTC values that
|
|
38
|
+
require truncation
|
|
39
|
+
- Fixed incorrect Writable type for XMP-GSpherical:TimeStamp
|
|
40
|
+
- Fixed incorrect family 2 group name for Nikon HDRInfo tags
|
|
41
|
+
|
|
42
|
+
Oct. 4, 2017 - Version 10.63
|
|
43
|
+
|
|
44
|
+
- Added a number of new Canon LensTypes (thanks Norbert Wasser for some)
|
|
45
|
+
- Added a new CanonModelID
|
|
46
|
+
- Added a new Olympus CameraType
|
|
47
|
+
- Decode MD5Signature in FLAC StreamInfo (thanks Tim Eliseo)
|
|
48
|
+
- Improved decoding of HEIC/HEIF metadata
|
|
49
|
+
- Removed useless write support for QuickTime date/time tags in HEIC/HEIF
|
|
50
|
+
images
|
|
51
|
+
- Fixed "Incorrect XMP stream length" problem when writing some INDD files
|
|
52
|
+
|
|
53
|
+
Sept. 28, 2017 - Version 10.62
|
|
54
|
+
|
|
55
|
+
- Added preliminary support for HEIC/HEIF images
|
|
56
|
+
- Added support for Google depthmap metadata (XMP-GDepth)
|
|
57
|
+
- Added some new Sony/Minolta lenses (thanks LibRaw and Jos Roost)
|
|
58
|
+
- Added a new CanonModelID (thanks Norbert Wasser)
|
|
59
|
+
- Added a new Nikon LensID (thanks Michael Tapes)
|
|
60
|
+
- Decode a new Sony tag (thanks Jos Roost)
|
|
61
|
+
- Decode some new Nikon tags (thanks Warren Hatch)
|
|
62
|
+
- Decode maker notes from Leica TL2
|
|
63
|
+
- Enhanced ID3 -v2 output to show frame flags
|
|
64
|
+
- Fixed problem decoding Nikon D810 camera tilt angles
|
|
65
|
+
- Fixed problem where SphericalVideoXML metadata was deleted when writing XMP
|
|
66
|
+
to a QuickTime-format file containing this information
|
|
67
|
+
|
|
68
|
+
Aug. 18, 2017 - Version 10.61
|
|
69
|
+
|
|
70
|
+
- Added a new Canon LensType (thanks LibRaw)
|
|
71
|
+
- Added a number of new Sigma, Nikon and Sony lenses (thanks Jos Roost)
|
|
72
|
+
- Added a new Nikon LensID (thanks Yang You)
|
|
73
|
+
- Decode a number of new Sony tags (thanks Jos Roost)
|
|
74
|
+
- Decode Panasonic FocusDistance (thanks David Ellsworth)
|
|
75
|
+
- Updated to the IPTC video metadata 1.1 specification
|
|
76
|
+
- Restored the ability to delete JpgFromRaw from RAW images (broken in 10.38)
|
|
77
|
+
- Fixed problem decoding maker notes from Pentax K-70 AVI videos
|
|
78
|
+
- Fixed problem conditionally replacing a tag if the value to be deleted was
|
|
79
|
+
taken from another tag while the new value was assigned directly
|
|
80
|
+
|
|
81
|
+
July 21, 2017 - Version 10.60
|
|
82
|
+
|
|
83
|
+
- Added two new Sony/Minolta LensTypes (thanks Jos Roost)
|
|
84
|
+
- Added a new Pentax LensType (thanks Dieter Pearcey)
|
|
85
|
+
- Added new Composite UniquePathPoints tag to photoshop_paths.config
|
|
86
|
+
- Extract raw-data JFIF/JFXX thumbnails as ThumbnailTIFF
|
|
87
|
+
- Improved Sony LensSpec conversion
|
|
88
|
+
- Updated German translations (thanks Herbert Kauer)
|
|
89
|
+
- Set family 1 group name of JFXX ThumbnailImage to JFXX instead of JFIF
|
|
90
|
+
- Fixed problem with %C no longer incrementing properly
|
|
91
|
+
|
|
92
|
+
July 7, 2017 - Version 10.59
|
|
93
|
+
|
|
94
|
+
- Added a new Canon LensType (thanks LibRaw)
|
|
95
|
+
- Added a new Nikon LensID
|
|
96
|
+
- Added "wrong extension" warning to experimental -validate feature
|
|
97
|
+
- Decode Pentax maker notes in Q-S1 AVI videos
|
|
98
|
+
- Updated iptc2exif.args and exif2iptc.args to support new EXIF OffsetTime
|
|
99
|
+
tags (thanks Herb)
|
|
100
|
+
- Patched potential problem with "Use of uninitialized value $pos" error when
|
|
101
|
+
importing malformed JSON data
|
|
102
|
+
- Patched to avoid runtime warning due to invalid Nikon ShutterCount value
|
|
103
|
+
- Raise an error if -b is used with the -csv option
|
|
104
|
+
- Changed PNG exIf chunk name to eXIf
|
|
105
|
+
- Fixed bug introduced in 10.26 which could cause hang when %C is used in an
|
|
106
|
+
output file name
|
|
107
|
+
- Fixed MWG:DateTimeOriginal and MWG:CreateDate to return XMP when EXIF and
|
|
108
|
+
IPTC don't exist
|
|
109
|
+
|
|
10
110
|
June 29, 2017 - Version 10.58
|
|
11
111
|
|
|
12
112
|
- Added read support for RIFF-format MBWF/RF64 files
|
|
13
113
|
- Added write support for dji-drone XMP tags
|
|
14
114
|
- Added a new Canon LensType (thanks Steve Bates)
|
|
15
115
|
- Added a few new Sony/Minolta LensType values (thanks Jos Roost)
|
|
16
|
-
- Added a new Canon LensType
|
|
17
116
|
- Added a couple of new CanonModelID values (thanks LibRaw and Norbert Wasser)
|
|
18
117
|
- Decode some new FujiFilm tags (thanks Chris Schucker)
|
|
19
118
|
- Enhanced FileSize print conversion to show in "GB" for large files
|
data/bin/MANIFEST
CHANGED
|
@@ -207,6 +207,8 @@ lib/Image/ExifTool/Charset.pm
|
|
|
207
207
|
lib/Image/ExifTool/Charset/Arabic.pm
|
|
208
208
|
lib/Image/ExifTool/Charset/Baltic.pm
|
|
209
209
|
lib/Image/ExifTool/Charset/Cyrillic.pm
|
|
210
|
+
lib/Image/ExifTool/Charset/DOSLatin1.pm
|
|
211
|
+
lib/Image/ExifTool/Charset/DOSLatinUS.pm
|
|
210
212
|
lib/Image/ExifTool/Charset/Greek.pm
|
|
211
213
|
lib/Image/ExifTool/Charset/Hebrew.pm
|
|
212
214
|
lib/Image/ExifTool/Charset/JIS.pm
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
|
@@ -14,42 +14,43 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
14
14
|
|
|
15
15
|
File Types
|
|
16
16
|
------------+-------------+-------------+-------------+------------
|
|
17
|
-
3FR r |
|
|
18
|
-
3G2 r/w |
|
|
19
|
-
3GP r/w |
|
|
20
|
-
A r |
|
|
21
|
-
AA r |
|
|
22
|
-
AAX r/w |
|
|
23
|
-
ACR r |
|
|
24
|
-
AFM r |
|
|
25
|
-
AI r/w |
|
|
26
|
-
AIFF r |
|
|
27
|
-
APE r |
|
|
28
|
-
ARW r/w |
|
|
29
|
-
ASF r |
|
|
30
|
-
AVI r |
|
|
31
|
-
AZW r |
|
|
32
|
-
BMP r |
|
|
33
|
-
BPG r |
|
|
34
|
-
BTF r |
|
|
35
|
-
CHM r |
|
|
36
|
-
COS r |
|
|
37
|
-
CR2 r/w |
|
|
38
|
-
CRW r/w |
|
|
39
|
-
CS1 r/w |
|
|
40
|
-
DCM r |
|
|
41
|
-
DCP r/w |
|
|
42
|
-
DCR r |
|
|
43
|
-
DFONT r |
|
|
44
|
-
DIVX r |
|
|
45
|
-
DJVU r |
|
|
46
|
-
DLL r |
|
|
47
|
-
DNG r/w |
|
|
48
|
-
DOC r |
|
|
49
|
-
DOCX r |
|
|
50
|
-
DPX r |
|
|
51
|
-
DR4 r/w/c |
|
|
52
|
-
DSS r |
|
|
17
|
+
3FR r | DVB r/w | JSON r | OFR r | RTF r
|
|
18
|
+
3G2 r/w | DYLIB r | K25 r | OGG r | RW2 r/w
|
|
19
|
+
3GP r/w | EIP r | KDC r | OGV r | RWL r/w
|
|
20
|
+
A r | EPS r/w | KEY r | OPUS r | RWZ r
|
|
21
|
+
AA r | EPUB r | LA r | ORF r/w | RM r
|
|
22
|
+
AAX r/w | ERF r/w | LFP r | OTF r | SEQ r
|
|
23
|
+
ACR r | EXE r | LNK r | PAC r | SO r
|
|
24
|
+
AFM r | EXIF r/w/c | M2TS r | PAGES r | SR2 r/w
|
|
25
|
+
AI r/w | EXR r | M4A/V r/w | PBM r/w | SRF r
|
|
26
|
+
AIFF r | EXV r/w/c | MAX r | PCD r | SRW r/w
|
|
27
|
+
APE r | F4A/V r/w | MEF r/w | PDB r | SVG r
|
|
28
|
+
ARW r/w | FFF r/w | MIE r/w/c | PDF r/w | SWF r
|
|
29
|
+
ASF r | FLA r | MIFF r | PEF r/w | THM r/w
|
|
30
|
+
AVI r | FLAC r | MKA r | PFA r | TIFF r/w
|
|
31
|
+
AZW r | FLIF r/w | MKS r | PFB r | TORRENT r
|
|
32
|
+
BMP r | FLV r | MKV r | PFM r | TTC r
|
|
33
|
+
BPG r | FPF r | MNG r/w | PGF r | TTF r
|
|
34
|
+
BTF r | FPX r | MOBI r | PGM r/w | VCF r
|
|
35
|
+
CHM r | GIF r/w | MODD r | PLIST r | VRD r/w/c
|
|
36
|
+
COS r | GZ r | MOI r | PICT r | VSD r
|
|
37
|
+
CR2 r/w | HDP r/w | MOS r/w | PMP r | WAV r
|
|
38
|
+
CRW r/w | HDR r | MOV r/w | PNG r/w | WDP r/w
|
|
39
|
+
CS1 r/w | HEIC r | MP3 r | PPM r/w | WEBP r
|
|
40
|
+
DCM r | HEIF r | MP4 r/w | PPT r | WEBM r
|
|
41
|
+
DCP r/w | HTML r | MPC r | PPTX r | WMA r
|
|
42
|
+
DCR r | ICC r/w/c | MPG r | PS r/w | WMV r
|
|
43
|
+
DFONT r | ICS r | MPO r/w | PSB r/w | WV r
|
|
44
|
+
DIVX r | IDML r | MQV r/w | PSD r/w | X3F r/w
|
|
45
|
+
DJVU r | IIQ r/w | MRW r/w | PSP r | XCF r
|
|
46
|
+
DLL r | IND r/w | MXF r | QTIF r/w | XLS r
|
|
47
|
+
DNG r/w | INX r | NEF r/w | RA r | XLSX r
|
|
48
|
+
DOC r | ISO r | NRW r/w | RAF r/w | XMP r/w/c
|
|
49
|
+
DOCX r | ITC r | NUMBERS r | RAM r | ZIP r
|
|
50
|
+
DPX r | J2C r | O r | RAR r |
|
|
51
|
+
DR4 r/w/c | JNG r/w | ODP r | RAW r/w |
|
|
52
|
+
DSS r | JP2 r/w | ODS r | RIFF r |
|
|
53
|
+
DV r | JPEG r/w | ODT r | RSRC r |
|
|
53
54
|
|
|
54
55
|
Meta Information
|
|
55
56
|
----------------------+----------------------+---------------------
|
|
@@ -101,8 +102,8 @@ your home directory, then you would type the following commands in a
|
|
|
101
102
|
terminal window to extract and run ExifTool:
|
|
102
103
|
|
|
103
104
|
cd ~/Desktop
|
|
104
|
-
gzip -dc Image-ExifTool-10.
|
|
105
|
-
cd Image-ExifTool-10.
|
|
105
|
+
gzip -dc Image-ExifTool-10.65.tar.gz | tar -xf -
|
|
106
|
+
cd Image-ExifTool-10.65
|
|
106
107
|
./exiftool t/images/ExifTool.jpg
|
|
107
108
|
|
|
108
109
|
Note: These commands extract meta information from one of the test images.
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
# Requires: ExifTool version 6.51 or later
|
|
9
9
|
#
|
|
10
10
|
# Revisions: 2011/09/13 - P. Harvey Created
|
|
11
|
+
# 2017/07/06 - PH Set time zone from new EXIF OffsetTime tags
|
|
11
12
|
#
|
|
12
13
|
# Notes: 1) IPTC requires a timezone but EXIF does not support one, so
|
|
13
14
|
# the local timezone is assumed when writing the IPTC times
|
|
@@ -23,6 +24,8 @@
|
|
|
23
24
|
# appropriate date or time part out of the EXIF date/time value
|
|
24
25
|
-IPTC:DateCreated < EXIF:DateTimeOriginal
|
|
25
26
|
-IPTC:TimeCreated < EXIF:DateTimeOriginal
|
|
27
|
+
-IPTC:TimeCreated < Composite:SubSecDateTimeOriginal
|
|
26
28
|
-IPTC:DigitalCreationDate < EXIF:CreateDate
|
|
27
29
|
-IPTC:DigitalCreationTime < EXIF:CreateDate
|
|
30
|
+
-IPTC:DigitalCreationTime < Composite:SubSecCreateDate
|
|
28
31
|
# end
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
# Requires: ExifTool version 7.98 or later
|
|
9
9
|
#
|
|
10
10
|
# Revisions: 2011/09/13 - P. Harvey Created
|
|
11
|
+
# 2017/07/06 - PH Set new EXIF OffsetTime tags
|
|
11
12
|
#
|
|
12
13
|
# Notes: These arguments will not delete existing EXIF tags which are
|
|
13
14
|
# missing from the IPTC. The EXIF tags should be deleted
|
|
@@ -18,4 +19,6 @@
|
|
|
18
19
|
-EXIF:ImageDescription < IPTC:Caption-Abstract
|
|
19
20
|
-EXIF:DateTimeOriginal < Composite:DateTimeCreated
|
|
20
21
|
-EXIF:CreateDate < Composite:DigitalCreationDateTime
|
|
22
|
+
-EXIF:OffsetTimeOriginal < IPTC:TimeCreated
|
|
23
|
+
-EXIF:OffsetTimeDigitized < IPTC:DigitalCreationTime
|
|
21
24
|
# end
|
|
@@ -155,13 +155,15 @@
|
|
|
155
155
|
},
|
|
156
156
|
# Composite tags are added to the Composite table:
|
|
157
157
|
'Image::ExifTool::Composite' => {
|
|
158
|
-
# Composite tags are
|
|
158
|
+
# Composite tags have values that are derived from the values of
|
|
159
|
+
# other tags. The Require/Desire elements below specify constituent
|
|
159
160
|
# tags that must/may exist, and the keys of these hashes are used as
|
|
160
|
-
# indices in the @val array of the ValueConv expression to access
|
|
161
|
-
#
|
|
162
|
-
#
|
|
163
|
-
#
|
|
164
|
-
#
|
|
161
|
+
# indices in the @val array of the ValueConv expression to access the
|
|
162
|
+
# numerical (-n) values of these tags. Print-converted values are
|
|
163
|
+
# accessed via the @prt array. All Require'd tags must exist for
|
|
164
|
+
# the Composite tag to be evaluated. If no Require'd tags are
|
|
165
|
+
# specified, then at least one of the Desire'd tags must exist. See
|
|
166
|
+
# the Composite table in Image::ExifTool::Exif for more examples,
|
|
165
167
|
# and lib/Image/ExifTool/README for all of the details.
|
|
166
168
|
BaseName => {
|
|
167
169
|
Require => {
|
|
@@ -279,14 +281,14 @@
|
|
|
279
281
|
},
|
|
280
282
|
List => 'Seq', # structures may also be elements of a list
|
|
281
283
|
},
|
|
282
|
-
# Each field in the structure has
|
|
283
|
-
#
|
|
284
|
-
#
|
|
285
|
-
#
|
|
286
|
-
#
|
|
287
|
-
#
|
|
288
|
-
#
|
|
289
|
-
#
|
|
284
|
+
# Each field in the structure has a corresponding flattened tag that is
|
|
285
|
+
# generated automatically with an ID made from a concatenation of the
|
|
286
|
+
# original structure tag ID and the field name (after capitalizing the
|
|
287
|
+
# first letter of the field name if necessary). The Name and/or
|
|
288
|
+
# Description of these flattened tags may be changed if desired, but all
|
|
289
|
+
# other tag properties are taken from the structure field definition.
|
|
290
|
+
# The "Flat" flag must be used when setting the Name or Description of a
|
|
291
|
+
# flattened tag. For example:
|
|
290
292
|
NewXMPxxxStructX => { Name => 'SomeOtherName', Flat => 1 },
|
|
291
293
|
);
|
|
292
294
|
|
|
@@ -67,6 +67,7 @@
|
|
|
67
67
|
# 2017/03/19 - PH Added "-" or "+" at the start of closed or open
|
|
68
68
|
# subpath respectively
|
|
69
69
|
# 2017/06/03 - PH Added TotalPathPoints
|
|
70
|
+
# 2017/07/17 - PH Added UniquePathPoints
|
|
70
71
|
#
|
|
71
72
|
# References: http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,1621.0.html
|
|
72
73
|
# http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,3910.0.html
|
|
@@ -149,6 +150,8 @@ sub PrintPath($$;$$)
|
|
|
149
150
|
my ($val, $self) = @_;
|
|
150
151
|
my $count = 0;
|
|
151
152
|
my $pts = 0;
|
|
153
|
+
my $uniq = 0;
|
|
154
|
+
my %uniq;
|
|
152
155
|
foreach (@$val) {
|
|
153
156
|
next unless defined $_;
|
|
154
157
|
++$count;
|
|
@@ -159,13 +162,20 @@ sub PrintPath($$;$$)
|
|
|
159
162
|
my $type = Get16u($_, $pos);
|
|
160
163
|
last if $type == 0x2f23; # (start of path name added by ExifTool)
|
|
161
164
|
next unless {1=>1,2=>1,4=>1,5=>1}->{$type};
|
|
165
|
+
my $pt = substr($$_, $pos+10, 8);
|
|
166
|
+
$uniq{$pt} or ++$uniq, $uniq{$pt} = 1;
|
|
162
167
|
++$pts;
|
|
163
168
|
}
|
|
164
169
|
}
|
|
165
170
|
$$self{TotalPathPoints} = $pts;
|
|
171
|
+
$$self{UniquePathPoints} = $uniq;
|
|
166
172
|
return $count;
|
|
167
173
|
},
|
|
168
174
|
},
|
|
175
|
+
UniquePathPoints => {
|
|
176
|
+
Require => 'PathCount',
|
|
177
|
+
ValueConv => '$$self{UniquePathPoints}',
|
|
178
|
+
},
|
|
169
179
|
TotalPathPoints => {
|
|
170
180
|
Require => 'PathCount',
|
|
171
181
|
ValueConv => '$$self{TotalPathPoints}',
|
data/bin/exiftool
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
use strict;
|
|
13
13
|
require 5.004;
|
|
14
14
|
|
|
15
|
-
my $version = '10.
|
|
15
|
+
my $version = '10.65';
|
|
16
16
|
|
|
17
17
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
|
18
18
|
my $exeDir;
|
|
@@ -1314,8 +1314,8 @@ if ($tagOut and ($csv or %printFmt or $tabFormat or $xml or ($verbose and $html)
|
|
|
1314
1314
|
next;
|
|
1315
1315
|
}
|
|
1316
1316
|
|
|
1317
|
-
if ($
|
|
1318
|
-
Warn
|
|
1317
|
+
if ($csv and $csv eq 'CSV' and not $isWriting and ($textOut or $binaryOutput)) {
|
|
1318
|
+
Warn 'Sorry, ' . ($textOut ? '-w' : '-b') . " may not be combined with -csv\n";
|
|
1319
1319
|
$rtnVal = 1;
|
|
1320
1320
|
next;
|
|
1321
1321
|
}
|
|
@@ -3171,7 +3171,7 @@ sub ConvertBinary($)
|
|
|
3171
3171
|
}
|
|
3172
3172
|
} else {
|
|
3173
3173
|
# (-b is not valid for HTML output)
|
|
3174
|
-
my $bOpt = $html ? '' : ', use -b option to extract';
|
|
3174
|
+
my $bOpt = ($html or ($csv and $csv eq 'CSV')) ? '' : ', use -b option to extract';
|
|
3175
3175
|
if ($$obj =~ /^Binary data \d+ bytes$/) {
|
|
3176
3176
|
$obj = "($$obj$bOpt)";
|
|
3177
3177
|
} else {
|
|
@@ -3724,15 +3724,16 @@ sub NextUnusedFilename($;$$)
|
|
|
3724
3724
|
return $fmt unless $fmt =~ /%[-+]?\d*\.?\d*[lun]?[cC]/;
|
|
3725
3725
|
my %sep = ( '-' => '-', '+' => '_' );
|
|
3726
3726
|
my ($copy, $alpha) = (0, 'a');
|
|
3727
|
+
my $seq = $seqFileNum - 1;
|
|
3727
3728
|
for (;;) {
|
|
3728
3729
|
my ($filename, $pos) = ('', 0);
|
|
3729
3730
|
while ($fmt =~ /(%([-+]?)(\d*)(\.?)(\d*)([lun]?)([cC]))/g) {
|
|
3730
3731
|
$filename .= substr($fmt, $pos, pos($fmt) - $pos - length($1));
|
|
3731
3732
|
$pos = pos($fmt);
|
|
3732
3733
|
my ($sign, $wid, $dec, $wid2, $mod, $tok) = ($2, $3 || 0, $4, $5 || 0, $6, $7);
|
|
3733
|
-
my $
|
|
3734
|
+
my $diff = 0;
|
|
3734
3735
|
if ($tok eq 'C') {
|
|
3735
|
-
$
|
|
3736
|
+
$diff = $wid;
|
|
3736
3737
|
$wid = $wid2;
|
|
3737
3738
|
} else {
|
|
3738
3739
|
next unless $dec or $copy;
|
|
@@ -3741,13 +3742,13 @@ sub NextUnusedFilename($;$$)
|
|
|
3741
3742
|
# add dash or underline separator if '-' or '+' specified
|
|
3742
3743
|
$filename .= $sep{$sign} if $sign;
|
|
3743
3744
|
if ($mod and $mod ne 'n') {
|
|
3744
|
-
my $a = $tok eq 'C' ? Num2Alpha($seq) : $alpha;
|
|
3745
|
+
my $a = $tok eq 'C' ? Num2Alpha($diff + $seq++) : $alpha;
|
|
3745
3746
|
my $str = ($wid and $wid > length $a) ? 'a' x ($wid - length($a)) : '';
|
|
3746
3747
|
$str .= $a;
|
|
3747
3748
|
$str = uc $str if $mod eq 'u';
|
|
3748
3749
|
$filename .= $str;
|
|
3749
3750
|
} else {
|
|
3750
|
-
my $c = $tok eq 'C' ? $seq : $copy;
|
|
3751
|
+
my $c = $tok eq 'C' ? ($diff + $seq++) : $copy;
|
|
3751
3752
|
my $num = $c + ($mod ? 1 : 0);
|
|
3752
3753
|
$filename .= $wid ? sprintf("%.${wid}d",$num) : $num;
|
|
3753
3754
|
}
|
|
@@ -4074,42 +4075,43 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
4074
4075
|
|
|
4075
4076
|
File Types
|
|
4076
4077
|
------------+-------------+-------------+-------------+------------
|
|
4077
|
-
3FR r |
|
|
4078
|
-
3G2 r/w |
|
|
4079
|
-
3GP r/w |
|
|
4080
|
-
A r |
|
|
4081
|
-
AA r |
|
|
4082
|
-
AAX r/w |
|
|
4083
|
-
ACR r |
|
|
4084
|
-
AFM r |
|
|
4085
|
-
AI r/w |
|
|
4086
|
-
AIFF r |
|
|
4087
|
-
APE r |
|
|
4088
|
-
ARW r/w |
|
|
4089
|
-
ASF r |
|
|
4090
|
-
AVI r |
|
|
4091
|
-
AZW r |
|
|
4092
|
-
BMP r |
|
|
4093
|
-
BPG r |
|
|
4094
|
-
BTF r |
|
|
4095
|
-
CHM r |
|
|
4096
|
-
COS r |
|
|
4097
|
-
CR2 r/w |
|
|
4098
|
-
CRW r/w |
|
|
4099
|
-
CS1 r/w |
|
|
4100
|
-
DCM r |
|
|
4101
|
-
DCP r/w |
|
|
4102
|
-
DCR r |
|
|
4103
|
-
DFONT r |
|
|
4104
|
-
DIVX r |
|
|
4105
|
-
DJVU r |
|
|
4106
|
-
DLL r |
|
|
4107
|
-
DNG r/w |
|
|
4108
|
-
DOC r |
|
|
4109
|
-
DOCX r |
|
|
4110
|
-
DPX r |
|
|
4111
|
-
DR4 r/w/c |
|
|
4112
|
-
DSS r |
|
|
4078
|
+
3FR r | DVB r/w | JSON r | OFR r | RTF r
|
|
4079
|
+
3G2 r/w | DYLIB r | K25 r | OGG r | RW2 r/w
|
|
4080
|
+
3GP r/w | EIP r | KDC r | OGV r | RWL r/w
|
|
4081
|
+
A r | EPS r/w | KEY r | OPUS r | RWZ r
|
|
4082
|
+
AA r | EPUB r | LA r | ORF r/w | RM r
|
|
4083
|
+
AAX r/w | ERF r/w | LFP r | OTF r | SEQ r
|
|
4084
|
+
ACR r | EXE r | LNK r | PAC r | SO r
|
|
4085
|
+
AFM r | EXIF r/w/c | M2TS r | PAGES r | SR2 r/w
|
|
4086
|
+
AI r/w | EXR r | M4A/V r/w | PBM r/w | SRF r
|
|
4087
|
+
AIFF r | EXV r/w/c | MAX r | PCD r | SRW r/w
|
|
4088
|
+
APE r | F4A/V r/w | MEF r/w | PDB r | SVG r
|
|
4089
|
+
ARW r/w | FFF r/w | MIE r/w/c | PDF r/w | SWF r
|
|
4090
|
+
ASF r | FLA r | MIFF r | PEF r/w | THM r/w
|
|
4091
|
+
AVI r | FLAC r | MKA r | PFA r | TIFF r/w
|
|
4092
|
+
AZW r | FLIF r/w | MKS r | PFB r | TORRENT r
|
|
4093
|
+
BMP r | FLV r | MKV r | PFM r | TTC r
|
|
4094
|
+
BPG r | FPF r | MNG r/w | PGF r | TTF r
|
|
4095
|
+
BTF r | FPX r | MOBI r | PGM r/w | VCF r
|
|
4096
|
+
CHM r | GIF r/w | MODD r | PLIST r | VRD r/w/c
|
|
4097
|
+
COS r | GZ r | MOI r | PICT r | VSD r
|
|
4098
|
+
CR2 r/w | HDP r/w | MOS r/w | PMP r | WAV r
|
|
4099
|
+
CRW r/w | HDR r | MOV r/w | PNG r/w | WDP r/w
|
|
4100
|
+
CS1 r/w | HEIC r | MP3 r | PPM r/w | WEBP r
|
|
4101
|
+
DCM r | HEIF r | MP4 r/w | PPT r | WEBM r
|
|
4102
|
+
DCP r/w | HTML r | MPC r | PPTX r | WMA r
|
|
4103
|
+
DCR r | ICC r/w/c | MPG r | PS r/w | WMV r
|
|
4104
|
+
DFONT r | ICS r | MPO r/w | PSB r/w | WV r
|
|
4105
|
+
DIVX r | IDML r | MQV r/w | PSD r/w | X3F r/w
|
|
4106
|
+
DJVU r | IIQ r/w | MRW r/w | PSP r | XCF r
|
|
4107
|
+
DLL r | IND r/w | MXF r | QTIF r/w | XLS r
|
|
4108
|
+
DNG r/w | INX r | NEF r/w | RA r | XLSX r
|
|
4109
|
+
DOC r | ISO r | NRW r/w | RAF r/w | XMP r/w/c
|
|
4110
|
+
DOCX r | ITC r | NUMBERS r | RAM r | ZIP r
|
|
4111
|
+
DPX r | J2C r | O r | RAR r |
|
|
4112
|
+
DR4 r/w/c | JNG r/w | ODP r | RAW r/w |
|
|
4113
|
+
DSS r | JP2 r/w | ODS r | RIFF r |
|
|
4114
|
+
DV r | JPEG r/w | ODT r | RSRC r |
|
|
4113
4115
|
|
|
4114
4116
|
Meta Information
|
|
4115
4117
|
----------------------+----------------------+---------------------
|
|
@@ -4419,8 +4421,9 @@ single file. In this case, C<@> may be used to represent the source file
|
|
|
4419
4421
|
processing multiple files. Specified tags are then copied from each file in
|
|
4420
4422
|
turn as it is rewritten. For advanced batch use, the source file name may
|
|
4421
4423
|
also be specified using a I<FMT> string in which %d, %f and %e represent the
|
|
4422
|
-
directory, file name and extension of I<FILE>.
|
|
4423
|
-
|
|
4424
|
+
directory, file name and extension of I<FILE>. (eg. the current I<FILE>
|
|
4425
|
+
would be represented by C<%d%f.%e>, with the same effect as C<@>). See the
|
|
4426
|
+
B<-w> option for I<FMT> string examples.
|
|
4424
4427
|
|
|
4425
4428
|
A powerful redirection feature allows a destination tag to be specified for
|
|
4426
4429
|
each copied tag. With this feature, information may be written to a tag
|
|
@@ -4486,13 +4489,13 @@ this command:
|
|
|
4486
4489
|
This is significant in the case where an overlap exists between the copied
|
|
4487
4490
|
and assigned tags because later operations may override earlier ones.
|
|
4488
4491
|
|
|
4489
|
-
5) The normal behaviour of copied tags differs
|
|
4490
|
-
|
|
4491
|
-
any previous operations
|
|
4492
|
-
when copying groups of tags from a file containing redundant
|
|
4493
|
-
also prevents values of different tags from being copied
|
|
4494
|
-
when this is the intent. So a B<-addTagsFromFile> option
|
|
4495
|
-
allows copying of multiple tags into the same list. eg)
|
|
4492
|
+
5) The normal behaviour of copied tags differs from that of assigned tags
|
|
4493
|
+
for list-type tags and conditional replacements because each copy operation
|
|
4494
|
+
on a tag overrides any previous operations. While this avoids duplicate
|
|
4495
|
+
list items when copying groups of tags from a file containing redundant
|
|
4496
|
+
information, it also prevents values of different tags from being copied
|
|
4497
|
+
into the same list when this is the intent. So a B<-addTagsFromFile> option
|
|
4498
|
+
is provided which allows copying of multiple tags into the same list. eg)
|
|
4496
4499
|
|
|
4497
4500
|
exiftool -addtagsfromfile @ '-subject<make' '-subject<model' ...
|
|
4498
4501
|
|
|
@@ -4613,6 +4616,8 @@ values are:
|
|
|
4613
4616
|
Baltic cp1257 Windows Baltic
|
|
4614
4617
|
Vietnam cp1258 Windows Vietnamese
|
|
4615
4618
|
Thai cp874 Windows Thai
|
|
4619
|
+
DOSLatinUS cp437 DOS Latin US
|
|
4620
|
+
DOSLatin1 cp850 DOS Latin1
|
|
4616
4621
|
MacRoman cp10000, Roman Macintosh Roman
|
|
4617
4622
|
MacLatin2 cp10029 Macintosh Latin2 (Central Europe)
|
|
4618
4623
|
MacCyrillic cp10007 Macintosh Cyrillic
|
|
@@ -4852,8 +4857,8 @@ variable-width character set.
|
|
|
4852
4857
|
For list-type tags, this causes only the item with the specified index to be
|
|
4853
4858
|
extracted. I<INDEX> is 0 for the first item in the list. Negative indices
|
|
4854
4859
|
may also be used to reference items from the end of the list. Has no effect
|
|
4855
|
-
on single-valued tags. Also applies to tag values when copying
|
|
4856
|
-
B<-if> conditions.
|
|
4860
|
+
on single-valued tags. Also applies to tag values when copying from a tag,
|
|
4861
|
+
and in B<-if> conditions.
|
|
4857
4862
|
|
|
4858
4863
|
=item B<-n> (B<--printConv>)
|
|
4859
4864
|
|
|
@@ -4909,7 +4914,7 @@ with this command:
|
|
|
4909
4914
|
|
|
4910
4915
|
produces output like this:
|
|
4911
4916
|
|
|
4912
|
-
-- Generated by ExifTool 10.
|
|
4917
|
+
-- Generated by ExifTool 10.65 --
|
|
4913
4918
|
File: a.jpg - 2003:10:31 15:44:19
|
|
4914
4919
|
(f/5.6, 1/60s, ISO 100)
|
|
4915
4920
|
File: b.jpg - 2006:05:23 11:57:38
|
|
@@ -5040,12 +5045,13 @@ include the leading '.'. For example:
|
|
|
5040
5045
|
-w dir2/%d%f.txt # write to "dir2", keeping dir structure
|
|
5041
5046
|
-w a%c.txt # write to "a.txt" or "a1.txt" or "a2.txt"...
|
|
5042
5047
|
|
|
5043
|
-
Existing files will not be
|
|
5044
|
-
|
|
5045
|
-
|
|
5046
|
-
B<-w+!> or B<-textOut+!>) to overwrite output files that
|
|
5047
|
-
the command was run, and append the output from multiple
|
|
5048
|
-
example, to write one output file for all source files in
|
|
5048
|
+
Existing files will not be changed unless an exclamation point is added to
|
|
5049
|
+
the option name (ie. B<-w!> or B<-textOut!>) to overwrite the file, or a
|
|
5050
|
+
plus sign (ie. B<-w+> or B<-textOut+>) to append to the existing file. Both
|
|
5051
|
+
may be used (ie. B<-w+!> or B<-textOut+!>) to overwrite output files that
|
|
5052
|
+
didn't exist before the command was run, and append the output from multiple
|
|
5053
|
+
source files. For example, to write one output file for all source files in
|
|
5054
|
+
each directory:
|
|
5049
5055
|
|
|
5050
5056
|
exiftool -filename -createdate -T -w+! %d/out.txt -r DIR
|
|
5051
5057
|
|
|
@@ -5245,9 +5251,9 @@ especially for PDF files with many embedded images.
|
|
|
5245
5251
|
Process only files with (B<-ext>) or without (B<--ext>) a specified
|
|
5246
5252
|
extension. There may be multiple B<-ext> and B<--ext> options. A plus sign
|
|
5247
5253
|
may be added (ie. B<-ext+>) to add the specified extension to the normally
|
|
5248
|
-
processed files. EXT may begin with a leading '.',
|
|
5249
|
-
significant. C<"*"> may be used to process files with any extension
|
|
5250
|
-
none at all), as in the last three examples:
|
|
5254
|
+
processed files. EXT may begin with a leading '.', which is ignored. Case
|
|
5255
|
+
is not significant. C<"*"> may be used to process files with any extension
|
|
5256
|
+
(or none at all), as in the last three examples:
|
|
5251
5257
|
|
|
5252
5258
|
exiftool -ext JPG DIR # process only JPG files
|
|
5253
5259
|
exiftool --ext cr2 --ext dng DIR # supported files but CR2/DNG
|
|
@@ -32,6 +32,11 @@ $VERSION = '1.05';
|
|
|
32
32
|
Title => { },
|
|
33
33
|
Track => { },
|
|
34
34
|
Year => { },
|
|
35
|
+
DURATION => {
|
|
36
|
+
Name => 'Duration',
|
|
37
|
+
ValueConv => '$val += 4294967296 if $val < 0 and $val >= -2147483648; $val * 1e-7',
|
|
38
|
+
PrintConv => 'ConvertDuration($val)',
|
|
39
|
+
},
|
|
35
40
|
'Tool Version' => { Name => 'ToolVersion' },
|
|
36
41
|
'Tool Name' => { Name => 'ToolName' },
|
|
37
42
|
);
|