exiftool_vendored 13.06.0 → 13.08.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 +29 -3
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +6 -5
- data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
- data/bin/lib/Image/ExifTool/APE.pm +1 -1
- data/bin/lib/Image/ExifTool/ASF.pm +1 -1
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +4 -3
- data/bin/lib/Image/ExifTool/Canon.pm +19 -1
- data/bin/lib/Image/ExifTool/DJI.pm +1 -1
- data/bin/lib/Image/ExifTool/Exif.pm +2 -2
- data/bin/lib/Image/ExifTool/FITS.pm +2 -2
- data/bin/lib/Image/ExifTool/FLIF.pm +2 -2
- data/bin/lib/Image/ExifTool/FlashPix.pm +11 -11
- data/bin/lib/Image/ExifTool/Font.pm +1 -1
- data/bin/lib/Image/ExifTool/HP.pm +1 -1
- data/bin/lib/Image/ExifTool/ID3.pm +3 -3
- data/bin/lib/Image/ExifTool/IPTC.pm +2 -2
- data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +6 -6
- data/bin/lib/Image/ExifTool/M2TS.pm +39 -9
- data/bin/lib/Image/ExifTool/MXF.pm +2 -2
- data/bin/lib/Image/ExifTool/Matroska.pm +1 -1
- data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
- data/bin/lib/Image/ExifTool/PDF.pm +15 -15
- data/bin/lib/Image/ExifTool/PLIST.pm +1 -1
- data/bin/lib/Image/ExifTool/PNG.pm +4 -4
- data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
- data/bin/lib/Image/ExifTool/PhaseOne.pm +3 -3
- data/bin/lib/Image/ExifTool/Photoshop.pm +63 -3
- data/bin/lib/Image/ExifTool/Protobuf.pm +4 -4
- data/bin/lib/Image/ExifTool/QuickTime.pm +23 -14
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +336 -91
- data/bin/lib/Image/ExifTool/README +4 -1
- data/bin/lib/Image/ExifTool/RIFF.pm +3 -3
- data/bin/lib/Image/ExifTool/RTF.pm +1 -1
- data/bin/lib/Image/ExifTool/Ricoh.pm +3 -3
- data/bin/lib/Image/ExifTool/Sony.pm +2 -2
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +4 -3
- data/bin/lib/Image/ExifTool/TagLookup.pm +6979 -6970
- data/bin/lib/Image/ExifTool/TagNames.pod +26 -5
- data/bin/lib/Image/ExifTool/VCard.pm +2 -2
- data/bin/lib/Image/ExifTool/Validate.pm +3 -3
- data/bin/lib/Image/ExifTool/WriteExif.pl +2 -2
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +4 -4
- data/bin/lib/Image/ExifTool/WriteXMP.pl +2 -2
- data/bin/lib/Image/ExifTool/Writer.pl +16 -16
- data/bin/lib/Image/ExifTool/XMP.pm +9 -9
- data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
- data/bin/lib/Image/ExifTool.pm +58 -57
- data/bin/lib/Image/ExifTool.pod +1 -1
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
@@ -12,7 +12,7 @@ meta information extracted from or written to a file.
|
|
12
12
|
=head1 TAG TABLES
|
13
13
|
|
14
14
|
The tables listed below give the names of all tags recognized by ExifTool.
|
15
|
-
They contain a total of
|
15
|
+
They contain a total of 28218 tags, with 17514 unique tag names.
|
16
16
|
|
17
17
|
B<Tag ID>, B<Index#> or B<Sequence> is given in the first column of each
|
18
18
|
table. A B<Tag ID> is the computer-readable equivalent of a tag name, and
|
@@ -8903,7 +8903,7 @@ access to this information.
|
|
8903
8903
|
0x0432 MeasurementScale? no
|
8904
8904
|
0x0433 TimelineInfo? no
|
8905
8905
|
0x0434 SheetDisclosure? no
|
8906
|
-
0x0435 ChannelOptions
|
8906
|
+
0x0435 ChannelOptions Photoshop ChannelOptions
|
8907
8907
|
0x0436 OnionSkins? no
|
8908
8908
|
0x0438 CountInfo? no
|
8909
8909
|
0x043a PrintInfo2? no
|
@@ -8966,6 +8966,15 @@ access to this information.
|
|
8966
8966
|
------ -------- --------
|
8967
8967
|
4 PixelAspectRatio no
|
8968
8968
|
|
8969
|
+
=head3 Photoshop ChannelOptions Tags
|
8970
|
+
|
8971
|
+
Index1 Tag Name Writable
|
8972
|
+
------ -------- --------
|
8973
|
+
0 ChannelColorSpace no
|
8974
|
+
2 ChannelColorData no
|
8975
|
+
11 ChannelOpacity no
|
8976
|
+
12 ChannelColorIndicates no
|
8977
|
+
|
8969
8978
|
=head3 Photoshop DocumentData Tags
|
8970
8979
|
|
8971
8980
|
Tag ID Tag Name Writable
|
@@ -9325,6 +9334,7 @@ Unknown only to reduce the volume of the normal output.
|
|
9325
9334
|
CanonCameraInfo1100D Canon CameraInfo600D
|
9326
9335
|
CanonCameraInfo1200D Canon CameraInfo60D
|
9327
9336
|
CanonCameraInfoR6 Canon CameraInfoR6
|
9337
|
+
CanonCameraInfoR6m2 Canon CameraInfoR6m2
|
9328
9338
|
CanonCameraInfoG5XII Canon CameraInfoG5XII
|
9329
9339
|
CanonCameraInfoPowerShot Canon CameraInfoPowerShot
|
9330
9340
|
CanonCameraInfoPowerShot2 Canon CameraInfoPowerShot2
|
@@ -10321,6 +10331,14 @@ CameraInfo tags for the EOS R5 and R6.
|
|
10321
10331
|
------ -------- --------
|
10322
10332
|
2801 ShutterCount int32u
|
10323
10333
|
|
10334
|
+
=head3 Canon CameraInfoR6m2 Tags
|
10335
|
+
|
10336
|
+
CameraInfo tags for the EOS R6 Mark II.
|
10337
|
+
|
10338
|
+
Index1 Tag Name Writable
|
10339
|
+
------ -------- --------
|
10340
|
+
3369 ShutterCount int32u
|
10341
|
+
|
10324
10342
|
=head3 Canon CameraInfoG5XII Tags
|
10325
10343
|
|
10326
10344
|
CameraInfo tags for the PowerShot G5 X Mark II.
|
@@ -29993,13 +30011,14 @@ for the official QuickTime specification.
|
|
29993
30011
|
'sefd' SamsungTrailer Samsung Trailer
|
29994
30012
|
'skip' CanonSkip Canon Skip
|
29995
30013
|
PreviewImage no
|
29996
|
-
SkipInfo
|
30014
|
+
SkipInfo QuickTime Stream
|
30015
|
+
LigoGPSInfo -
|
29997
30016
|
Skip? no
|
29998
30017
|
'thm ' ThumbnailImage no
|
29999
30018
|
'thum' ThumbnailImage no
|
30000
30019
|
'udat' GPSLog no
|
30001
30020
|
'udta' KenwoodData QuickTime Stream
|
30002
|
-
|
30021
|
+
LigoJSON QuickTime Stream
|
30003
30022
|
FLIRData FLIR UserData
|
30004
30023
|
'uuid' XMP XMP
|
30005
30024
|
UUID-PROF QuickTime Profile
|
@@ -30019,7 +30038,7 @@ for the official QuickTime specification.
|
|
30019
30038
|
The tags below are extracted from timed metadata in QuickTime and other
|
30020
30039
|
formats of video files when the ExtractEmbedded option is used. Although
|
30021
30040
|
most of these tags are combined into the single table below, ExifTool
|
30022
|
-
currently reads
|
30041
|
+
currently reads 96 different types of timed GPS metadata from video files.
|
30023
30042
|
|
30024
30043
|
Tag Name Writable
|
30025
30044
|
-------- --------
|
@@ -30071,6 +30090,8 @@ currently reads 85 different formats of timed GPS metadata from video files.
|
|
30071
30090
|
Unknown01? no
|
30072
30091
|
Unknown02? no
|
30073
30092
|
Unknown03? no
|
30093
|
+
Unknown_H? no
|
30094
|
+
Unknown_M? no
|
30074
30095
|
UserLabel no
|
30075
30096
|
VerticalSpeed no
|
30076
30097
|
VideoTimeStamp no
|
@@ -325,7 +325,7 @@ sub ProcessVCard($$)
|
|
325
325
|
$$et{DOC_NUM} = ++$$et{DOC_COUNT}; # read next card as a new document
|
326
326
|
}
|
327
327
|
unless ($val =~ s/^([-A-Za-z0-9.]+)//) {
|
328
|
-
$et->
|
328
|
+
$et->Warn("Unrecognized line in $lbl file");
|
329
329
|
next;
|
330
330
|
}
|
331
331
|
my $tag = $1;
|
@@ -379,7 +379,7 @@ sub ProcessVCard($$)
|
|
379
379
|
$param{$p} = '';
|
380
380
|
}
|
381
381
|
}
|
382
|
-
$val =~ s/^:// or $et->
|
382
|
+
$val =~ s/^:// or $et->Warn("Invalid line in $lbl file"), next;
|
383
383
|
# add 'Type' parameter to id and name if it exists
|
384
384
|
$param{Type} and $tag .= $param{Type}, $name .= $param{Type};
|
385
385
|
# convert base64-encoded data
|
@@ -421,7 +421,7 @@ sub ValidateExif($$$$$$$$)
|
|
421
421
|
{
|
422
422
|
my ($et, $tagTablePtr, $tag, $tagInfo, $lastTag, $ifd, $count, $formatStr) = @_;
|
423
423
|
|
424
|
-
$et->
|
424
|
+
$et->Warn("Entries in $ifd are out of order") if $tag <= $lastTag;
|
425
425
|
|
426
426
|
# (get tagInfo for unknown tags if Unknown option not used)
|
427
427
|
if (not defined $tagInfo and $$tagTablePtr{$tag} and ref $$tagTablePtr{$tag} eq 'HASH') {
|
@@ -532,8 +532,8 @@ sub ValidateOffsetInfo($$$;$)
|
|
532
532
|
while (@offsets) {
|
533
533
|
my $start = pop @offsets;
|
534
534
|
my $end = $start + pop @sizes;
|
535
|
-
$et->
|
536
|
-
$et->
|
535
|
+
$et->Warn("$dirName:$$offsets[0]{Name} is zero", $minor) if $start == 0;
|
536
|
+
$et->Warn("$dirName:$$sizes[0]{Name} is zero", $minor) if $start == $end;
|
537
537
|
next unless $end > $fileSize;
|
538
538
|
if ($start >= $fileSize) {
|
539
539
|
if ($start == 0xffffffff) {
|
@@ -387,8 +387,8 @@ sub ValidateImageData($$$;$)
|
|
387
387
|
}
|
388
388
|
push @bitsPerSample, $bitsPerSample[0] while @bitsPerSample < $samplesPerPix;
|
389
389
|
foreach (@bitsPerSample) {
|
390
|
-
$et->
|
391
|
-
$et->
|
390
|
+
$et->Warn("$dirName BitsPerSample values are different", $minor) if $_ ne $bitsPerSample[0];
|
391
|
+
$et->Warn("Invalid $dirName BitsPerSample value", $minor) if $_ < 1 or $_ > 32;
|
392
392
|
}
|
393
393
|
}
|
394
394
|
my $bitsPerPixel = 0;
|
@@ -339,7 +339,7 @@ sub FormatQTValue($$;$$)
|
|
339
339
|
$flags = 0x01; # UTF8
|
340
340
|
$$valPt = $et->Encode($$valPt, 'UTF8');
|
341
341
|
}
|
342
|
-
defined $$valPt or $et->
|
342
|
+
defined $$valPt or $et->Warn("Error converting value for $$tagInfo{Name}");
|
343
343
|
return $flags;
|
344
344
|
}
|
345
345
|
|
@@ -548,7 +548,7 @@ sub WriteItemInfo($$$)
|
|
548
548
|
$buff = $v2;
|
549
549
|
$wasDeflated = 1;
|
550
550
|
} else {
|
551
|
-
$et->
|
551
|
+
$et->Warn("Error inflating $name metadata");
|
552
552
|
next;
|
553
553
|
}
|
554
554
|
}
|
@@ -683,7 +683,7 @@ sub WriteItemInfo($$$)
|
|
683
683
|
# write compressed XMP if Compress option is set
|
684
684
|
if ($et->Options('Compress') and length $newVal) {
|
685
685
|
if (not eval { require Compress::Zlib }) {
|
686
|
-
$et->
|
686
|
+
$et->Warn('Install Compress::Zlib to write compressed metadata');
|
687
687
|
} else {
|
688
688
|
my $deflate = Compress::Zlib::deflateInit();
|
689
689
|
if ($deflate) {
|
@@ -973,7 +973,7 @@ sub WriteQuickTime($$$)
|
|
973
973
|
$et->Error('End of processing at large atom (LargeFileSupport not enabled)');
|
974
974
|
last;
|
975
975
|
} elsif ($et->Options('LargeFileSupport') eq '2') {
|
976
|
-
$et->
|
976
|
+
$et->Warn('Processing large atom (LargeFileSupport is 2)');
|
977
977
|
}
|
978
978
|
}
|
979
979
|
$size = $hi * 4294967296 + $lo - 16;
|
@@ -112,7 +112,7 @@ sub ValidateProperty($$;$)
|
|
112
112
|
my $valLang = $$et{XmpValidateLangAlt} || ($$et{XmpValidateLangAlt} = { });
|
113
113
|
$$valLang{$langPath} or $$valLang{$langPath} = { };
|
114
114
|
if ($$valLang{$langPath}{$lang}) {
|
115
|
-
$et->
|
115
|
+
$et->Warn("Duplicate language ($lang) in lang-alt list: $langPath");
|
116
116
|
} else {
|
117
117
|
$$valLang{$langPath}{$lang} = 1;
|
118
118
|
}
|
@@ -984,7 +984,7 @@ sub WriteXMP($$;$)
|
|
984
984
|
(not @fixInfo or $fixInfo[0] ne $info);
|
985
985
|
pop @props;
|
986
986
|
}
|
987
|
-
$et->
|
987
|
+
$et->Warn("Error finding parent structure for $$tagInfo{Name}") unless @fixInfo;
|
988
988
|
}
|
989
989
|
# fix property path for this tag (last in the @fixInfo list)
|
990
990
|
push @fixInfo, $tagInfo unless @fixInfo and $isStruct;
|
@@ -1299,10 +1299,10 @@ sub SetNewValuesFromFile($$;@)
|
|
1299
1299
|
ExtractEmbedded FastScan Filter FixBase Geolocation GeolocAltNames
|
1300
1300
|
GeolocFeature GeolocMinPop GeolocMaxDist GlobalTimeShift HexTagIDs
|
1301
1301
|
IgnoreGroups IgnoreMinorErrors IgnoreTags ImageHashType Lang
|
1302
|
-
LargeFileSupport ListItem ListSep MDItemTags MissingTagValue
|
1303
|
-
NoWarning Password PrintConv QuickTimeUTC RequestTags SaveFormat
|
1304
|
-
ScanForXMP StructFormat SystemTags TimeZone Unknown UserParam
|
1305
|
-
WindowsLongPath WindowsWideFile XAttrTags XMPAutoConv))
|
1302
|
+
LargeFileSupport LigoGPSScale ListItem ListSep MDItemTags MissingTagValue
|
1303
|
+
NoPDFList NoWarning Password PrintConv QuickTimeUTC RequestTags SaveFormat
|
1304
|
+
SavePath ScanForXMP StructFormat SystemTags TimeZone Unknown UserParam
|
1305
|
+
Validate WindowsLongPath WindowsWideFile XAttrTags XMPAutoConv))
|
1306
1306
|
{
|
1307
1307
|
$srcExifTool->Options($_ => $$options{$_});
|
1308
1308
|
}
|
@@ -1749,7 +1749,7 @@ GNV_TagInfo: foreach $tagInfo (@tagInfoList) {
|
|
1749
1749
|
my $err = &$checkProc($self, $tagInfo, \$val);
|
1750
1750
|
if ($err or not defined $val) {
|
1751
1751
|
$err or $err = 'Error generating raw value';
|
1752
|
-
$self->
|
1752
|
+
$self->Warn("$err for $$tagInfo{Name}");
|
1753
1753
|
@$vals = ();
|
1754
1754
|
last;
|
1755
1755
|
}
|
@@ -1769,7 +1769,7 @@ GNV_TagInfo: foreach $tagInfo (@tagInfoList) {
|
|
1769
1769
|
# an empty warning ("\n") ignores tag with no error
|
1770
1770
|
if ($evalWarning ne "\n") {
|
1771
1771
|
my $err = CleanWarning() . " in $$tagInfo{Name} (RawConvInv)";
|
1772
|
-
$self->
|
1772
|
+
$self->Warn($err);
|
1773
1773
|
}
|
1774
1774
|
@$vals = ();
|
1775
1775
|
last;
|
@@ -1953,8 +1953,8 @@ sub SetFileModifyDate($$;$$$)
|
|
1953
1953
|
}
|
1954
1954
|
my ($aTime, $mTime, $cTime);
|
1955
1955
|
if ($tag eq 'FileCreateDate') {
|
1956
|
-
eval { require Win32::API } or $self->
|
1957
|
-
eval { require Win32API::File } or $self->
|
1956
|
+
eval { require Win32::API } or $self->Warn("Install Win32::API to set $tag"), return -1;
|
1957
|
+
eval { require Win32API::File } or $self->Warn("Install Win32API::File to set $tag"), return -1;
|
1958
1958
|
$cTime = $val;
|
1959
1959
|
} else {
|
1960
1960
|
$aTime = $mTime = $val;
|
@@ -2151,7 +2151,7 @@ sub SetSystemTags($$)
|
|
2151
2151
|
$self->VerboseValue('+ FilePermissions', $perm);
|
2152
2152
|
$result = 1;
|
2153
2153
|
} else {
|
2154
|
-
$self->
|
2154
|
+
$self->Warn('Error setting FilePermissions');
|
2155
2155
|
$result = -1;
|
2156
2156
|
}
|
2157
2157
|
}
|
@@ -2165,7 +2165,7 @@ sub SetSystemTags($$)
|
|
2165
2165
|
$self->VerboseValue('+ FileGroupID', $gid) if $gid >= 0;
|
2166
2166
|
$result = 1;
|
2167
2167
|
} else {
|
2168
|
-
$self->
|
2168
|
+
$self->Warn('Error setting FileGroup/UserID');
|
2169
2169
|
$result = -1 unless $result;
|
2170
2170
|
}
|
2171
2171
|
}
|
@@ -2181,7 +2181,7 @@ sub SetSystemTags($$)
|
|
2181
2181
|
$result = $res if $res == 1 or not $result;
|
2182
2182
|
last;
|
2183
2183
|
} elsif ($tag ne 'FileCreateDate') {
|
2184
|
-
$self->
|
2184
|
+
$self->Warn('Can only set MDItem tags on MacOS');
|
2185
2185
|
last;
|
2186
2186
|
}
|
2187
2187
|
}
|
@@ -4266,7 +4266,7 @@ sub WriteDirectory($$$;$)
|
|
4266
4266
|
# allow MakerNotes to be deleted from ExifIFD of CR3 file
|
4267
4267
|
not ($self->IsRawType() == 2 and $parent eq 'ExifIFD'))
|
4268
4268
|
{
|
4269
|
-
$self->
|
4269
|
+
$self->Warn("Can't delete $1 from $$self{FileType}",1);
|
4270
4270
|
undef $grp1;
|
4271
4271
|
} elsif (not $blockExifTypes{$$self{FILE_TYPE}}) {
|
4272
4272
|
# restrict delete logic to prevent entire tiff image from being killed
|
@@ -6430,7 +6430,7 @@ sub WriteJPEG($$)
|
|
6430
6430
|
# warn of subsequent XMP blocks specifying a different
|
6431
6431
|
# HasExtendedXMP (have never seen this)
|
6432
6432
|
if ($goodGuid and $goodGuid ne $2) {
|
6433
|
-
$self->
|
6433
|
+
$self->Warn('Multiple XMP segments specifying different extended XMP GUID');
|
6434
6434
|
}
|
6435
6435
|
$goodGuid = $2; # GUID for the standard extended XMP
|
6436
6436
|
}
|
@@ -6578,7 +6578,7 @@ sub WriteJPEG($$)
|
|
6578
6578
|
undef $$segDataPt;
|
6579
6579
|
next Marker;
|
6580
6580
|
} elsif (defined $chunkNum) {
|
6581
|
-
$self->
|
6581
|
+
$self->Warn('Invalid or extraneous ICC_Profile chunk(s)');
|
6582
6582
|
# fall through to preserve this extra profile...
|
6583
6583
|
}
|
6584
6584
|
} elsif ($$segDataPt =~ /^FPXR\0/) {
|
@@ -6985,9 +6985,9 @@ sub SetFileTime($$;$$$$)
|
|
6985
6985
|
# on Windows, try to work around incorrect file times when daylight saving time is in effect
|
6986
6986
|
if ($^O eq 'MSWin32') {
|
6987
6987
|
if (not eval { require Win32::API }) {
|
6988
|
-
$self->
|
6988
|
+
$self->Warn('Install Win32::API for proper handling of Windows file times');
|
6989
6989
|
} elsif (not eval { require Win32API::File }) {
|
6990
|
-
$self->
|
6990
|
+
$self->Warn('Install Win32API::File for proper handling of Windows file times');
|
6991
6991
|
} else {
|
6992
6992
|
# get Win32 handle, needed for SetFileTime
|
6993
6993
|
my $win32Handle = eval { Win32API::File::GetOsFHandle($file) };
|
@@ -2849,7 +2849,7 @@ sub FullEscapeXML($)
|
|
2849
2849
|
$str =~ s/\\/\/sg; # escape backslashes too
|
2850
2850
|
# then use C-escape sequences for invalid characters
|
2851
2851
|
if ($str =~ /[\0-\x1f]/ or Image::ExifTool::IsUTF8(\$str) < 0) {
|
2852
|
-
$str =~ s/([\0-\x1f\
|
2852
|
+
$str =~ s/([\0-\x1f\x7f-\xff])/sprintf("\\x%.2x",ord $1)/sge;
|
2853
2853
|
}
|
2854
2854
|
return $str;
|
2855
2855
|
}
|
@@ -3630,9 +3630,9 @@ NoLoop:
|
|
3630
3630
|
}
|
3631
3631
|
if ($$et{XmpValidate} and $fmt and $fmt eq 'boolean' and $val!~/^True|False$/) {
|
3632
3632
|
if ($val =~ /^true|false$/) {
|
3633
|
-
$et->
|
3633
|
+
$et->Warn("Boolean value for XMP-$ns:$$tagInfo{Name} should be capitalized",1);
|
3634
3634
|
} else {
|
3635
|
-
$et->
|
3635
|
+
$et->Warn(qq(Boolean value for XMP-$ns:$$tagInfo{Name} should be "True" or "False"),1);
|
3636
3636
|
}
|
3637
3637
|
}
|
3638
3638
|
# protect against large binary data in unknown tags
|
@@ -3823,7 +3823,7 @@ sub ParseXMPElement($$$;$$$$)
|
|
3823
3823
|
$stdNS = $uri2ns{$try};
|
3824
3824
|
if ($stdNS) {
|
3825
3825
|
$val = $try;
|
3826
|
-
$et->
|
3826
|
+
$et->Warn("Fixed incorrect URI for xmlns:$ns", 1);
|
3827
3827
|
} elsif ($val =~ m(^http://ns.nikon.com/BASIC_PARAM)) {
|
3828
3828
|
$et->OverrideFileType('NXD','application/x-nikon-nxd');
|
3829
3829
|
} else {
|
@@ -3904,9 +3904,9 @@ sub ParseXMPElement($$$;$$$$)
|
|
3904
3904
|
if ($nItems == 1000) {
|
3905
3905
|
my ($tg,$ns) = GetXMPTagID($propList);
|
3906
3906
|
if ($isWriting) {
|
3907
|
-
$et->
|
3907
|
+
$et->Warn("Excessive number of items for $ns:$tg. Processing may be slow", 1);
|
3908
3908
|
} elsif (not $$et{OPTIONS}{IgnoreMinorErrors}) {
|
3909
|
-
$et->
|
3909
|
+
$et->Warn("Extracted only 1000 $ns:$tg items. Ignore minor errors to extract all", 2);
|
3910
3910
|
last;
|
3911
3911
|
}
|
3912
3912
|
}
|
@@ -4006,12 +4006,12 @@ sub ParseXMPElement($$$;$$$$)
|
|
4006
4006
|
} elsif ($$et{XmpAbout} ne $attrs{$shortName}) {
|
4007
4007
|
if ($isWriting) {
|
4008
4008
|
my $str = "Different 'rdf:about' attributes not handled";
|
4009
|
-
unless ($$et{
|
4009
|
+
unless ($$et{WAS_WARNED}{$str}) {
|
4010
4010
|
$et->Error($str, 1);
|
4011
|
-
$$et{
|
4011
|
+
$$et{WAS_WARNED}{$str} = 1;
|
4012
4012
|
}
|
4013
4013
|
} elsif ($$et{XmpValidate}) {
|
4014
|
-
$et->
|
4014
|
+
$et->Warn("Different 'rdf:about' attributes");
|
4015
4015
|
}
|
4016
4016
|
}
|
4017
4017
|
}
|
@@ -330,7 +330,7 @@ sub ProcessRAR($$)
|
|
330
330
|
$et->Warn('Large block encountered. Aborting.');
|
331
331
|
last;
|
332
332
|
} elsif ($et->Options('LargeFileSupport') eq '2') {
|
333
|
-
$et->
|
333
|
+
$et->Warn('Processing large block (LargeFileSupport is 2)');
|
334
334
|
}
|
335
335
|
}
|
336
336
|
# process the block
|