exiftool-vendored.pl 13.0.1 → 13.16.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.
- package/bin/Changes +254 -20
- package/bin/MANIFEST +10 -0
- package/bin/META.json +1 -1
- package/bin/META.yml +1 -1
- package/bin/README +3 -3
- package/bin/arg_files/exif2xmp.args +4 -0
- package/bin/arg_files/xmp2exif.args +2 -1
- package/bin/build_geolocation +1 -1
- package/bin/exiftool +356 -213
- package/bin/lib/File/RandomAccess.pm +1 -1
- package/bin/lib/File/RandomAccess.pod +2 -2
- package/bin/lib/Image/ExifTool/AAC.pm +1 -1
- package/bin/lib/Image/ExifTool/AES.pm +1 -1
- package/bin/lib/Image/ExifTool/AFCP.pm +6 -6
- package/bin/lib/Image/ExifTool/AIFF.pm +2 -2
- package/bin/lib/Image/ExifTool/APE.pm +2 -2
- package/bin/lib/Image/ExifTool/APP12.pm +1 -1
- package/bin/lib/Image/ExifTool/ASF.pm +2 -2
- package/bin/lib/Image/ExifTool/Apple.pm +11 -9
- package/bin/lib/Image/ExifTool/Audible.pm +1 -1
- package/bin/lib/Image/ExifTool/BMP.pm +1 -1
- package/bin/lib/Image/ExifTool/BPG.pm +1 -1
- package/bin/lib/Image/ExifTool/BZZ.pm +1 -1
- package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/BuildTagLookup.pm +36 -22
- package/bin/lib/Image/ExifTool/CBOR.pm +5 -2
- package/bin/lib/Image/ExifTool/Canon.pm +66 -27
- package/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
- package/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
- package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
- package/bin/lib/Image/ExifTool/Casio.pm +1 -1
- package/bin/lib/Image/ExifTool/Charset.pm +1 -1
- package/bin/lib/Image/ExifTool/DICOM.pm +1 -1
- package/bin/lib/Image/ExifTool/DJI.pm +196 -30
- package/bin/lib/Image/ExifTool/DNG.pm +1 -1
- package/bin/lib/Image/ExifTool/DPX.pm +1 -1
- package/bin/lib/Image/ExifTool/DV.pm +1 -1
- package/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
- package/bin/lib/Image/ExifTool/DjVu.pm +1 -1
- package/bin/lib/Image/ExifTool/EXE.pm +138 -33
- package/bin/lib/Image/ExifTool/Exif.pm +29 -16
- package/bin/lib/Image/ExifTool/FITS.pm +3 -3
- package/bin/lib/Image/ExifTool/FLAC.pm +1 -1
- package/bin/lib/Image/ExifTool/FLIF.pm +3 -3
- package/bin/lib/Image/ExifTool/FLIR.pm +1 -1
- package/bin/lib/Image/ExifTool/Fixup.pm +1 -1
- package/bin/lib/Image/ExifTool/Flash.pm +1 -1
- package/bin/lib/Image/ExifTool/FlashPix.pm +17 -21
- package/bin/lib/Image/ExifTool/Font.pm +2 -2
- package/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
- package/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
- package/bin/lib/Image/ExifTool/GE.pm +1 -1
- package/bin/lib/Image/ExifTool/GIF.pm +144 -93
- package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
- package/bin/lib/Image/ExifTool/GM.pm +1 -1
- package/bin/lib/Image/ExifTool/GPS.pm +34 -30
- package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
- package/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
- package/bin/lib/Image/ExifTool/Geolocation.pm +19 -9
- package/bin/lib/Image/ExifTool/Geotag.pm +46 -12
- package/bin/lib/Image/ExifTool/GoPro.pm +120 -8
- package/bin/lib/Image/ExifTool/H264.pm +1 -1
- package/bin/lib/Image/ExifTool/HP.pm +2 -2
- package/bin/lib/Image/ExifTool/HTML.pm +1 -1
- package/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
- package/bin/lib/Image/ExifTool/ICC_Profile.pm +81 -2
- package/bin/lib/Image/ExifTool/ICO.pm +1 -1
- package/bin/lib/Image/ExifTool/ID3.pm +8 -8
- package/bin/lib/Image/ExifTool/IPTC.pm +10 -7
- package/bin/lib/Image/ExifTool/ISO.pm +1 -1
- package/bin/lib/Image/ExifTool/ITC.pm +1 -1
- package/bin/lib/Image/ExifTool/Import.pm +5 -4
- package/bin/lib/Image/ExifTool/InDesign.pm +2 -2
- package/bin/lib/Image/ExifTool/InfiRay.pm +1 -1
- package/bin/lib/Image/ExifTool/JPEG.pm +32 -5
- package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- package/bin/lib/Image/ExifTool/JSON.pm +1 -1
- package/bin/lib/Image/ExifTool/JVC.pm +1 -1
- package/bin/lib/Image/ExifTool/Jpeg2000.pm +10 -9
- package/bin/lib/Image/ExifTool/Kodak.pm +1 -1
- package/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/LIF.pm +1 -1
- package/bin/lib/Image/ExifTool/LNK.pm +2 -2
- package/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/sk.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
- package/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
- package/bin/lib/Image/ExifTool/Leaf.pm +1 -1
- package/bin/lib/Image/ExifTool/LigoGPS.pm +409 -0
- package/bin/lib/Image/ExifTool/Lytro.pm +1 -1
- package/bin/lib/Image/ExifTool/M2TS.pm +57 -18
- package/bin/lib/Image/ExifTool/MIE.pm +15 -6
- package/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
- package/bin/lib/Image/ExifTool/MIFF.pm +1 -1
- package/bin/lib/Image/ExifTool/MISB.pm +1 -1
- package/bin/lib/Image/ExifTool/MNG.pm +1 -1
- package/bin/lib/Image/ExifTool/MOI.pm +1 -1
- package/bin/lib/Image/ExifTool/MPC.pm +1 -1
- package/bin/lib/Image/ExifTool/MPEG.pm +1 -1
- package/bin/lib/Image/ExifTool/MPF.pm +1 -1
- package/bin/lib/Image/ExifTool/MRC.pm +1 -1
- package/bin/lib/Image/ExifTool/MWG.pm +1 -1
- package/bin/lib/Image/ExifTool/MXF.pm +3 -3
- package/bin/lib/Image/ExifTool/MacOS.pm +3 -2
- package/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
- package/bin/lib/Image/ExifTool/Matroska.pm +22 -6
- package/bin/lib/Image/ExifTool/Microsoft.pm +2 -2
- package/bin/lib/Image/ExifTool/Minolta.pm +1 -1
- package/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
- package/bin/lib/Image/ExifTool/Nikon.pm +495 -39
- package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
- package/bin/lib/Image/ExifTool/NikonCustom.pm +2 -2
- package/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
- package/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
- package/bin/lib/Image/ExifTool/OOXML.pm +8 -8
- package/bin/lib/Image/ExifTool/Ogg.pm +1 -1
- package/bin/lib/Image/ExifTool/Olympus.pm +1 -1
- package/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
- package/bin/lib/Image/ExifTool/Opus.pm +1 -1
- package/bin/lib/Image/ExifTool/Other.pm +1 -1
- package/bin/lib/Image/ExifTool/PCX.pm +1 -1
- package/bin/lib/Image/ExifTool/PDF.pm +49 -18
- package/bin/lib/Image/ExifTool/PGF.pm +1 -1
- package/bin/lib/Image/ExifTool/PICT.pm +1 -1
- package/bin/lib/Image/ExifTool/PLIST.pm +4 -4
- package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
- package/bin/lib/Image/ExifTool/PNG.pm +20 -8
- package/bin/lib/Image/ExifTool/PPM.pm +12 -3
- package/bin/lib/Image/ExifTool/PSP.pm +1 -1
- package/bin/lib/Image/ExifTool/Palm.pm +1 -1
- package/bin/lib/Image/ExifTool/Panasonic.pm +27 -3
- package/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
- package/bin/lib/Image/ExifTool/Pentax.pm +1 -1
- package/bin/lib/Image/ExifTool/PhaseOne.pm +4 -4
- package/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
- package/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
- package/bin/lib/Image/ExifTool/Photoshop.pm +65 -4
- package/bin/lib/Image/ExifTool/PostScript.pm +1 -1
- package/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
- package/bin/lib/Image/ExifTool/Protobuf.pm +270 -0
- package/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
- package/bin/lib/Image/ExifTool/QuickTime.pm +326 -88
- package/bin/lib/Image/ExifTool/QuickTimeStream.pl +199 -195
- package/bin/lib/Image/ExifTool/README +12 -2
- package/bin/lib/Image/ExifTool/RIFF.pm +21 -6
- package/bin/lib/Image/ExifTool/RSRC.pm +1 -1
- package/bin/lib/Image/ExifTool/RTF.pm +2 -2
- package/bin/lib/Image/ExifTool/Radiance.pm +1 -1
- package/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
- package/bin/lib/Image/ExifTool/Real.pm +1 -1
- package/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
- package/bin/lib/Image/ExifTool/Red.pm +1 -1
- package/bin/lib/Image/ExifTool/Ricoh.pm +4 -4
- package/bin/lib/Image/ExifTool/Samsung.pm +2 -2
- package/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
- package/bin/lib/Image/ExifTool/Scalado.pm +1 -1
- package/bin/lib/Image/ExifTool/Shift.pl +1 -1
- package/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
- package/bin/lib/Image/ExifTool/Sigma.pm +1 -1
- package/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
- package/bin/lib/Image/ExifTool/Sony.pm +5 -4
- package/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
- package/bin/lib/Image/ExifTool/Stim.pm +1 -1
- package/bin/lib/Image/ExifTool/TagInfoXML.pm +6 -5
- package/bin/lib/Image/ExifTool/TagLookup.pm +7023 -6968
- package/bin/lib/Image/ExifTool/TagNames.pod +445 -29
- package/bin/lib/Image/ExifTool/Text.pm +4 -3
- package/bin/lib/Image/ExifTool/Theora.pm +1 -1
- package/bin/lib/Image/ExifTool/Torrent.pm +3 -3
- package/bin/lib/Image/ExifTool/Unknown.pm +1 -1
- package/bin/lib/Image/ExifTool/VCard.pm +3 -3
- package/bin/lib/Image/ExifTool/Validate.pm +6 -6
- package/bin/lib/Image/ExifTool/Vivo.pm +124 -0
- package/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
- package/bin/lib/Image/ExifTool/WPG.pm +1 -1
- package/bin/lib/Image/ExifTool/WTV.pm +1 -1
- package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
- package/bin/lib/Image/ExifTool/WriteExif.pl +3 -3
- package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
- package/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
- package/bin/lib/Image/ExifTool/WriteQuickTime.pl +166 -79
- package/bin/lib/Image/ExifTool/WriteRIFF.pl +17 -6
- package/bin/lib/Image/ExifTool/WriteXMP.pl +3 -3
- package/bin/lib/Image/ExifTool/Writer.pl +89 -96
- package/bin/lib/Image/ExifTool/XISF.pm +1 -1
- package/bin/lib/Image/ExifTool/XMP.pm +28 -13
- package/bin/lib/Image/ExifTool/XMP2.pl +103 -1
- package/bin/lib/Image/ExifTool/XMPStruct.pl +2 -3
- package/bin/lib/Image/ExifTool/ZIP.pm +2 -2
- package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
- package/bin/lib/Image/ExifTool/iWork.pm +1 -1
- package/bin/lib/Image/ExifTool.pm +335 -163
- package/bin/lib/Image/ExifTool.pod +119 -73
- package/bin/perl-Image-ExifTool.spec +1 -1
- package/bin/windows_exiftool.txt +96 -51
- package/package.json +6 -6
|
@@ -209,7 +209,7 @@ key:
|
|
|
209
209
|
name documentation. When this is set, numerical TagID's are
|
|
210
210
|
not converted to hexadecimal notation. Unless otherwise set,
|
|
211
211
|
an ID_LABEL of "Index" is assumed for tables which use
|
|
212
|
-
ProcessBinaryData.
|
|
212
|
+
ProcessBinaryData or set the IS_BINARY flag.
|
|
213
213
|
|
|
214
214
|
NO_ID Avoid printing "Tag ID" column in tag name documentation.
|
|
215
215
|
|
|
@@ -257,6 +257,9 @@ key:
|
|
|
257
257
|
ALLOW_REPROCESS Flag to allow reprocessing of another directory at this
|
|
258
258
|
same location in the file, bypassing recursion avoidance test.
|
|
259
259
|
|
|
260
|
+
IS_BINARY Set if this is a binary table and should show an Index in the
|
|
261
|
+
first column instead of a Tag ID.
|
|
262
|
+
|
|
260
263
|
DATAMEMBER : BinaryData tables only. A reference to a list of sorted tag ID's
|
|
261
264
|
which must be extracted as data members when writing. Must also list "var_"
|
|
262
265
|
format tags and tags with Hook so offsets are properly calculated if the table
|
|
@@ -440,6 +443,10 @@ numerical, and generated automatically otherwise.
|
|
|
440
443
|
list-type tag (unless it is a list of lang-alt lists, which is
|
|
441
444
|
uncommon).
|
|
442
445
|
|
|
446
|
+
'IsList' - Flag to mark tag as List-type in the documentation
|
|
447
|
+
without accumulating entries from subsequent tags. Used when
|
|
448
|
+
the value for a single tag is a complete list.
|
|
449
|
+
|
|
443
450
|
'MakerNotes' - set if this tag is maker note data.
|
|
444
451
|
|
|
445
452
|
'MakerPreview' - set in the PreviewImageStart tag information
|
|
@@ -898,7 +905,10 @@ numerical, and generated automatically otherwise.
|
|
|
898
905
|
Deletable : [Writable SubDirectory's only] Overrides internal test for
|
|
899
906
|
metadata types with permanent directories (currently QuickTime
|
|
900
907
|
and Jpeg2000), allowing the tag containing these directories
|
|
901
|
-
to be deleted
|
|
908
|
+
to be deleted. Note that either the tag's SubDirectory
|
|
909
|
+
DirName (which defaults to the TagName if not specified) or
|
|
910
|
+
the family 0 group name of the SubDirectory TagTable must
|
|
911
|
+
match a deletable group name.
|
|
902
912
|
|
|
903
913
|
OffsetPair : Used in EXIF table to specify the tagID for the corresponding
|
|
904
914
|
offset or length tag.
|
|
@@ -30,7 +30,7 @@ use strict;
|
|
|
30
30
|
use vars qw($VERSION $AUTOLOAD);
|
|
31
31
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
32
32
|
|
|
33
|
-
$VERSION = '1.
|
|
33
|
+
$VERSION = '1.70';
|
|
34
34
|
|
|
35
35
|
sub ConvertTimecode($);
|
|
36
36
|
sub ProcessSGLT($$$);
|
|
@@ -664,6 +664,10 @@ my %code2charset = (
|
|
|
664
664
|
SubDirectory => { TagTable => 'Image::ExifTool::RIFF::Acidizer' },
|
|
665
665
|
},
|
|
666
666
|
guan => 'Guano', #forum14831
|
|
667
|
+
SEAL => {
|
|
668
|
+
Name => 'SEAL',
|
|
669
|
+
SubDirectory => { TagTable => 'Image::ExifTool::XMP::SEAL' },
|
|
670
|
+
},
|
|
667
671
|
);
|
|
668
672
|
|
|
669
673
|
# the maker notes used by some digital cameras
|
|
@@ -1122,7 +1126,7 @@ my %code2charset = (
|
|
|
1122
1126
|
Name => 'TextFormat',
|
|
1123
1127
|
Condition => '$$self{RIFFStreamType} eq "txts"',
|
|
1124
1128
|
Hidden => 1,
|
|
1125
|
-
RawConv => '$self->Options("ExtractEmbedded") or $self->
|
|
1129
|
+
RawConv => '$self->Options("ExtractEmbedded") or $self->Warn("Use ExtractEmbedded option to extract timed text",3); undef',
|
|
1126
1130
|
},
|
|
1127
1131
|
],
|
|
1128
1132
|
);
|
|
@@ -1315,6 +1319,11 @@ my %code2charset = (
|
|
|
1315
1319
|
Name => 'ImageWidth',
|
|
1316
1320
|
Format => 'int16u',
|
|
1317
1321
|
Priority => 0,
|
|
1322
|
+
# add " (lossless)" to FileType since image has a VP8L (lossless) chunk
|
|
1323
|
+
RawConv => q{
|
|
1324
|
+
$self->OverrideFileType($$self{VALUE}{FileType} . ' (lossless)', undef, 'webp');
|
|
1325
|
+
return $val;
|
|
1326
|
+
},
|
|
1318
1327
|
ValueConv => '($val & 0x3fff) + 1',
|
|
1319
1328
|
},
|
|
1320
1329
|
2 => {
|
|
@@ -1323,6 +1332,11 @@ my %code2charset = (
|
|
|
1323
1332
|
Priority => 0,
|
|
1324
1333
|
ValueConv => '(($val >> 6) & 0x3fff) + 1',
|
|
1325
1334
|
},
|
|
1335
|
+
4 => {
|
|
1336
|
+
Name => 'AlphaIsUsed',
|
|
1337
|
+
Mask => 0x10,
|
|
1338
|
+
PrintConv => { 0 => 'No', 1 => 'Yes' },
|
|
1339
|
+
},
|
|
1326
1340
|
);
|
|
1327
1341
|
|
|
1328
1342
|
# WebP extended info (ref 14)
|
|
@@ -2049,7 +2063,7 @@ sub ProcessRIFF($$)
|
|
|
2049
2063
|
last;
|
|
2050
2064
|
}
|
|
2051
2065
|
if ($et->Options('LargeFileSupport') eq '2') {
|
|
2052
|
-
$et->
|
|
2066
|
+
$et->Warn('Processing large chunk (LargeFileSupport is 2)');
|
|
2053
2067
|
}
|
|
2054
2068
|
}
|
|
2055
2069
|
if ($validate) {
|
|
@@ -2120,7 +2134,8 @@ sub ProcessRIFF($$)
|
|
|
2120
2134
|
my $tagInfo = $$tagTbl{$tag};
|
|
2121
2135
|
# (in LIST_movi chunk: ##db = uncompressed DIB, ##dc = compressed DIB, ##wb = audio data)
|
|
2122
2136
|
if ($tagInfo or (($verbose or $unknown) and $tag !~ /^(data|idx1|LIST_movi|RIFF|\d{2}(db|dc|wb))$/)) {
|
|
2123
|
-
$raf->Read($buff, $len2)
|
|
2137
|
+
$raf->Read($buff, $len2) >= $len or $err=1, next;
|
|
2138
|
+
length($buff) == $len2 or $et->Warn("No padding on odd-sized $tag chunk");
|
|
2124
2139
|
if ($hash and $isImageData{$tag}) {
|
|
2125
2140
|
$hash->add($buff);
|
|
2126
2141
|
$et->VPrint(0, "$$et{INDENT}(ImageDataHash: '${tag}' chunk, $len2 bytes)\n");
|
|
@@ -2171,7 +2186,7 @@ sub ProcessRIFF($$)
|
|
|
2171
2186
|
last;
|
|
2172
2187
|
}
|
|
2173
2188
|
if ($et->Options('LargeFileSupport') eq '2') {
|
|
2174
|
-
$et->
|
|
2189
|
+
$et->Warn('Processing large chunk (LargeFileSupport is 2)');
|
|
2175
2190
|
}
|
|
2176
2191
|
}
|
|
2177
2192
|
if ($validate and $len2) {
|
|
@@ -2209,7 +2224,7 @@ including AVI videos, WAV audio files and WEBP images.
|
|
|
2209
2224
|
|
|
2210
2225
|
=head1 AUTHOR
|
|
2211
2226
|
|
|
2212
|
-
Copyright 2003-
|
|
2227
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
2213
2228
|
|
|
2214
2229
|
This library is free software; you can redistribute it and/or modify it
|
|
2215
2230
|
under the same terms as Perl itself.
|
|
@@ -225,7 +225,7 @@ resource files.
|
|
|
225
225
|
|
|
226
226
|
=head1 AUTHOR
|
|
227
227
|
|
|
228
|
-
Copyright 2003-
|
|
228
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
229
229
|
|
|
230
230
|
This library is free software; you can redistribute it and/or modify it
|
|
231
231
|
under the same terms as Perl itself.
|
|
@@ -182,7 +182,7 @@ sub UnescapeRTF($$$)
|
|
|
182
182
|
$skip = $2;
|
|
183
183
|
} elsif ($1 eq 'u') { # \uN
|
|
184
184
|
if ($2 < 0) {
|
|
185
|
-
$et->
|
|
185
|
+
$et->Warn('Invalid Unicode character(s) in text');
|
|
186
186
|
$rtnVal .= '?';
|
|
187
187
|
} else {
|
|
188
188
|
require Image::ExifTool::Charset;
|
|
@@ -366,7 +366,7 @@ information from RTF (Rich Text Format) documents.
|
|
|
366
366
|
|
|
367
367
|
=head1 AUTHOR
|
|
368
368
|
|
|
369
|
-
Copyright 2003-
|
|
369
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
370
370
|
|
|
371
371
|
This library is free software; you can redistribute it and/or modify it
|
|
372
372
|
under the same terms as Perl itself.
|
|
@@ -125,7 +125,7 @@ images are a type of high dynamic-range image.
|
|
|
125
125
|
|
|
126
126
|
=head1 AUTHOR
|
|
127
127
|
|
|
128
|
-
Copyright 2003-
|
|
128
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
129
129
|
|
|
130
130
|
This library is free software; you can redistribute it and/or modify it
|
|
131
131
|
under the same terms as Perl itself.
|
|
@@ -168,7 +168,7 @@ information from Rawzor compressed images.
|
|
|
168
168
|
|
|
169
169
|
=head1 AUTHOR
|
|
170
170
|
|
|
171
|
-
Copyright 2003-
|
|
171
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
172
172
|
|
|
173
173
|
This library is free software; you can redistribute it and/or modify it
|
|
174
174
|
under the same terms as Perl itself.
|
|
@@ -715,7 +715,7 @@ little-endian, but the Real format is big-endian.
|
|
|
715
715
|
|
|
716
716
|
=head1 AUTHOR
|
|
717
717
|
|
|
718
|
-
Copyright 2003-
|
|
718
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
719
719
|
|
|
720
720
|
This library is free software; you can redistribute it and/or modify it
|
|
721
721
|
under the same terms as Perl itself.
|
|
@@ -431,7 +431,7 @@ maker notes in images from Reconyx cameras.
|
|
|
431
431
|
|
|
432
432
|
=head1 AUTHOR
|
|
433
433
|
|
|
434
|
-
Copyright 2003-
|
|
434
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
435
435
|
|
|
436
436
|
This library is free software; you can redistribute it and/or modify it
|
|
437
437
|
under the same terms as Perl itself.
|
|
@@ -303,7 +303,7 @@ from Redcode R3D version 1 and 2 video files.
|
|
|
303
303
|
|
|
304
304
|
=head1 AUTHOR
|
|
305
305
|
|
|
306
|
-
Copyright 2003-
|
|
306
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
307
307
|
|
|
308
308
|
This library is free software; you can redistribute it and/or modify it
|
|
309
309
|
under the same terms as Perl itself.
|
|
@@ -1008,7 +1008,7 @@ sub ProcessRicohRDT($$$)
|
|
|
1008
1008
|
return 0 if $dirLen < 16;
|
|
1009
1009
|
my $ee = $et->Options('ExtractEmbedded');
|
|
1010
1010
|
unless ($ee) {
|
|
1011
|
-
$et->
|
|
1011
|
+
$et->Warn('Use ExtractEmbedded option to read Ricoh real-time metadata',3);
|
|
1012
1012
|
return 1;
|
|
1013
1013
|
}
|
|
1014
1014
|
my $endian = substr($$dataPt, 8, 2);
|
|
@@ -1017,11 +1017,11 @@ sub ProcessRicohRDT($$$)
|
|
|
1017
1017
|
my $len = Get16u($dataPt, 6);
|
|
1018
1018
|
if ($dirName eq 'RicohRDTG') {
|
|
1019
1019
|
if ($ee < 2) {
|
|
1020
|
-
$et->
|
|
1020
|
+
$et->Warn('Set ExtractEmbedded option to 2 or higher to extract frame timestamps',3);
|
|
1021
1021
|
return 1;
|
|
1022
1022
|
}
|
|
1023
1023
|
$rdtg = 0;
|
|
1024
|
-
$et->
|
|
1024
|
+
$et->Warn('Unexpected RDTG record length') if $len > 8;
|
|
1025
1025
|
}
|
|
1026
1026
|
if ($count * $len + 16 > $dirLen) {
|
|
1027
1027
|
$et->Warn("Truncated $dirName data");
|
|
@@ -1252,7 +1252,7 @@ interpret Ricoh maker notes EXIF meta information.
|
|
|
1252
1252
|
|
|
1253
1253
|
=head1 AUTHOR
|
|
1254
1254
|
|
|
1255
|
-
Copyright 2003-
|
|
1255
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
1256
1256
|
|
|
1257
1257
|
This library is free software; you can redistribute it and/or modify it
|
|
1258
1258
|
under the same terms as Perl itself.
|
|
@@ -1718,7 +1718,7 @@ SamBlock:
|
|
|
1718
1718
|
$fixup->AddFixup(length($buff) - $offsetPos);
|
|
1719
1719
|
$fixup->AddFixup(length($buff) - $offsetPos + 4);
|
|
1720
1720
|
}
|
|
1721
|
-
$et->VPrint(0, "Writing Samsung trailer ($dirLen bytes)\n") if $verbose;
|
|
1721
|
+
$et->VPrint(0, " Writing Samsung trailer ($dirLen bytes)\n") if $verbose;
|
|
1722
1722
|
Write($$dirInfo{OutFile}, $buff) or return -1;
|
|
1723
1723
|
return 1;
|
|
1724
1724
|
}
|
|
@@ -1762,7 +1762,7 @@ Samsung maker notes in EXIF information.
|
|
|
1762
1762
|
|
|
1763
1763
|
=head1 AUTHOR
|
|
1764
1764
|
|
|
1765
|
-
Copyright 2003-
|
|
1765
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
1766
1766
|
|
|
1767
1767
|
This library is free software; you can redistribute it and/or modify it
|
|
1768
1768
|
under the same terms as Perl itself.
|
|
@@ -419,7 +419,7 @@ Sanyo maker notes in EXIF information.
|
|
|
419
419
|
|
|
420
420
|
=head1 AUTHOR
|
|
421
421
|
|
|
422
|
-
Copyright 2003-
|
|
422
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
423
423
|
|
|
424
424
|
This library is free software; you can redistribute it and/or modify it
|
|
425
425
|
under the same terms as Perl itself.
|
|
@@ -128,7 +128,7 @@ metadata from the JPEG APP4 SCALADO segment.
|
|
|
128
128
|
|
|
129
129
|
=head1 AUTHOR
|
|
130
130
|
|
|
131
|
-
Copyright 2003-
|
|
131
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
132
132
|
|
|
133
133
|
This library is free software; you can redistribute it and/or modify it
|
|
134
134
|
under the same terms as Perl itself.
|
|
@@ -631,7 +631,7 @@ limited to the range 1970 to 2038 on 32-bit systems.
|
|
|
631
631
|
|
|
632
632
|
=head1 AUTHOR
|
|
633
633
|
|
|
634
|
-
Copyright 2003-
|
|
634
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
635
635
|
|
|
636
636
|
This library is free software; you can redistribute it and/or modify it
|
|
637
637
|
under the same terms as Perl itself.
|
|
@@ -344,7 +344,7 @@ name prefix.
|
|
|
344
344
|
|
|
345
345
|
=head1 AUTHOR
|
|
346
346
|
|
|
347
|
-
Copyright 2003-
|
|
347
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
348
348
|
|
|
349
349
|
This library is free software; you can redistribute it and/or modify it
|
|
350
350
|
under the same terms as Perl itself.
|
|
@@ -864,7 +864,7 @@ Sigma and Foveon maker notes in EXIF information.
|
|
|
864
864
|
|
|
865
865
|
=head1 AUTHOR
|
|
866
866
|
|
|
867
|
-
Copyright 2003-
|
|
867
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
868
868
|
|
|
869
869
|
This library is free software; you can redistribute it and/or modify it
|
|
870
870
|
under the same terms as Perl itself.
|
|
@@ -680,7 +680,7 @@ Sigma and Foveon X3F images.
|
|
|
680
680
|
|
|
681
681
|
=head1 AUTHOR
|
|
682
682
|
|
|
683
|
-
Copyright 2003-
|
|
683
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
684
684
|
|
|
685
685
|
This library is free software; you can redistribute it and/or modify it
|
|
686
686
|
under the same terms as Perl itself.
|
|
@@ -34,7 +34,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
|
34
34
|
use Image::ExifTool::Exif;
|
|
35
35
|
use Image::ExifTool::Minolta;
|
|
36
36
|
|
|
37
|
-
$VERSION = '3.
|
|
37
|
+
$VERSION = '3.71';
|
|
38
38
|
|
|
39
39
|
sub ProcessSRF($$$);
|
|
40
40
|
sub ProcessSR2($$$);
|
|
@@ -2166,6 +2166,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
|
2166
2166
|
397 => 'ILCE-7CM2', #JR
|
|
2167
2167
|
398 => 'ILX-LR1', #JR
|
|
2168
2168
|
399 => 'ZV-E10M2', #JR
|
|
2169
|
+
400 => 'ILCE-1M2', #PH
|
|
2169
2170
|
},
|
|
2170
2171
|
},
|
|
2171
2172
|
0xb020 => { #2
|
|
@@ -11376,7 +11377,7 @@ sub ProcessEnciphered($$$)
|
|
|
11376
11377
|
Decipher(\$data);
|
|
11377
11378
|
if ($$et{DoubleCipher}) {
|
|
11378
11379
|
Decipher(\$data);
|
|
11379
|
-
$et->
|
|
11380
|
+
$et->Warn('Some Sony metadata is double-enciphered. Write any tag to fix',1);
|
|
11380
11381
|
}
|
|
11381
11382
|
if ($et->Options('Verbose') > 2) {
|
|
11382
11383
|
my $tagInfo = $$dirInfo{TagInfo} || { Name => 'data' };
|
|
@@ -11408,7 +11409,7 @@ sub WriteEnciphered($$$)
|
|
|
11408
11409
|
if ($$et{DoubleCipher}) {
|
|
11409
11410
|
Decipher(\$data);
|
|
11410
11411
|
++$$et{CHANGED};
|
|
11411
|
-
$et->
|
|
11412
|
+
$et->Warn('Fixed double-enciphered Sony metadata',1);
|
|
11412
11413
|
}
|
|
11413
11414
|
my %dirInfo = (
|
|
11414
11415
|
%$dirInfo,
|
|
@@ -11758,7 +11759,7 @@ Minolta.
|
|
|
11758
11759
|
|
|
11759
11760
|
=head1 AUTHOR
|
|
11760
11761
|
|
|
11761
|
-
Copyright 2003-
|
|
11762
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
11762
11763
|
|
|
11763
11764
|
This library is free software; you can redistribute it and/or modify it
|
|
11764
11765
|
under the same terms as Perl itself.
|
|
@@ -379,7 +379,7 @@ write Sony Image Data Converter version 3.0 metadata in ARW images.
|
|
|
379
379
|
|
|
380
380
|
=head1 AUTHOR
|
|
381
381
|
|
|
382
|
-
Copyright 2003-
|
|
382
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
383
383
|
|
|
384
384
|
This library is free software; you can redistribute it and/or modify it
|
|
385
385
|
under the same terms as Perl itself.
|
|
@@ -174,7 +174,7 @@ information.
|
|
|
174
174
|
|
|
175
175
|
=head1 AUTHOR
|
|
176
176
|
|
|
177
|
-
Copyright 2003-
|
|
177
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
178
178
|
|
|
179
179
|
This library is free software; you can redistribute it and/or modify it
|
|
180
180
|
under the same terms as Perl itself.
|
|
@@ -15,7 +15,7 @@ use vars qw($VERSION @ISA $makeMissing);
|
|
|
15
15
|
use Image::ExifTool qw(:Utils :Vars);
|
|
16
16
|
use Image::ExifTool::XMP;
|
|
17
17
|
|
|
18
|
-
$VERSION = '1.
|
|
18
|
+
$VERSION = '1.37';
|
|
19
19
|
@ISA = qw(Exporter);
|
|
20
20
|
|
|
21
21
|
# set this to a language code to generate Lang module with 'MISSING' entries
|
|
@@ -158,6 +158,7 @@ PTILoop: for ($index=0; $index<@infoArray; ++$index) {
|
|
|
158
158
|
my $writable = $format ? 'true' : 'false';
|
|
159
159
|
# check our conversions to make sure we can really write this tag
|
|
160
160
|
if ($writable eq 'true') {
|
|
161
|
+
$writable = 'false' if defined $$tagInfo{Writable} and not $$tagInfo{Writable};
|
|
161
162
|
foreach ('PrintConv','ValueConv') {
|
|
162
163
|
next unless $$tagInfo{$_};
|
|
163
164
|
next if $$tagInfo{$_ . 'Inv'};
|
|
@@ -167,7 +168,7 @@ PTILoop: for ($index=0; $index<@infoArray; ++$index) {
|
|
|
167
168
|
last;
|
|
168
169
|
}
|
|
169
170
|
}
|
|
170
|
-
$format = $$tagInfo{Format} || $$table{FORMAT} if not
|
|
171
|
+
$format = $$tagInfo{Format} || $$table{FORMAT} if not $format or $format eq '1';
|
|
171
172
|
$format = 'struct' if $$tagInfo{Struct};
|
|
172
173
|
if (defined $format) {
|
|
173
174
|
$format =~ s/\[.*\$.*\]//; # remove expressions from format
|
|
@@ -258,7 +259,7 @@ PTILoop: for ($index=0; $index<@infoArray; ++$index) {
|
|
|
258
259
|
# add bitmask values to main lookup
|
|
259
260
|
if ($$conv{BITMASK}) {
|
|
260
261
|
foreach $key (keys %{$$conv{BITMASK}}) {
|
|
261
|
-
my $mask =
|
|
262
|
+
my $mask = "Bit$key";
|
|
262
263
|
next if not $mask or $$conv{$mask};
|
|
263
264
|
$$conv{$mask} = $$conv{BITMASK}{$key};
|
|
264
265
|
}
|
|
@@ -650,7 +651,7 @@ and values.
|
|
|
650
651
|
|
|
651
652
|
~head1 AUTHOR
|
|
652
653
|
|
|
653
|
-
Copyright 2003-
|
|
654
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
654
655
|
|
|
655
656
|
This library is free software; you can redistribute it and/or modify it
|
|
656
657
|
under the same terms as Perl itself.
|
|
@@ -834,7 +835,7 @@ Number of modules updated, or negative on error.
|
|
|
834
835
|
|
|
835
836
|
=head1 AUTHOR
|
|
836
837
|
|
|
837
|
-
Copyright 2003-
|
|
838
|
+
Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
|
|
838
839
|
|
|
839
840
|
This library is free software; you can redistribute it and/or modify it
|
|
840
841
|
under the same terms as Perl itself.
|