exiftool_vendored 12.16.0 → 12.25.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 +137 -1
- data/bin/MANIFEST +12 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +44 -43
- data/bin/config_files/acdsee.config +193 -6
- data/bin/config_files/cuepointlist.config +70 -0
- data/bin/config_files/example.config +1 -8
- data/bin/exiftool +139 -98
- data/bin/fmt_files/gpx.fmt +1 -1
- data/bin/fmt_files/gpx_wpt.fmt +1 -1
- data/bin/fmt_files/kml.fmt +1 -1
- data/bin/fmt_files/kml_track.fmt +1 -1
- data/bin/lib/Image/ExifTool.pm +158 -49
- data/bin/lib/Image/ExifTool.pod +94 -75
- data/bin/lib/Image/ExifTool/Apple.pm +3 -2
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +25 -14
- data/bin/lib/Image/ExifTool/Canon.pm +28 -3
- data/bin/lib/Image/ExifTool/CanonCustom.pm +19 -1
- data/bin/lib/Image/ExifTool/DJI.pm +6 -6
- data/bin/lib/Image/ExifTool/DjVu.pm +6 -5
- data/bin/lib/Image/ExifTool/Exif.pm +50 -22
- data/bin/lib/Image/ExifTool/FITS.pm +13 -2
- data/bin/lib/Image/ExifTool/FujiFilm.pm +19 -8
- data/bin/lib/Image/ExifTool/GPS.pm +24 -13
- data/bin/lib/Image/ExifTool/H264.pm +20 -5
- data/bin/lib/Image/ExifTool/ICC_Profile.pm +2 -2
- data/bin/lib/Image/ExifTool/JPEG.pm +6 -2
- data/bin/lib/Image/ExifTool/JSON.pm +24 -3
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +361 -16
- data/bin/lib/Image/ExifTool/M2TS.pm +40 -4
- data/bin/lib/Image/ExifTool/MIE.pm +2 -2
- data/bin/lib/Image/ExifTool/MRC.pm +341 -0
- data/bin/lib/Image/ExifTool/MWG.pm +3 -3
- data/bin/lib/Image/ExifTool/MXF.pm +1 -1
- data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
- data/bin/lib/Image/ExifTool/Microsoft.pm +298 -82
- data/bin/lib/Image/ExifTool/Nikon.pm +5 -5
- data/bin/lib/Image/ExifTool/NikonSettings.pm +25 -16
- data/bin/lib/Image/ExifTool/Olympus.pm +2 -2
- data/bin/lib/Image/ExifTool/PNG.pm +2 -2
- data/bin/lib/Image/ExifTool/Panasonic.pm +14 -1
- data/bin/lib/Image/ExifTool/PhaseOne.pm +4 -3
- data/bin/lib/Image/ExifTool/QuickTime.pm +148 -68
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +94 -34
- data/bin/lib/Image/ExifTool/README +5 -4
- data/bin/lib/Image/ExifTool/RIFF.pm +84 -12
- data/bin/lib/Image/ExifTool/Samsung.pm +2 -1
- data/bin/lib/Image/ExifTool/Shortcuts.pm +9 -0
- data/bin/lib/Image/ExifTool/Sony.pm +157 -49
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +1 -0
- data/bin/lib/Image/ExifTool/TagLookup.pm +4079 -3987
- data/bin/lib/Image/ExifTool/TagNames.pod +642 -273
- data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
- data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -0
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +44 -17
- data/bin/lib/Image/ExifTool/WriteXMP.pl +15 -8
- data/bin/lib/Image/ExifTool/Writer.pl +50 -14
- data/bin/lib/Image/ExifTool/XMP.pm +50 -11
- data/bin/perl-Image-ExifTool.spec +42 -42
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +52 -12
data/bin/lib/Image/ExifTool.pod
CHANGED
|
@@ -65,47 +65,47 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
65
65
|
|
|
66
66
|
File Types
|
|
67
67
|
------------+-------------+-------------+-------------+------------
|
|
68
|
-
360 r/w | DPX r | ITC r |
|
|
69
|
-
3FR r | DR4 r/w/c | J2C r |
|
|
70
|
-
3G2 r/w | DSS r | JNG r/w |
|
|
71
|
-
3GP r/w | DV r | JP2 r/w |
|
|
72
|
-
A r | DVB r/w | JPEG r/w |
|
|
73
|
-
AA r | DVR-MS r | JSON r |
|
|
74
|
-
AAE r | DYLIB r |
|
|
75
|
-
AAX r/w | EIP r |
|
|
76
|
-
ACR r | EPS r/w |
|
|
77
|
-
AFM r | EPUB r |
|
|
78
|
-
AI r/w | ERF r/w |
|
|
79
|
-
AIFF r | EXE r |
|
|
80
|
-
APE r | EXIF r/w/c |
|
|
81
|
-
ARQ r/w | EXR r |
|
|
82
|
-
ARW r/w | EXV r/w/c |
|
|
83
|
-
ASF r | F4A/V r/w |
|
|
84
|
-
AVI r | FFF r/w |
|
|
85
|
-
AVIF r/w | FITS r |
|
|
86
|
-
AZW r | FLA r |
|
|
87
|
-
BMP r | FLAC r |
|
|
88
|
-
BPG r | FLIF r/w |
|
|
89
|
-
BTF r | FLV r |
|
|
90
|
-
CHM r | FPF r |
|
|
91
|
-
COS r | FPX r |
|
|
92
|
-
CR2 r/w | GIF r/w |
|
|
93
|
-
CR3 r/w | GPR r/w |
|
|
94
|
-
CRM r/w | GZ r |
|
|
95
|
-
CRW r/w | HDP r/w |
|
|
96
|
-
CS1 r/w | HDR r |
|
|
97
|
-
CSV r | HEIC r/w |
|
|
98
|
-
CZI r | HEIF r/w |
|
|
99
|
-
DCM r | HTML r |
|
|
100
|
-
DCP r/w | ICC r/w/c |
|
|
101
|
-
DCR r | ICS r |
|
|
102
|
-
DFONT r | IDML r |
|
|
103
|
-
DIVX r | IIQ r/w |
|
|
104
|
-
DJVU r | IND r/w |
|
|
105
|
-
DLL r | INSP r/w |
|
|
106
|
-
DNG r/w | INSV r |
|
|
107
|
-
DOC r | INX r |
|
|
108
|
-
DOCX r | ISO r |
|
|
68
|
+
360 r/w | DPX r | ITC r | NUMBERS r | RAM r
|
|
69
|
+
3FR r | DR4 r/w/c | J2C r | O r | RAR r
|
|
70
|
+
3G2 r/w | DSS r | JNG r/w | ODP r | RAW r/w
|
|
71
|
+
3GP r/w | DV r | JP2 r/w | ODS r | RIFF r
|
|
72
|
+
A r | DVB r/w | JPEG r/w | ODT r | RSRC r
|
|
73
|
+
AA r | DVR-MS r | JSON r | OFR r | RTF r
|
|
74
|
+
AAE r | DYLIB r | JXL r | OGG r | RW2 r/w
|
|
75
|
+
AAX r/w | EIP r | K25 r | OGV r | RWL r/w
|
|
76
|
+
ACR r | EPS r/w | KDC r | ONP r | RWZ r
|
|
77
|
+
AFM r | EPUB r | KEY r | OPUS r | RM r
|
|
78
|
+
AI r/w | ERF r/w | LA r | ORF r/w | SEQ r
|
|
79
|
+
AIFF r | EXE r | LFP r | ORI r/w | SKETCH r
|
|
80
|
+
APE r | EXIF r/w/c | LNK r | OTF r | SO r
|
|
81
|
+
ARQ r/w | EXR r | LRV r/w | PAC r | SR2 r/w
|
|
82
|
+
ARW r/w | EXV r/w/c | M2TS r | PAGES r | SRF r
|
|
83
|
+
ASF r | F4A/V r/w | M4A/V r/w | PBM r/w | SRW r/w
|
|
84
|
+
AVI r | FFF r/w | MACOS r | PCD r | SVG r
|
|
85
|
+
AVIF r/w | FITS r | MAX r | PCX r | SWF r
|
|
86
|
+
AZW r | FLA r | MEF r/w | PDB r | THM r/w
|
|
87
|
+
BMP r | FLAC r | MIE r/w/c | PDF r/w | TIFF r/w
|
|
88
|
+
BPG r | FLIF r/w | MIFF r | PEF r/w | TORRENT r
|
|
89
|
+
BTF r | FLV r | MKA r | PFA r | TTC r
|
|
90
|
+
CHM r | FPF r | MKS r | PFB r | TTF r
|
|
91
|
+
COS r | FPX r | MKV r | PFM r | TXT r
|
|
92
|
+
CR2 r/w | GIF r/w | MNG r/w | PGF r | VCF r
|
|
93
|
+
CR3 r/w | GPR r/w | MOBI r | PGM r/w | VRD r/w/c
|
|
94
|
+
CRM r/w | GZ r | MODD r | PLIST r | VSD r
|
|
95
|
+
CRW r/w | HDP r/w | MOI r | PICT r | WAV r
|
|
96
|
+
CS1 r/w | HDR r | MOS r/w | PMP r | WDP r/w
|
|
97
|
+
CSV r | HEIC r/w | MOV r/w | PNG r/w | WEBP r
|
|
98
|
+
CZI r | HEIF r/w | MP3 r | PPM r/w | WEBM r
|
|
99
|
+
DCM r | HTML r | MP4 r/w | PPT r | WMA r
|
|
100
|
+
DCP r/w | ICC r/w/c | MPC r | PPTX r | WMV r
|
|
101
|
+
DCR r | ICS r | MPG r | PS r/w | WTV r
|
|
102
|
+
DFONT r | IDML r | MPO r/w | PSB r/w | WV r
|
|
103
|
+
DIVX r | IIQ r/w | MQV r/w | PSD r/w | X3F r/w
|
|
104
|
+
DJVU r | IND r/w | MRC r | PSP r | XCF r
|
|
105
|
+
DLL r | INSP r/w | MRW r/w | QTIF r/w | XLS r
|
|
106
|
+
DNG r/w | INSV r | MXF r | R3D r | XLSX r
|
|
107
|
+
DOC r | INX r | NEF r/w | RA r | XMP r/w/c
|
|
108
|
+
DOCX r | ISO r | NRW r/w | RAF r/w | ZIP r
|
|
109
109
|
|
|
110
110
|
Meta Information
|
|
111
111
|
----------------------+----------------------+---------------------
|
|
@@ -176,6 +176,9 @@ Creates a new ExifTool object.
|
|
|
176
176
|
|
|
177
177
|
$exifTool = new Image::ExifTool;
|
|
178
178
|
|
|
179
|
+
One ExifTool object may be used to process many files, so creating multiple
|
|
180
|
+
ExifTool objects usually is not necessary.
|
|
181
|
+
|
|
179
182
|
Note that ExifTool uses AUTOLOAD to load non-member methods, so any class
|
|
180
183
|
using Image::ExifTool as a base class must define an AUTOLOAD which calls
|
|
181
184
|
Image::ExifTool::DoAutoLoad(). eg)
|
|
@@ -386,7 +389,8 @@ to some functions. Option names are not case sensitive.
|
|
|
386
389
|
|
|
387
390
|
The default option values may be changed by defining a
|
|
388
391
|
%Image::ExifTool::UserDefined::Options hash. See the ExifTool_config file
|
|
389
|
-
in the full ExifTool distribution for examples.
|
|
392
|
+
in the full ExifTool distribution for examples. A default of undef has the
|
|
393
|
+
same behaviour as a value of 0 for numerical options.
|
|
390
394
|
|
|
391
395
|
# exclude the 'OwnerName' tag from returned information
|
|
392
396
|
$exifTool->Options(Exclude => 'OwnerName');
|
|
@@ -438,6 +442,13 @@ large binary data blocks (eg. ThumbnailImage) are not necessarily extracted
|
|
|
438
442
|
unless this option is set or the tag is specifically requested by name.
|
|
439
443
|
Default is undef.
|
|
440
444
|
|
|
445
|
+
=item BlockExtract
|
|
446
|
+
|
|
447
|
+
Flag to extract some directories (mentioned in the
|
|
448
|
+
L<ExifTool tag name documentation|Image::ExifTool::TagNames>) as a block.
|
|
449
|
+
Setting this to a value of 2 also prevents parsing the block to extract tags
|
|
450
|
+
contained within.
|
|
451
|
+
|
|
441
452
|
=item ByteOrder
|
|
442
453
|
|
|
443
454
|
The byte order for newly created EXIF segments when writing. Note that if
|
|
@@ -627,8 +638,9 @@ Flag to extract information from embedded documents in EPS files, embedded
|
|
|
627
638
|
EPS information and JPEG and Jpeg2000 images in PDF files, embedded MPF
|
|
628
639
|
images in JPEG and MPO files, timed metadata in videos, and the resource
|
|
629
640
|
fork of Mac OS files. A setting of 2 also causes the H264 video stream in
|
|
630
|
-
MP4 files to be parsed until the first SEI message is decoded, or 3 to
|
|
631
|
-
|
|
641
|
+
MP4 files to be parsed until the first SEI message is decoded, or 3 to parse
|
|
642
|
+
the entire H264 stream in MP4 videos and the entire M2TS file to look for
|
|
643
|
+
any unlisted program containing GPS metadata. Default is undef.
|
|
632
644
|
|
|
633
645
|
=item FastScan
|
|
634
646
|
|
|
@@ -737,8 +749,8 @@ group names.
|
|
|
737
749
|
|
|
738
750
|
=item HexTagIDs
|
|
739
751
|
|
|
740
|
-
|
|
741
|
-
numerical ID's.
|
|
752
|
+
Return hexadecimal instead of decimal for the family 7 group names of tags
|
|
753
|
+
with numerical ID's.
|
|
742
754
|
|
|
743
755
|
=item HtmlDump
|
|
744
756
|
|
|
@@ -843,8 +855,9 @@ print conversion for writing. Default is 1.
|
|
|
843
855
|
|
|
844
856
|
Flag set to add an 'mdir' Handler to a newly created Meta box when adding
|
|
845
857
|
QuickTime ItemList tags. Adobe Bridge does not add this Handler, but it is
|
|
846
|
-
commonly found in samples from other software,
|
|
847
|
-
|
|
858
|
+
commonly found in samples from other software, and it has been reported that
|
|
859
|
+
Apple QuickTime Player and Photos.apps will ignore ItemList tags if this is
|
|
860
|
+
missing. Default is 1.
|
|
848
861
|
|
|
849
862
|
=item QuickTimeUTC
|
|
850
863
|
|
|
@@ -2049,6 +2062,7 @@ The group family numbers are currently available:
|
|
|
2049
2062
|
4) Instance Number (eg. Copy1, Copy2, Copy3...)
|
|
2050
2063
|
5) Metadata Path (eg. JPEG-APP1-IFD0-ExifIFD)
|
|
2051
2064
|
6) EXIF/TIFF Format (eg. int8u, int32u, undef, string)
|
|
2065
|
+
7) Tag ID (eg. ID-271, ID-rights, ID-a9aut)
|
|
2052
2066
|
|
|
2053
2067
|
Families 0 and 1 are based on the file structure, and are similar except
|
|
2054
2068
|
that family 1 is more specific and sub-divides some groups to give more
|
|
@@ -2092,13 +2106,14 @@ Family 6 is currently used only for EXIF/TIFF metadata, and gives the format
|
|
|
2092
2106
|
type of the extracted value. Generated only if the L</SaveFormat> option is
|
|
2093
2107
|
used when extracting.
|
|
2094
2108
|
|
|
2095
|
-
Family 7 is used for tag ID's. The group names are
|
|
2096
|
-
|
|
2097
|
-
tag ID's are
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
[-_A-Za-z0-9]
|
|
2101
|
-
|
|
2109
|
+
Family 7 is used for tag ID's. The group names are the actual tag ID's,
|
|
2110
|
+
with a leading "ID-" string. Non-numerical ID's have characters other than
|
|
2111
|
+
[-_A-Za-z0-9] converted to hex. Numerical tag ID's are returned in hex if
|
|
2112
|
+
the L</HexTagIDs> option is set, otherwise decimal is used. When specifying
|
|
2113
|
+
a family 7 group name, numerical ID's may be in hex or decimal, and
|
|
2114
|
+
non-numerical ID's may or may not have characters other than [-_A-Za-z0-9]
|
|
2115
|
+
converted to hex. Note that unlike other group names, the tag ID's of
|
|
2116
|
+
family 7 group names are case sensitive (but the leading "ID-" is not).
|
|
2102
2117
|
|
|
2103
2118
|
See L</GetAllGroups [static]> for complete lists of group names.
|
|
2104
2119
|
|
|
@@ -2255,7 +2270,7 @@ Get list of all group names in specified family.
|
|
|
2255
2270
|
|
|
2256
2271
|
=item Inputs:
|
|
2257
2272
|
|
|
2258
|
-
0) Group family number (0-
|
|
2273
|
+
0) Group family number (0-7)
|
|
2259
2274
|
|
|
2260
2275
|
=item Return Values:
|
|
2261
2276
|
|
|
@@ -2273,12 +2288,12 @@ AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP4, APP5,
|
|
|
2273
2288
|
APP6, APP8, ASF, Audible, CanonVRD, Composite, DICOM, DNG, DV, DjVu, Ducky,
|
|
2274
2289
|
EXE, EXIF, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font,
|
|
2275
2290
|
FotoStation, GIF, GIMP, GeoTiff, GoPro, H264, HTML, ICC_Profile, ID3, IPTC,
|
|
2276
|
-
ISO, ITC, JFIF, JPEG, JSON, Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE,
|
|
2277
|
-
MNG, MOI, MPC, MPEG, MPF, MXF, MakerNotes, Matroska, Meta, Ogg,
|
|
2278
|
-
Opus, PDF, PICT, PLIST, PNG, PSP, Palm, Parrot, PanasonicRaw,
|
|
2279
|
-
PhotoMechanic, Photoshop, PostScript, PrintIM, QuickTime, RAF,
|
|
2280
|
-
RTF, Radiance, Rawzor, Real, Red, SVG, SigmaRaw, Stim, Theora,
|
|
2281
|
-
Trailer, UserParam, VCard, Vorbis, WTV, XML, XMP, ZIP
|
|
2291
|
+
ISO, ITC, JFIF, JPEG, JSON, JUMBF, Jpeg2000, LNK, Leaf, Lytro, M2TS, MIE,
|
|
2292
|
+
MIFF, MNG, MOI, MPC, MPEG, MPF, MXF, MakerNotes, Matroska, Meta, Ogg,
|
|
2293
|
+
OpenEXR, Opus, PDF, PICT, PLIST, PNG, PSP, Palm, Parrot, PanasonicRaw,
|
|
2294
|
+
PhotoCD, PhotoMechanic, Photoshop, PostScript, PrintIM, QuickTime, RAF,
|
|
2295
|
+
RIFF, RSRC, RTF, Radiance, Rawzor, Real, Red, SVG, SigmaRaw, Stim, Theora,
|
|
2296
|
+
Torrent, Trailer, UserParam, VCard, Vorbis, WTV, XML, XMP, ZIP
|
|
2282
2297
|
|
|
2283
2298
|
=item Family 1 (Specific Location):
|
|
2284
2299
|
|
|
@@ -2291,8 +2306,8 @@ GoPro, GraphConv, H264, HP, HTC, HTML, HTML-dc, HTML-ncc, HTML-office,
|
|
|
2291
2306
|
HTML-prod, HTML-vw96, HTTP-equiv, ICC-chrm, ICC-clrt, ICC-header, ICC-meas,
|
|
2292
2307
|
ICC-meta, ICC-view, ICC_Profile, ICC_Profile#, ID3, ID3v1, ID3v1_Enh,
|
|
2293
2308
|
ID3v2_2, ID3v2_3, ID3v2_4, IFD0, IFD1, IPTC, IPTC#, ISO, ITC, Insta360,
|
|
2294
|
-
InteropIFD, ItemList, JFIF, JFXX, JPEG, JPEG-HDR, JSON,
|
|
2295
|
-
KDC_IFD, Keys, Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD,
|
|
2309
|
+
InteropIFD, ItemList, JFIF, JFXX, JPEG, JPEG-HDR, JSON, JUMBF, JVC,
|
|
2310
|
+
Jpeg2000, KDC_IFD, Keys, Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD,
|
|
2296
2311
|
KyoceraRaw, LNK, Leaf, LeafSubIFD, Leica, Lyrics3, Lytro, M2TS, MAC,
|
|
2297
2312
|
MIE-Audio, MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS,
|
|
2298
2313
|
MIE-Geo, MIE-Image, MIE-Lens, MIE-Main, MIE-MakerNotes, MIE-Meta,
|
|
@@ -2344,12 +2359,16 @@ rational64s, float, double, ifd, unicode, complex, int64u, int64s, ifd64
|
|
|
2344
2359
|
|
|
2345
2360
|
=item Family 7 (Tag ID):
|
|
2346
2361
|
|
|
2347
|
-
ID-xxx (
|
|
2348
|
-
leading "0x" if the HexTagIDs option is set,
|
|
2349
|
-
non-numerical ID's which are not valid in a group name
|
|
2362
|
+
ID-xxx (Where xxx is the tag ID. Numerical ID's are returned in hex with a
|
|
2363
|
+
leading "0x" if the HexTagIDs option is set, or decimal otherwise.
|
|
2364
|
+
Characters in non-numerical ID's which are not valid in a group name are
|
|
2365
|
+
returned as 2 hex digits.)
|
|
2350
2366
|
|
|
2351
2367
|
=back
|
|
2352
2368
|
|
|
2369
|
+
Note: This function may also be called as an ExifTool member function to
|
|
2370
|
+
allow the HexTagIDs option to be set when retrieving family 7 group names.
|
|
2371
|
+
|
|
2353
2372
|
=head2 GetDeleteGroups [static]
|
|
2354
2373
|
|
|
2355
2374
|
Get list of all deletable group names.
|
|
@@ -2367,14 +2386,14 @@ None.
|
|
|
2367
2386
|
A list of deletable group names in alphabetical order. The current list of
|
|
2368
2387
|
deletable group names is:
|
|
2369
2388
|
|
|
2370
|
-
AFCP, APP0, APP1, APP10, APP11, APP12, APP13, APP14, APP15, APP2,
|
|
2371
|
-
APP4, APP5, APP6, APP7, APP8, APP9,
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
NikonCapture, Other, PDF, PDF-update,
|
|
2376
|
-
Photoshop,
|
|
2377
|
-
Video, XML, XML-*, XMP, XMP-*
|
|
2389
|
+
Adobe, AFCP, APP0, APP1, APP10, APP11, APP12, APP13, APP14, APP15, APP2,
|
|
2390
|
+
APP3, APP4, APP5, APP6, APP7, APP8, APP9, Audio, Author, Camera, CanonVRD,
|
|
2391
|
+
CIFF, Document, Ducky, EXIF, ExifIFD, ExifTool, File, FlashPix, FotoStation,
|
|
2392
|
+
GlobParamIFD, GPS, ICC_Profile, IFD0, IFD1, Image, Insta360, InteropIFD,
|
|
2393
|
+
IPTC, ItemList, JFIF, Jpeg2000, Keys, Location, MakerNotes, Meta, MetaIFD,
|
|
2394
|
+
Microsoft, MIE, MPF, NikonCapture, Other, PDF, PDF-update, PhotoMechanic,
|
|
2395
|
+
Photoshop, PNG, PNG-pHYs, Preview, PrintIM, Printing, QuickTime, RMETA,
|
|
2396
|
+
RSRC, SubIFD, Time, Trailer, UserData, Video, XML, XML-*, XMP, XMP-*
|
|
2378
2397
|
|
|
2379
2398
|
To schedule a group for deletion, call L</SetNewValue> with a tag name like
|
|
2380
2399
|
'EXIF:*' and an undefined tag value.
|
|
@@ -15,7 +15,7 @@ use vars qw($VERSION);
|
|
|
15
15
|
use Image::ExifTool::Exif;
|
|
16
16
|
use Image::ExifTool::PLIST;
|
|
17
17
|
|
|
18
|
-
$VERSION = '1.
|
|
18
|
+
$VERSION = '1.05';
|
|
19
19
|
|
|
20
20
|
# Apple iPhone metadata (ref PH)
|
|
21
21
|
%Image::ExifTool::Apple::Main = (
|
|
@@ -72,7 +72,8 @@ $VERSION = '1.04';
|
|
|
72
72
|
# 0x000f - int32s: 2,3
|
|
73
73
|
# 0x0010 - int32s: 1
|
|
74
74
|
0x0011 => {
|
|
75
|
-
Name => '
|
|
75
|
+
Name => 'MediaGroupUUID', #NealKrawetz private communication
|
|
76
|
+
# (changed in 12.19 from Name => 'ContentIdentifier', #forum8750)
|
|
76
77
|
Writable => 'string',
|
|
77
78
|
},
|
|
78
79
|
# 0x0014 - int32s: 1,2,3,4,5 (iPhone 6s, iOS 6.1)
|
|
@@ -35,7 +35,7 @@ use Image::ExifTool::Sony;
|
|
|
35
35
|
use Image::ExifTool::Validate;
|
|
36
36
|
use Image::ExifTool::MacOS;
|
|
37
37
|
|
|
38
|
-
$VERSION = '3.
|
|
38
|
+
$VERSION = '3.44';
|
|
39
39
|
@ISA = qw(Exporter);
|
|
40
40
|
|
|
41
41
|
sub NumbersFirst($$);
|
|
@@ -141,6 +141,9 @@ my %formatOK = (
|
|
|
141
141
|
signed => 1,
|
|
142
142
|
unsigned => 1,
|
|
143
143
|
utf8 => 1,
|
|
144
|
+
Unicode => 1, # (Microsoft Xtra)
|
|
145
|
+
GUID => 1, # (Microsoft Xtra)
|
|
146
|
+
vt_filetime => 1, # (Microsoft Xtra)
|
|
144
147
|
);
|
|
145
148
|
|
|
146
149
|
# Descriptions for the TagNames documentation
|
|
@@ -310,9 +313,10 @@ C<integer> is a string of digits (possibly beginning with a '+' or '-'),
|
|
|
310
313
|
C<real> is a floating point number, C<rational> is entered as a floating
|
|
311
314
|
point number but stored as two C<integer> strings separated by a '/'
|
|
312
315
|
character, C<date> is a date/time string entered in the format "YYYY:mm:dd
|
|
313
|
-
HH:MM:SS[.ss][+/-HH:MM]", C<boolean> is either "True" or "False"
|
|
314
|
-
|
|
315
|
-
|
|
316
|
+
HH:MM:SS[.ss][+/-HH:MM]", C<boolean> is either "True" or "False" (but "true"
|
|
317
|
+
and "false" may be written as a ValueConv value for compatibility with
|
|
318
|
+
non-conforming applications), C<struct> indicates a structured tag, and
|
|
319
|
+
C<lang-alt> is a tag that supports alternate languages.
|
|
316
320
|
|
|
317
321
|
When reading, C<struct> tags are extracted only if the L<Struct|../ExifTool.html#Struct> (-struct)
|
|
318
322
|
option is used. Otherwise the corresponding I<Flattened> tags, indicated by
|
|
@@ -430,11 +434,13 @@ L<UserData|Image::ExifTool::TagNames/QuickTime UserData Tags>, and
|
|
|
430
434
|
finally in L<Keys|Image::ExifTool::TagNames/QuickTime Keys Tags>,
|
|
431
435
|
but this order may be changed by setting the PREFERRED level of the
|
|
432
436
|
appropriate table in the config file (see
|
|
433
|
-
L<example.config|../config.html#PREF> in the full distribution for
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
437
|
+
L<example.config|../config.html#PREF> in the full distribution for an
|
|
438
|
+
example). Note that some tags with the same name but different ID's may
|
|
439
|
+
exist in the same location, but the family 7 group names may be used to
|
|
440
|
+
differentiate these. ExifTool currently writes only top-level metadata in
|
|
441
|
+
QuickTime-based files; it extracts other track-specific and timed metadata,
|
|
442
|
+
but can not yet edit tags in these locations (with the exception of
|
|
443
|
+
track-level date/time tags).
|
|
438
444
|
|
|
439
445
|
Alternate language tags may be accessed for
|
|
440
446
|
L<ItemList|Image::ExifTool::TagNames/QuickTime ItemList Tags> and
|
|
@@ -459,8 +465,8 @@ local time when extracting.
|
|
|
459
465
|
|
|
460
466
|
When writing string-based date/time tags, the system time zone is added if
|
|
461
467
|
the PrintConv option is enabled and no time zone is specified. This is
|
|
462
|
-
because Apple software may display
|
|
463
|
-
|
|
468
|
+
because Apple software may display crazy values if the time zone is missing
|
|
469
|
+
for some tags.
|
|
464
470
|
|
|
465
471
|
See
|
|
466
472
|
L<https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/>
|
|
@@ -633,7 +639,7 @@ overlapping EXIF, IPTC and XMP tags to be reconciled when reading, and
|
|
|
633
639
|
synchronized when writing. The MWG Composite tags below are designed to aid
|
|
634
640
|
in the implementation of these recommendations. As well, the MWG defines
|
|
635
641
|
new XMP tags which are listed in the subsequent tables below. See
|
|
636
|
-
L<https://web.archive.org/web/
|
|
642
|
+
L<https://web.archive.org/web/20180919181934/http://www.metadataworkinggroup.org/pdf/mwg_guidance.pdf>
|
|
637
643
|
for the official MWG specification.
|
|
638
644
|
},
|
|
639
645
|
MacOS => q{
|
|
@@ -698,10 +704,14 @@ my %shortcutNotes = (
|
|
|
698
704
|
large binary data tags which may be excluded to reduce memory usage if
|
|
699
705
|
memory limitations are a problem
|
|
700
706
|
},
|
|
707
|
+
'ls-l' => q{
|
|
708
|
+
mimics columns shown by Unix "ls -l" command. Includes some tags which are
|
|
709
|
+
extracted only if the API L<SystemTags|../ExifTool.html#SystemTags> option
|
|
710
|
+
is enabled
|
|
711
|
+
},
|
|
701
712
|
);
|
|
702
713
|
|
|
703
|
-
|
|
704
|
-
# same thing for RIFF INFO tags found in the EXIF spec
|
|
714
|
+
# lookup for RIFF INFO tags which are found in the EXIF spec
|
|
705
715
|
my %riffSpec = (
|
|
706
716
|
IARL => 1, ICRD => 1, IGNR => 1, IPLT => 1, ISRC => 1,
|
|
707
717
|
IART => 1, ICRP => 1, IKEY => 1, IPRD => 1, ISRF => 1,
|
|
@@ -1319,6 +1329,7 @@ TagID: foreach $tagID (@keys) {
|
|
|
1319
1329
|
my $count = $$tagInfo{Count} || 1;
|
|
1320
1330
|
# adjust count to Writable size if different than Format
|
|
1321
1331
|
if ($writable and $format and $writable ne $format and
|
|
1332
|
+
$writable ne 'string' and $format ne 'string' and
|
|
1322
1333
|
$Image::ExifTool::Exif::formatNumber{$writable} and
|
|
1323
1334
|
$Image::ExifTool::Exif::formatNumber{$format})
|
|
1324
1335
|
{
|
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
|
88
88
|
sub ProcessExifInfo($$$);
|
|
89
89
|
sub SwapWords($);
|
|
90
90
|
|
|
91
|
-
$VERSION = '4.
|
|
91
|
+
$VERSION = '4.47';
|
|
92
92
|
|
|
93
93
|
# Note: Removed 'USM' from 'L' lenses since it is redundant - PH
|
|
94
94
|
# (or is it? Ref 32 shows 5 non-USM L-type lenses)
|
|
@@ -473,7 +473,8 @@ $VERSION = '4.42';
|
|
|
473
473
|
253 => 'Canon EF 70-200mm f/2.8L IS II USM + 2x', #PH (NC)
|
|
474
474
|
253.1 => 'Canon EF 70-200mm f/2.8L IS III USM + 2x', #PH (NC)
|
|
475
475
|
# 253.2 => 'Tamron SP 70-200mm f/2.8 Di VC USD G2 (A025) + 2x', #forum9367
|
|
476
|
-
254 => 'Canon EF 100mm f/2.8L Macro IS USM', #42
|
|
476
|
+
254 => 'Canon EF 100mm f/2.8L Macro IS USM or Tamron Lens', #42
|
|
477
|
+
254.1 => 'Tamron SP 90mm f/2.8 Di VC USD 1:1 Macro (F017)', #PH
|
|
477
478
|
255 => 'Sigma 24-105mm f/4 DG OS HSM | A or Other Lens', #50
|
|
478
479
|
255.1 => 'Sigma 180mm f/2.8 EX DG OS HSM APO Macro', #50
|
|
479
480
|
255.2 => 'Tamron SP 70-200mm f/2.8 Di VC USD', #exiv issue 1202 (A009)
|
|
@@ -589,6 +590,8 @@ $VERSION = '4.42';
|
|
|
589
590
|
61182.18 => 'Canon RF 100-500mm F4.5-7.1L IS USM',
|
|
590
591
|
61182.19 => 'Canon RF 100-500mm F4.5-7.1L IS USM + RF1.4x',
|
|
591
592
|
61182.20 => 'Canon RF 100-500mm F4.5-7.1L IS USM + RF2x',
|
|
593
|
+
61182.21 => 'Canon RF 70-200mm F4L IS USM', #42
|
|
594
|
+
61182.22 => 'Canon RF 50mm F1.8 STM', #42
|
|
592
595
|
65535 => 'n/a',
|
|
593
596
|
);
|
|
594
597
|
|
|
@@ -945,6 +948,7 @@ $VERSION = '4.42';
|
|
|
945
948
|
0x80000437 => 'EOS 90D', #IB
|
|
946
949
|
0x80000453 => 'EOS R6', #PH
|
|
947
950
|
0x80000467 => 'PowerShot ZOOM',
|
|
951
|
+
0x80000468 => 'EOS M50 Mark II / Kiss M2', #IB
|
|
948
952
|
0x80000520 => 'EOS D2000C', #IB
|
|
949
953
|
0x80000560 => 'EOS D6000C', #PH (guess)
|
|
950
954
|
);
|
|
@@ -2128,6 +2132,7 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
|
2128
2132
|
16 => 'Pan Focus', #PH
|
|
2129
2133
|
# 137 - Single?
|
|
2130
2134
|
256 => 'AF + MF', #PH (NC, EOS M)
|
|
2135
|
+
257 => 'Live View', #forum12082
|
|
2131
2136
|
512 => 'Movie Snap Focus', #48
|
|
2132
2137
|
519 => 'Movie Servo AF', #PH (NC, EOS M)
|
|
2133
2138
|
},
|
|
@@ -4538,6 +4543,16 @@ my %ciMaxFocal = (
|
|
|
4538
4543
|
2 => 'Rotate 270 CW',
|
|
4539
4544
|
},
|
|
4540
4545
|
},
|
|
4546
|
+
0x3a => { #IB
|
|
4547
|
+
Name => 'CameraOrientation',
|
|
4548
|
+
Condition => '$$self{Model} =~ /\b(1200D|REBEL T5|Kiss X70)\b/',
|
|
4549
|
+
Notes => '1200D only',
|
|
4550
|
+
PrintConv => {
|
|
4551
|
+
0 => 'Horizontal (normal)',
|
|
4552
|
+
1 => 'Rotate 90 CW',
|
|
4553
|
+
2 => 'Rotate 270 CW',
|
|
4554
|
+
},
|
|
4555
|
+
},
|
|
4541
4556
|
0x55 => {
|
|
4542
4557
|
Name => 'FocusDistanceUpper',
|
|
4543
4558
|
Condition => '$$self{Model} =~ /EOS 60D$/',
|
|
@@ -4678,7 +4693,7 @@ my %ciMaxFocal = (
|
|
|
4678
4693
|
FIRST_ENTRY => 0,
|
|
4679
4694
|
PRIORITY => 0,
|
|
4680
4695
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
|
4681
|
-
NOTES => 'CameraInfo tags for the EOS
|
|
4696
|
+
NOTES => 'CameraInfo tags for the EOS 80D.',
|
|
4682
4697
|
0x03 => { %ciFNumber },
|
|
4683
4698
|
0x04 => { %ciExposureTime },
|
|
4684
4699
|
0x06 => { %ciISO },
|
|
@@ -5254,6 +5269,14 @@ my %ciMaxFocal = (
|
|
|
5254
5269
|
0x06 => { %ciISO },
|
|
5255
5270
|
0x1b => { %ciCameraTemperature }, # (700D + 0)
|
|
5256
5271
|
0x23 => { %ciFocalLength }, # (700D + 0)
|
|
5272
|
+
0x96 => { #IB (700D + 0x19)
|
|
5273
|
+
Name => 'CameraOrientation',
|
|
5274
|
+
PrintConv => {
|
|
5275
|
+
0 => 'Horizontal (normal)',
|
|
5276
|
+
1 => 'Rotate 90 CW',
|
|
5277
|
+
2 => 'Rotate 270 CW',
|
|
5278
|
+
},
|
|
5279
|
+
},
|
|
5257
5280
|
0xa5 => { # (700D + 0x19)
|
|
5258
5281
|
Name => 'FocusDistanceUpper',
|
|
5259
5282
|
%focusDistanceByteSwap,
|
|
@@ -6735,6 +6758,8 @@ my %ciMaxFocal = (
|
|
|
6735
6758
|
275 => 'Canon RF 100-500mm F4.5-7.1L IS USM',
|
|
6736
6759
|
276 => 'Canon RF 100-500mm F4.5-7.1L IS USM + RF1.4x',
|
|
6737
6760
|
277 => 'Canon RF 100-500mm F4.5-7.1L IS USM + RF2x',
|
|
6761
|
+
278 => 'Canon RF 70-200mm F4L IS USM', #42
|
|
6762
|
+
280 => 'Canon RF 50mm F1.8 STM', #42
|
|
6738
6763
|
# Note: add new RF lenses to %canonLensTypes with ID 61182
|
|
6739
6764
|
},
|
|
6740
6765
|
},
|