exiftool_vendored 11.99.0 → 12.06.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of exiftool_vendored might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bin/Changes +119 -2
- data/bin/MANIFEST +5 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +32 -32
- data/bin/exiftool +55 -50
- data/bin/lib/Image/ExifTool.pm +155 -109
- data/bin/lib/Image/ExifTool.pod +103 -77
- 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 +11 -6
- data/bin/lib/Image/ExifTool/Canon.pm +2 -1
- 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 +16 -3
- 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 +5 -0
- data/bin/lib/Image/ExifTool/GeoTiff.pm +2 -0
- data/bin/lib/Image/ExifTool/GoPro.pm +10 -1
- data/bin/lib/Image/ExifTool/H264.pm +1 -1
- data/bin/lib/Image/ExifTool/ID3.pm +86 -12
- 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 +1 -1
- data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
- data/bin/lib/Image/ExifTool/Minolta.pm +3 -2
- data/bin/lib/Image/ExifTool/Nikon.pm +134 -15
- data/bin/lib/Image/ExifTool/Olympus.pm +34 -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 +147 -13
- data/bin/lib/Image/ExifTool/PanasonicRaw.pm +33 -0
- data/bin/lib/Image/ExifTool/Parrot.pm +2 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +2 -1
- data/bin/lib/Image/ExifTool/Photoshop.pm +2 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +204 -27
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +355 -19
- data/bin/lib/Image/ExifTool/README +20 -19
- 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 +376 -11
- data/bin/lib/Image/ExifTool/TagLookup.pm +1949 -1872
- data/bin/lib/Image/ExifTool/TagNames.pod +329 -53
- data/bin/lib/Image/ExifTool/Validate.pm +4 -4
- data/bin/lib/Image/ExifTool/WriteExif.pl +1 -0
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +23 -15
- data/bin/lib/Image/ExifTool/Writer.pl +44 -21
- data/bin/lib/Image/ExifTool/XMP.pm +41 -4
- data/bin/lib/Image/ExifTool/XMPStruct.pl +3 -1
- data/bin/lib/Image/ExifTool/ZISRAW.pm +123 -0
- data/bin/perl-Image-ExifTool.spec +31 -31
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b6fbacc803486908bf63bd351d8ea3d31bbe0cf1217b6bbab9ef074cde3f0ee3
|
4
|
+
data.tar.gz: fcb3492aae1fbdf6587a73ea5546eed530c09ac20c67fc1a77057becd1e87b0b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7101bbb72920052732e86bb2c44b828bbb901f89363768ebc5346d5225db5919e79de5de2ca8b0af2c77ccd6d62a9f2bf677c61479b877d06fecb88bbd8b29f8
|
7
|
+
data.tar.gz: 0d08e16271b5bd6fe9c4f9d154190a799b3d4bd3b3bdd777a42afa4b29786595869a3068fbc213a68135559d275bcfcf07a08f22d9fdc242130770905ca826cc
|
data/bin/Changes
CHANGED
@@ -4,9 +4,125 @@ 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
|
+
(I'll be on vacation from Aug 26 to Sep 3, 2020 so don't expect any
|
11
|
+
forum or email responses from me during this time - Phil H.)
|
12
|
+
|
13
|
+
Sept. 11, 2020 - Version 12.06
|
14
|
+
|
15
|
+
- Added read support for Lyrics3 metadata (and fixed problem where APE
|
16
|
+
metadata may be ignored if Lyrics3 exists)
|
17
|
+
- Added a new Panasonic VideoBurstMode value (thanks Klaus Homeister)
|
18
|
+
- Added a new Olympus MultipleExposureMode value
|
19
|
+
- Added a new Nikon LensID
|
20
|
+
- Added back conversions for XMP-dwc EventTime that were removed in 12.04 with
|
21
|
+
a patch to allow time-only values
|
22
|
+
- Decode GIF AspectRatio
|
23
|
+
- Decode Olympus FocusBracketStepSize (thanks Karsten)
|
24
|
+
- Extract PNG iDOT chunk in Binary format with the name AppleDataOffsets
|
25
|
+
- Process PNG images which do not start with mandatory IHDR chunk
|
26
|
+
|
27
|
+
Aug. 24, 2020 - Version 12.05
|
28
|
+
|
29
|
+
- Added a new Panasonic SelfTimer value (thanks Herb)
|
30
|
+
- Decode a few more DPX tags (thanks Harry Mallon)
|
31
|
+
- Extract AIFF APPL tag as ApplicationData
|
32
|
+
- Fixed bug writing QuickTime ItemList 'gnre' Genre values
|
33
|
+
- Fixed an incorrect value for Panasonic VideoBurstResolution (thanks Herb)
|
34
|
+
- Fixed problem when applying a time shift to some invalid makernote date/time
|
35
|
+
values
|
36
|
+
|
37
|
+
Aug. 10, 2020 - Version 12.04
|
38
|
+
|
39
|
+
- Added read support for Zeiss ZISRAW CZI files
|
40
|
+
- Added some new values for a couple of Olympus tags (thanks Sebastian)
|
41
|
+
- Decode a number of new tags for the Sony ILCE-7SM3 (thanks Jos Roost)
|
42
|
+
- Removed formatting restrictions on XMP-dwc:EventTime to allow a time-only
|
43
|
+
value to be written
|
44
|
+
- Moved new QuckTime ItemList tags added in version 12.02 to the proper group
|
45
|
+
(they were incorrectly added to the Keys group)
|
46
|
+
- Improved QuickTime -v3 output to show default language codes
|
47
|
+
- Patched -lang option to work for the values of somet tags with coded
|
48
|
+
translations
|
49
|
+
- Patched the format of a number of QuickTime tags when writing for improved
|
50
|
+
compatibility with iTunes and AtomicParsley
|
51
|
+
- Patched to write a default QuickTime language code of 0x0000 (null) instead
|
52
|
+
of 0x55c4 ('und')
|
53
|
+
|
54
|
+
July 29, 2020 - Version 12.03
|
55
|
+
|
56
|
+
- Added family 7 group names to allow tag ID's to be specified when reading
|
57
|
+
and writing
|
58
|
+
- Fixed a couple of typos in tag values (thanks Herb)
|
59
|
+
- API Changes:
|
60
|
+
- Added HexTagIDs option
|
61
|
+
- Enhanced GetNewValue() to allow family 7 groups names to be used
|
62
|
+
- Internal Changes:
|
63
|
+
- Changed Composite tag ID's to use "-" instead of "::" as a separator
|
64
|
+
|
65
|
+
July 27, 2020 - Version 12.02
|
66
|
+
|
67
|
+
- Added support for a number of new QuickTime ItemList tags
|
68
|
+
- Added support for writing XMP-xmp:RatingPercent
|
69
|
+
- Added a new Sony LensType (thanks Jos Roost and LibRaw)
|
70
|
+
- Added a new Pentax LensType (thanks James O'Neill)
|
71
|
+
- Decode barcodes from Ricoh APP5 RMETA segment
|
72
|
+
- Decode a few new QuickTime tags written by Ricoh and Garmin cameras
|
73
|
+
- Decode timed GPS from Sony A7R IV MP4 videos
|
74
|
+
- Decode timed GPS from 70mai dashcam videos
|
75
|
+
- Decode a few new Panasonic tags (thanks Klaus Homeister)
|
76
|
+
- Decode altitude and more accurate latitude/longitude from Transcend Driver
|
77
|
+
Pro 230 MP4 videos
|
78
|
+
- Improved decoding of some Canon EOS 1DXmkIII custom functions
|
79
|
+
- Allow integer QuickTime TrackNumber and DiskNumber values
|
80
|
+
- Relax validity check of QuickTime:ContentCreateDate when writing with -n
|
81
|
+
- Removed "Com" from the start of some unknown ItemList tag names
|
82
|
+
- Patched CanonCustom decoding for bug in Canon EOS-1DX firmware
|
83
|
+
- Changed QuickTime CleanAperture tags decode as signed rationals
|
84
|
+
|
85
|
+
June 24, 2020 - Version 12.01
|
86
|
+
|
87
|
+
- Added a new NEFCompression value (thanks Warren Hatch)
|
88
|
+
- Added a new Sony LensType (thanks Jos Roost)
|
89
|
+
- Decode timed GPS from Rove Stealth 4K dashcam videos
|
90
|
+
- Fixed bug which would corrupt TIFF images with 16-bit image data offsets
|
91
|
+
when writing (these are very rare)
|
92
|
+
|
93
|
+
June 11, 2020 - Version 12.00 (production release)
|
94
|
+
|
95
|
+
- Added two new Olympus LensTypes (thanks Don Komarechka for one)
|
96
|
+
- Added two new Sony LensType values (thanks Jos Roost)
|
97
|
+
- Added a few new Nikon LensID's (thanks Mathieu Carbou)
|
98
|
+
- Added support for the Sony ZV-1 (thanks Jos Roost)
|
99
|
+
- Added a new CanonModelID (thanks Jos Roost)
|
100
|
+
- Added missing MimeType values for HEICS and HEIFS files
|
101
|
+
- Added definitions for a number of new XMP-crs tags
|
102
|
+
- Recognize WOFF and WOFF2 font files
|
103
|
+
- Decode streaming GPS from Roadhawk, EEEkit and 360Fly MP4 videos
|
104
|
+
- Decode a number of new tags for the Nikon D6 (thanks Warren Hatch)
|
105
|
+
- Decode a couple more AF tags for the D500/D850
|
106
|
+
- Decode a number of new Panasonic tags
|
107
|
+
- Improved Composite LensID logic (thanks Matt Stancliff)
|
108
|
+
- Enhanced -v option to state when a directory has 0 entries
|
109
|
+
- Removed a couple of incorrect Validate warnings for bilevel TIFF images
|
110
|
+
- Drop ContrastCurve tag when copying from NEF to JPEG
|
111
|
+
- Changed -csv output to add "Unknown" group name to column headings for
|
112
|
+
missing tags when -f and -G options are used
|
113
|
+
- Patched to support new XMP LensID format for Nikon cameras as written by
|
114
|
+
Apple Photos (thanks Mattsta)
|
115
|
+
- Fixed problem extracting metadata from Sigma DP2 Quattro X3F files
|
116
|
+
- Fixed End() and EndDir() functions so they work when writing and when the -v
|
117
|
+
option is used
|
118
|
+
- Fixed problem recognizing some PGM files
|
119
|
+
- Fixed bug in offsets for some Photoshop information in -v3 output
|
120
|
+
- Fixed problem writing a list containing empty elements inside an XMP
|
121
|
+
structure
|
122
|
+
- API Changes:
|
123
|
+
- Added NoMultiExif option
|
124
|
+
- Changed FilterW option to not write tag if $_ is set to undef
|
125
|
+
|
10
126
|
May 11, 2020 - Version 11.99
|
11
127
|
|
12
128
|
- Added a new Nikon LensID (thanks Mykyta Kozlov)
|
@@ -44,7 +160,8 @@ Apr. 24, 2020 - Version 11.96
|
|
44
160
|
|
45
161
|
Apr. 23, 2020 - Version 11.95
|
46
162
|
|
47
|
-
- Added Exit() and ExitDir() functions for use in -if conditions
|
163
|
+
- Added Exit() and ExitDir() functions for use in -if conditions (NOTE: these
|
164
|
+
function names changed to End() and EndDir() in ExifTool 11.96)
|
48
165
|
- Enhanced -geotag feature to support a more flexible input CSV file format
|
49
166
|
- Enhanced -if and API Filter options to allow access to ExifTool object via
|
50
167
|
$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
|
@@ -915,6 +917,8 @@ t/ZIP_4.out
|
|
915
917
|
t/ZIP_5.out
|
916
918
|
t/ZIP_6.out
|
917
919
|
t/ZIP_7.out
|
920
|
+
t/ZISRAW.t
|
921
|
+
t/ZISRAW_2.out
|
918
922
|
t/images/AFCP.jpg
|
919
923
|
t/images/AIFF.aif
|
920
924
|
t/images/APE.ape
|
@@ -1089,4 +1093,5 @@ t/images/XMP8.xmp
|
|
1089
1093
|
t/images/XMP9.xmp
|
1090
1094
|
t/images/ZIP.gz
|
1091
1095
|
t/images/ZIP.zip
|
1096
|
+
t/images/ZISRAW.czi
|
1092
1097
|
t/images/iWork.numbers
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -14,35 +14,36 @@ 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
|
-
AAE r |
|
23
|
-
AAX r/w |
|
24
|
-
ACR r |
|
25
|
-
AFM r |
|
26
|
-
AI r/w |
|
27
|
-
AIFF r |
|
28
|
-
APE r |
|
29
|
-
ARQ r/w |
|
30
|
-
ARW r/w |
|
31
|
-
ASF r |
|
32
|
-
AVI r |
|
33
|
-
AVIF r/w |
|
34
|
-
AZW r |
|
35
|
-
BMP r |
|
36
|
-
BPG r |
|
37
|
-
BTF r |
|
38
|
-
CHM r |
|
39
|
-
COS r |
|
40
|
-
CR2 r/w |
|
41
|
-
CR3 r/w |
|
42
|
-
CRM r/w |
|
43
|
-
CRW r/w |
|
44
|
-
CS1 r/w |
|
45
|
-
CSV r |
|
17
|
+
3FR r | DPX r | ISO r | O r | RAW r/w
|
18
|
+
3G2 r/w | DR4 r/w/c | ITC r | ODP r | RIFF r
|
19
|
+
3GP r/w | DSS r | J2C r | ODS r | RSRC r
|
20
|
+
A r | DV r | JNG r/w | ODT r | RTF r
|
21
|
+
AA r | DVB r/w | JP2 r/w | OFR r | RW2 r/w
|
22
|
+
AAE r | DVR-MS r | JPEG r/w | OGG r | RWL r/w
|
23
|
+
AAX r/w | DYLIB r | JSON r | OGV r | RWZ r
|
24
|
+
ACR r | EIP r | K25 r | OPUS r | RM r
|
25
|
+
AFM r | EPS r/w | KDC r | ORF r/w | SEQ r
|
26
|
+
AI r/w | EPUB r | KEY r | OTF r | SKETCH r
|
27
|
+
AIFF r | ERF r/w | LA r | PAC r | SO r
|
28
|
+
APE r | EXE r | LFP r | PAGES r | SR2 r/w
|
29
|
+
ARQ r/w | EXIF r/w/c | LNK r | PBM r/w | SRF r
|
30
|
+
ARW r/w | EXR r | LRV r/w | PCD r | SRW r/w
|
31
|
+
ASF r | EXV r/w/c | M2TS r | PCX r | SVG r
|
32
|
+
AVI r | F4A/V r/w | M4A/V r/w | PDB r | SWF r
|
33
|
+
AVIF r/w | FFF r/w | MAX r | PDF r/w | THM r/w
|
34
|
+
AZW r | FITS r | MEF r/w | PEF r/w | TIFF r/w
|
35
|
+
BMP r | FLA r | MIE r/w/c | PFA r | TORRENT r
|
36
|
+
BPG r | FLAC r | MIFF r | PFB r | TTC r
|
37
|
+
BTF r | FLIF r/w | MKA r | PFM r | TTF r
|
38
|
+
CHM r | FLV r | MKS r | PGF r | TXT r
|
39
|
+
COS r | FPF r | MKV r | PGM r/w | VCF r
|
40
|
+
CR2 r/w | FPX r | MNG r/w | PLIST r | VRD r/w/c
|
41
|
+
CR3 r/w | GIF r/w | MOBI r | PICT r | VSD r
|
42
|
+
CRM r/w | GPR r/w | MODD r | PMP r | WAV r
|
43
|
+
CRW r/w | GZ r | MOI r | PNG r/w | WDP r/w
|
44
|
+
CS1 r/w | HDP r/w | MOS r/w | PPM r/w | WEBP r
|
45
|
+
CSV r | HDR r | MOV r/w | PPT r | WEBM r
|
46
|
+
CZI r | HEIC r/w | MP3 r | PPTX r | WMA r
|
46
47
|
DCM r | HEIF r/w | MP4 r/w | PS r/w | WMV r
|
47
48
|
DCP r/w | HTML r | MPC r | PSB r/w | WTV r
|
48
49
|
DCR r | ICC r/w/c | MPG r | PSD r/w | WV r
|
@@ -53,7 +54,6 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
53
54
|
DNG r/w | INSP r/w | NEF r/w | RAF r/w | XMP r/w/c
|
54
55
|
DOC r | INSV r | NRW r/w | RAM r | ZIP r
|
55
56
|
DOCX r | INX r | NUMBERS r | RAR r |
|
56
|
-
DPX r | ISO r | O r | RAW r/w |
|
57
57
|
|
58
58
|
Meta Information
|
59
59
|
----------------------+----------------------+---------------------
|
@@ -105,8 +105,8 @@ your home directory, then you would type the following commands in a
|
|
105
105
|
terminal window to extract and run ExifTool:
|
106
106
|
|
107
107
|
cd ~/Desktop
|
108
|
-
gzip -dc Image-ExifTool-
|
109
|
-
cd Image-ExifTool-
|
108
|
+
gzip -dc Image-ExifTool-12.06.tar.gz | tar -xf -
|
109
|
+
cd Image-ExifTool-12.06
|
110
110
|
./exiftool t/images/ExifTool.jpg
|
111
111
|
|
112
112
|
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.06';
|
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 {
|
@@ -443,6 +444,8 @@ undef $deleteOrig;
|
|
443
444
|
undef $disableOutput;
|
444
445
|
undef $doSetFileName;
|
445
446
|
undef $doUnzip;
|
447
|
+
undef $end;
|
448
|
+
undef $endDir;
|
446
449
|
undef $escapeHTML;
|
447
450
|
undef $escapeC;
|
448
451
|
undef $evalWarning;
|
@@ -1762,6 +1765,8 @@ if (@dbKeys) {
|
|
1762
1765
|
if ($verbose and $verbose > 1) {
|
1763
1766
|
print $vout "Imported entry for '${_}' (full path: '${absPath}')\n";
|
1764
1767
|
}
|
1768
|
+
} elsif ($verbose and $verbose > 1) {
|
1769
|
+
print $vout "Imported entry for '${_}' (non-existent file)\n";
|
1765
1770
|
}
|
1766
1771
|
}
|
1767
1772
|
}
|
@@ -2271,7 +2276,7 @@ TAG: foreach $tag (@foundTags) {
|
|
2271
2276
|
# the same group, and if so suppress this tag instead
|
2272
2277
|
next if $noDups and $tag =~ /^(.*?) ?\(/ and defined $$info{$1} and
|
2273
2278
|
$group eq $et->GetGroup($1, $showGroup);
|
2274
|
-
$group = 'Unknown' if not $group and ($xml or $json);
|
2279
|
+
$group = 'Unknown' if not $group and ($xml or $json or $csv);
|
2275
2280
|
if ($fp and not ($allGroup or $csv)) {
|
2276
2281
|
if ($lastGroup ne $group) {
|
2277
2282
|
if ($html) {
|
@@ -3546,11 +3551,11 @@ sub ProcessFiles($;$)
|
|
3546
3551
|
push(@$list, $file);
|
3547
3552
|
} else {
|
3548
3553
|
GetImageInfo($et, $file);
|
3549
|
-
|
3554
|
+
$end and Warn("End called - $file\n");
|
3550
3555
|
}
|
3551
3556
|
}
|
3552
3557
|
$et->Options(CharsetFileName => $enc) if $utf8FileName{$file};
|
3553
|
-
last if
|
3558
|
+
last if $end;
|
3554
3559
|
}
|
3555
3560
|
}
|
3556
3561
|
|
@@ -3628,7 +3633,7 @@ sub ScanDir($$;$)
|
|
3628
3633
|
next if $file =~ /^\./ and ($recurse == 1 or $file eq '.' or $file eq '..');
|
3629
3634
|
next if $ignore{$file} or ($ignore{SYMLINKS} and -l $path);
|
3630
3635
|
ScanDir($et, $path, $list);
|
3631
|
-
last if
|
3636
|
+
last if $end;
|
3632
3637
|
next;
|
3633
3638
|
}
|
3634
3639
|
# apply rules from -ext options
|
@@ -3668,11 +3673,11 @@ sub ScanDir($$;$)
|
|
3668
3673
|
push(@$list, $path);
|
3669
3674
|
} else {
|
3670
3675
|
GetImageInfo($et, $path);
|
3671
|
-
if (
|
3676
|
+
if ($end) {
|
3672
3677
|
Warn("End called - $file\n");
|
3673
3678
|
last;
|
3674
3679
|
}
|
3675
|
-
if (
|
3680
|
+
if ($endDir) {
|
3676
3681
|
$dir =~ s(/$)();
|
3677
3682
|
Warn("EndDir called - $path\n");
|
3678
3683
|
last;
|
@@ -4379,35 +4384,36 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
4379
4384
|
|
4380
4385
|
File Types
|
4381
4386
|
------------+-------------+-------------+-------------+------------
|
4382
|
-
3FR r |
|
4383
|
-
3G2 r/w |
|
4384
|
-
3GP r/w |
|
4385
|
-
A r |
|
4386
|
-
AA r |
|
4387
|
-
AAE r |
|
4388
|
-
AAX r/w |
|
4389
|
-
ACR r |
|
4390
|
-
AFM r |
|
4391
|
-
AI r/w |
|
4392
|
-
AIFF r |
|
4393
|
-
APE r |
|
4394
|
-
ARQ r/w |
|
4395
|
-
ARW r/w |
|
4396
|
-
ASF r |
|
4397
|
-
AVI r |
|
4398
|
-
AVIF r/w |
|
4399
|
-
AZW r |
|
4400
|
-
BMP r |
|
4401
|
-
BPG r |
|
4402
|
-
BTF r |
|
4403
|
-
CHM r |
|
4404
|
-
COS r |
|
4405
|
-
CR2 r/w |
|
4406
|
-
CR3 r/w |
|
4407
|
-
CRM r/w |
|
4408
|
-
CRW r/w |
|
4409
|
-
CS1 r/w |
|
4410
|
-
CSV r |
|
4387
|
+
3FR r | DPX r | ISO r | O r | RAW r/w
|
4388
|
+
3G2 r/w | DR4 r/w/c | ITC r | ODP r | RIFF r
|
4389
|
+
3GP r/w | DSS r | J2C r | ODS r | RSRC r
|
4390
|
+
A r | DV r | JNG r/w | ODT r | RTF r
|
4391
|
+
AA r | DVB r/w | JP2 r/w | OFR r | RW2 r/w
|
4392
|
+
AAE r | DVR-MS r | JPEG r/w | OGG r | RWL r/w
|
4393
|
+
AAX r/w | DYLIB r | JSON r | OGV r | RWZ r
|
4394
|
+
ACR r | EIP r | K25 r | OPUS r | RM r
|
4395
|
+
AFM r | EPS r/w | KDC r | ORF r/w | SEQ r
|
4396
|
+
AI r/w | EPUB r | KEY r | OTF r | SKETCH r
|
4397
|
+
AIFF r | ERF r/w | LA r | PAC r | SO r
|
4398
|
+
APE r | EXE r | LFP r | PAGES r | SR2 r/w
|
4399
|
+
ARQ r/w | EXIF r/w/c | LNK r | PBM r/w | SRF r
|
4400
|
+
ARW r/w | EXR r | LRV r/w | PCD r | SRW r/w
|
4401
|
+
ASF r | EXV r/w/c | M2TS r | PCX r | SVG r
|
4402
|
+
AVI r | F4A/V r/w | M4A/V r/w | PDB r | SWF r
|
4403
|
+
AVIF r/w | FFF r/w | MAX r | PDF r/w | THM r/w
|
4404
|
+
AZW r | FITS r | MEF r/w | PEF r/w | TIFF r/w
|
4405
|
+
BMP r | FLA r | MIE r/w/c | PFA r | TORRENT r
|
4406
|
+
BPG r | FLAC r | MIFF r | PFB r | TTC r
|
4407
|
+
BTF r | FLIF r/w | MKA r | PFM r | TTF r
|
4408
|
+
CHM r | FLV r | MKS r | PGF r | TXT r
|
4409
|
+
COS r | FPF r | MKV r | PGM r/w | VCF r
|
4410
|
+
CR2 r/w | FPX r | MNG r/w | PLIST r | VRD r/w/c
|
4411
|
+
CR3 r/w | GIF r/w | MOBI r | PICT r | VSD r
|
4412
|
+
CRM r/w | GPR r/w | MODD r | PMP r | WAV r
|
4413
|
+
CRW r/w | GZ r | MOI r | PNG r/w | WDP r/w
|
4414
|
+
CS1 r/w | HDP r/w | MOS r/w | PPM r/w | WEBP r
|
4415
|
+
CSV r | HDR r | MOV r/w | PPT r | WEBM r
|
4416
|
+
CZI r | HEIC r/w | MP3 r | PPTX r | WMA r
|
4411
4417
|
DCM r | HEIF r/w | MP4 r/w | PS r/w | WMV r
|
4412
4418
|
DCP r/w | HTML r | MPC r | PSB r/w | WTV r
|
4413
4419
|
DCR r | ICC r/w/c | MPG r | PSD r/w | WV r
|
@@ -4418,7 +4424,6 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
4418
4424
|
DNG r/w | INSP r/w | NEF r/w | RAF r/w | XMP r/w/c
|
4419
4425
|
DOC r | INSV r | NRW r/w | RAM r | ZIP r
|
4420
4426
|
DOCX r | INX r | NUMBERS r | RAR r |
|
4421
|
-
DPX r | ISO r | O r | RAW r/w |
|
4422
4427
|
|
4423
4428
|
Meta Information
|
4424
4429
|
----------------------+----------------------+---------------------
|
@@ -4474,7 +4479,7 @@ L<Input-output text formatting|/Input-output text formatting>
|
|
4474
4479
|
-f (-forcePrint) Force printing of all specified tags
|
4475
4480
|
-g[NUM...] (-groupHeadings) Organize output by tag group
|
4476
4481
|
-G[NUM...] (-groupNames) Print group name for each tag
|
4477
|
-
-h (-htmlFormat) Use
|
4482
|
+
-h (-htmlFormat) Use HTML formatting for output
|
4478
4483
|
-H (-hex) Show tag ID numbers in hexadecimal
|
4479
4484
|
-htmlDump[OFFSET] Generate HTML-format binary dump
|
4480
4485
|
-j[[+]=JSONFILE] (-json) Export/import tags in JSON format
|
@@ -4620,7 +4625,7 @@ delete or replace a tag (see L</WRITING EXAMPLES> for examples). C<^=> is
|
|
4620
4625
|
used to write an empty string instead of deleting the tag when no I<VALUE>
|
4621
4626
|
is given, but otherwise it is equivalent to C<=>.
|
4622
4627
|
|
4623
|
-
I<TAG> may contain one or more leading family 0, 1 or
|
4628
|
+
I<TAG> may contain one or more leading family 0, 1, 2 or 7 group names,
|
4624
4629
|
prefixed by optional family numbers, and separated colons. If no group name
|
4625
4630
|
is specified, the tag is created in the preferred group, and updated in any
|
4626
4631
|
other location where a same-named tag already exists. The preferred group
|
@@ -4675,7 +4680,7 @@ the specified group(s) are removed individually, and in this case is it
|
|
4675
4680
|
possible to exclude individual tags from a mass delete. For example,
|
4676
4681
|
C<-time:all --Exif:Time:All> removes all deletable Time tags except those in
|
4677
4682
|
the EXIF. This difference also applies if family 2 is specified when
|
4678
|
-
deleting all groups.
|
4683
|
+
deleting all groups. For example, C<-2all:all=> deletes tags individually,
|
4679
4684
|
while C<-all:all=> deletes entire blocks.
|
4680
4685
|
|
4681
4686
|
5) The "APP" group names ("APP0" through "APP15") are used to delete JPEG
|
@@ -5075,13 +5080,13 @@ B<-csv>=I<CSVFILE> feature.
|
|
5075
5080
|
|
5076
5081
|
Organize output by tag group. I<NUM> specifies a group family number, and
|
5077
5082
|
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
|
5083
|
+
(document number), 4 (instance number), 5 (metadata path), 6 (EXIF/TIFF
|
5084
|
+
format) or 7 (tag ID). B<-g0> is assumed if a family number is not
|
5085
|
+
specified. May be combined with other options to add group names to the
|
5086
|
+
output. Multiple families may be specified by separating them with colons.
|
5087
|
+
By default the resulting group name is simplified by removing any leading
|
5083
5088
|
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>).
|
5089
|
+
avoided by placing a colon before the first family number (eg. B<-g:3:1>).
|
5085
5090
|
Use the B<-listg> option to list group names for a specified family. The
|
5086
5091
|
SavePath and SaveFormat API options are automatically enabled if the
|
5087
5092
|
respective family 5 or 6 group names are requested. See the
|
@@ -5286,7 +5291,7 @@ with this command:
|
|
5286
5291
|
|
5287
5292
|
produces output like this:
|
5288
5293
|
|
5289
|
-
-- Generated by ExifTool
|
5294
|
+
-- Generated by ExifTool 12.06 --
|
5290
5295
|
File: a.jpg - 2003:10:31 15:44:19
|
5291
5296
|
(f/5.6, 1/60s, ISO 100)
|
5292
5297
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -6297,7 +6302,7 @@ line (see the B<-@> option for details).
|
|
6297
6302
|
|
6298
6303
|
3) Write C<-execute\n> to I<ARGFILE>, where C<\n> represents a newline
|
6299
6304
|
sequence. (Note: You may need to flush your write buffers here if using
|
6300
|
-
buffered output.)
|
6305
|
+
buffered output.) ExifTool will then execute the command with the arguments
|
6301
6306
|
received up to this point, send a "{ready}" message to stdout when done
|
6302
6307
|
(unless the B<-q> or B<-T> option is used), and continue trying to read
|
6303
6308
|
arguments for the next command from I<ARGFILE>. To aid in command/response
|