exiftool_vendored 11.71.0 → 11.75.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of exiftool_vendored might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bin/Changes +39 -0
- data/bin/MANIFEST +17 -4
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +23 -26
- data/bin/config_files/convert_regions.config +139 -5
- data/bin/exiftool +21 -21
- data/bin/fmt_files/gpx.fmt +2 -1
- data/bin/fmt_files/gpx_wpt.fmt +2 -1
- data/bin/fmt_files/kml.fmt +2 -2
- data/bin/fmt_files/kml_track.fmt +46 -0
- data/bin/lib/Image/ExifTool.pm +42 -33
- data/bin/lib/Image/ExifTool.pod +21 -21
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +2 -2
- data/bin/lib/Image/ExifTool/Canon.pm +2 -1
- data/bin/lib/Image/ExifTool/CanonCustom.pm +30 -4
- data/bin/lib/Image/ExifTool/Exif.pm +36 -63
- data/bin/lib/Image/ExifTool/FujiFilm.pm +1 -0
- data/bin/lib/Image/ExifTool/Lang/ru.pm +4233 -503
- data/bin/lib/Image/ExifTool/MakerNotes.pm +6 -12
- data/bin/lib/Image/ExifTool/Nikon.pm +2 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +2 -1
- data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
- data/bin/lib/Image/ExifTool/Parrot.pm +751 -0
- data/bin/lib/Image/ExifTool/Photoshop.pm +12 -11
- data/bin/lib/Image/ExifTool/QuickTime.pm +18 -5
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +316 -44
- data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -2
- data/bin/lib/Image/ExifTool/Sigma.pm +72 -55
- data/bin/lib/Image/ExifTool/TagLookup.pm +73 -7
- data/bin/lib/Image/ExifTool/TagNames.pod +249 -18
- data/bin/lib/Image/ExifTool/Text.pm +160 -0
- data/bin/lib/Image/ExifTool/WriteXMP.pl +1 -2
- data/bin/lib/Image/ExifTool/Writer.pl +1 -1
- data/bin/lib/Image/ExifTool/XMP.pm +19 -26
- data/bin/lib/Image/ExifTool/XMP2.pl +46 -9
- data/bin/lib/Image/ExifTool/XMPStruct.pl +14 -4
- data/bin/perl-Image-ExifTool.spec +19 -19
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +6 -7
- data/bin/config_files/blueskysea.config +0 -101
- data/bin/config_files/dji.config +0 -131
- data/bin/config_files/mini0806.config +0 -99
- data/bin/config_files/thinkware.config +0 -144
@@ -324,9 +324,8 @@ sub SetPropertyPath($$;$$$$)
|
|
324
324
|
# add required properties if this is a list
|
325
325
|
push @propList, "rdf:$listType", 'rdf:li 10' if $listType and $listType ne '1';
|
326
326
|
# set PropertyPath for all flattened tags of this structure if necessary
|
327
|
-
# (note: don't do this for variable-namespace structures (undef NAMESPACE))
|
328
327
|
my $strTable = $$tagInfo{Struct};
|
329
|
-
if ($strTable and
|
328
|
+
if ($strTable and not ($parentID and
|
330
329
|
# must test NoSubStruct flag to avoid infinite recursion
|
331
330
|
(($$tagTablePtr{$parentID} and $$tagTablePtr{$parentID}{NoSubStruct}) or
|
332
331
|
length $parentID > 500))) # avoid deep recursion
|
@@ -2850,7 +2850,7 @@ Conv: for (;;) {
|
|
2850
2850
|
last Conv;
|
2851
2851
|
}
|
2852
2852
|
} elsif ($conv) {
|
2853
|
-
if (ref $conv eq 'HASH') {
|
2853
|
+
if (ref $conv eq 'HASH' and (not exists $$tagInfo{"${type}Inv"} or $convInvList)) {
|
2854
2854
|
my ($multi, $lc);
|
2855
2855
|
# insert alternate language print conversions if required
|
2856
2856
|
if ($$self{CUR_LANG} and $type eq 'PrintConv' and
|
@@ -49,7 +49,7 @@ use Image::ExifTool::Exif;
|
|
49
49
|
use Image::ExifTool::GPS;
|
50
50
|
require Exporter;
|
51
51
|
|
52
|
-
$VERSION = '3.
|
52
|
+
$VERSION = '3.28';
|
53
53
|
@ISA = qw(Exporter);
|
54
54
|
@EXPORT_OK = qw(EscapeXML UnescapeXML);
|
55
55
|
|
@@ -1482,8 +1482,8 @@ my %sPantryItem = (
|
|
1482
1482
|
TABLE_DESC => 'XMP TIFF',
|
1483
1483
|
NOTES => q{
|
1484
1484
|
EXIF namespace for TIFF tags. See
|
1485
|
-
L<http://www.cipa.jp/std/documents/e/DC-010-2017_E.pdf>
|
1486
|
-
specification.
|
1485
|
+
L<https://web.archive.org/web/20180921145139if_/http://www.cipa.jp:80/std/documents/e/DC-010-2017_E.pdf>
|
1486
|
+
for the specification.
|
1487
1487
|
},
|
1488
1488
|
ImageWidth => { Writable => 'integer' },
|
1489
1489
|
ImageLength => { Writable => 'integer', Name => 'ImageHeight' },
|
@@ -1573,8 +1573,8 @@ my %sPantryItem = (
|
|
1573
1573
|
PRIORITY => 0, # not as reliable as actual EXIF tags
|
1574
1574
|
NOTES => q{
|
1575
1575
|
EXIF namespace for EXIF tags. See
|
1576
|
-
L<http://www.cipa.jp/std/documents/e/DC-010-2017_E.pdf>
|
1577
|
-
specification.
|
1576
|
+
L<https://web.archive.org/web/20180921145139if_/http://www.cipa.jp:80/std/documents/e/DC-010-2017_E.pdf>
|
1577
|
+
for the specification.
|
1578
1578
|
},
|
1579
1579
|
ExifVersion => { },
|
1580
1580
|
FlashpixVersion => { },
|
@@ -2428,14 +2428,14 @@ sub UnescapeChar($$;$)
|
|
2428
2428
|
|
2429
2429
|
#------------------------------------------------------------------------------
|
2430
2430
|
# Does a string contain valid UTF-8 characters?
|
2431
|
-
# Inputs: 0) string reference
|
2431
|
+
# Inputs: 0) string reference, 1) true to allow last character to be truncated
|
2432
2432
|
# Returns: 0=regular ASCII, -1=invalid UTF-8, 1=valid UTF-8 with maximum 16-bit
|
2433
2433
|
# wide characters, 2=valid UTF-8 requiring 32-bit wide characters
|
2434
2434
|
# Notes: Changes current string position
|
2435
2435
|
# (see http://www.fileformat.info/info/unicode/utf8.htm for help understanding this)
|
2436
|
-
sub IsUTF8(
|
2436
|
+
sub IsUTF8($;$)
|
2437
2437
|
{
|
2438
|
-
my $strPt =
|
2438
|
+
my ($strPt, $trunc) = @_;
|
2439
2439
|
pos($$strPt) = 0; # start at beginning of string
|
2440
2440
|
return 0 unless $$strPt =~ /([\x80-\xff])/g;
|
2441
2441
|
my $rtnVal = 1;
|
@@ -2457,7 +2457,11 @@ sub IsUTF8($)
|
|
2457
2457
|
# were required in the UTF-8 character
|
2458
2458
|
$rtnVal = 2;
|
2459
2459
|
}
|
2460
|
-
|
2460
|
+
my $pos = pos $$strPt;
|
2461
|
+
unless ($$strPt =~ /\G([\x80-\xbf]{$n})/g) {
|
2462
|
+
return $rtnVal if $trunc and $pos + $n > length $$strPt;
|
2463
|
+
return -1;
|
2464
|
+
}
|
2461
2465
|
# the following is ref https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c
|
2462
2466
|
if ($n == 2) {
|
2463
2467
|
return -1 if ($ch == 0xe0 and (ord($1) & 0xe0) == 0x80) or
|
@@ -2677,8 +2681,6 @@ sub AddFlattenedTags($;$$)
|
|
2677
2681
|
$$tagInfo{Struct} = $strTable; # replace old-style name with HASH ref
|
2678
2682
|
delete $$tagInfo{SubDirectory}; # deprecated use of SubDirectory in Struct tags
|
2679
2683
|
}
|
2680
|
-
# do not add flattened tags to variable-namespace structures
|
2681
|
-
next if exists $$strTable{NAMESPACE} and not defined $$strTable{NAMESPACE};
|
2682
2684
|
|
2683
2685
|
# get prefix for flattened tag names
|
2684
2686
|
my $flat = (defined $$tagInfo{FlatName} ? $$tagInfo{FlatName} : $$tagInfo{Name});
|
@@ -2720,6 +2722,7 @@ sub AddFlattenedTags($;$$)
|
|
2720
2722
|
# generate new flattened tag information based on structure field
|
2721
2723
|
my $flatName = $flat . $flatField;
|
2722
2724
|
$flatInfo = { %$fieldInfo, Name => $flatName, Flat => 0 };
|
2725
|
+
$$flatInfo{FlatName} = $flatName if $$fieldInfo{FlatName};
|
2723
2726
|
# make a copy of the Groups hash if necessary
|
2724
2727
|
$$flatInfo{Groups} = { %{$$fieldInfo{Groups}} } if $$fieldInfo{Groups};
|
2725
2728
|
# add new flattened tag to table
|
@@ -3027,14 +3030,6 @@ NoLoop:
|
|
3027
3030
|
$ti = $$tagTablePtr{$t} or next;
|
3028
3031
|
next unless ref $ti eq 'HASH' and $$ti{Struct};
|
3029
3032
|
$addedFlat = AddFlattenedTags($tagTablePtr, $t);
|
3030
|
-
if ($tagInfo) {
|
3031
|
-
# all done if we just wanted to initialize the flattened tag
|
3032
|
-
if ($$tagInfo{Flat}) {
|
3033
|
-
warn "Orphan tagInfo with Flat flag set: $$tagInfo{Name}\n";
|
3034
|
-
delete $$tagInfo{Flat};
|
3035
|
-
}
|
3036
|
-
last NoLoop;
|
3037
|
-
}
|
3038
3033
|
# all done if we generated the tag we are looking for
|
3039
3034
|
$tagInfo = $$tagTablePtr{$tagID} and last NoLoop if $addedFlat;
|
3040
3035
|
}
|
@@ -3092,11 +3087,8 @@ NoLoop:
|
|
3092
3087
|
}
|
3093
3088
|
last unless $sti;
|
3094
3089
|
}
|
3095
|
-
|
3096
|
-
|
3097
|
-
Name => $flat . $$sti{Name},
|
3098
|
-
WasAdded => 1,
|
3099
|
-
};
|
3090
|
+
# generate new tagInfo hash based on existing top-level tag
|
3091
|
+
$tagInfo = { %$sti, Name => $flat . $$sti{Name} };
|
3100
3092
|
# be careful not to copy elements we shouldn't...
|
3101
3093
|
delete $$tagInfo{Description}; # Description will be different
|
3102
3094
|
# can't copy group hash because group 1 will be different and
|
@@ -3106,7 +3098,8 @@ NoLoop:
|
|
3106
3098
|
last;
|
3107
3099
|
}
|
3108
3100
|
}
|
3109
|
-
|
3101
|
+
# generate a default tagInfo hash if necessary
|
3102
|
+
$tagInfo or $tagInfo = { Name => $name, IsDefault => 1, Priority => 0 };
|
3110
3103
|
|
3111
3104
|
# add tag Namespace entry for tags in variable-namespace tables
|
3112
3105
|
$$tagInfo{Namespace} = $xns if $xns;
|
@@ -3175,7 +3168,7 @@ NoLoop:
|
|
3175
3168
|
$val = $et->Decode($val, 'UTF8');
|
3176
3169
|
# convert rational and date values to a more sensible format
|
3177
3170
|
my $fmt = $$tagInfo{Writable};
|
3178
|
-
my $new = $$tagInfo{
|
3171
|
+
my $new = $$tagInfo{IsDefault} && $$et{OPTIONS}{XMPAutoConv};
|
3179
3172
|
if ($fmt or $new) {
|
3180
3173
|
$rawVal = $val; # save raw value for verbose output
|
3181
3174
|
if (($new or $fmt eq 'rational') and ConvertRational($val)) {
|
@@ -389,7 +389,7 @@ my %sRating = (
|
|
389
389
|
RatingScaleMaxValue => { FlatName => 'ScaleMaxValue' },
|
390
390
|
RatingValueLogoLink => { FlatName => 'ValueLogoLink' },
|
391
391
|
RatingRegion => {
|
392
|
-
FlatName => '
|
392
|
+
FlatName => 'Region',
|
393
393
|
Struct => \%sLocationDetails,
|
394
394
|
List => 'Bag',
|
395
395
|
},
|
@@ -436,6 +436,39 @@ my %sLinkedImage = (
|
|
436
436
|
HeightPixels=> { Writable => 'integer' },
|
437
437
|
UsedVideoFrame => { Struct => \%sTimecode },
|
438
438
|
);
|
439
|
+
my %sBoundaryPoint = ( # new in 1.5
|
440
|
+
STRUCT_NAME => 'BoundaryPoint',
|
441
|
+
NAMESPACE => 'Iptc4xmpExt',
|
442
|
+
rbX => { FlatName => 'X', Writable => 'real' },
|
443
|
+
rbY => { FlatName => 'Y', Writable => 'real' },
|
444
|
+
);
|
445
|
+
my %sRegionBoundary = ( # new in 1.5
|
446
|
+
STRUCT_NAME => 'RegionBoundary',
|
447
|
+
NAMESPACE => 'Iptc4xmpExt',
|
448
|
+
rbShape => { FlatName => 'Shape', PrintConv => { rectangle => 'Rectangle', circle => 'Circle', polygon => 'Polygon' } },
|
449
|
+
rbUnit => { FlatName => 'Unit', PrintConv => { pixel => 'Pixel', relative => 'Relative' } },
|
450
|
+
rbX => { FlatName => 'X', Writable => 'real' },
|
451
|
+
rbY => { FlatName => 'Y', Writable => 'real' },
|
452
|
+
rbW => { FlatName => 'W', Writable => 'real' },
|
453
|
+
rbH => { FlatName => 'H', Writable => 'real' },
|
454
|
+
rbRx => { FlatName => 'Rx', Writable => 'real' },
|
455
|
+
rbVertices => { FlatName => 'Vertices', List => 'Seq', Struct => \%sBoundaryPoint },
|
456
|
+
);
|
457
|
+
my %sImageRegion = ( # new in 1.5
|
458
|
+
STRUCT_NAME => 'ImageRegion',
|
459
|
+
NAMESPACE => undef, # undefined to allow variable-namespace extensions
|
460
|
+
NOTES => q{
|
461
|
+
As well as the fields defined below, this structure may contain any
|
462
|
+
top-level XMP tags, but since they aren't pre-defined the only way to add
|
463
|
+
these tags is to write ImageRegion as a structure with these tags as new
|
464
|
+
fields.
|
465
|
+
},
|
466
|
+
RegionBoundary => { Namespace => 'Iptc4xmpExt', FlatName => 'Boundary', Struct => \%sRegionBoundary },
|
467
|
+
rId => { Namespace => 'Iptc4xmpExt', FlatName => 'ID' },
|
468
|
+
Name => { Namespace => 'Iptc4xmpExt', Writable => 'lang-alt' },
|
469
|
+
rCtype => { Namespace => 'Iptc4xmpExt', FlatName => 'Ctype', List => 'Bag', Struct => \%sEntity },
|
470
|
+
rRole => { Namespace => 'Iptc4xmpExt', FlatName => 'Role', List => 'Bag', Struct => \%sEntity },
|
471
|
+
);
|
439
472
|
|
440
473
|
# IPTC Extension namespace properties (Iptc4xmpExt) (ref 4)
|
441
474
|
%Image::ExifTool::XMP::iptcExt = (
|
@@ -444,9 +477,9 @@ my %sLinkedImage = (
|
|
444
477
|
NAMESPACE => 'Iptc4xmpExt',
|
445
478
|
TABLE_DESC => 'XMP IPTC Extension',
|
446
479
|
NOTES => q{
|
447
|
-
|
448
|
-
"Iptc4xmpExt", but ExifTool shortens this for
|
449
|
-
L<http://www.iptc.org/IPTC4XMP/>)
|
480
|
+
This table contains tags defined by the IPTC Extension schema version 1.5.
|
481
|
+
The actual namespace prefix is "Iptc4xmpExt", but ExifTool shortens this for
|
482
|
+
the family 1 group name. (see L<http://www.iptc.org/IPTC4XMP/>)
|
450
483
|
},
|
451
484
|
AboutCvTerm => {
|
452
485
|
Struct => \%sCVTermDetails,
|
@@ -503,12 +536,13 @@ my %sLinkedImage = (
|
|
503
536
|
List => 'Bag',
|
504
537
|
Notes => 'deprecated by version 1.2',
|
505
538
|
},
|
506
|
-
DigImageGUID => { Name => 'DigitalImageGUID' },
|
539
|
+
DigImageGUID => { Groups => { 2 => 'Image' }, Name => 'DigitalImageGUID' },
|
507
540
|
DigitalSourcefileType => {
|
508
541
|
Name => 'DigitalSourceFileType',
|
509
542
|
Notes => 'now deprecated -- replaced by DigitalSourceType',
|
543
|
+
Groups => { 2 => 'Image' },
|
510
544
|
},
|
511
|
-
DigitalSourceType => { Name => 'DigitalSourceType' },
|
545
|
+
DigitalSourceType => { Name => 'DigitalSourceType', Groups => { 2 => 'Image' } },
|
512
546
|
EmbdEncRightsExpr => {
|
513
547
|
Struct => {
|
514
548
|
STRUCT_NAME => 'EEREDetails',
|
@@ -551,8 +585,8 @@ my %sLinkedImage = (
|
|
551
585
|
Groups => { 2 => 'Location' },
|
552
586
|
List => 'Bag',
|
553
587
|
},
|
554
|
-
MaxAvailHeight => { Writable => 'integer' },
|
555
|
-
MaxAvailWidth => { Writable => 'integer' },
|
588
|
+
MaxAvailHeight => { Groups => { 2 => 'Image' }, Writable => 'integer' },
|
589
|
+
MaxAvailWidth => { Groups => { 2 => 'Image' }, Writable => 'integer' },
|
556
590
|
ModelAge => { List => 'Bag', Writable => 'integer' },
|
557
591
|
OrganisationInImageCode => { List => 'Bag' },
|
558
592
|
OrganisationInImageName => { List => 'Bag' },
|
@@ -687,6 +721,7 @@ my %sLinkedImage = (
|
|
687
721
|
# new IPTC video metadata 1.2 properties
|
688
722
|
# (ref http://www.iptc.org/std/videometadatahub/recommendation/IPTC-VideoMetadataHub-props-Rec_1.2.html)
|
689
723
|
RecDevice => {
|
724
|
+
Groups => { 2 => 'Device' },
|
690
725
|
Struct => {
|
691
726
|
STRUCT_NAME => 'Device',
|
692
727
|
NAMESPACE => 'Iptc4xmpExt',
|
@@ -698,7 +733,9 @@ my %sLinkedImage = (
|
|
698
733
|
},
|
699
734
|
},
|
700
735
|
PlanningRef => { List => 'Bag', Struct => \%sEntityWithRole },
|
701
|
-
audioBitsPerSample => { Writable => 'integer' },
|
736
|
+
audioBitsPerSample => { Groups => { 2 => 'Audio' }, Writable => 'integer' },
|
737
|
+
# new IPTC Extension schema 1.5 property
|
738
|
+
ImageRegion => { Groups => { 2 => 'Image' }, List => 'Bag', Struct => \%sImageRegion },
|
702
739
|
);
|
703
740
|
|
704
741
|
#------------------------------------------------------------------------------
|
@@ -233,7 +233,7 @@ Key:
|
|
233
233
|
# create new structure field if necessary
|
234
234
|
$fieldInfo or $fieldInfo = $$strTable{$tag} = {
|
235
235
|
%$tagInfo, # (also copies the necessary TagID and PropertyPath)
|
236
|
-
Namespace => $$tagInfo{Table}{NAMESPACE},
|
236
|
+
Namespace => $$tagInfo{Namespace} || $$tagInfo{Table}{NAMESPACE},
|
237
237
|
LangCode => $langCode,
|
238
238
|
};
|
239
239
|
# delete stuff we don't need (shouldn't cause harm, but better safe than sorry)
|
@@ -398,7 +398,11 @@ sub DeleteStruct($$$$$)
|
|
398
398
|
my $verbose = $et->Options('Verbose');
|
399
399
|
@delPaths = sort @delPaths if $verbose > 1;
|
400
400
|
foreach $p (@delPaths) {
|
401
|
-
|
401
|
+
if ($verbose > 1) {
|
402
|
+
my $p2 = $p;
|
403
|
+
$p2 =~ s/^(\w+)/$stdXlatNS{$1} || $1/e;
|
404
|
+
$et->VerboseValue("- XMP-$p2", $$capture{$p}[0]);
|
405
|
+
}
|
402
406
|
delete $$capture{$p};
|
403
407
|
$deleted = 1;
|
404
408
|
++$$changed;
|
@@ -462,7 +466,9 @@ sub AddNewTag($$$$$$)
|
|
462
466
|
$$capture{$path} = [ $val, \%attrs ];
|
463
467
|
# print verbose message
|
464
468
|
if ($et and $et->Options('Verbose') > 1) {
|
465
|
-
$
|
469
|
+
my $p = $path;
|
470
|
+
$p =~ s/^(\w+)/$stdXlatNS{$1} || $1/e;
|
471
|
+
$et->VerboseValue("+ XMP-$p", $val);
|
466
472
|
}
|
467
473
|
}
|
468
474
|
|
@@ -551,7 +557,11 @@ sub AddNewStruct($$$$$$)
|
|
551
557
|
my $path = $basePath . '/' . ConformPathToNamespace($et, "rdf:type");
|
552
558
|
unless ($$capture{$path}) {
|
553
559
|
$$capture{$path} = [ '', { 'rdf:resource' => $$strTable{TYPE} } ];
|
554
|
-
|
560
|
+
if ($verbose > 1) {
|
561
|
+
my $p = $path;
|
562
|
+
$p =~ s/^(\w+)/$stdXlatNS{$1} || $1/e;
|
563
|
+
$et->VerboseValue("+ XMP-$p", $$strTable{TYPE});
|
564
|
+
}
|
555
565
|
}
|
556
566
|
}
|
557
567
|
return $changed;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Summary: perl module for image data extraction
|
2
2
|
Name: perl-Image-ExifTool
|
3
|
-
Version: 11.
|
3
|
+
Version: 11.75
|
4
4
|
Release: 1
|
5
5
|
License: Artistic/GPL
|
6
6
|
Group: Development/Libraries/Perl
|
@@ -43,24 +43,24 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
43
43
|
BPG r | FLIF r/w | MKA r | PFB r | TORRENT r
|
44
44
|
BTF r | FLV r | MKS r | PFM r | TTC r
|
45
45
|
CHM r | FPF r | MKV r | PGF r | TTF r
|
46
|
-
COS r | FPX r | MNG r/w | PGM r/w |
|
47
|
-
CR2 r/w | GIF r/w | MOBI r | PLIST r |
|
48
|
-
CR3 r/w | GPR r/w | MODD r | PICT r |
|
49
|
-
CRM r/w | GZ r | MOI r | PMP r |
|
50
|
-
CRW r/w | HDP r/w | MOS r/w | PNG r/w |
|
51
|
-
CS1 r/w | HDR r | MOV r/w | PPM r/w |
|
52
|
-
DCM r | HEIC r/w | MP3 r | PPT r |
|
53
|
-
DCP r/w | HEIF r/w | MP4 r/w | PPTX r |
|
54
|
-
DCR r | HTML r | MPC r | PS r/w |
|
55
|
-
DFONT r | ICC r/w/c | MPG r | PSB r/w |
|
56
|
-
DIVX r | ICS r | MPO r/w | PSD r/w |
|
57
|
-
DJVU r | IDML r | MQV r/w | PSP r |
|
58
|
-
DLL r | IIQ r/w | MRW r/w | QTIF r/w |
|
59
|
-
DNG r/w | IND r/w | MXF r | R3D r |
|
60
|
-
DOC r | INSV r | NEF r/w | RA r |
|
61
|
-
DOCX r | INX r | NRW r/w | RAF r/w |
|
62
|
-
DPX r | ISO r | NUMBERS r | RAM r |
|
63
|
-
DR4 r/w/c | ITC r | O r | RAR r |
|
46
|
+
COS r | FPX r | MNG r/w | PGM r/w | TXT r
|
47
|
+
CR2 r/w | GIF r/w | MOBI r | PLIST r | VCF r
|
48
|
+
CR3 r/w | GPR r/w | MODD r | PICT r | VRD r/w/c
|
49
|
+
CRM r/w | GZ r | MOI r | PMP r | VSD r
|
50
|
+
CRW r/w | HDP r/w | MOS r/w | PNG r/w | WAV r
|
51
|
+
CS1 r/w | HDR r | MOV r/w | PPM r/w | WDP r/w
|
52
|
+
DCM r | HEIC r/w | MP3 r | PPT r | WEBP r
|
53
|
+
DCP r/w | HEIF r/w | MP4 r/w | PPTX r | WEBM r
|
54
|
+
DCR r | HTML r | MPC r | PS r/w | WMA r
|
55
|
+
DFONT r | ICC r/w/c | MPG r | PSB r/w | WMV r
|
56
|
+
DIVX r | ICS r | MPO r/w | PSD r/w | WTV r
|
57
|
+
DJVU r | IDML r | MQV r/w | PSP r | WV r
|
58
|
+
DLL r | IIQ r/w | MRW r/w | QTIF r/w | X3F r/w
|
59
|
+
DNG r/w | IND r/w | MXF r | R3D r | XCF r
|
60
|
+
DOC r | INSV r | NEF r/w | RA r | XLS r
|
61
|
+
DOCX r | INX r | NRW r/w | RAF r/w | XLSX r
|
62
|
+
DPX r | ISO r | NUMBERS r | RAM r | XMP r/w/c
|
63
|
+
DR4 r/w/c | ITC r | O r | RAR r | ZIP r
|
64
64
|
|
65
65
|
Meta Information
|
66
66
|
----------------------+----------------------+---------------------
|
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: 11.
|
4
|
+
version: 11.75.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: 2019-
|
12
|
+
date: 2019-11-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|
@@ -192,24 +192,21 @@ files:
|
|
192
192
|
- bin/arg_files/xmp2pdf.args
|
193
193
|
- bin/config_files/age.config
|
194
194
|
- bin/config_files/bibble.config
|
195
|
-
- bin/config_files/blueskysea.config
|
196
195
|
- bin/config_files/convert_regions.config
|
197
|
-
- bin/config_files/dji.config
|
198
196
|
- bin/config_files/example.config
|
199
197
|
- bin/config_files/fotoware.config
|
200
198
|
- bin/config_files/gps2utm.config
|
201
|
-
- bin/config_files/mini0806.config
|
202
199
|
- bin/config_files/nksc.config
|
203
200
|
- bin/config_files/photoshop_paths.config
|
204
201
|
- bin/config_files/picasa_faces.config
|
205
202
|
- bin/config_files/rotate_regions.config
|
206
|
-
- bin/config_files/thinkware.config
|
207
203
|
- bin/config_files/tiff_version.config
|
208
204
|
- bin/config_files/time_zone.config
|
209
205
|
- bin/exiftool
|
210
206
|
- bin/fmt_files/gpx.fmt
|
211
207
|
- bin/fmt_files/gpx_wpt.fmt
|
212
208
|
- bin/fmt_files/kml.fmt
|
209
|
+
- bin/fmt_files/kml_track.fmt
|
213
210
|
- bin/lib/File/RandomAccess.pm
|
214
211
|
- bin/lib/File/RandomAccess.pod
|
215
212
|
- bin/lib/Image/ExifTool.pm
|
@@ -369,6 +366,7 @@ files:
|
|
369
366
|
- bin/lib/Image/ExifTool/Palm.pm
|
370
367
|
- bin/lib/Image/ExifTool/Panasonic.pm
|
371
368
|
- bin/lib/Image/ExifTool/PanasonicRaw.pm
|
369
|
+
- bin/lib/Image/ExifTool/Parrot.pm
|
372
370
|
- bin/lib/Image/ExifTool/Pentax.pm
|
373
371
|
- bin/lib/Image/ExifTool/PhaseOne.pm
|
374
372
|
- bin/lib/Image/ExifTool/PhotoCD.pm
|
@@ -402,6 +400,7 @@ files:
|
|
402
400
|
- bin/lib/Image/ExifTool/TagInfoXML.pm
|
403
401
|
- bin/lib/Image/ExifTool/TagLookup.pm
|
404
402
|
- bin/lib/Image/ExifTool/TagNames.pod
|
403
|
+
- bin/lib/Image/ExifTool/Text.pm
|
405
404
|
- bin/lib/Image/ExifTool/Theora.pm
|
406
405
|
- bin/lib/Image/ExifTool/Torrent.pm
|
407
406
|
- bin/lib/Image/ExifTool/Unknown.pm
|
@@ -448,7 +447,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
448
447
|
version: '0'
|
449
448
|
requirements: []
|
450
449
|
rubyforge_project:
|
451
|
-
rubygems_version: 2.6.
|
450
|
+
rubygems_version: 2.6.8
|
452
451
|
signing_key:
|
453
452
|
specification_version: 4
|
454
453
|
summary: Vendored version of exiftool
|
@@ -1,101 +0,0 @@
|
|
1
|
-
#------------------------------------------------------------------------------
|
2
|
-
# File: blueskysea.config
|
3
|
-
#
|
4
|
-
# Description: This config file defines Composite tags to convert embedded
|
5
|
-
# metadata in videos from BlueSkySea traffic cameras
|
6
|
-
#
|
7
|
-
# Usage: exiftool -config blueskysea.config -ee FILE
|
8
|
-
#
|
9
|
-
# Example command to create .gpx log file from BlueSkySea video
|
10
|
-
# (requires gpx.fmt available in the full Exiftool distribution):
|
11
|
-
#
|
12
|
-
# exiftool -config blueskysea.config -p gpx.fmt -ee FILE
|
13
|
-
#
|
14
|
-
# Requires: ExifTool version 10.75 or later
|
15
|
-
#
|
16
|
-
# Revisions: 2019/08/23 - P. Harvey Created
|
17
|
-
#------------------------------------------------------------------------------
|
18
|
-
|
19
|
-
%Image::ExifTool::UserDefined = (
|
20
|
-
'Image::ExifTool::Composite' => {
|
21
|
-
GROUPS => { 2 => 'Location' },
|
22
|
-
#
|
23
|
-
# Note: SubDoc flag is set for all these tags so they will be generated for
|
24
|
-
# all embedded documents
|
25
|
-
#
|
26
|
-
GPSDateTime => {
|
27
|
-
Description => 'GPS Date/Time',
|
28
|
-
Groups => { 2 => 'Time' },
|
29
|
-
SubDoc => 1,
|
30
|
-
Require => 'Text',
|
31
|
-
RawConv => q{
|
32
|
-
$val = pack('C*', map { $_ ^ 0xaa } unpack('C*', substr($val[0], 8, 14)));
|
33
|
-
return undef unless $val =~ /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/;
|
34
|
-
return "$1:$2:$3 $4:$5:$6";
|
35
|
-
},
|
36
|
-
PrintConv => '$self->ConvertDateTime($val)',
|
37
|
-
},
|
38
|
-
GPSLatitude => {
|
39
|
-
SubDoc => 1,
|
40
|
-
Require => 'Text',
|
41
|
-
RawConv => q{
|
42
|
-
$val = pack('C*', map { $_ ^ 0xaa } unpack('C*', substr($val[0], 38, 9)));
|
43
|
-
return undef unless $val =~ /^([NS])(\d{2})(\d+$)$/;
|
44
|
-
return ($2 + $3 / 600000) * ($1 eq 'S' ? -1 : 1);
|
45
|
-
},
|
46
|
-
PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")',
|
47
|
-
},
|
48
|
-
GPSLongitude => {
|
49
|
-
SubDoc => 1,
|
50
|
-
Require => 'Text',
|
51
|
-
RawConv => q{
|
52
|
-
$val = pack('C*', map { $_ ^ 0xaa } unpack('C*', substr($val[0], 47, 10)));
|
53
|
-
return undef unless $val =~ /^([EW])(\d{3})(\d+$)$/;
|
54
|
-
return ($2 + $3 / 600000) * ($1 eq 'W' ? -1 : 1);
|
55
|
-
},
|
56
|
-
PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "E")',
|
57
|
-
},
|
58
|
-
GPSSpeed => {
|
59
|
-
SubDoc => 1,
|
60
|
-
Require => 'Text',
|
61
|
-
RawConv => q{
|
62
|
-
$val = pack('C*', map { $_ ^ 0xaa } unpack('C*', substr($val[0], 62, 3)));
|
63
|
-
return undef unless $val =~ /^\d+$/;
|
64
|
-
return $val + 0;
|
65
|
-
},
|
66
|
-
},
|
67
|
-
Accelerometer => {
|
68
|
-
SubDoc => 1,
|
69
|
-
Require => 'Text',
|
70
|
-
Notes => q{
|
71
|
-
the first X,Y,Z accelerometer readings from the AccelerometerData, stored in
|
72
|
-
text format
|
73
|
-
},
|
74
|
-
RawConv => q{
|
75
|
-
$val = pack('C*', map { $_ ^ 0xaa } unpack('C*', substr($val[0], 0xad, 12)));
|
76
|
-
return undef unless $val =~ /^([-+]\d{3})([-+]\d{3})([-+]\d{3})$/;
|
77
|
-
return "$1 $2 $3";
|
78
|
-
},
|
79
|
-
},
|
80
|
-
AccelerometerData => {
|
81
|
-
SubDoc => 1,
|
82
|
-
Require => 'Text',
|
83
|
-
Notes => q{
|
84
|
-
24 values in 6 groups of 4 values each. For each group, the first value is
|
85
|
-
zero and the next 3 are the X,Y,Z components of acceleration. The first 5
|
86
|
-
groups are likely samples taken at 5 Hz. The last group often has zero
|
87
|
-
entries, and its meaning is unknown
|
88
|
-
},
|
89
|
-
RawConv => q{
|
90
|
-
$val = pack('C*', map { $_ ^ 0xaa } unpack('C*', substr($val[0], 0xba, 96)));
|
91
|
-
my $order = GetByteOrder();
|
92
|
-
SetByteOrder('II');
|
93
|
-
$val = ReadValue(\$val, 0, 'float');
|
94
|
-
SetByteOrder($order);
|
95
|
-
return $val;
|
96
|
-
},
|
97
|
-
}
|
98
|
-
},
|
99
|
-
);
|
100
|
-
|
101
|
-
1; #end
|