exiftool_vendored 13.06.0 → 13.08.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 +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
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
|
30
30
|
%static_vars $advFmtSelf);
|
31
31
|
|
32
|
-
$VERSION = '13.
|
32
|
+
$VERSION = '13.08';
|
33
33
|
$RELEASE = '';
|
34
34
|
@ISA = qw(Exporter);
|
35
35
|
%EXPORT_TAGS = (
|
@@ -1142,6 +1142,7 @@ my @availableOptions = (
|
|
1142
1142
|
[ 'ListJoin', ', ', 'join lists together with this separator' ],
|
1143
1143
|
[ 'ListSep', ', ', '[deprecated, use ListSplit and ListJoin instead]', 1 ],
|
1144
1144
|
[ 'ListSplit', undef, 'regex for splitting list-type tag values when writing' ],
|
1145
|
+
# LigoGPSScale - undocumented scale for unfuzzing LIGO GPS: 1,2,3 for standard scales (1 default), or scale value
|
1145
1146
|
[ 'MakerNotes', undef, 'extract maker notes as a block' ],
|
1146
1147
|
[ 'MDItemTags', undef, 'extract MacOS metadata item tags' ],
|
1147
1148
|
[ 'MissingTagValue', undef, 'value for missing tags when expanded in expressions' ],
|
@@ -1173,7 +1174,7 @@ my @availableOptions = (
|
|
1173
1174
|
[ 'UserParam', { }, 'user parameters for additional user-defined tag values' ],
|
1174
1175
|
[ 'Validate', undef, 'perform additional validation' ],
|
1175
1176
|
[ 'Verbose', 0, 'print verbose messages (0-5, higher # = more verbose)' ],
|
1176
|
-
[ 'WindowsLongPath',
|
1177
|
+
[ 'WindowsLongPath', 1, 'enable support for long pathnames (enables WindowsWideFile)' ],
|
1177
1178
|
[ 'WindowsWideFile', undef, 'force the use of Windows wide-character file routines' ], # (see forum15208)
|
1178
1179
|
[ 'WriteMode', 'wcg', 'enable all write modes by default' ],
|
1179
1180
|
[ 'XAttrTags', undef, 'extract MacOS extended attribute tags' ],
|
@@ -1265,7 +1266,9 @@ my %systemTagsNotes = (
|
|
1265
1266
|
Use the -a or L<Duplicates|../ExifTool.html#Duplicates> option to see all warnings if more than one
|
1266
1267
|
occurred. Minor warnings may be ignored with the -m or L<IgnoreMinorErrors|../ExifTool.html#IgnoreMinorErrors>
|
1267
1268
|
option. Minor warnings with a capital "M" in the "[Minor]" designation
|
1268
|
-
indicate that the processing is affected by ignoring the warning
|
1269
|
+
indicate that the processing is affected by ignoring the warning. Multiple
|
1270
|
+
identical warnings are indicated by a count after the warning message, eg.
|
1271
|
+
"[x2]" if the same warning occurred twice
|
1269
1272
|
},
|
1270
1273
|
},
|
1271
1274
|
Comment => {
|
@@ -2661,7 +2664,7 @@ sub ExtractInfo($;@)
|
|
2661
2664
|
my $fast = $$options{FastScan} || 0;
|
2662
2665
|
my $req = $$self{REQ_TAG_LOOKUP};
|
2663
2666
|
my $reqAll = $$options{RequestAll} || 0;
|
2664
|
-
my (%saveOptions, $reEntry, $rsize, $zid, $type, @startTime, $saveOrder, $isDir);
|
2667
|
+
my (%saveOptions, $reEntry, $rsize, $zid, $type, @startTime, $saveOrder, $isDir, $i);
|
2665
2668
|
|
2666
2669
|
# check for internal ReEntry option to allow recursive calls to ExtractInfo
|
2667
2670
|
if (ref $_[1] eq 'HASH' and $_[1]{ReEntry} and
|
@@ -2718,7 +2721,7 @@ sub ExtractInfo($;@)
|
|
2718
2721
|
if ($$req{processingtime} or $reqAll) {
|
2719
2722
|
eval { require Time::HiRes; @startTime = Time::HiRes::gettimeofday() };
|
2720
2723
|
if (not @startTime and $$req{processingtime}) {
|
2721
|
-
$self->
|
2724
|
+
$self->Warn('Install Time::HiRes to generate ProcessingTime');
|
2722
2725
|
}
|
2723
2726
|
}
|
2724
2727
|
|
@@ -2729,12 +2732,12 @@ sub ExtractInfo($;@)
|
|
2729
2732
|
if (require Digest::SHA) {
|
2730
2733
|
$$self{ImageDataHash} = Digest::SHA->new($1);
|
2731
2734
|
} else {
|
2732
|
-
$self->
|
2735
|
+
$self->Warn("Install Digest::SHA to calculate image data SHA$1");
|
2733
2736
|
}
|
2734
2737
|
} elsif (require Digest::MD5) {
|
2735
2738
|
$$self{ImageDataHash} = Digest::MD5->new;
|
2736
2739
|
} else {
|
2737
|
-
$self->
|
2740
|
+
$self->Warn('Install Digest::MD5 to calculate image data MD5');
|
2738
2741
|
}
|
2739
2742
|
}
|
2740
2743
|
++$$self{FILE_SEQUENCE}; # count files read
|
@@ -2774,7 +2777,7 @@ sub ExtractInfo($;@)
|
|
2774
2777
|
$path =~ tr/\\/\// if $^O eq 'MSWin32'; # return forward slashes
|
2775
2778
|
$self->FoundTag('FilePath', $path);
|
2776
2779
|
} elsif ($$req{filepath}) {
|
2777
|
-
$self->
|
2780
|
+
$self->Warn('The Perl Cwd module must be installed to use FilePath');
|
2778
2781
|
}
|
2779
2782
|
}
|
2780
2783
|
# get size of resource fork on Mac OS
|
@@ -3113,6 +3116,15 @@ sub ExtractInfo($;@)
|
|
3113
3116
|
# and as such it can't be used in user-defined Composite tags
|
3114
3117
|
@startTime and $self->FoundTag('ProcessingTime', Time::HiRes::tv_interval(\@startTime));
|
3115
3118
|
|
3119
|
+
# add numbers to warnings with multiple occurrences
|
3120
|
+
if (%{$$self{WAS_WARNED}}) {
|
3121
|
+
my ($tag, $val) = ( 'Warning', $$self{VALUE} );
|
3122
|
+
for ($i=1; $$val{$tag}; ++$i) {
|
3123
|
+
my $n = $$self{WAS_WARNED}{$$val{$tag}};
|
3124
|
+
$$val{$tag} .= " [x$n]" if $n and $n > 1;
|
3125
|
+
$tag = "Warning ($i)";
|
3126
|
+
}
|
3127
|
+
}
|
3116
3128
|
# restore original options
|
3117
3129
|
%saveOptions and $$self{OPTIONS} = \%saveOptions;
|
3118
3130
|
|
@@ -4252,7 +4264,7 @@ sub Init($)
|
|
4252
4264
|
$$self{PROCESSED} = { }; # hash of processed directory start positions
|
4253
4265
|
$$self{DIR_COUNT} = { }; # count various types of directories
|
4254
4266
|
$$self{DUPL_TAG} = { }; # last-used index for duplicate-tag keys
|
4255
|
-
$$self{
|
4267
|
+
$$self{WAS_WARNED} = { }; # number of times each warning was issued
|
4256
4268
|
$$self{WRITTEN} = { }; # list of tags written (selected tags only)
|
4257
4269
|
$$self{FORCE_WRITE}= { }; # ForceWrite lookup (set from ForceWrite tag)
|
4258
4270
|
$$self{FOUND_DIR} = { }; # hash of directory names found in file
|
@@ -4626,13 +4638,14 @@ sub SplitFileName($)
|
|
4626
4638
|
sub EncodeFileName($$;$)
|
4627
4639
|
{
|
4628
4640
|
my ($self, $file, $force) = @_;
|
4641
|
+
return 0 if $file eq '-'; # special case for stdin pipe
|
4629
4642
|
my $enc = $$self{OPTIONS}{CharsetFileName};
|
4630
4643
|
my $hasSpecialChars;
|
4631
4644
|
if ($file =~ /[\x80-\xff]/) {
|
4632
4645
|
$hasSpecialChars = 1;
|
4633
4646
|
if (not $enc and $^O eq 'MSWin32') {
|
4634
4647
|
if (IsUTF8(\$file) < 0) {
|
4635
|
-
$self->
|
4648
|
+
$self->Warn('FileName encoding must be specified') if not defined $enc;
|
4636
4649
|
return 0;
|
4637
4650
|
} else {
|
4638
4651
|
$enc = 'UTF8'; # assume UTF8
|
@@ -4649,7 +4662,7 @@ sub EncodeFileName($$;$)
|
|
4649
4662
|
$_[1] = $self->Decode($file, $enc, undef, 'UTF16', 'II') . "\0\0";
|
4650
4663
|
return 1;
|
4651
4664
|
}
|
4652
|
-
$self->
|
4665
|
+
$self->Warn('Install Win32API::File for Windows wide/long file name support');
|
4653
4666
|
} elsif ($enc ne 'UTF8') {
|
4654
4667
|
# recode as UTF-8 for other platforms if necessary
|
4655
4668
|
$_[1] = $self->Decode($file, $enc, undef, 'UTF8');
|
@@ -4697,13 +4710,13 @@ sub WindowsLongPath($$)
|
|
4697
4710
|
$debug and print $out "WindowsLongPath input : $path$suffix\n";
|
4698
4711
|
|
4699
4712
|
for (;;) { # (cheap goto)
|
4700
|
-
($longPath = $path) =~ tr(/)(\\); # convert slashes to backslashes
|
4713
|
+
($longPath = $path) =~ tr(/)(\\); # convert slashes to backslashes
|
4701
4714
|
last if $longPath =~ /^\\\\\?\\/; # already a device path in the format we want
|
4702
|
-
|
4715
|
+
|
4703
4716
|
unless ($k32GetFullPathName) { # need to import (once) GetFullPathNameW
|
4704
4717
|
last if defined $k32GetFullPathName;
|
4705
4718
|
unless (eval { require Win32::API }) {
|
4706
|
-
$self->
|
4719
|
+
$self->Warn('Install Win32::API to use WindowsLongPath option');
|
4707
4720
|
last;
|
4708
4721
|
}
|
4709
4722
|
$k32GetFullPathName = Win32::API->new('KERNEL32', 'GetFullPathNameW', 'PNPP', 'I');
|
@@ -4713,13 +4726,13 @@ sub WindowsLongPath($$)
|
|
4713
4726
|
last;
|
4714
4727
|
}
|
4715
4728
|
}
|
4716
|
-
my $enc = $$self{OPTIONS}{CharsetFileName};
|
4717
|
-
my $encPath = $self->
|
4729
|
+
my $enc = $$self{OPTIONS}{CharsetFileName} || 'UTF8';
|
4730
|
+
my $encPath = $self->Decode($longPath, $enc, undef, 'UTF16', 'II');# need to encode to UTF16
|
4718
4731
|
my $lenReq = $k32GetFullPathName->Call($encPath,0,0,0) + 1; # first pass gets length required, +1 for safety (null?)
|
4719
4732
|
my $fullPath = "\0" x $lenReq x 2; # create buffer to hold full path
|
4720
4733
|
$k32GetFullPathName->Call($encPath, $lenReq, $fullPath, 0); # fullPath is UTF16 now
|
4721
4734
|
$longPath = $self->Decode($fullPath, 'UTF16', 'II', $enc);
|
4722
|
-
|
4735
|
+
|
4723
4736
|
last if length($longPath) <= 247 - length($suffix);
|
4724
4737
|
|
4725
4738
|
if ($longPath =~ /^\\\\/) {
|
@@ -4916,9 +4929,9 @@ sub GetFileTime($$)
|
|
4916
4929
|
# on Windows, try to work around incorrect file times when daylight saving time is in effect
|
4917
4930
|
if ($^O eq 'MSWin32') {
|
4918
4931
|
if (not eval { require Win32::API }) {
|
4919
|
-
$self->
|
4932
|
+
$self->Warn('Install Win32::API for proper handling of Windows file times', 1);
|
4920
4933
|
} elsif (not eval { require Win32API::File }) {
|
4921
|
-
$self->
|
4934
|
+
$self->Warn('Install Win32API::File for proper handling of Windows file times', 1);
|
4922
4935
|
} else {
|
4923
4936
|
# get Win32 handle, needed for GetFileTime
|
4924
4937
|
my $win32Handle = eval { Win32API::File::GetOsFHandle($file) };
|
@@ -5494,28 +5507,21 @@ sub AddCleanup($)
|
|
5494
5507
|
sub Warn($$;$)
|
5495
5508
|
{
|
5496
5509
|
my ($self, $str, $ignorable) = @_;
|
5497
|
-
my $noWarn =
|
5510
|
+
my $noWarn = $$self{OPTIONS}{NoWarning};
|
5498
5511
|
if ($ignorable) {
|
5499
5512
|
return 0 if $$self{OPTIONS}{IgnoreMinorErrors};
|
5500
5513
|
return 0 if $ignorable eq '3' and $$self{OPTIONS}{Validate};
|
5501
5514
|
return 1 if defined $noWarn and eval { $str =~ /$noWarn/ };
|
5502
5515
|
$str = $ignorable eq '2' ? "[Minor] $str" : "[minor] $str";
|
5503
5516
|
}
|
5504
|
-
|
5505
|
-
|
5506
|
-
}
|
5507
|
-
|
5508
|
-
|
5509
|
-
|
5510
|
-
|
5511
|
-
|
5512
|
-
sub WarnOnce($$;$)
|
5513
|
-
{
|
5514
|
-
my ($self, $str, $ignorable) = @_;
|
5515
|
-
return 0 if $ignorable and $$self{OPTIONS}{IgnoreMinorErrors};
|
5516
|
-
unless ($$self{WARNED_ONCE}{$str}) {
|
5517
|
-
$self->Warn($str, $ignorable);
|
5518
|
-
$$self{WARNED_ONCE}{$str} = 1;
|
5517
|
+
unless (defined $noWarn and eval { $str =~ /$noWarn/ }) {
|
5518
|
+
# add each warning only once but count number of occurrences
|
5519
|
+
if ($$self{WAS_WARNED}{$str}) {
|
5520
|
+
++$$self{WAS_WARNED}{$str};
|
5521
|
+
} else {
|
5522
|
+
$self->FoundTag('Warning', $str);
|
5523
|
+
$$self{WAS_WARNED}{$str} = 1;
|
5524
|
+
}
|
5519
5525
|
}
|
5520
5526
|
return 1;
|
5521
5527
|
}
|
@@ -6246,7 +6252,7 @@ sub Decode($$$;$$$)
|
|
6246
6252
|
}
|
6247
6253
|
|
6248
6254
|
#------------------------------------------------------------------------------
|
6249
|
-
# Encode string
|
6255
|
+
# Encode string (in Charset encoding) to specified encoding
|
6250
6256
|
# Inputs: 0) ExifTool object ref, 1) string, 2) destination character set name,
|
6251
6257
|
# 3) optional destination byte order (2-byte and 4-byte fixed-width sets only)
|
6252
6258
|
# Returns: string in specified encoding
|
@@ -7590,13 +7596,13 @@ sub ProcessJPEG($$;$)
|
|
7590
7596
|
my ($size, $off) = unpack('x67N2', $$segDataPt);
|
7591
7597
|
my $guid = substr($$segDataPt, 35, 32);
|
7592
7598
|
if ($guid =~ /[^A-Za-z0-9]/) { # (technically, should be uppercase)
|
7593
|
-
$self->
|
7599
|
+
$self->Warn($tip = 'Invalid extended XMP GUID');
|
7594
7600
|
} else {
|
7595
7601
|
my $extXMP = $extendedXMP{$guid};
|
7596
7602
|
if (not $extXMP) {
|
7597
7603
|
$extXMP = $extendedXMP{$guid} = { };
|
7598
7604
|
} elsif ($size != $$extXMP{Size}) {
|
7599
|
-
$self->
|
7605
|
+
$self->Warn('Inconsistent extended XMP size');
|
7600
7606
|
}
|
7601
7607
|
$$extXMP{Size} = $size;
|
7602
7608
|
$$extXMP{$off} = substr($$segDataPt, 75);
|
@@ -7605,7 +7611,7 @@ sub ProcessJPEG($$;$)
|
|
7605
7611
|
# (delay processing extended XMP until after reading all segments)
|
7606
7612
|
}
|
7607
7613
|
} else {
|
7608
|
-
$self->
|
7614
|
+
$self->Warn($tip = 'Invalid extended XMP segment');
|
7609
7615
|
}
|
7610
7616
|
} elsif ($$segDataPt =~ /^QVCI\0/) {
|
7611
7617
|
$dumpType = 'QVCI';
|
@@ -7628,7 +7634,7 @@ sub ProcessJPEG($$;$)
|
|
7628
7634
|
}
|
7629
7635
|
if (defined $flirCount) {
|
7630
7636
|
if (defined $flirChunk[$chunkNum]) {
|
7631
|
-
$self->
|
7637
|
+
$self->Warn('Duplicate FLIR chunk number(s)');
|
7632
7638
|
$flirChunk[$chunkNum] .= substr($$segDataPt, 8);
|
7633
7639
|
} else {
|
7634
7640
|
$flirChunk[$chunkNum] = substr($$segDataPt, 8);
|
@@ -7648,7 +7654,7 @@ sub ProcessJPEG($$;$)
|
|
7648
7654
|
undef $flirCount; # prevent reprocessing
|
7649
7655
|
}
|
7650
7656
|
} else {
|
7651
|
-
$self->
|
7657
|
+
$self->Warn('Invalid or extraneous FLIR chunk(s)');
|
7652
7658
|
}
|
7653
7659
|
} elsif ($$segDataPt =~ /^PARROT\0(II\x2a\0|MM\0\x2a)/) {
|
7654
7660
|
# (don't know if this could span multiple segments)
|
@@ -7693,7 +7699,7 @@ sub ProcessJPEG($$;$)
|
|
7693
7699
|
}
|
7694
7700
|
if (defined $iccChunkCount) {
|
7695
7701
|
if (defined $iccChunk[$chunkNum]) {
|
7696
|
-
$self->
|
7702
|
+
$self->Warn('Duplicate ICC_Profile chunk number(s)');
|
7697
7703
|
$iccChunk[$chunkNum] .= substr($$segDataPt, 14);
|
7698
7704
|
} else {
|
7699
7705
|
$iccChunk[$chunkNum] = substr($$segDataPt, 14);
|
@@ -7716,7 +7722,7 @@ sub ProcessJPEG($$;$)
|
|
7716
7722
|
undef $iccChunkCount; # prevent reprocessing
|
7717
7723
|
}
|
7718
7724
|
} else {
|
7719
|
-
$self->
|
7725
|
+
$self->Warn('Invalid or extraneous ICC_Profile chunk(s)');
|
7720
7726
|
}
|
7721
7727
|
} elsif ($$segDataPt =~ /^FPXR\0/) {
|
7722
7728
|
next if $fast > 1; # skip processing for very fast
|
@@ -8060,7 +8066,7 @@ sub ProcessJPEG($$;$)
|
|
8060
8066
|
my $type = substr($$segDataPt, 12, 4);
|
8061
8067
|
# a Microsoft bug writes $len and $type incorrectly as little-endian
|
8062
8068
|
if ($type eq 'bmuj') {
|
8063
|
-
$self->
|
8069
|
+
$self->Warn('Wrong byte order in C2PA APP11 JUMBF header');
|
8064
8070
|
$type = 'jumb';
|
8065
8071
|
$len = unpack('x8V', $$segDataPt);
|
8066
8072
|
# fix the header
|
@@ -8737,23 +8743,18 @@ sub GetTagTable($)
|
|
8737
8743
|
# try to load module for this table
|
8738
8744
|
if ($tableName =~ /(.*)::/) {
|
8739
8745
|
my $module = $1;
|
8740
|
-
if (eval "require $module") {
|
8746
|
+
if (not eval "require $module") {
|
8747
|
+
$@ and warn $@;
|
8748
|
+
} elsif (not %$tableName) {
|
8741
8749
|
# load additional modules if required
|
8742
|
-
if (
|
8743
|
-
|
8744
|
-
|
8745
|
-
|
8746
|
-
require 'Image/ExifTool/QuickTimeStream.pl';
|
8747
|
-
}
|
8750
|
+
if ($module eq 'Image::ExifTool::XMP') {
|
8751
|
+
require 'Image/ExifTool/XMP2.pl';
|
8752
|
+
} elsif ($tableName eq 'Image::ExifTool::QuickTime::Stream') {
|
8753
|
+
require 'Image/ExifTool/QuickTimeStream.pl';
|
8748
8754
|
}
|
8749
|
-
} else {
|
8750
|
-
$@ and warn $@;
|
8751
8755
|
}
|
8752
8756
|
}
|
8753
|
-
|
8754
|
-
warn "Can't find table $tableName\n";
|
8755
|
-
return undef;
|
8756
|
-
}
|
8757
|
+
%$tableName or warn("Can't find table $tableName\n"), return undef;
|
8757
8758
|
}
|
8758
8759
|
no strict 'refs';
|
8759
8760
|
$table = \%$tableName;
|
data/bin/lib/Image/ExifTool.pod
CHANGED
@@ -2563,7 +2563,7 @@ ICC-chrm, ICC-clrt, ICC-header, ICC-meas, ICC-meta, ICC-view, ICC_Profile,
|
|
2563
2563
|
ICC_Profile#, ID3, ID3v1, ID3v1_Enh, ID3v2_2, ID3v2_3, ID3v2_4, IFD0, IFD1,
|
2564
2564
|
IPTC, IPTC#, ISO, ITC, InfiRay, Insta360, InteropIFD, ItemList, JFIF, JFXX,
|
2565
2565
|
JPEG, JPEG-HDR, JPS, JSON, JUMBF, JVC, Jpeg2000, KDC_IFD, Keys, Kodak,
|
2566
|
-
KodakBordersIFD, KodakEffectsIFD, KodakIFD, KyoceraRaw, LNK, Leaf,
|
2566
|
+
KodakBordersIFD, KodakEffectsIFD, KodakIFD, KyoceraRaw, LIGO, LNK, Leaf,
|
2567
2567
|
LeafSubIFD, Leica, Lyrics3, Lytro, M-RAW, M2TS, MAC, MIE-Audio, MIE-Camera,
|
2568
2568
|
MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS, MIE-Geo, MIE-Image,
|
2569
2569
|
MIE-Lens, MIE-Main, MIE-MakerNotes, MIE-Meta, MIE-Orient, MIE-Preview,
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exiftool_vendored
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 13.
|
4
|
+
version: 13.08.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew McEachen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-12-
|
12
|
+
date: 2024-12-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|