exiftool_vendored 12.99.0 → 13.03.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 +76 -3
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/arg_files/exif2xmp.args +4 -0
- data/bin/arg_files/xmp2exif.args +4 -0
- data/bin/exiftool +121 -50
- data/bin/lib/Image/ExifTool/Apple.pm +2 -2
- data/bin/lib/Image/ExifTool/CBOR.pm +4 -1
- data/bin/lib/Image/ExifTool/Canon.pm +35 -26
- data/bin/lib/Image/ExifTool/Exif.pm +15 -9
- data/bin/lib/Image/ExifTool/FlashPix.pm +5 -9
- data/bin/lib/Image/ExifTool/GIF.pm +143 -92
- data/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
- data/bin/lib/Image/ExifTool/Geotag.pm +6 -5
- data/bin/lib/Image/ExifTool/GoPro.pm +2 -2
- data/bin/lib/Image/ExifTool/JPEG.pm +9 -1
- data/bin/lib/Image/ExifTool/Jpeg2000.pm +2 -2
- data/bin/lib/Image/ExifTool/LNK.pm +1 -1
- data/bin/lib/Image/ExifTool/M2TS.pm +2 -2
- data/bin/lib/Image/ExifTool/MIE.pm +9 -3
- data/bin/lib/Image/ExifTool/MacOS.pm +2 -1
- data/bin/lib/Image/ExifTool/Matroska.pm +10 -2
- data/bin/lib/Image/ExifTool/Nikon.pm +5 -2
- data/bin/lib/Image/ExifTool/PDF.pm +35 -4
- data/bin/lib/Image/ExifTool/PNG.pm +14 -3
- data/bin/lib/Image/ExifTool/PPM.pm +11 -2
- data/bin/lib/Image/ExifTool/PhaseOne.pm +2 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +6 -1
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +69 -7
- data/bin/lib/Image/ExifTool/RIFF.pm +7 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +5596 -5582
- data/bin/lib/Image/ExifTool/TagNames.pod +75 -21
- data/bin/lib/Image/ExifTool/Text.pm +3 -2
- data/bin/lib/Image/ExifTool/Validate.pm +2 -2
- data/bin/lib/Image/ExifTool/WriteRIFF.pl +13 -4
- data/bin/lib/Image/ExifTool/Writer.pl +42 -66
- data/bin/lib/Image/ExifTool/XMP.pm +19 -4
- data/bin/lib/Image/ExifTool/XMP2.pl +60 -0
- data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -2
- data/bin/lib/Image/ExifTool.pm +204 -86
- data/bin/lib/Image/ExifTool.pod +58 -31
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
@@ -25,6 +25,7 @@ use strict;
|
|
25
25
|
use Image::ExifTool qw(:Utils);
|
26
26
|
use Image::ExifTool::XMP;
|
27
27
|
|
28
|
+
sub ProcessSEAL($$;$);
|
28
29
|
sub Init_crd($);
|
29
30
|
|
30
31
|
#------------------------------------------------------------------------------
|
@@ -2290,6 +2291,65 @@ my %sACDSeeRegionStruct = (
|
|
2290
2291
|
},
|
2291
2292
|
);
|
2292
2293
|
|
2294
|
+
%Image::ExifTool::XMP::seal = (
|
2295
|
+
GROUPS => { 0 => 'XMP', 1 => 'XMP-seal', 2 => 'Image' },
|
2296
|
+
NAMESPACE => 'seal',
|
2297
|
+
WRITABLE => 'string',
|
2298
|
+
NOTES => 'SEAL embedded in XMP.',
|
2299
|
+
seal => {
|
2300
|
+
Name => 'Seal',
|
2301
|
+
Binary => 1,
|
2302
|
+
SubDirectory => { TagTable => 'Image::ExifTool::XMP::SEAL' },
|
2303
|
+
},
|
2304
|
+
);
|
2305
|
+
|
2306
|
+
%Image::ExifTool::XMP::SEAL = (
|
2307
|
+
GROUPS => { 0 => 'XML', 1 => 'SEAL', 2 => 'Document' },
|
2308
|
+
PROCESS_PROC => \&ProcessSEAL,
|
2309
|
+
NOTES => q{
|
2310
|
+
These tags are used in SEAL content authentification, which is actually XML
|
2311
|
+
format, not XMP. ExifTool has read/delete support for SEAL information in
|
2312
|
+
JPG, TIFF, XMP, PNG, WEBP, HEIC, PPM, MOV and MP4 files, and read-only
|
2313
|
+
support in PDF, MKV and WAV. Use C<-seal:all=> on the command line to
|
2314
|
+
delete SEAL information in supported formats.
|
2315
|
+
},
|
2316
|
+
seal=> 'SEALVersion',
|
2317
|
+
kv => 'KeyVersion',
|
2318
|
+
ka => 'KeyAlgorithm',
|
2319
|
+
da => 'DigestAlgorithm',
|
2320
|
+
sf => 'SignatureFormat',
|
2321
|
+
d => 'Domain',
|
2322
|
+
b => 'ByteRange',
|
2323
|
+
's' => 'Signature',
|
2324
|
+
info=> 'SEALComment',
|
2325
|
+
copyright => { Name => 'Copyright', Groups => { 2 => 'Author' } },
|
2326
|
+
);
|
2327
|
+
|
2328
|
+
#------------------------------------------------------------------------------
|
2329
|
+
# We found a SEAL property name/value
|
2330
|
+
# Inputs: 0) ExifTool ref, 1) tag table ref, 2) xmp property list ref
|
2331
|
+
# 3) property value, 4) attribute hash ref
|
2332
|
+
# Returns: 1 if valid tag was found
|
2333
|
+
sub FoundSEAL($$$$;$)
|
2334
|
+
{
|
2335
|
+
my ($et, $tagTablePtr, $props, $val, $attrs) = @_;
|
2336
|
+
# remove 'seal' container property from name
|
2337
|
+
my @sealProps = @$props;
|
2338
|
+
shift @sealProps if @sealProps and $sealProps[0] eq 'seal';
|
2339
|
+
return FoundXMP($et, $tagTablePtr, \@sealProps, $val, $attrs);
|
2340
|
+
}
|
2341
|
+
|
2342
|
+
#------------------------------------------------------------------------------
|
2343
|
+
# Process SEAL XML
|
2344
|
+
# Inputs: 0) ExifTool ref, 1) dirInfo ref, 2) tag table ref
|
2345
|
+
# Returns: 1 on success
|
2346
|
+
sub ProcessSEAL($$;$)
|
2347
|
+
{
|
2348
|
+
my ($et, $dirInfo, $tagTablePtr) = @_;
|
2349
|
+
$$dirInfo{XMPParseOpts}{FoundProc} = \&FoundSEAL;
|
2350
|
+
return ProcessXMP($et, $dirInfo, $tagTablePtr);
|
2351
|
+
}
|
2352
|
+
|
2293
2353
|
#------------------------------------------------------------------------------
|
2294
2354
|
# Generate crd tags
|
2295
2355
|
# Inputs: 0) tag table ref
|
@@ -714,7 +714,6 @@ sub RestoreStruct($;$)
|
|
714
714
|
my $fileOrder = $$et{FILE_ORDER};
|
715
715
|
my $tagExtra = $$et{TAG_EXTRA};
|
716
716
|
foreach $key (keys %{$$et{TAG_INFO}}) {
|
717
|
-
$$tagExtra{$key} or next;
|
718
717
|
my $structProps = $$tagExtra{$key}{Struct} or next;
|
719
718
|
delete $$tagExtra{$key}{Struct}; # (don't re-use)
|
720
719
|
my $tagInfo = $$et{TAG_INFO}{$key}; # tagInfo for flattened tag
|
@@ -880,7 +879,7 @@ sub RestoreStruct($;$)
|
|
880
879
|
}
|
881
880
|
# preserve original flattened tags if requested
|
882
881
|
if ($keepFlat) {
|
883
|
-
my $extra = $$tagExtra{$key}
|
882
|
+
my $extra = $$tagExtra{$key};
|
884
883
|
# restore list behaviour of this flattened tag
|
885
884
|
if ($$extra{NoList}) {
|
886
885
|
$$valueHash{$key} = $$extra{NoList};
|