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
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
|