exiftool_vendored 12.16.0 → 12.25.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
},
|