exiftool_vendored 11.98.0 → 12.10.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 +198 -2
- data/bin/MANIFEST +8 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +43 -42
- data/bin/exiftool +102 -75
- data/bin/lib/Image/ExifTool.pm +163 -111
- data/bin/lib/Image/ExifTool.pod +127 -93
- data/bin/lib/Image/ExifTool/AIFF.pm +2 -2
- data/bin/lib/Image/ExifTool/APE.pm +2 -2
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +21 -10
- data/bin/lib/Image/ExifTool/Canon.pm +202 -14
- data/bin/lib/Image/ExifTool/CanonCustom.pm +82 -16
- data/bin/lib/Image/ExifTool/DPX.pm +56 -2
- data/bin/lib/Image/ExifTool/DarwinCore.pm +22 -3
- data/bin/lib/Image/ExifTool/EXE.pm +8 -5
- data/bin/lib/Image/ExifTool/Exif.pm +15 -6
- data/bin/lib/Image/ExifTool/Font.pm +9 -2
- data/bin/lib/Image/ExifTool/GIF.pm +6 -1
- data/bin/lib/Image/ExifTool/GeoTiff.pm +2 -0
- data/bin/lib/Image/ExifTool/Geotag.pm +2 -2
- data/bin/lib/Image/ExifTool/GoPro.pm +48 -22
- data/bin/lib/Image/ExifTool/H264.pm +1 -1
- data/bin/lib/Image/ExifTool/ID3.pm +91 -12
- data/bin/lib/Image/ExifTool/IPTC.pm +1 -0
- data/bin/lib/Image/ExifTool/JSON.pm +27 -4
- data/bin/lib/Image/ExifTool/Lang/de.pm +3 -1
- data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
- data/bin/lib/Image/ExifTool/M2TS.pm +19 -19
- data/bin/lib/Image/ExifTool/MacOS.pm +154 -38
- data/bin/lib/Image/ExifTool/Matroska.pm +3 -1
- data/bin/lib/Image/ExifTool/Minolta.pm +7 -2
- data/bin/lib/Image/ExifTool/MinoltaRaw.pm +11 -10
- data/bin/lib/Image/ExifTool/Nikon.pm +164 -20
- data/bin/lib/Image/ExifTool/Olympus.pm +39 -17
- data/bin/lib/Image/ExifTool/PNG.pm +14 -3
- data/bin/lib/Image/ExifTool/PPM.pm +5 -5
- data/bin/lib/Image/ExifTool/Panasonic.pm +148 -14
- data/bin/lib/Image/ExifTool/PanasonicRaw.pm +34 -0
- data/bin/lib/Image/ExifTool/Parrot.pm +2 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +3 -1
- data/bin/lib/Image/ExifTool/Photoshop.pm +2 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +289 -37
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +419 -60
- data/bin/lib/Image/ExifTool/README +26 -22
- data/bin/lib/Image/ExifTool/RSRC.pm +17 -11
- data/bin/lib/Image/ExifTool/RTF.pm +12 -7
- data/bin/lib/Image/ExifTool/Radiance.pm +7 -2
- data/bin/lib/Image/ExifTool/Ricoh.pm +19 -1
- data/bin/lib/Image/ExifTool/Shift.pl +1 -0
- data/bin/lib/Image/ExifTool/SigmaRaw.pm +40 -33
- data/bin/lib/Image/ExifTool/Sony.pm +426 -40
- data/bin/lib/Image/ExifTool/TagLookup.pm +5799 -5671
- data/bin/lib/Image/ExifTool/TagNames.pod +584 -97
- data/bin/lib/Image/ExifTool/Validate.pm +4 -4
- data/bin/lib/Image/ExifTool/WriteExif.pl +3 -2
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +26 -18
- data/bin/lib/Image/ExifTool/Writer.pl +47 -24
- data/bin/lib/Image/ExifTool/XMP.pm +99 -17
- data/bin/lib/Image/ExifTool/XMP2.pl +1 -0
- data/bin/lib/Image/ExifTool/XMPStruct.pl +3 -1
- data/bin/lib/Image/ExifTool/ZISRAW.pm +123 -0
- data/bin/perl-Image-ExifTool.spec +42 -41
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +8 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cf0281354d058359e076603ce713b412cd838a4c5ffe326534275ec858cb11a1
|
|
4
|
+
data.tar.gz: a556f35232b6cca374d9b118d8b8b8ac9bf4e09e5714fae9c1f3c216ca658b20
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ec70f7062aaee4ed619bb00bf91fa3d23cee45ebb15b1c3b3c383ee8867ea29b63b01e199a49dd2ef59f727eb8a156015f817ff31271c81ed69d3d560ea90a78
|
|
7
|
+
data.tar.gz: 33512db4034b62eeddecc4b3b8ec5c370d089cc9526ec1e37989bf26fef200ffe563b3c42e4dd3395be867a81e2bd2790b816610d3249a70d49828de1fdecb9e
|
data/bin/Changes
CHANGED
|
@@ -4,9 +4,204 @@ 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
|
|
7
|
+
Note: The most recent production release is Version 12.00. (Other versions are
|
|
8
8
|
considered development releases, and are not uploaded to CPAN.)
|
|
9
9
|
|
|
10
|
+
Nov. 12, 2020 - Version 12.10
|
|
11
|
+
|
|
12
|
+
- Added -validate test for proper TIFF magic number in JPEG EXIF header
|
|
13
|
+
- Added support for Nikon Z7 LensData version 0801
|
|
14
|
+
- Added a new XMP-GPano tag
|
|
15
|
+
- Decode ColorData for the Canon EOS 1DXmkIII (thanks LibRaw)
|
|
16
|
+
- Decode more tags for the Sony ILCE-7SM3 (thanks Jos Roost)
|
|
17
|
+
- Automatically apply QuickTimeUTC option for CR3 files
|
|
18
|
+
- Improved decoding of XAttrMDLabel from MacOS files
|
|
19
|
+
- Ignore time zones when writing date/time values and using the -d option
|
|
20
|
+
- Enhanced -echo3 and -echo4 options to allow exit status to be returned
|
|
21
|
+
- Changed -execute so the -q option no longer suppresses the "{ready}" message
|
|
22
|
+
when a synchronization number is used (eg. -execute123)
|
|
23
|
+
|
|
24
|
+
Oct. 29, 2020 - Version 12.09
|
|
25
|
+
|
|
26
|
+
- Added ability to copy CanonMakerNotes from CR3 images to other file types
|
|
27
|
+
- Added read support for ON1 presets file (.ONP)
|
|
28
|
+
- Added two new CanonModelID values
|
|
29
|
+
- Added trailing "/" when writing QuickTime:GPSCoordinates
|
|
30
|
+
- Added a number of new XMP-crs tags
|
|
31
|
+
- Added a new Sony LensType (thanks Jos Roost)
|
|
32
|
+
- Added a new Nikon Z lens (thanks LibRaw)
|
|
33
|
+
- Added a new Canon LensType
|
|
34
|
+
- Decode ColorData for Canon EOS R5/R6
|
|
35
|
+
- Decode a couple of new HEIF tags
|
|
36
|
+
- Decode FirmwareVersion for Canon M50
|
|
37
|
+
- Improved decoding of Sony CreativeStyle tags (thanks Jos Roost)
|
|
38
|
+
- Improved parsing of Radiance files to recognize comments
|
|
39
|
+
- Renamed GIF AspectRatio tag to PixelAspectRatio
|
|
40
|
+
- Patched EndDir() feature so subdirectories are always processed when -r is
|
|
41
|
+
used (previously, EndDir() would end processing of a directory completely)
|
|
42
|
+
- Yet another tweak to the EventTime formatting rules (also allow time-only
|
|
43
|
+
values with fractional seconds and a time zone)
|
|
44
|
+
- Avoid loading GoPro module unnecessarily when reading MP4 videos from some
|
|
45
|
+
other cameras
|
|
46
|
+
- Fixed problem with an incorrect naming of CodecID tags in some MKV videos
|
|
47
|
+
- Fixed verbose output to avoid "adding" messages for existing flattened XMP
|
|
48
|
+
tags
|
|
49
|
+
|
|
50
|
+
Oct. 15, 2020 - Version 12.08
|
|
51
|
+
|
|
52
|
+
- Added read support for MacOS "._" sidecar files
|
|
53
|
+
- Added a new Sony LensType (thanks Jos Roost)
|
|
54
|
+
- Recognize Mac OS X xattr files
|
|
55
|
+
- Extract ThumbnailImage from MP4 videos of more dashcam models
|
|
56
|
+
- Improved decoding of a number of Sony tags (thanks Jos Roost)
|
|
57
|
+
- Fixed problem where the special -if EndDir() function didn't work properly
|
|
58
|
+
for directories after the one in which it was initially called
|
|
59
|
+
- Patched to read DLL files which don't have a .rsrc section (thanks Hank)
|
|
60
|
+
- Patched to support new IGC date format when geotagging
|
|
61
|
+
- Patched to read DLL files with an invalid size in the header
|
|
62
|
+
|
|
63
|
+
Oct. 2, 2020 - Version 12.07
|
|
64
|
+
|
|
65
|
+
- Added support for GoPro .360 videos
|
|
66
|
+
- Added some new Canon RF and Nikkor Z lenses (thanks LibRaw)
|
|
67
|
+
- Added some new Sony LensType and CreativeStyle values and decode some
|
|
68
|
+
ILCE-7C tags (thanks Jos Roost)
|
|
69
|
+
- Added a number of new Olympus SceneMode values (thanks Herb)
|
|
70
|
+
- Added a new Nikon LensID
|
|
71
|
+
- Decode more timed metadata from Insta360 videos (thanks Thomas Allen)
|
|
72
|
+
- Decode timed GPS from videos of more Garmin dashcam models
|
|
73
|
+
- Decode a new GoPro video tag
|
|
74
|
+
- Reformat time-only EventTime values when writing and prevent arbitrary
|
|
75
|
+
strings from being written
|
|
76
|
+
- Patched to accept backslashes in SourceFile entries for -csv option
|
|
77
|
+
|
|
78
|
+
Sept. 11, 2020 - Version 12.06
|
|
79
|
+
|
|
80
|
+
- Added read support for Lyrics3 metadata (and fixed problem where APE
|
|
81
|
+
metadata may be ignored if Lyrics3 exists)
|
|
82
|
+
- Added a new Panasonic VideoBurstMode value (thanks Klaus Homeister)
|
|
83
|
+
- Added a new Olympus MultipleExposureMode value
|
|
84
|
+
- Added a new Nikon LensID
|
|
85
|
+
- Added back conversions for XMP-dwc EventTime that were removed in 12.04 with
|
|
86
|
+
a patch to allow time-only values
|
|
87
|
+
- Decode GIF AspectRatio
|
|
88
|
+
- Decode Olympus FocusBracketStepSize (thanks Karsten)
|
|
89
|
+
- Extract PNG iDOT chunk in Binary format with the name AppleDataOffsets
|
|
90
|
+
- Process PNG images which do not start with mandatory IHDR chunk
|
|
91
|
+
|
|
92
|
+
Aug. 24, 2020 - Version 12.05
|
|
93
|
+
|
|
94
|
+
- Added a new Panasonic SelfTimer value (thanks Herb)
|
|
95
|
+
- Decode a few more DPX tags (thanks Harry Mallon)
|
|
96
|
+
- Extract AIFF APPL tag as ApplicationData
|
|
97
|
+
- Fixed bug writing QuickTime ItemList 'gnre' Genre values
|
|
98
|
+
- Fixed an incorrect value for Panasonic VideoBurstResolution (thanks Herb)
|
|
99
|
+
- Fixed problem when applying a time shift to some invalid makernote date/time
|
|
100
|
+
values
|
|
101
|
+
|
|
102
|
+
Aug. 10, 2020 - Version 12.04
|
|
103
|
+
|
|
104
|
+
- Added read support for Zeiss ZISRAW CZI files
|
|
105
|
+
- Added some new values for a couple of Olympus tags (thanks Sebastian)
|
|
106
|
+
- Decode a number of new tags for the Sony ILCE-7SM3 (thanks Jos Roost)
|
|
107
|
+
- Removed formatting restrictions on XMP-dwc:EventTime to allow a time-only
|
|
108
|
+
value to be written
|
|
109
|
+
- Moved new QuckTime ItemList tags added in version 12.02 to the proper group
|
|
110
|
+
(they were incorrectly added to the Keys group)
|
|
111
|
+
- Improved QuickTime -v3 output to show default language codes
|
|
112
|
+
- Patched -lang option to work for the values of somet tags with coded
|
|
113
|
+
translations
|
|
114
|
+
- Patched the format of a number of QuickTime tags when writing for improved
|
|
115
|
+
compatibility with iTunes and AtomicParsley
|
|
116
|
+
- Patched to write a default QuickTime language code of 0x0000 (null) instead
|
|
117
|
+
of 0x55c4 ('und')
|
|
118
|
+
|
|
119
|
+
July 29, 2020 - Version 12.03
|
|
120
|
+
|
|
121
|
+
- Added family 7 group names to allow tag ID's to be specified when reading
|
|
122
|
+
and writing
|
|
123
|
+
- Fixed a couple of typos in tag values (thanks Herb)
|
|
124
|
+
- API Changes:
|
|
125
|
+
- Added HexTagIDs option
|
|
126
|
+
- Enhanced GetNewValue() to allow family 7 groups names to be used
|
|
127
|
+
- Internal Changes:
|
|
128
|
+
- Changed Composite tag ID's to use "-" instead of "::" as a separator
|
|
129
|
+
|
|
130
|
+
July 27, 2020 - Version 12.02
|
|
131
|
+
|
|
132
|
+
- Added support for a number of new QuickTime ItemList tags
|
|
133
|
+
- Added support for writing XMP-xmp:RatingPercent
|
|
134
|
+
- Added a new Sony LensType (thanks Jos Roost and LibRaw)
|
|
135
|
+
- Added a new Pentax LensType (thanks James O'Neill)
|
|
136
|
+
- Decode barcodes from Ricoh APP5 RMETA segment
|
|
137
|
+
- Decode a few new QuickTime tags written by Ricoh and Garmin cameras
|
|
138
|
+
- Decode timed GPS from Sony A7R IV MP4 videos
|
|
139
|
+
- Decode timed GPS from 70mai dashcam videos
|
|
140
|
+
- Decode a few new Panasonic tags (thanks Klaus Homeister)
|
|
141
|
+
- Decode altitude and more accurate latitude/longitude from Transcend Driver
|
|
142
|
+
Pro 230 MP4 videos
|
|
143
|
+
- Improved decoding of some Canon EOS 1DXmkIII custom functions
|
|
144
|
+
- Allow integer QuickTime TrackNumber and DiskNumber values
|
|
145
|
+
- Relax validity check of QuickTime:ContentCreateDate when writing with -n
|
|
146
|
+
- Removed "Com" from the start of some unknown ItemList tag names
|
|
147
|
+
- Patched CanonCustom decoding for bug in Canon EOS-1DX firmware
|
|
148
|
+
- Changed QuickTime CleanAperture tags decode as signed rationals
|
|
149
|
+
|
|
150
|
+
June 24, 2020 - Version 12.01
|
|
151
|
+
|
|
152
|
+
- Added a new NEFCompression value (thanks Warren Hatch)
|
|
153
|
+
- Added a new Sony LensType (thanks Jos Roost)
|
|
154
|
+
- Decode timed GPS from Rove Stealth 4K dashcam videos
|
|
155
|
+
- Fixed bug which would corrupt TIFF images with 16-bit image data offsets
|
|
156
|
+
when writing (these are very rare)
|
|
157
|
+
|
|
158
|
+
June 11, 2020 - Version 12.00 (production release)
|
|
159
|
+
|
|
160
|
+
- Added two new Olympus LensTypes (thanks Don Komarechka for one)
|
|
161
|
+
- Added two new Sony LensType values (thanks Jos Roost)
|
|
162
|
+
- Added a few new Nikon LensID's (thanks Mathieu Carbou)
|
|
163
|
+
- Added support for the Sony ZV-1 (thanks Jos Roost)
|
|
164
|
+
- Added a new CanonModelID (thanks Jos Roost)
|
|
165
|
+
- Added missing MimeType values for HEICS and HEIFS files
|
|
166
|
+
- Added definitions for a number of new XMP-crs tags
|
|
167
|
+
- Recognize WOFF and WOFF2 font files
|
|
168
|
+
- Decode streaming GPS from Roadhawk, EEEkit and 360Fly MP4 videos
|
|
169
|
+
- Decode a number of new tags for the Nikon D6 (thanks Warren Hatch)
|
|
170
|
+
- Decode a couple more AF tags for the D500/D850
|
|
171
|
+
- Decode a number of new Panasonic tags
|
|
172
|
+
- Improved Composite LensID logic (thanks Matt Stancliff)
|
|
173
|
+
- Enhanced -v option to state when a directory has 0 entries
|
|
174
|
+
- Removed a couple of incorrect Validate warnings for bilevel TIFF images
|
|
175
|
+
- Drop ContrastCurve tag when copying from NEF to JPEG
|
|
176
|
+
- Changed -csv output to add "Unknown" group name to column headings for
|
|
177
|
+
missing tags when -f and -G options are used
|
|
178
|
+
- Patched to support new XMP LensID format for Nikon cameras as written by
|
|
179
|
+
Apple Photos (thanks Mattsta)
|
|
180
|
+
- Fixed problem extracting metadata from Sigma DP2 Quattro X3F files
|
|
181
|
+
- Fixed End() and EndDir() functions so they work when writing and when the -v
|
|
182
|
+
option is used
|
|
183
|
+
- Fixed problem recognizing some PGM files
|
|
184
|
+
- Fixed bug in offsets for some Photoshop information in -v3 output
|
|
185
|
+
- Fixed problem writing a list containing empty elements inside an XMP
|
|
186
|
+
structure
|
|
187
|
+
- API Changes:
|
|
188
|
+
- Added NoMultiExif option
|
|
189
|
+
- Changed FilterW option to not write tag if $_ is set to undef
|
|
190
|
+
|
|
191
|
+
May 11, 2020 - Version 11.99
|
|
192
|
+
|
|
193
|
+
- Added a new Nikon LensID (thanks Mykyta Kozlov)
|
|
194
|
+
- Added a new Canon LensType
|
|
195
|
+
- Added a newn PentaxModelID
|
|
196
|
+
- Decode a few new QuickTime tags
|
|
197
|
+
- Decode new ID3 Grouping tag
|
|
198
|
+
- Decode a few more MinoltaRaw tags (thanks LibRaw)
|
|
199
|
+
- Fixed runtime warning which could occur when reading corrupted RTF files
|
|
200
|
+
- Fixed another potential pitfall in M2TS Duration calculation
|
|
201
|
+
- Fixed problem extracting some unknown QuickTime:Keys tags
|
|
202
|
+
- Fixed problem decoding Nikon D850 orientation tags
|
|
203
|
+
- Fixed bug where TIFF image data may not be padded to an even number of bytes
|
|
204
|
+
|
|
10
205
|
May 1, 2020 - Version 11.98
|
|
11
206
|
|
|
12
207
|
- Added a new Nikon LensID (thanks Warren Hatch)
|
|
@@ -30,7 +225,8 @@ Apr. 24, 2020 - Version 11.96
|
|
|
30
225
|
|
|
31
226
|
Apr. 23, 2020 - Version 11.95
|
|
32
227
|
|
|
33
|
-
- Added Exit() and ExitDir() functions for use in -if conditions
|
|
228
|
+
- Added Exit() and ExitDir() functions for use in -if conditions (NOTE: these
|
|
229
|
+
function names changed to End() and EndDir() in ExifTool 11.96)
|
|
34
230
|
- Enhanced -geotag feature to support a more flexible input CSV file format
|
|
35
231
|
- Enhanced -if and API Filter options to allow access to ExifTool object via
|
|
36
232
|
$self
|
data/bin/MANIFEST
CHANGED
|
@@ -169,6 +169,7 @@ html/TagNames/Vorbis.html
|
|
|
169
169
|
html/TagNames/WTV.html
|
|
170
170
|
html/TagNames/XMP.html
|
|
171
171
|
html/TagNames/ZIP.html
|
|
172
|
+
html/TagNames/ZISRAW.html
|
|
172
173
|
html/TagNames/iWork.html
|
|
173
174
|
html/TagNames/index.html
|
|
174
175
|
html/TagNames/style.css
|
|
@@ -410,6 +411,7 @@ lib/Image/ExifTool/XMP.pm
|
|
|
410
411
|
lib/Image/ExifTool/XMP2.pl
|
|
411
412
|
lib/Image/ExifTool/XMPStruct.pl
|
|
412
413
|
lib/Image/ExifTool/ZIP.pm
|
|
414
|
+
lib/Image/ExifTool/ZISRAW.pm
|
|
413
415
|
lib/Image/ExifTool/iWork.pm
|
|
414
416
|
perl-Image-ExifTool.spec
|
|
415
417
|
t/AFCP.t
|
|
@@ -650,6 +652,8 @@ t/MWG_6.out
|
|
|
650
652
|
t/MWG_7.out
|
|
651
653
|
t/MXF.t
|
|
652
654
|
t/MXF_2.out
|
|
655
|
+
t/MacOS.t
|
|
656
|
+
t/MacOS_2.out
|
|
653
657
|
t/Matroska.t
|
|
654
658
|
t/Matroska_2.out
|
|
655
659
|
t/Minolta.t
|
|
@@ -915,6 +919,8 @@ t/ZIP_4.out
|
|
|
915
919
|
t/ZIP_5.out
|
|
916
920
|
t/ZIP_6.out
|
|
917
921
|
t/ZIP_7.out
|
|
922
|
+
t/ZISRAW.t
|
|
923
|
+
t/ZISRAW_2.out
|
|
918
924
|
t/images/AFCP.jpg
|
|
919
925
|
t/images/AIFF.aif
|
|
920
926
|
t/images/APE.ape
|
|
@@ -1003,6 +1009,7 @@ t/images/MOI.moi
|
|
|
1003
1009
|
t/images/MP3.mp3
|
|
1004
1010
|
t/images/MWG.jpg
|
|
1005
1011
|
t/images/MXF.mxf
|
|
1012
|
+
t/images/MacOS.macos
|
|
1006
1013
|
t/images/Matroska.mkv
|
|
1007
1014
|
t/images/Minolta.jpg
|
|
1008
1015
|
t/images/Minolta.mrw
|
|
@@ -1089,4 +1096,5 @@ t/images/XMP8.xmp
|
|
|
1089
1096
|
t/images/XMP9.xmp
|
|
1090
1097
|
t/images/ZIP.gz
|
|
1091
1098
|
t/images/ZIP.zip
|
|
1099
|
+
t/images/ZISRAW.czi
|
|
1092
1100
|
t/images/iWork.numbers
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
|
@@ -14,46 +14,47 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
14
14
|
|
|
15
15
|
File Types
|
|
16
16
|
------------+-------------+-------------+-------------+------------
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
17
|
+
360 r/w | DPX r | ITC r | ODP r | RIFF r
|
|
18
|
+
3FR r | DR4 r/w/c | J2C r | ODS r | RSRC r
|
|
19
|
+
3G2 r/w | DSS r | JNG r/w | ODT r | RTF r
|
|
20
|
+
3GP r/w | DV r | JP2 r/w | OFR r | RW2 r/w
|
|
21
|
+
A r | DVB r/w | JPEG r/w | OGG r | RWL r/w
|
|
22
|
+
AA r | DVR-MS r | JSON r | OGV r | RWZ r
|
|
23
|
+
AAE r | DYLIB r | K25 r | ONP r | RM r
|
|
24
|
+
AAX r/w | EIP r | KDC r | OPUS r | SEQ r
|
|
25
|
+
ACR r | EPS r/w | KEY r | ORF r/w | SKETCH r
|
|
26
|
+
AFM r | EPUB r | LA r | OTF r | SO r
|
|
27
|
+
AI r/w | ERF r/w | LFP r | PAC r | SR2 r/w
|
|
28
|
+
AIFF r | EXE r | LNK r | PAGES r | SRF r
|
|
29
|
+
APE r | EXIF r/w/c | LRV r/w | PBM r/w | SRW r/w
|
|
30
|
+
ARQ r/w | EXR r | M2TS r | PCD r | SVG r
|
|
31
|
+
ARW r/w | EXV r/w/c | M4A/V r/w | PCX r | SWF r
|
|
32
|
+
ASF r | F4A/V r/w | MACOS r | PDB r | THM r/w
|
|
33
|
+
AVI r | FFF r/w | MAX r | PDF r/w | TIFF r/w
|
|
34
|
+
AVIF r/w | FITS r | MEF r/w | PEF r/w | TORRENT r
|
|
35
|
+
AZW r | FLA r | MIE r/w/c | PFA r | TTC r
|
|
36
|
+
BMP r | FLAC r | MIFF r | PFB r | TTF r
|
|
37
|
+
BPG r | FLIF r/w | MKA r | PFM r | TXT r
|
|
38
|
+
BTF r | FLV r | MKS r | PGF r | VCF r
|
|
39
|
+
CHM r | FPF r | MKV r | PGM r/w | VRD r/w/c
|
|
40
|
+
COS r | FPX r | MNG r/w | PLIST r | VSD r
|
|
41
|
+
CR2 r/w | GIF r/w | MOBI r | PICT r | WAV r
|
|
42
|
+
CR3 r/w | GPR r/w | MODD r | PMP r | WDP r/w
|
|
43
|
+
CRM r/w | GZ r | MOI r | PNG r/w | WEBP r
|
|
44
|
+
CRW r/w | HDP r/w | MOS r/w | PPM r/w | WEBM r
|
|
45
|
+
CS1 r/w | HDR r | MOV r/w | PPT r | WMA r
|
|
46
|
+
CSV r | HEIC r/w | MP3 r | PPTX r | WMV r
|
|
47
|
+
CZI r | HEIF r/w | MP4 r/w | PS r/w | WTV r
|
|
48
|
+
DCM r | HTML r | MPC r | PSB r/w | WV r
|
|
49
|
+
DCP r/w | ICC r/w/c | MPG r | PSD r/w | X3F r/w
|
|
50
|
+
DCR r | ICS r | MPO r/w | PSP r | XCF r
|
|
51
|
+
DFONT r | IDML r | MQV r/w | QTIF r/w | XLS r
|
|
52
|
+
DIVX r | IIQ r/w | MRW r/w | R3D r | XLSX r
|
|
53
|
+
DJVU r | IND r/w | MXF r | RA r | XMP r/w/c
|
|
54
|
+
DLL r | INSP r/w | NEF r/w | RAF r/w | ZIP r
|
|
55
|
+
DNG r/w | INSV r | NRW r/w | RAM r |
|
|
56
|
+
DOC r | INX r | NUMBERS r | RAR r |
|
|
57
|
+
DOCX r | ISO r | O r | RAW r/w |
|
|
57
58
|
|
|
58
59
|
Meta Information
|
|
59
60
|
----------------------+----------------------+---------------------
|
|
@@ -105,8 +106,8 @@ your home directory, then you would type the following commands in a
|
|
|
105
106
|
terminal window to extract and run ExifTool:
|
|
106
107
|
|
|
107
108
|
cd ~/Desktop
|
|
108
|
-
gzip -dc Image-ExifTool-
|
|
109
|
-
cd Image-ExifTool-
|
|
109
|
+
gzip -dc Image-ExifTool-12.10.tar.gz | tar -xf -
|
|
110
|
+
cd Image-ExifTool-12.10
|
|
110
111
|
./exiftool t/images/ExifTool.jpg
|
|
111
112
|
|
|
112
113
|
Note: These commands extract meta information from one of the test images.
|
data/bin/exiftool
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
use strict;
|
|
11
11
|
require 5.004;
|
|
12
12
|
|
|
13
|
-
my $version = '
|
|
13
|
+
my $version = '12.10';
|
|
14
14
|
|
|
15
15
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
|
16
16
|
my $exeDir;
|
|
@@ -141,6 +141,7 @@ my $deleteOrig; # 0=restore original files, 1=delete originals, 2=delete w/o
|
|
|
141
141
|
my $disableOutput; # flag to disable normal output
|
|
142
142
|
my $doSetFileName; # flag set if FileName may be written
|
|
143
143
|
my $doUnzip; # flag to extract info from .gz and .bz2 files
|
|
144
|
+
my ($end,$endDir); # flags to end processing
|
|
144
145
|
my $escapeC; # C-style escape
|
|
145
146
|
my $escapeHTML; # flag to escape printed values for html
|
|
146
147
|
my $evalWarning; # warning from eval
|
|
@@ -293,8 +294,8 @@ my %altRecommends = (
|
|
|
293
294
|
my %unescapeChar = ( 't'=>"\t", 'n'=>"\n", 'r'=>"\r" );
|
|
294
295
|
|
|
295
296
|
# special subroutines used in -if condition
|
|
296
|
-
sub Image::ExifTool::EndDir() { return
|
|
297
|
-
sub Image::ExifTool::End() { return
|
|
297
|
+
sub Image::ExifTool::EndDir() { return $endDir = 1 }
|
|
298
|
+
sub Image::ExifTool::End() { return $end = 1 }
|
|
298
299
|
|
|
299
300
|
# exit routine
|
|
300
301
|
sub Exit {
|
|
@@ -365,13 +366,21 @@ if (grep /^-common_args$/i, @ARGV) {
|
|
|
365
366
|
# loop over sets of command-line arguments separated by "-execute"
|
|
366
367
|
Command: for (;;) {
|
|
367
368
|
|
|
368
|
-
|
|
369
|
-
|
|
369
|
+
if (@echo3) {
|
|
370
|
+
my $str = join "\n", @echo3, "\n";
|
|
371
|
+
$str =~ s/\$\{status\}/$rtnVal/ig;
|
|
372
|
+
print STDOUT $str;
|
|
373
|
+
}
|
|
374
|
+
if (@echo4) {
|
|
375
|
+
my $str = join "\n", @echo4, "\n";
|
|
376
|
+
$str =~ s/\$\{status\}/$rtnVal/ig;
|
|
377
|
+
print STDERR $str;
|
|
378
|
+
}
|
|
370
379
|
|
|
371
380
|
$rafStdin->Close() if $rafStdin;
|
|
372
381
|
undef $rafStdin;
|
|
373
382
|
|
|
374
|
-
# save
|
|
383
|
+
# save our previous return codes
|
|
375
384
|
$rtnValPrev = $rtnVal;
|
|
376
385
|
$rtnValApp = $rtnVal if $rtnVal;
|
|
377
386
|
|
|
@@ -386,7 +395,7 @@ if ($binaryStdout) {
|
|
|
386
395
|
|
|
387
396
|
# flush console and print "{ready}" message if -stay_open is in effect
|
|
388
397
|
if ($stayOpen >= 2) {
|
|
389
|
-
if ($quiet) {
|
|
398
|
+
if ($quiet and not defined $executeID) {
|
|
390
399
|
# flush output if possible
|
|
391
400
|
eval { require IO::Handle } and STDERR->flush(), STDOUT->flush();
|
|
392
401
|
} else {
|
|
@@ -443,6 +452,8 @@ undef $deleteOrig;
|
|
|
443
452
|
undef $disableOutput;
|
|
444
453
|
undef $doSetFileName;
|
|
445
454
|
undef $doUnzip;
|
|
455
|
+
undef $end;
|
|
456
|
+
undef $endDir;
|
|
446
457
|
undef $escapeHTML;
|
|
447
458
|
undef $escapeC;
|
|
448
459
|
undef $evalWarning;
|
|
@@ -551,7 +562,7 @@ if (not $preserveTime and $^O eq 'MSWin32') {
|
|
|
551
562
|
for (;;) {
|
|
552
563
|
|
|
553
564
|
# execute the command now if no more arguments or -execute is used
|
|
554
|
-
if (not @ARGV or ($ARGV[0] =~ /^(-|\xe2\x88\x92)execute(\d
|
|
565
|
+
if (not @ARGV or ($ARGV[0] =~ /^(-|\xe2\x88\x92)execute(\d+)?$/i and not $endOfOpts)) {
|
|
555
566
|
if (@ARGV) {
|
|
556
567
|
$executeID = $2; # save -execute number for "{ready}" response
|
|
557
568
|
$helped = 1; # don't show help if we used -execute
|
|
@@ -1755,13 +1766,17 @@ if (@dbKeys) {
|
|
|
1755
1766
|
undef $evalWarning;
|
|
1756
1767
|
local $SIG{'__WARN__'} = sub { $evalWarning = $_[0] };
|
|
1757
1768
|
foreach (@dbKeys) {
|
|
1769
|
+
my $db = $database{$_};
|
|
1770
|
+
tr/\\/\// and $database{$_} = $db; # allow for backslashes in SourceFile
|
|
1758
1771
|
# (punt on using ConvertFileName here, so $absPath may be a mix of encodings)
|
|
1759
1772
|
my $absPath = AbsPath($_);
|
|
1760
1773
|
if (defined $absPath) {
|
|
1761
|
-
$database{$absPath} = $
|
|
1774
|
+
$database{$absPath} = $db unless $database{$absPath};
|
|
1762
1775
|
if ($verbose and $verbose > 1) {
|
|
1763
1776
|
print $vout "Imported entry for '${_}' (full path: '${absPath}')\n";
|
|
1764
1777
|
}
|
|
1778
|
+
} elsif ($verbose and $verbose > 1) {
|
|
1779
|
+
print $vout "Imported entry for '${_}' (non-existent file)\n";
|
|
1765
1780
|
}
|
|
1766
1781
|
}
|
|
1767
1782
|
}
|
|
@@ -2271,7 +2286,7 @@ TAG: foreach $tag (@foundTags) {
|
|
|
2271
2286
|
# the same group, and if so suppress this tag instead
|
|
2272
2287
|
next if $noDups and $tag =~ /^(.*?) ?\(/ and defined $$info{$1} and
|
|
2273
2288
|
$group eq $et->GetGroup($1, $showGroup);
|
|
2274
|
-
$group = 'Unknown' if not $group and ($xml or $json);
|
|
2289
|
+
$group = 'Unknown' if not $group and ($xml or $json or $csv);
|
|
2275
2290
|
if ($fp and not ($allGroup or $csv)) {
|
|
2276
2291
|
if ($lastGroup ne $group) {
|
|
2277
2292
|
if ($html) {
|
|
@@ -3546,11 +3561,11 @@ sub ProcessFiles($;$)
|
|
|
3546
3561
|
push(@$list, $file);
|
|
3547
3562
|
} else {
|
|
3548
3563
|
GetImageInfo($et, $file);
|
|
3549
|
-
|
|
3564
|
+
$end and Warn("End called - $file\n");
|
|
3550
3565
|
}
|
|
3551
3566
|
}
|
|
3552
3567
|
$et->Options(CharsetFileName => $enc) if $utf8FileName{$file};
|
|
3553
|
-
last if
|
|
3568
|
+
last if $end;
|
|
3554
3569
|
}
|
|
3555
3570
|
}
|
|
3556
3571
|
|
|
@@ -3561,7 +3576,7 @@ sub ScanDir($$;$)
|
|
|
3561
3576
|
{
|
|
3562
3577
|
local $_;
|
|
3563
3578
|
my ($et, $dir, $list) = @_;
|
|
3564
|
-
my (@fileList, $done, $file, $utf8Name, $winSurrogate);
|
|
3579
|
+
my (@fileList, $done, $file, $utf8Name, $winSurrogate, $endThisDir);
|
|
3565
3580
|
my $enc = $et->Options('CharsetFileName');
|
|
3566
3581
|
# recode as UTF-8 if necessary
|
|
3567
3582
|
if ($enc) {
|
|
@@ -3628,9 +3643,10 @@ sub ScanDir($$;$)
|
|
|
3628
3643
|
next if $file =~ /^\./ and ($recurse == 1 or $file eq '.' or $file eq '..');
|
|
3629
3644
|
next if $ignore{$file} or ($ignore{SYMLINKS} and -l $path);
|
|
3630
3645
|
ScanDir($et, $path, $list);
|
|
3631
|
-
last if
|
|
3646
|
+
last if $end;
|
|
3632
3647
|
next;
|
|
3633
3648
|
}
|
|
3649
|
+
next if $endThisDir;
|
|
3634
3650
|
# apply rules from -ext options
|
|
3635
3651
|
my $accepted;
|
|
3636
3652
|
if ($filterFlag) {
|
|
@@ -3668,14 +3684,15 @@ sub ScanDir($$;$)
|
|
|
3668
3684
|
push(@$list, $path);
|
|
3669
3685
|
} else {
|
|
3670
3686
|
GetImageInfo($et, $path);
|
|
3671
|
-
if (
|
|
3687
|
+
if ($end) {
|
|
3672
3688
|
Warn("End called - $file\n");
|
|
3673
3689
|
last;
|
|
3674
3690
|
}
|
|
3675
|
-
if (
|
|
3676
|
-
$
|
|
3691
|
+
if ($endDir) {
|
|
3692
|
+
$path =~ s(/$)();
|
|
3677
3693
|
Warn("EndDir called - $path\n");
|
|
3678
|
-
|
|
3694
|
+
undef $endDir;
|
|
3695
|
+
$endThisDir = 1;
|
|
3679
3696
|
}
|
|
3680
3697
|
}
|
|
3681
3698
|
}
|
|
@@ -4379,46 +4396,47 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
4379
4396
|
|
|
4380
4397
|
File Types
|
|
4381
4398
|
------------+-------------+-------------+-------------+------------
|
|
4382
|
-
|
|
4383
|
-
|
|
4384
|
-
|
|
4385
|
-
|
|
4386
|
-
|
|
4387
|
-
|
|
4388
|
-
|
|
4389
|
-
|
|
4390
|
-
|
|
4391
|
-
|
|
4392
|
-
|
|
4393
|
-
|
|
4394
|
-
|
|
4395
|
-
|
|
4396
|
-
|
|
4397
|
-
|
|
4398
|
-
|
|
4399
|
-
|
|
4400
|
-
|
|
4401
|
-
|
|
4402
|
-
|
|
4403
|
-
|
|
4404
|
-
|
|
4405
|
-
|
|
4406
|
-
|
|
4407
|
-
|
|
4408
|
-
|
|
4409
|
-
|
|
4410
|
-
|
|
4411
|
-
|
|
4412
|
-
|
|
4413
|
-
|
|
4414
|
-
|
|
4415
|
-
|
|
4416
|
-
|
|
4417
|
-
|
|
4418
|
-
|
|
4419
|
-
|
|
4420
|
-
|
|
4421
|
-
|
|
4399
|
+
360 r/w | DPX r | ITC r | ODP r | RIFF r
|
|
4400
|
+
3FR r | DR4 r/w/c | J2C r | ODS r | RSRC r
|
|
4401
|
+
3G2 r/w | DSS r | JNG r/w | ODT r | RTF r
|
|
4402
|
+
3GP r/w | DV r | JP2 r/w | OFR r | RW2 r/w
|
|
4403
|
+
A r | DVB r/w | JPEG r/w | OGG r | RWL r/w
|
|
4404
|
+
AA r | DVR-MS r | JSON r | OGV r | RWZ r
|
|
4405
|
+
AAE r | DYLIB r | K25 r | ONP r | RM r
|
|
4406
|
+
AAX r/w | EIP r | KDC r | OPUS r | SEQ r
|
|
4407
|
+
ACR r | EPS r/w | KEY r | ORF r/w | SKETCH r
|
|
4408
|
+
AFM r | EPUB r | LA r | OTF r | SO r
|
|
4409
|
+
AI r/w | ERF r/w | LFP r | PAC r | SR2 r/w
|
|
4410
|
+
AIFF r | EXE r | LNK r | PAGES r | SRF r
|
|
4411
|
+
APE r | EXIF r/w/c | LRV r/w | PBM r/w | SRW r/w
|
|
4412
|
+
ARQ r/w | EXR r | M2TS r | PCD r | SVG r
|
|
4413
|
+
ARW r/w | EXV r/w/c | M4A/V r/w | PCX r | SWF r
|
|
4414
|
+
ASF r | F4A/V r/w | MACOS r | PDB r | THM r/w
|
|
4415
|
+
AVI r | FFF r/w | MAX r | PDF r/w | TIFF r/w
|
|
4416
|
+
AVIF r/w | FITS r | MEF r/w | PEF r/w | TORRENT r
|
|
4417
|
+
AZW r | FLA r | MIE r/w/c | PFA r | TTC r
|
|
4418
|
+
BMP r | FLAC r | MIFF r | PFB r | TTF r
|
|
4419
|
+
BPG r | FLIF r/w | MKA r | PFM r | TXT r
|
|
4420
|
+
BTF r | FLV r | MKS r | PGF r | VCF r
|
|
4421
|
+
CHM r | FPF r | MKV r | PGM r/w | VRD r/w/c
|
|
4422
|
+
COS r | FPX r | MNG r/w | PLIST r | VSD r
|
|
4423
|
+
CR2 r/w | GIF r/w | MOBI r | PICT r | WAV r
|
|
4424
|
+
CR3 r/w | GPR r/w | MODD r | PMP r | WDP r/w
|
|
4425
|
+
CRM r/w | GZ r | MOI r | PNG r/w | WEBP r
|
|
4426
|
+
CRW r/w | HDP r/w | MOS r/w | PPM r/w | WEBM r
|
|
4427
|
+
CS1 r/w | HDR r | MOV r/w | PPT r | WMA r
|
|
4428
|
+
CSV r | HEIC r/w | MP3 r | PPTX r | WMV r
|
|
4429
|
+
CZI r | HEIF r/w | MP4 r/w | PS r/w | WTV r
|
|
4430
|
+
DCM r | HTML r | MPC r | PSB r/w | WV r
|
|
4431
|
+
DCP r/w | ICC r/w/c | MPG r | PSD r/w | X3F r/w
|
|
4432
|
+
DCR r | ICS r | MPO r/w | PSP r | XCF r
|
|
4433
|
+
DFONT r | IDML r | MQV r/w | QTIF r/w | XLS r
|
|
4434
|
+
DIVX r | IIQ r/w | MRW r/w | R3D r | XLSX r
|
|
4435
|
+
DJVU r | IND r/w | MXF r | RA r | XMP r/w/c
|
|
4436
|
+
DLL r | INSP r/w | NEF r/w | RAF r/w | ZIP r
|
|
4437
|
+
DNG r/w | INSV r | NRW r/w | RAM r |
|
|
4438
|
+
DOC r | INX r | NUMBERS r | RAR r |
|
|
4439
|
+
DOCX r | ISO r | O r | RAW r/w |
|
|
4422
4440
|
|
|
4423
4441
|
Meta Information
|
|
4424
4442
|
----------------------+----------------------+---------------------
|
|
@@ -4474,7 +4492,7 @@ L<Input-output text formatting|/Input-output text formatting>
|
|
|
4474
4492
|
-f (-forcePrint) Force printing of all specified tags
|
|
4475
4493
|
-g[NUM...] (-groupHeadings) Organize output by tag group
|
|
4476
4494
|
-G[NUM...] (-groupNames) Print group name for each tag
|
|
4477
|
-
-h (-htmlFormat) Use
|
|
4495
|
+
-h (-htmlFormat) Use HTML formatting for output
|
|
4478
4496
|
-H (-hex) Show tag ID numbers in hexadecimal
|
|
4479
4497
|
-htmlDump[OFFSET] Generate HTML-format binary dump
|
|
4480
4498
|
-j[[+]=JSONFILE] (-json) Export/import tags in JSON format
|
|
@@ -4620,7 +4638,7 @@ delete or replace a tag (see L</WRITING EXAMPLES> for examples). C<^=> is
|
|
|
4620
4638
|
used to write an empty string instead of deleting the tag when no I<VALUE>
|
|
4621
4639
|
is given, but otherwise it is equivalent to C<=>.
|
|
4622
4640
|
|
|
4623
|
-
I<TAG> may contain one or more leading family 0, 1 or
|
|
4641
|
+
I<TAG> may contain one or more leading family 0, 1, 2 or 7 group names,
|
|
4624
4642
|
prefixed by optional family numbers, and separated colons. If no group name
|
|
4625
4643
|
is specified, the tag is created in the preferred group, and updated in any
|
|
4626
4644
|
other location where a same-named tag already exists. The preferred group
|
|
@@ -4675,7 +4693,7 @@ the specified group(s) are removed individually, and in this case is it
|
|
|
4675
4693
|
possible to exclude individual tags from a mass delete. For example,
|
|
4676
4694
|
C<-time:all --Exif:Time:All> removes all deletable Time tags except those in
|
|
4677
4695
|
the EXIF. This difference also applies if family 2 is specified when
|
|
4678
|
-
deleting all groups.
|
|
4696
|
+
deleting all groups. For example, C<-2all:all=> deletes tags individually,
|
|
4679
4697
|
while C<-all:all=> deletes entire blocks.
|
|
4680
4698
|
|
|
4681
4699
|
5) The "APP" group names ("APP0" through "APP15") are used to delete JPEG
|
|
@@ -5075,13 +5093,13 @@ B<-csv>=I<CSVFILE> feature.
|
|
|
5075
5093
|
|
|
5076
5094
|
Organize output by tag group. I<NUM> specifies a group family number, and
|
|
5077
5095
|
may be 0 (general location), 1 (specific location), 2 (category), 3
|
|
5078
|
-
(document number), 4 (instance number), 5 (metadata path)
|
|
5079
|
-
format). B<-g0> is assumed if a family number is not
|
|
5080
|
-
|
|
5081
|
-
Multiple families may be specified by separating them with colons.
|
|
5082
|
-
default the resulting group name is simplified by removing any leading
|
|
5096
|
+
(document number), 4 (instance number), 5 (metadata path), 6 (EXIF/TIFF
|
|
5097
|
+
format) or 7 (tag ID). B<-g0> is assumed if a family number is not
|
|
5098
|
+
specified. May be combined with other options to add group names to the
|
|
5099
|
+
output. Multiple families may be specified by separating them with colons.
|
|
5100
|
+
By default the resulting group name is simplified by removing any leading
|
|
5083
5101
|
C<Main:> and collapsing adjacent identical group names, but this can be
|
|
5084
|
-
avoided by placing a colon before the first family number (eg. B<-g:3:1>).
|
|
5102
|
+
avoided by placing a colon before the first family number (eg. B<-g:3:1>).
|
|
5085
5103
|
Use the B<-listg> option to list group names for a specified family. The
|
|
5086
5104
|
SavePath and SaveFormat API options are automatically enabled if the
|
|
5087
5105
|
respective family 5 or 6 group names are requested. See the
|
|
@@ -5286,7 +5304,7 @@ with this command:
|
|
|
5286
5304
|
|
|
5287
5305
|
produces output like this:
|
|
5288
5306
|
|
|
5289
|
-
-- Generated by ExifTool
|
|
5307
|
+
-- Generated by ExifTool 12.10 --
|
|
5290
5308
|
File: a.jpg - 2003:10:31 15:44:19
|
|
5291
5309
|
(f/5.6, 1/60s, ISO 100)
|
|
5292
5310
|
File: b.jpg - 2006:05:23 11:57:38
|
|
@@ -5719,7 +5737,9 @@ involves an additional processing pass of each file, but this impact may be
|
|
|
5719
5737
|
reduced by specifying a I<NUM> for the B<-fast> level used during the
|
|
5720
5738
|
metadata-extraction phase. For example, B<-fileOrder4> may be used if
|
|
5721
5739
|
I<TAG> is a pseudo System tag. If multiple B<-fileOrder> options are used,
|
|
5722
|
-
the extraction is done at the lowest B<-fast> level.
|
|
5740
|
+
the extraction is done at the lowest B<-fast> level. Note that files are
|
|
5741
|
+
sorted across directory boundaries if multiple input directories are
|
|
5742
|
+
specified.
|
|
5723
5743
|
|
|
5724
5744
|
=item B<-i> I<DIR> (B<-ignore>)
|
|
5725
5745
|
|
|
@@ -5769,7 +5789,8 @@ of the file processing. Both functions have a return value of 1. Case is
|
|
|
5769
5789
|
significant for function names.
|
|
5770
5790
|
|
|
5771
5791
|
End() - end processing after this file
|
|
5772
|
-
EndDir() - end processing of files in this directory
|
|
5792
|
+
EndDir() - end processing of files in this directory (not
|
|
5793
|
+
compatible with the B<-fileOrder> option)
|
|
5773
5794
|
|
|
5774
5795
|
Notes:
|
|
5775
5796
|
|
|
@@ -6231,7 +6252,9 @@ about the configuration file syntax.
|
|
|
6231
6252
|
Echo I<TEXT> to stdout (B<-echo> or B<-echo1>) or stderr (B<-echo2>). Text
|
|
6232
6253
|
is output as the command line is parsed, before the processing of any input
|
|
6233
6254
|
files. I<NUM> may also be 3 or 4 to output text (to stdout or stderr
|
|
6234
|
-
respectively) after processing is complete.
|
|
6255
|
+
respectively) after processing is complete. For B<-echo3> and B<-echo4>,
|
|
6256
|
+
"${status}" may be used in the I<TEXT> string to represent the numerical
|
|
6257
|
+
exit status of the command (see L</EXIT STATUS>).
|
|
6235
6258
|
|
|
6236
6259
|
=item B<-efile>[I<NUM>][!] I<ERRFILE>
|
|
6237
6260
|
|
|
@@ -6252,7 +6275,8 @@ commands were executed as separate command lines (with the exception of the
|
|
|
6252
6275
|
B<-config> and B<-use> options which remain in effect for subsequent
|
|
6253
6276
|
commands). Allows multiple commands to be executed from a single command
|
|
6254
6277
|
line. I<NUM> is an optional number that is echoed in the "{ready}" message
|
|
6255
|
-
when using the B<-stay_open> feature.
|
|
6278
|
+
when using the B<-stay_open> feature. If a I<NUM> is specified, the B<-q>
|
|
6279
|
+
option no longer suppresses the output "{readyNUM}" message.
|
|
6256
6280
|
|
|
6257
6281
|
=item B<-srcfile> I<FMT>
|
|
6258
6282
|
|
|
@@ -6297,12 +6321,15 @@ line (see the B<-@> option for details).
|
|
|
6297
6321
|
|
|
6298
6322
|
3) Write C<-execute\n> to I<ARGFILE>, where C<\n> represents a newline
|
|
6299
6323
|
sequence. (Note: You may need to flush your write buffers here if using
|
|
6300
|
-
buffered output.)
|
|
6324
|
+
buffered output.) ExifTool will then execute the command with the arguments
|
|
6301
6325
|
received up to this point, send a "{ready}" message to stdout when done
|
|
6302
6326
|
(unless the B<-q> or B<-T> option is used), and continue trying to read
|
|
6303
6327
|
arguments for the next command from I<ARGFILE>. To aid in command/response
|
|
6304
6328
|
synchronization, any number appended to the C<-execute> option is echoed in
|
|
6305
|
-
the "{ready}" message. For example, C<-execute613> results in "{ready613}".
|
|
6329
|
+
the "{ready}" message. For example, C<-execute613> results in "{ready613}".
|
|
6330
|
+
When this number is added, B<-q> no longer suppresses the "{ready}" message.
|
|
6331
|
+
(Also, see the B<-echo3> and B<-echo4> options for additional ways to pass
|
|
6332
|
+
signals back to your application.)
|
|
6306
6333
|
|
|
6307
6334
|
4) Repeat steps 2 and 3 for each command.
|
|
6308
6335
|
|
|
@@ -6317,7 +6344,7 @@ writing the following lines to the currently open I<ARGFILE>:
|
|
|
6317
6344
|
-@
|
|
6318
6345
|
NEWARGFILE
|
|
6319
6346
|
|
|
6320
|
-
This causes I<ARGFILE> to be closed, and I<NEWARGFILE> to be kept open.
|
|
6347
|
+
This causes I<ARGFILE> to be closed, and I<NEWARGFILE> to be kept open.
|
|
6321
6348
|
(Without the B<-stay_open> here, exiftool would have returned to reading
|
|
6322
6349
|
arguments from I<ARGFILE> after reaching the end of I<NEWARGFILE>.)
|
|
6323
6350
|
|