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.

Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +39 -0
  3. data/bin/MANIFEST +17 -4
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +23 -26
  7. data/bin/config_files/convert_regions.config +139 -5
  8. data/bin/exiftool +21 -21
  9. data/bin/fmt_files/gpx.fmt +2 -1
  10. data/bin/fmt_files/gpx_wpt.fmt +2 -1
  11. data/bin/fmt_files/kml.fmt +2 -2
  12. data/bin/fmt_files/kml_track.fmt +46 -0
  13. data/bin/lib/Image/ExifTool.pm +42 -33
  14. data/bin/lib/Image/ExifTool.pod +21 -21
  15. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +2 -2
  16. data/bin/lib/Image/ExifTool/Canon.pm +2 -1
  17. data/bin/lib/Image/ExifTool/CanonCustom.pm +30 -4
  18. data/bin/lib/Image/ExifTool/Exif.pm +36 -63
  19. data/bin/lib/Image/ExifTool/FujiFilm.pm +1 -0
  20. data/bin/lib/Image/ExifTool/Lang/ru.pm +4233 -503
  21. data/bin/lib/Image/ExifTool/MakerNotes.pm +6 -12
  22. data/bin/lib/Image/ExifTool/Nikon.pm +2 -1
  23. data/bin/lib/Image/ExifTool/Olympus.pm +2 -1
  24. data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  25. data/bin/lib/Image/ExifTool/Parrot.pm +751 -0
  26. data/bin/lib/Image/ExifTool/Photoshop.pm +12 -11
  27. data/bin/lib/Image/ExifTool/QuickTime.pm +18 -5
  28. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +316 -44
  29. data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -2
  30. data/bin/lib/Image/ExifTool/Sigma.pm +72 -55
  31. data/bin/lib/Image/ExifTool/TagLookup.pm +73 -7
  32. data/bin/lib/Image/ExifTool/TagNames.pod +249 -18
  33. data/bin/lib/Image/ExifTool/Text.pm +160 -0
  34. data/bin/lib/Image/ExifTool/WriteXMP.pl +1 -2
  35. data/bin/lib/Image/ExifTool/Writer.pl +1 -1
  36. data/bin/lib/Image/ExifTool/XMP.pm +19 -26
  37. data/bin/lib/Image/ExifTool/XMP2.pl +46 -9
  38. data/bin/lib/Image/ExifTool/XMPStruct.pl +14 -4
  39. data/bin/perl-Image-ExifTool.spec +19 -19
  40. data/lib/exiftool_vendored/version.rb +1 -1
  41. metadata +6 -7
  42. data/bin/config_files/blueskysea.config +0 -101
  43. data/bin/config_files/dji.config +0 -131
  44. data/bin/config_files/mini0806.config +0 -99
  45. 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 $$strTable{NAMESPACE} and not ($parentID 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.26';
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> for the
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> for the
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 = shift;
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
- return -1 unless $$strPt =~ /\G([\x80-\xbf]{$n})/g;
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
- $tagInfo = {
3096
- %$sti,
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
- $tagInfo or $tagInfo = { Name => $name, WasAdded => 1, Priority => 0 };
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{WasAdded} && $$et{OPTIONS}{XMPAutoConv};
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 => 'RatingRegion',
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
- IPTC Extension namespace tags. The actual namespace prefix is
448
- "Iptc4xmpExt", but ExifTool shortens this for the family 1 group name. (see
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
- $et->VerboseValue("- XMP-$p", $$capture{$p}[0]) if $verbose > 1;
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
- $et->VerboseValue("+ XMP-$path", $val);
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
- $et->VerboseValue("+ XMP-$path", $$strTable{TYPE}) if $verbose > 1;
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.71
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 | VCF r
47
- CR2 r/w | GIF r/w | MOBI r | PLIST r | VRD r/w/c
48
- CR3 r/w | GPR r/w | MODD r | PICT r | VSD r
49
- CRM r/w | GZ r | MOI r | PMP r | WAV r
50
- CRW r/w | HDP r/w | MOS r/w | PNG r/w | WDP r/w
51
- CS1 r/w | HDR r | MOV r/w | PPM r/w | WEBP r
52
- DCM r | HEIC r/w | MP3 r | PPT r | WEBM r
53
- DCP r/w | HEIF r/w | MP4 r/w | PPTX r | WMA r
54
- DCR r | HTML r | MPC r | PS r/w | WMV r
55
- DFONT r | ICC r/w/c | MPG r | PSB r/w | WTV r
56
- DIVX r | ICS r | MPO r/w | PSD r/w | WV r
57
- DJVU r | IDML r | MQV r/w | PSP r | X3F r/w
58
- DLL r | IIQ r/w | MRW r/w | QTIF r/w | XCF r
59
- DNG r/w | IND r/w | MXF r | R3D r | XLS r
60
- DOC r | INSV r | NEF r/w | RA r | XLSX r
61
- DOCX r | INX r | NRW r/w | RAF r/w | XMP r/w/c
62
- DPX r | ISO r | NUMBERS r | RAM r | ZIP 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
  ----------------------+----------------------+---------------------
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ExiftoolVendored
4
- VERSION = Gem::Version.new('11.71.0')
4
+ VERSION = Gem::Version.new('11.75.0')
5
5
  end
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.71.0
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-10-16 00:00:00.000000000 Z
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.13
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