exiftool_vendored 13.36.0 → 13.38.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 +39 -1
- data/bin/MANIFEST +9 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +47 -47
- data/bin/build_geolocation +7 -3
- data/bin/exiftool +65 -63
- data/bin/lib/Image/ExifTool/Audible.pm +1 -1
- data/bin/lib/Image/ExifTool/BMP.pm +2 -2
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +16 -9
- data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
- data/bin/lib/Image/ExifTool/Canon.pm +59 -5
- data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
- data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- data/bin/lib/Image/ExifTool/DJI.pm +5 -5
- data/bin/lib/Image/ExifTool/DSF.pm +138 -0
- data/bin/lib/Image/ExifTool/DV.pm +1 -1
- data/bin/lib/Image/ExifTool/EXE.pm +5 -2
- data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
- data/bin/lib/Image/ExifTool/FLIR.pm +3 -3
- data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
- data/bin/lib/Image/ExifTool/FujiFilm.pm +5 -4
- data/bin/lib/Image/ExifTool/GIF.pm +1 -1
- data/bin/lib/Image/ExifTool/GM.pm +1 -1
- data/bin/lib/Image/ExifTool/Geolocation.pm +3 -1
- data/bin/lib/Image/ExifTool/Geotag.pm +13 -3
- data/bin/lib/Image/ExifTool/GoPro.pm +11 -8
- data/bin/lib/Image/ExifTool/Google.pm +814 -0
- data/bin/lib/Image/ExifTool/H264.pm +1 -1
- data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
- data/bin/lib/Image/ExifTool/ID3.pm +14 -13
- data/bin/lib/Image/ExifTool/JPEG.pm +1 -1
- data/bin/lib/Image/ExifTool/JSON.pm +1 -1
- data/bin/lib/Image/ExifTool/LIF.pm +1 -1
- data/bin/lib/Image/ExifTool/LNK.pm +2 -2
- data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
- data/bin/lib/Image/ExifTool/M2TS.pm +34 -25
- data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
- data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
- data/bin/lib/Image/ExifTool/MWG.pm +1 -1
- data/bin/lib/Image/ExifTool/MXF.pm +1 -1
- data/bin/lib/Image/ExifTool/MacOS.pm +2 -2
- data/bin/lib/Image/ExifTool/MakerNotes.pm +30 -7
- data/bin/lib/Image/ExifTool/Microsoft.pm +4 -4
- data/bin/lib/Image/ExifTool/Nikon.pm +4 -4
- data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
- data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +2 -1
- data/bin/lib/Image/ExifTool/Other.pm +1 -1
- data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +18 -7
- data/bin/lib/Image/ExifTool/Protobuf.pm +12 -6
- data/bin/lib/Image/ExifTool/Qualcomm.pm +2 -2
- data/bin/lib/Image/ExifTool/QuickTime.pm +30 -8
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +2 -0
- data/bin/lib/Image/ExifTool/README +7 -6
- data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
- data/bin/lib/Image/ExifTool/Reconyx.pm +375 -91
- data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
- data/bin/lib/Image/ExifTool/Shortcuts.pm +8 -5
- data/bin/lib/Image/ExifTool/Sony.pm +22 -7
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +3 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +5753 -5696
- data/bin/lib/Image/ExifTool/TagNames.pod +707 -518
- data/bin/lib/Image/ExifTool/Text.pm +1 -1
- data/bin/lib/Image/ExifTool/Trailer.pm +1 -1
- data/bin/lib/Image/ExifTool/WPG.pm +1 -1
- data/bin/lib/Image/ExifTool/WTV.pm +1 -1
- data/bin/lib/Image/ExifTool/WavPack.pm +144 -0
- data/bin/lib/Image/ExifTool/XMP.pm +43 -37
- data/bin/lib/Image/ExifTool/XMP2.pl +0 -482
- data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
- data/bin/lib/Image/ExifTool/iWork.pm +1 -1
- data/bin/lib/Image/ExifTool.pm +42 -27
- data/bin/lib/Image/ExifTool.pod +60 -59
- data/bin/perl-Image-ExifTool.spec +46 -46
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 41c912cc465c00eabd73bd1192f484d997d3c2b8c2dfaf3b63bb49251d53be0c
|
4
|
+
data.tar.gz: 742291182313e01c2c318ee7e9df71f4dfc4d4e9479d725e7d50eb218b6e9436
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5c31b6b771b02395a5a78d86f0c531ba82c21f491811c2d1f181f6445fe878a8a59b32f4eeb6fa9874b12309a6ea69098d77f5635859fef2a092004b35d72b9c
|
7
|
+
data.tar.gz: 1537c480de198d70e14d832dc48d4f9591016cbec09c99ee0d9fab69327236819040c37756478a796ad4483da1e149ada4addfcd1bb0a148c4dc4ecb864de59e
|
data/bin/Changes
CHANGED
@@ -7,6 +7,44 @@ RSS feed: https://exiftool.org/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 13.36. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to MetaCPAN.)
|
9
9
|
|
10
|
+
Sept. 30, 2025 - Version 13.38
|
11
|
+
|
12
|
+
- Added read support for DSF audio files (github #331)
|
13
|
+
- Decode a couple more GoPro tags
|
14
|
+
- Improved WavPack audio file support to recognize the WVP extension and
|
15
|
+
extract more than just RIFF metadata
|
16
|
+
- Updated Sony decoding for the ILCE-6400A (thanks Jos Roost)
|
17
|
+
- Set family 0 group name to "Composite" for approximated GPSDateTime in timed
|
18
|
+
video metadata
|
19
|
+
- Patched to recognize M2TS videos which begin in the middle of a packet
|
20
|
+
- Patched to attempt reading XMP which has an invalid encoding (github #348)
|
21
|
+
- Patched to avoid possible runtime warning when reading a EXE file with
|
22
|
+
corrupt resources (github #354)
|
23
|
+
- Fixed typo in a GoPro tag name
|
24
|
+
|
25
|
+
Sept. 22, 2025 - Version 13.37
|
26
|
+
|
27
|
+
- Added support for geotagging from Columbus GPS logger CSV files
|
28
|
+
- Added some new Canon, Sony and Olympus lenses (thanks Hubert Figuiere,
|
29
|
+
github #352 and Jos Roost)
|
30
|
+
- Added new Canon RFLensType and CanonModelID values (thanks Norbert Wasser
|
31
|
+
and Hubert Figuiere, github #350)
|
32
|
+
- Added a new FujiFilm FaceElementType value
|
33
|
+
- Decode Google HDRP maker notes (both text and Protobuf formats)
|
34
|
+
- Decode Reconyx MicroFire and Hyperfire 4K maker notes (thanks Reconyx)
|
35
|
+
- Decode a number of new Canon and Pentax tags and add a number of new values
|
36
|
+
(thanks Karsten Gieselmann)
|
37
|
+
- Decode maker notes from Ricoh GR III videos
|
38
|
+
- Decode a new Sony tag (thanks Jos Roost)
|
39
|
+
- Raised size limit on QuickTime atoms extracted for the -ee option, and added
|
40
|
+
a minor warning and allow bypassing with the -m option if over this limit
|
41
|
+
- Minor change to verbose output for XMP metadata
|
42
|
+
- Fixed possible hang/crash when reading Windows executables (github #351)
|
43
|
+
- Fixed incorrect FujiFilm PanoramaDirection values
|
44
|
+
- API Changes:
|
45
|
+
- Fixed GeoDir option so alternate languages are loaded properly when a
|
46
|
+
relative path is specified
|
47
|
+
|
10
48
|
Sept. 9, 2025 - Version 13.36 (production release)
|
11
49
|
|
12
50
|
- Added a new Nikon LensID (thanks Max, github #345)
|
@@ -3068,7 +3106,7 @@ Feb. 14, 2019 - Version 11.27
|
|
3068
3106
|
Jan. 21, 2019 - Version 11.26
|
3069
3107
|
|
3070
3108
|
- Added a new Nikon LensID (thanks LibRaw)
|
3071
|
-
- Decode more tags for the Sony
|
3109
|
+
- Decode more tags for the Sony ILCE-6400 (thanks Jos Roost and LibRaw)
|
3072
3110
|
- Enhanced -htmldump feature to highlight IFD when mousing over IFD offset
|
3073
3111
|
|
3074
3112
|
Jan. 15, 2019 - Version 11.25
|
data/bin/MANIFEST
CHANGED
@@ -65,6 +65,7 @@ html/TagNames/DICOM.html
|
|
65
65
|
html/TagNames/DJI.html
|
66
66
|
html/TagNames/DNG.html
|
67
67
|
html/TagNames/DPX.html
|
68
|
+
html/TagNames/DSF.html
|
68
69
|
html/TagNames/DV.html
|
69
70
|
html/TagNames/DarwinCore.html
|
70
71
|
html/TagNames/DjVu.html
|
@@ -87,6 +88,7 @@ html/TagNames/GM.html
|
|
87
88
|
html/TagNames/GPS.html
|
88
89
|
html/TagNames/GeoTiff.html
|
89
90
|
html/TagNames/GoPro.html
|
91
|
+
html/TagNames/Google.html
|
90
92
|
html/TagNames/H264.html
|
91
93
|
html/TagNames/HP.html
|
92
94
|
html/TagNames/HTML.html
|
@@ -187,6 +189,7 @@ html/TagNames/VCard.html
|
|
187
189
|
html/TagNames/Vorbis.html
|
188
190
|
html/TagNames/WPG.html
|
189
191
|
html/TagNames/WTV.html
|
192
|
+
html/TagNames/WavPack.html
|
190
193
|
html/TagNames/XISF.html
|
191
194
|
html/TagNames/XMP.html
|
192
195
|
html/TagNames/ZIP.html
|
@@ -290,6 +293,7 @@ lib/Image/ExifTool/DICOM.pm
|
|
290
293
|
lib/Image/ExifTool/DJI.pm
|
291
294
|
lib/Image/ExifTool/DNG.pm
|
292
295
|
lib/Image/ExifTool/DPX.pm
|
296
|
+
lib/Image/ExifTool/DSF.pm
|
293
297
|
lib/Image/ExifTool/DV.pm
|
294
298
|
lib/Image/ExifTool/DarwinCore.pm
|
295
299
|
lib/Image/ExifTool/DjVu.pm
|
@@ -308,6 +312,7 @@ lib/Image/ExifTool/FujiFilm.pm
|
|
308
312
|
lib/Image/ExifTool/GE.pm
|
309
313
|
lib/Image/ExifTool/GIF.pm
|
310
314
|
lib/Image/ExifTool/GIMP.pm
|
315
|
+
lib/Image/ExifTool/Google.pm
|
311
316
|
lib/Image/ExifTool/GM.pm
|
312
317
|
lib/Image/ExifTool/GPS.pm
|
313
318
|
lib/Image/ExifTool/GeoTiff.pm
|
@@ -449,6 +454,7 @@ lib/Image/ExifTool/Validate.pm
|
|
449
454
|
lib/Image/ExifTool/Vorbis.pm
|
450
455
|
lib/Image/ExifTool/WPG.pm
|
451
456
|
lib/Image/ExifTool/WTV.pm
|
457
|
+
lib/Image/ExifTool/WavPack.pm
|
452
458
|
lib/Image/ExifTool/WriteCanonRaw.pl
|
453
459
|
lib/Image/ExifTool/WriteExif.pl
|
454
460
|
lib/Image/ExifTool/WriteIPTC.pl
|
@@ -645,6 +651,8 @@ t/Geotag_8.out
|
|
645
651
|
t/Geotag_9.out
|
646
652
|
t/GoPro.t
|
647
653
|
t/GoPro_2.out
|
654
|
+
t/Google.t
|
655
|
+
t/Google_2.out
|
648
656
|
t/HTML.t
|
649
657
|
t/HTML_2.out
|
650
658
|
t/ICO.t
|
@@ -1095,6 +1103,7 @@ t/images/Geotag2.log
|
|
1095
1103
|
t/images/Geotag3.log
|
1096
1104
|
t/images/Geotag_DJI_2020-12-02_[07-50-31].csv
|
1097
1105
|
t/images/GoPro.jpg
|
1106
|
+
t/images/Google.jpg
|
1098
1107
|
t/images/HTML.html
|
1099
1108
|
t/images/ICC_Profile.icc
|
1100
1109
|
t/images/ICO.ico
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -14,51 +14,51 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
14
14
|
|
15
15
|
File Types
|
16
16
|
------------+-------------+-------------+-------------+------------
|
17
|
-
360 r/w | DPX r |
|
18
|
-
3FR r | DR4 r/w/c |
|
19
|
-
3G2 r/w |
|
20
|
-
3GP r/w |
|
21
|
-
7Z r |
|
22
|
-
A r |
|
23
|
-
AA r |
|
24
|
-
AAC r |
|
25
|
-
AAE r |
|
26
|
-
AAX r/w |
|
27
|
-
ACR r |
|
28
|
-
AFM r |
|
29
|
-
AI r/w |
|
30
|
-
AIFF r |
|
31
|
-
APE r |
|
32
|
-
ARQ r/w |
|
33
|
-
ARW r/w |
|
34
|
-
ASF r |
|
35
|
-
AVI r |
|
36
|
-
AVIF r/w |
|
37
|
-
AZW r |
|
38
|
-
BMP r |
|
39
|
-
BPG r |
|
40
|
-
BTF r |
|
41
|
-
C2PA r |
|
42
|
-
CHM r |
|
43
|
-
COS r |
|
44
|
-
CR2 r/w |
|
45
|
-
CR3 r/w |
|
46
|
-
CRM r/w |
|
47
|
-
CRW r/w |
|
48
|
-
CS1 r/w |
|
49
|
-
CSV r |
|
50
|
-
CUR r |
|
51
|
-
CZI r |
|
52
|
-
DCM r |
|
53
|
-
DCP r/w |
|
54
|
-
DCR r |
|
55
|
-
DFONT r |
|
56
|
-
DIVX r |
|
57
|
-
DJVU r |
|
58
|
-
DLL r |
|
59
|
-
DNG r/w |
|
60
|
-
DOC r |
|
61
|
-
DOCX r |
|
17
|
+
360 r/w | DPX r | J2C r | O r | RIFF r
|
18
|
+
3FR r | DR4 r/w/c | JNG r/w | ODP r | RSRC r
|
19
|
+
3G2 r/w | DSF r | JP2 r/w | ODS r | RTF r
|
20
|
+
3GP r/w | DSS r | JPEG r/w | ODT r | RW2 r/w
|
21
|
+
7Z r | DV r | JSON r | OFR r | RWL r/w
|
22
|
+
A r | DVB r/w | JXL r/w | OGG r | RWZ r
|
23
|
+
AA r | DVR-MS r | K25 r | OGV r | RM r
|
24
|
+
AAC r | DYLIB r | KDC r | ONP r | SEQ r
|
25
|
+
AAE r | EIP r | KEY r | OPUS r | SKETCH r
|
26
|
+
AAX r/w | EPS r/w | LA r | ORF r/w | SO r
|
27
|
+
ACR r | EPUB r | LFP r | ORI r/w | SR2 r/w
|
28
|
+
AFM r | ERF r/w | LIF r | OTF r | SRF r
|
29
|
+
AI r/w | EXE r | LNK r | PAC r | SRW r/w
|
30
|
+
AIFF r | EXIF r/w/c | LRV r/w | PAGES r | SVG r
|
31
|
+
APE r | EXR r | M2TS r | PBM r/w | SWF r
|
32
|
+
ARQ r/w | EXV r/w/c | M4A/V r/w | PCAP r | THM r/w
|
33
|
+
ARW r/w | F4A/V r/w | MACOS r | PCAPNG r | TIFF r/w
|
34
|
+
ASF r | FFF r/w | MAX r | PCD r | TNEF r
|
35
|
+
AVI r | FITS r | MEF r/w | PCX r | TORRENT r
|
36
|
+
AVIF r/w | FLA r | MIE r/w/c | PDB r | TTC r
|
37
|
+
AZW r | FLAC r | MIFF r | PDF r/w | TTF r
|
38
|
+
BMP r | FLIF r/w | MKA r | PEF r/w | TXT r
|
39
|
+
BPG r | FLV r | MKS r | PFA r | VCF r
|
40
|
+
BTF r | FPF r | MKV r | PFB r | VNT r
|
41
|
+
C2PA r | FPX r | MNG r/w | PFM r | VRD r/w/c
|
42
|
+
CHM r | GIF r/w | MOBI r | PGF r | VSD r
|
43
|
+
COS r | GLV r/w | MODD r | PGM r/w | WAV r
|
44
|
+
CR2 r/w | GPR r/w | MOI r | PLIST r | WDP r/w
|
45
|
+
CR3 r/w | GZ r | MOS r/w | PICT r | WEBP r/w
|
46
|
+
CRM r/w | HDP r/w | MOV r/w | PMP r | WEBM r
|
47
|
+
CRW r/w | HDR r | MP3 r | PNG r/w | WMA r
|
48
|
+
CS1 r/w | HEIC r/w | MP4 r/w | PPM r/w | WMV r
|
49
|
+
CSV r | HEIF r/w | MPC r | PPT r | WPG r
|
50
|
+
CUR r | HTML r | MPG r | PPTX r | WTV r
|
51
|
+
CZI r | ICC r/w/c | MPO r/w | PS r/w | WV r
|
52
|
+
DCM r | ICO r | MQV r/w | PSB r/w | X3F r/w
|
53
|
+
DCP r/w | ICS r | MRC r | PSD r/w | XCF r
|
54
|
+
DCR r | IDML r | MRW r/w | PSP r | XISF r
|
55
|
+
DFONT r | IIQ r/w | MXF r | QTIF r/w | XLS r
|
56
|
+
DIVX r | IND r/w | NEF r/w | R3D r | XLSX r
|
57
|
+
DJVU r | INSP r/w | NKA r | RA r | XMP r/w/c
|
58
|
+
DLL r | INSV r | NKSC r/w | RAF r/w | ZIP r
|
59
|
+
DNG r/w | INX r | NRW r/w | RAM r |
|
60
|
+
DOC r | ISO r | NUMBERS r | RAR r |
|
61
|
+
DOCX r | ITC r | NXD r | RAW r/w |
|
62
62
|
|
63
63
|
Meta Information
|
64
64
|
----------------------+----------------------+---------------------
|
@@ -110,8 +110,8 @@ your home directory, then you would type the following commands in a
|
|
110
110
|
terminal window to extract and run ExifTool:
|
111
111
|
|
112
112
|
cd ~/Desktop
|
113
|
-
gzip -dc Image-ExifTool-13.
|
114
|
-
cd Image-ExifTool-13.
|
113
|
+
gzip -dc Image-ExifTool-13.38.tar.gz | tar -xf -
|
114
|
+
cd Image-ExifTool-13.38
|
115
115
|
./exiftool t/images/ExifTool.jpg
|
116
116
|
|
117
117
|
Note: These commands extract meta information from one of the test images.
|
data/bin/build_geolocation
CHANGED
@@ -16,6 +16,9 @@
|
|
16
16
|
# under ActivePerl
|
17
17
|
# 2024-04-29 - PH Added feature types and default to db v1.03
|
18
18
|
# 2024-06-13 - PH Tweaked case of imported feature types
|
19
|
+
# 2025-09-11 - PH Changed priority of alternate-language names to
|
20
|
+
# use the preferred name if available and fixed
|
21
|
+
# flag counts in verbose output
|
19
22
|
#
|
20
23
|
# Notes: Requires these files from https://download.geonames.org/export/
|
21
24
|
#
|
@@ -564,7 +567,8 @@ if (not $noLang and open INFILE, '<', "$dbdir/$altNamesFile") {
|
|
564
567
|
$items[$_] and $flags |= (1<<($_-4)) foreach 4,5,6,7;
|
565
568
|
$flags{$items[1]} = ( $flags{$items[1]} || 0 ) | $flags;
|
566
569
|
next if $items[6] or $items[7]; # ignore colloquial and historic names
|
567
|
-
|
570
|
+
# give more weight to preferred name and less weight to short name
|
571
|
+
my $pri = ($items[4] ? 2 : 0) + ($items[5] ? 0 : 1);
|
568
572
|
my $langPri = $bestPri{$lng};
|
569
573
|
$langPri or $langPri = $bestPri{$lng} = { };
|
570
574
|
next if $$langPri{$items[1]} and $$langPri{$items[1]} > $pri;
|
@@ -930,9 +934,9 @@ if ($noLang) {
|
|
930
934
|
print "$type flags:\n";
|
931
935
|
printf(" 0x%.2x - %d\n", 0, $$flags{0} || 0);
|
932
936
|
my @label = qw(preferred short colloquial historic);
|
933
|
-
foreach my $bit (0..
|
937
|
+
foreach my $bit (0..3) {
|
934
938
|
my $n = 0;
|
935
|
-
$_ & (1<<$bit) and
|
939
|
+
$_ & (1<<$bit) and $n += $$flags{$_} foreach keys %$flags;
|
936
940
|
printf(" 0x%.2x - %d (%s)\n", (1<<$bit), $n, shift(@label)) if $n;
|
937
941
|
}
|
938
942
|
}
|
data/bin/exiftool
CHANGED
@@ -11,7 +11,7 @@ use strict;
|
|
11
11
|
use warnings;
|
12
12
|
require 5.004;
|
13
13
|
|
14
|
-
my $version = '13.
|
14
|
+
my $version = '13.38';
|
15
15
|
|
16
16
|
$^W = 1; # enable global warnings
|
17
17
|
|
@@ -5079,51 +5079,51 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
5079
5079
|
|
5080
5080
|
File Types
|
5081
5081
|
------------+-------------+-------------+-------------+------------
|
5082
|
-
360 r/w | DPX r |
|
5083
|
-
3FR r | DR4 r/w/c |
|
5084
|
-
3G2 r/w |
|
5085
|
-
3GP r/w |
|
5086
|
-
7Z r |
|
5087
|
-
A r |
|
5088
|
-
AA r |
|
5089
|
-
AAC r |
|
5090
|
-
AAE r |
|
5091
|
-
AAX r/w |
|
5092
|
-
ACR r |
|
5093
|
-
AFM r |
|
5094
|
-
AI r/w |
|
5095
|
-
AIFF r |
|
5096
|
-
APE r |
|
5097
|
-
ARQ r/w |
|
5098
|
-
ARW r/w |
|
5099
|
-
ASF r |
|
5100
|
-
AVI r |
|
5101
|
-
AVIF r/w |
|
5102
|
-
AZW r |
|
5103
|
-
BMP r |
|
5104
|
-
BPG r |
|
5105
|
-
BTF r |
|
5106
|
-
C2PA r |
|
5107
|
-
CHM r |
|
5108
|
-
COS r |
|
5109
|
-
CR2 r/w |
|
5110
|
-
CR3 r/w |
|
5111
|
-
CRM r/w |
|
5112
|
-
CRW r/w |
|
5113
|
-
CS1 r/w |
|
5114
|
-
CSV r |
|
5115
|
-
CUR r |
|
5116
|
-
CZI r |
|
5117
|
-
DCM r |
|
5118
|
-
DCP r/w |
|
5119
|
-
DCR r |
|
5120
|
-
DFONT r |
|
5121
|
-
DIVX r |
|
5122
|
-
DJVU r |
|
5123
|
-
DLL r |
|
5124
|
-
DNG r/w |
|
5125
|
-
DOC r |
|
5126
|
-
DOCX r |
|
5082
|
+
360 r/w | DPX r | J2C r | O r | RIFF r
|
5083
|
+
3FR r | DR4 r/w/c | JNG r/w | ODP r | RSRC r
|
5084
|
+
3G2 r/w | DSF r | JP2 r/w | ODS r | RTF r
|
5085
|
+
3GP r/w | DSS r | JPEG r/w | ODT r | RW2 r/w
|
5086
|
+
7Z r | DV r | JSON r | OFR r | RWL r/w
|
5087
|
+
A r | DVB r/w | JXL r/w | OGG r | RWZ r
|
5088
|
+
AA r | DVR-MS r | K25 r | OGV r | RM r
|
5089
|
+
AAC r | DYLIB r | KDC r | ONP r | SEQ r
|
5090
|
+
AAE r | EIP r | KEY r | OPUS r | SKETCH r
|
5091
|
+
AAX r/w | EPS r/w | LA r | ORF r/w | SO r
|
5092
|
+
ACR r | EPUB r | LFP r | ORI r/w | SR2 r/w
|
5093
|
+
AFM r | ERF r/w | LIF r | OTF r | SRF r
|
5094
|
+
AI r/w | EXE r | LNK r | PAC r | SRW r/w
|
5095
|
+
AIFF r | EXIF r/w/c | LRV r/w | PAGES r | SVG r
|
5096
|
+
APE r | EXR r | M2TS r | PBM r/w | SWF r
|
5097
|
+
ARQ r/w | EXV r/w/c | M4A/V r/w | PCAP r | THM r/w
|
5098
|
+
ARW r/w | F4A/V r/w | MACOS r | PCAPNG r | TIFF r/w
|
5099
|
+
ASF r | FFF r/w | MAX r | PCD r | TNEF r
|
5100
|
+
AVI r | FITS r | MEF r/w | PCX r | TORRENT r
|
5101
|
+
AVIF r/w | FLA r | MIE r/w/c | PDB r | TTC r
|
5102
|
+
AZW r | FLAC r | MIFF r | PDF r/w | TTF r
|
5103
|
+
BMP r | FLIF r/w | MKA r | PEF r/w | TXT r
|
5104
|
+
BPG r | FLV r | MKS r | PFA r | VCF r
|
5105
|
+
BTF r | FPF r | MKV r | PFB r | VNT r
|
5106
|
+
C2PA r | FPX r | MNG r/w | PFM r | VRD r/w/c
|
5107
|
+
CHM r | GIF r/w | MOBI r | PGF r | VSD r
|
5108
|
+
COS r | GLV r/w | MODD r | PGM r/w | WAV r
|
5109
|
+
CR2 r/w | GPR r/w | MOI r | PLIST r | WDP r/w
|
5110
|
+
CR3 r/w | GZ r | MOS r/w | PICT r | WEBP r/w
|
5111
|
+
CRM r/w | HDP r/w | MOV r/w | PMP r | WEBM r
|
5112
|
+
CRW r/w | HDR r | MP3 r | PNG r/w | WMA r
|
5113
|
+
CS1 r/w | HEIC r/w | MP4 r/w | PPM r/w | WMV r
|
5114
|
+
CSV r | HEIF r/w | MPC r | PPT r | WPG r
|
5115
|
+
CUR r | HTML r | MPG r | PPTX r | WTV r
|
5116
|
+
CZI r | ICC r/w/c | MPO r/w | PS r/w | WV r
|
5117
|
+
DCM r | ICO r | MQV r/w | PSB r/w | X3F r/w
|
5118
|
+
DCP r/w | ICS r | MRC r | PSD r/w | XCF r
|
5119
|
+
DCR r | IDML r | MRW r/w | PSP r | XISF r
|
5120
|
+
DFONT r | IIQ r/w | MXF r | QTIF r/w | XLS r
|
5121
|
+
DIVX r | IND r/w | NEF r/w | R3D r | XLSX r
|
5122
|
+
DJVU r | INSP r/w | NKA r | RA r | XMP r/w/c
|
5123
|
+
DLL r | INSV r | NKSC r/w | RAF r/w | ZIP r
|
5124
|
+
DNG r/w | INX r | NRW r/w | RAM r |
|
5125
|
+
DOC r | ISO r | NUMBERS r | RAR r |
|
5126
|
+
DOCX r | ITC r | NXD r | RAW r/w |
|
5127
5127
|
|
5128
5128
|
Meta Information
|
5129
5129
|
----------------------+----------------------+---------------------
|
@@ -5722,10 +5722,12 @@ as the exported file. The first row of the I<CSVFILE> must be the ExifTool
|
|
5722
5722
|
tag names (with optional group names) for each column of the file, and
|
5723
5723
|
values must be separated by commas. A special "SourceFile" column specifies
|
5724
5724
|
the files associated with each row of information (and a SourceFile of "*"
|
5725
|
-
may be used to define default tags to be imported for all files which are
|
5726
|
-
combined with any tags specified for the specific SourceFile
|
5727
|
-
|
5728
|
-
|
5725
|
+
may be used to define default tags to be imported for all files, which are
|
5726
|
+
then combined with any tags specified for the specific SourceFile
|
5727
|
+
processed). To be clear, the imported CSV file acts as a lookup table to
|
5728
|
+
obtain the tags for import based on the files/directories and tags specified
|
5729
|
+
on the command line. The B<-csvDelim> option may be used to change the
|
5730
|
+
input/output field delimiter if something other than a comma is required.
|
5729
5731
|
|
5730
5732
|
The following examples demonstrate basic use of the B<-csv> option:
|
5731
5733
|
|
@@ -5924,18 +5926,18 @@ convert arrays into strings. For example:
|
|
5924
5926
|
|
5925
5927
|
exiftool -j -api structformat=jsonq -sep ", " ...
|
5926
5928
|
|
5927
|
-
If I<JSONFILE> is specified, the file is imported and the tag
|
5928
|
-
from the
|
5929
|
-
|
5930
|
-
|
5931
|
-
|
5932
|
-
|
5933
|
-
|
5934
|
-
|
5935
|
-
|
5936
|
-
|
5937
|
-
|
5938
|
-
print conversion.
|
5929
|
+
If I<JSONFILE> is specified, the JSON file is imported and the tag
|
5930
|
+
definitions from the JSON are used to set tag values on a per-file basis for
|
5931
|
+
each file specified on the command line. A special "SourceFile" entry in
|
5932
|
+
each JSON object associates the information with a specific target file. An
|
5933
|
+
object with a missing SourceFile or a SourceFile of "*" defines default tags
|
5934
|
+
for all target files which are combined with any tags specified for the
|
5935
|
+
specific SourceFile processed. The imported JSON file must have the same
|
5936
|
+
format as the exported JSON files with the exception that options exporting
|
5937
|
+
JSON objects instead of simple values are not compatible with the import
|
5938
|
+
file format (ie. export with B<-D>, B<-H>, B<-l>, or B<-T> is not
|
5939
|
+
compatible, and use B<-G> instead of B<-g>). Additionally, tag names in the
|
5940
|
+
input JSON file may be suffixed with a C<#> to disable print conversion.
|
5939
5941
|
|
5940
5942
|
Specific tags may be imported from the JSON database by adding B<->I<TAG>
|
5941
5943
|
options to the command, or excluded with B<-->I<TAG>, with exclusions taking
|
@@ -6082,7 +6084,7 @@ with this command:
|
|
6082
6084
|
|
6083
6085
|
produces output like this:
|
6084
6086
|
|
6085
|
-
-- Generated by ExifTool 13.
|
6087
|
+
-- Generated by ExifTool 13.38 --
|
6086
6088
|
File: a.jpg - 2003:10:31 15:44:19
|
6087
6089
|
(f/5.6, 1/60s, ISO 100)
|
6088
6090
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -88,7 +88,7 @@ sub ProcessAudible_cvrx($$$);
|
|
88
88
|
PROCESS_PROC => \&ProcessAudible_cvrx,
|
89
89
|
GROUPS => { 0 => 'QuickTime', 2 => 'Audio' },
|
90
90
|
NOTES => 'Audible cover art information in M4B audio books.',
|
91
|
-
VARS => {
|
91
|
+
VARS => { ID_FMT => 'none' },
|
92
92
|
CoverArtType => 'CoverArtType',
|
93
93
|
CoverArt => {
|
94
94
|
Name => 'CoverArt',
|
@@ -234,7 +234,7 @@ my %fixed2_30 = (
|
|
234
234
|
%Image::ExifTool::BMP::Extra = (
|
235
235
|
GROUPS => { 0 => 'File', 1 => 'File', 2 => 'Image' },
|
236
236
|
NOTES => 'Extra information extracted from some BMP images.',
|
237
|
-
VARS => {
|
237
|
+
VARS => { ID_FMT => 'none' },
|
238
238
|
LinkedProfileName => { },
|
239
239
|
ICC_Profile => { SubDirectory => { TagTable => 'Image::ExifTool::ICC_Profile::Main' } },
|
240
240
|
EmbeddedJPG => {
|
@@ -248,7 +248,7 @@ my %fixed2_30 = (
|
|
248
248
|
);
|
249
249
|
|
250
250
|
#------------------------------------------------------------------------------
|
251
|
-
# Extract
|
251
|
+
# Extract metadata from a BMP image
|
252
252
|
# Inputs: 0) ExifTool object reference, 1) dirInfo reference
|
253
253
|
# Returns: 1 on success, 0 if this wasn't a valid BMP file
|
254
254
|
sub ProcessBMP($$)
|
@@ -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.63';
|
39
39
|
@ISA = qw(Exporter);
|
40
40
|
|
41
41
|
sub NumbersFirst($$);
|
@@ -74,7 +74,8 @@ my %tweakOrder = (
|
|
74
74
|
DJI => 'Casio',
|
75
75
|
FLIR => 'DJI',
|
76
76
|
FujiFilm => 'FLIR',
|
77
|
-
|
77
|
+
Google => 'GE',
|
78
|
+
GoPro => 'Google',
|
78
79
|
Kodak => 'JVC',
|
79
80
|
Leaf => 'Kodak',
|
80
81
|
Lytro => 'Leaf',
|
@@ -867,15 +868,15 @@ sub new
|
|
867
868
|
$longID{$tableName} = 0;
|
868
869
|
$longName{$tableName} = 0;
|
869
870
|
# save all tag names
|
870
|
-
my ($tagID, $binaryTable, $noID, $
|
871
|
+
my ($tagID, $binaryTable, $noID, $prtID, $isIPTC, $isXMP);
|
871
872
|
$isIPTC = 1 if $writeProc and $writeProc eq \&Image::ExifTool::IPTC::WriteIPTC;
|
872
873
|
# generate flattened tag names for structure fields if this is an XMP table
|
873
874
|
if ($$table{GROUPS} and $$table{GROUPS}{0} eq 'XMP' or $$vars{ADD_FLATTENED}) {
|
874
875
|
Image::ExifTool::XMP::AddFlattenedTags($table);
|
875
876
|
$isXMP = 1;
|
876
877
|
}
|
877
|
-
$
|
878
|
-
$
|
878
|
+
$prtID = $$vars{ID_FMT};
|
879
|
+
$noID = 1 if $isXMP or $short =~ /^(Shortcuts|ASF.*)$/ or $prtID and $prtID eq 'none';
|
879
880
|
if ($$table{WRITE_PROC} and $$table{WRITE_PROC} eq \&Image::ExifTool::WriteBinaryData
|
880
881
|
and not $$table{CHECK_PROC})
|
881
882
|
{
|
@@ -1104,7 +1105,7 @@ TagID: foreach $tagID (@keys) {
|
|
1104
1105
|
$note = 'NOT a flattened tag!';
|
1105
1106
|
} else {
|
1106
1107
|
# add note about different XMP Tag ID
|
1107
|
-
$note = $$tagInfo{RootTagInfo} ? $tagID : "
|
1108
|
+
$note = $$tagInfo{RootTagInfo} ? $tagID : "tag ID is '${tagID}'";
|
1108
1109
|
}
|
1109
1110
|
if ($$tagInfo{Notes}) {
|
1110
1111
|
$values[-1] =~ s/^\(/($note; /;
|
@@ -1492,8 +1493,14 @@ TagID: foreach $tagID (@keys) {
|
|
1492
1493
|
if ($tagID =~ /^(-)?\d+(\.\d+)?$/) {
|
1493
1494
|
if ($1) {
|
1494
1495
|
$tagIDstr = $tagID;
|
1495
|
-
} elsif (defined $
|
1496
|
-
|
1496
|
+
} elsif (defined $prtID) {
|
1497
|
+
if ($prtID eq 'hex') {
|
1498
|
+
$tagIDstr = sprintf('0x%.4x',$tagID);
|
1499
|
+
} elsif ($prtID eq 'str') {
|
1500
|
+
$tagIDstr = "'${tagID}'";
|
1501
|
+
} else {
|
1502
|
+
$tagIDstr = $tagID;
|
1503
|
+
}
|
1497
1504
|
} elsif (not $2 and not $binaryTable and not $isIPTC and
|
1498
1505
|
not ($short =~ /^CanonCustom/ and $tagID < 256))
|
1499
1506
|
{
|
@@ -1911,7 +1918,7 @@ sub SortedTagTableKeys($)
|
|
1911
1918
|
my $table = shift;
|
1912
1919
|
my $vars = $$table{VARS} || { };
|
1913
1920
|
my @keys = TagTableKeys($table);
|
1914
|
-
if ($$vars{
|
1921
|
+
if ($$vars{ID_FMT} and $$vars{ID_FMT} eq 'none') {
|
1915
1922
|
# sort by tag name if ID not shown
|
1916
1923
|
my ($key, %name);
|
1917
1924
|
foreach $key (@keys) {
|
@@ -62,7 +62,7 @@ my %cborType7 = (
|
|
62
62
|
|
63
63
|
%Image::ExifTool::CBOR::Main = (
|
64
64
|
GROUPS => { 0 => 'JUMBF', 1 => 'CBOR', 2 => 'Other' },
|
65
|
-
VARS => {
|
65
|
+
VARS => { ID_FMT => 'none' },
|
66
66
|
PROCESS_PROC => \&ProcessCBOR,
|
67
67
|
NOTES => q{
|
68
68
|
The tags below are extracted from CBOR (Concise Binary Object
|