exiftool_vendored 12.15.0 → 12.16.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e30c22a774925019702c59a5aa788607b27a5b217824d47ec66be50e5a10e8f1
4
- data.tar.gz: 5c54290d58d097af3d8950f187b940e6a930d1d9502c38252620b57c8ff64067
3
+ metadata.gz: 6e5f50165965c391eee5f2088b8220f437030d2c6f03f3f1af04df861f962f24
4
+ data.tar.gz: e9c7f8127928dfc92efcbe0e851dffeea05f6a97282497ff7a1e456c4802c9b6
5
5
  SHA512:
6
- metadata.gz: '07965ed32bfb30fe68f862fc2e1e8c1a59094182b664d4cfbfdc9fe0c5e4db16b08733c0ff42c093c1dbd289148c24f5ed51e40b99b582701441cc4bf64b8061'
7
- data.tar.gz: 5ab6c978e3d9066a288173d0efd9a786245fabe9114446b77115032153fc64252dd05b1b47d4608e94b0ded7bf996fdb02706136036ede870aa2c779796b6d63
6
+ metadata.gz: 54b390d7d5dd0b4e8420b747301442137dba8efea7fb6fb3b509634560ac1f5845f5d8dfae09b35c8ce6793a13cdd88e8620068464437d97632f19fb567da837
7
+ data.tar.gz: c2f4c386d46378f95d080c67e9a06d8c0b4a8e48038aff3dda4dc3da32cfa280dd79f39ac85c15174dd6186a24e8093157ec2529944a72d19312f4a569806f77
@@ -4,9 +4,17 @@ ExifTool Version History
4
4
 
5
5
  RSS feed: https://exiftool.org/rss.xml
6
6
 
7
- Note: The most recent production release is Version 12.15. (Other versions are
7
+ Note: The most recent production release is Version 12.16. (Other versions are
8
8
  considered development releases, and are not uploaded to MetaCPAN.)
9
9
 
10
+ Jan. 21, 2021 - Version 12.16 (production release)
11
+
12
+ - Extract another form of video subtitle text
13
+ - Enhanced -ee option with -ee2 and -ee3 to allow parsing of the H264 video
14
+ stream in MP4 files
15
+ - Changed a Nikon FlashMode value
16
+ - Fixed problem that caused a failed DPX test on Strawberry Perl
17
+
10
18
  Jan. 18, 2021 - Version 12.15 (production release)
11
19
 
12
20
  - Added a couple of new Sony LensType values (thanks LibRaw and Jos Roost)
@@ -47,5 +47,5 @@
47
47
  }
48
48
  },
49
49
  "release_status" : "stable",
50
- "version" : "12.15"
50
+ "version" : "12.16"
51
51
  }
@@ -28,4 +28,4 @@ recommends:
28
28
  Time::HiRes: 0
29
29
  requires:
30
30
  perl: 5.004
31
- version: 12.15
31
+ version: 12.16
data/bin/README CHANGED
@@ -106,8 +106,8 @@ your home directory, then you would type the following commands in a
106
106
  terminal window to extract and run ExifTool:
107
107
 
108
108
  cd ~/Desktop
109
- gzip -dc Image-ExifTool-12.15.tar.gz | tar -xf -
110
- cd Image-ExifTool-12.15
109
+ gzip -dc Image-ExifTool-12.16.tar.gz | tar -xf -
110
+ cd Image-ExifTool-12.16
111
111
  ./exiftool t/images/ExifTool.jpg
112
112
 
113
113
  Note: These commands extract meta information from one of the test images.
@@ -10,7 +10,7 @@
10
10
  use strict;
11
11
  require 5.004;
12
12
 
13
- my $version = '12.15';
13
+ my $version = '12.16';
14
14
 
15
15
  # add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
16
16
  my $exeDir;
@@ -894,8 +894,8 @@ for (;;) {
894
894
  $helped = 1;
895
895
  next;
896
896
  }
897
- if (/^(ee|extractembedded)$/i) {
898
- $mt->Options(ExtractEmbedded => 1);
897
+ if (/^(ee|extractembedded)(\d*)$/i) {
898
+ $mt->Options(ExtractEmbedded => $2 || 1);
899
899
  $mt->Options(Duplicates => 1);
900
900
  next;
901
901
  }
@@ -4573,7 +4573,7 @@ L<Processing control|/Processing control>
4573
4573
 
4574
4574
  -a (-duplicates) Allow duplicate tags to be extracted
4575
4575
  -e (--composite) Do not generate composite tags
4576
- -ee (-extractEmbedded) Extract information from embedded files
4576
+ -ee[NUM] (-extractEmbedded) Extract information from embedded files
4577
4577
  -ext[+] EXT (-extension) Process files with specified extension
4578
4578
  -F[OFFSET] (-fixBase) Fix the base for maker notes offsets
4579
4579
  -fast[NUM] Increase speed when extracting metadata
@@ -5367,7 +5367,7 @@ with this command:
5367
5367
 
5368
5368
  produces output like this:
5369
5369
 
5370
- -- Generated by ExifTool 12.15 --
5370
+ -- Generated by ExifTool 12.16 --
5371
5371
  File: a.jpg - 2003:10:31 15:44:19
5372
5372
  (f/5.6, 1/60s, ISO 100)
5373
5373
  File: b.jpg - 2006:05:23 11:57:38
@@ -5706,7 +5706,7 @@ when copying.
5706
5706
 
5707
5707
  Extract existing tags only -- don't generate composite tags.
5708
5708
 
5709
- =item B<-ee> (B<-extractEmbedded>)
5709
+ =item B<-ee>[I<NUM>] (B<-extractEmbedded>)
5710
5710
 
5711
5711
  Extract information from embedded documents in EPS files, embedded EPS
5712
5712
  information and JPEG and Jpeg2000 images in PDF files, embedded MPF images
@@ -5724,6 +5724,11 @@ document as if it were a separate input file. This allows, for example,
5724
5724
  generation of GPS track logs from timed metadata in videos. See
5725
5725
  L<https://exiftool.org/geotag.html#Inverse> for examples.
5726
5726
 
5727
+ Setting I<NUM> to 2 causes the H264 video stream in MP4 videos to be parsed
5728
+ until the first Supplemental Enhancement Information (SEI) message is
5729
+ decoded, or 3 to parse the entire H624 stream and decode all SEI
5730
+ information.
5731
+
5727
5732
  =item B<-ext>[+] I<EXT>, B<--ext> I<EXT> (B<-extension>)
5728
5733
 
5729
5734
  Process only files with (B<-ext>) or without (B<--ext>) a specified
@@ -28,7 +28,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
28
28
  %mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
29
29
  %jpegMarker %specialTags %fileTypeLookup $testLen $exePath);
30
30
 
31
- $VERSION = '12.15';
31
+ $VERSION = '12.16';
32
32
  $RELEASE = '';
33
33
  @ISA = qw(Exporter);
34
34
  %EXPORT_TAGS = (
@@ -626,7 +626,9 @@ XMP to be extracted.
626
626
  Flag to extract information from embedded documents in EPS files, embedded
627
627
  EPS information and JPEG and Jpeg2000 images in PDF files, embedded MPF
628
628
  images in JPEG and MPO files, timed metadata in videos, and the resource
629
- fork of Mac OS files. Default is undef.
629
+ fork of Mac OS files. A setting of 2 also causes the H264 video stream in
630
+ MP4 files to be parsed until the first SEI message is decoded, or 3 to
631
+ parse the entire stream. Default is undef.
630
632
 
631
633
  =item FastScan
632
634
 
@@ -15,7 +15,7 @@ use strict;
15
15
  use vars qw($VERSION);
16
16
  use Image::ExifTool qw(:DataAccess :Utils);
17
17
 
18
- $VERSION = '1.04';
18
+ $VERSION = '1.05';
19
19
 
20
20
  # DPX tags
21
21
  %Image::ExifTool::DPX::Main = (
@@ -158,11 +158,11 @@ $VERSION = '1.04';
158
158
  1588=> { Name => 'InputDeviceSerialNumber', Format => 'string[32]' },
159
159
  # 1620=> { Name => 'AspectRatio', Format => 'int32u' },
160
160
  1724 => { Name => 'OriginalFrameRate',Format => 'float' },
161
- 1728 => { Name => 'ShutterAngle', Format => 'float', RawConv => '$val =~ /\d/ ? $val : undef' }, #2
161
+ 1728 => { Name => 'ShutterAngle', Format => 'float', RawConv => '($val =~ /\d/ and $val !~ /nan/i) ? $val : undef' }, #2
162
162
  1732 => { Name => 'FrameID', Format => 'string[32]' },
163
163
  1764 => { Name => 'SlateInformation', Format => 'string[100]' },
164
164
  1920 => { Name => 'TimeCode', Format => 'int32u' }, #2
165
- 1940 => { Name => 'FrameRate', Format => 'float', RawConv => '$val =~ /\d/ ? $val : undef' }, #2
165
+ 1940 => { Name => 'FrameRate', Format => 'float', RawConv => '($val =~ /\d/ and $val !~ /nan/i) ? $val : undef' }, #2
166
166
  1972 => { Name => 'Reserved5', Format => 'string[76]', Unknown => 1 },
167
167
  2048 => { Name => 'UserID', Format => 'string[32]' },
168
168
  );
@@ -62,7 +62,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
62
62
  use Image::ExifTool::Exif;
63
63
  use Image::ExifTool::GPS;
64
64
 
65
- $VERSION = '3.91';
65
+ $VERSION = '3.92';
66
66
 
67
67
  sub LensIDConv($$$);
68
68
  sub ProcessNikonAVI($$$);
@@ -1520,7 +1520,7 @@ my %binaryDataAttrs = (
1520
1520
  7 => 'Fired, External', #14
1521
1521
  8 => 'Fired, Commander Mode',
1522
1522
  9 => 'Fired, TTL Mode',
1523
- 18 => 'Fired, Sync Mode', #G.F. (movie LED light)
1523
+ 18 => 'LED Light', #G.F. (movie LED light)
1524
1524
  },
1525
1525
  },
1526
1526
  0x0088 => [
@@ -9184,6 +9184,7 @@ my %nikonFocalConversions = (
9184
9184
  7 => 'Fired, External', #14
9185
9185
  8 => 'Fired, Commander Mode',
9186
9186
  9 => 'Fired, TTL Mode',
9187
+ 18 => 'LED Light', #G.F. (movie LED light)
9187
9188
  },
9188
9189
  },
9189
9190
  0x2000098 => [
@@ -47,7 +47,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
47
47
  use Image::ExifTool::Exif;
48
48
  use Image::ExifTool::GPS;
49
49
 
50
- $VERSION = '2.56';
50
+ $VERSION = '2.57';
51
51
 
52
52
  sub ProcessMOV($$;$);
53
53
  sub ProcessKeys($$$);
@@ -424,7 +424,6 @@ my %eeBox = (
424
424
  # (note: vide is only processed if specific atoms exist in the VideoSampleDesc)
425
425
  vide => { %eeStd,
426
426
  JPEG => 'stsd',
427
- # avcC => 'stsd', # (uncomment to parse H264 stream)
428
427
  },
429
428
  text => { %eeStd },
430
429
  meta => { %eeStd },
@@ -434,6 +433,10 @@ my %eeBox = (
434
433
  ctbx => { %eeStd }, # (GM cars)
435
434
  '' => { 'gps ' => 'moov', 'GPS ' => 'main' }, # (no handler -- in top level 'moov' box, and main)
436
435
  );
436
+ # boxes to save when ExtractEmbedded is set to 2 or higher
437
+ my %eeBox2 = (
438
+ vide => { avcC => 'stsd' }, # (parses H264 video stream)
439
+ );
437
440
 
438
441
  # QuickTime atoms
439
442
  %Image::ExifTool::QuickTime::Main = (
@@ -8884,7 +8887,7 @@ sub ProcessMOV($$;$)
8884
8887
  my $dirID = $$dirInfo{DirID} || '';
8885
8888
  my $charsetQuickTime = $et->Options('CharsetQuickTime');
8886
8889
  my ($buff, $tag, $size, $track, $isUserData, %triplet, $doDefaultLang, $index);
8887
- my ($dirEnd, $ee, $unkOpt, %saveOptions, $atomCount);
8890
+ my ($dirEnd, $unkOpt, %saveOptions, $atomCount);
8888
8891
 
8889
8892
  my $topLevel = not $$et{InQuickTime};
8890
8893
  $$et{InQuickTime} = 1;
@@ -8948,8 +8951,8 @@ sub ProcessMOV($$;$)
8948
8951
  }
8949
8952
  $$raf{NoBuffer} = 1 if $et->Options('FastScan'); # disable buffering in FastScan mode
8950
8953
 
8951
- if ($$et{OPTIONS}{ExtractEmbedded}) {
8952
- $ee = 1;
8954
+ my $ee = $$et{OPTIONS}{ExtractEmbedded};
8955
+ if ($ee) {
8953
8956
  $unkOpt = $$et{OPTIONS}{Unknown};
8954
8957
  require 'Image/ExifTool/QuickTimeStream.pl';
8955
8958
  }
@@ -9032,6 +9035,9 @@ sub ProcessMOV($$;$)
9032
9035
  } elsif ($handlerType ne 'vide' and not $$et{OPTIONS}{Validate}) {
9033
9036
  EEWarn($et);
9034
9037
  }
9038
+ } elsif ($ee and $ee > 1 and $eeBox2{$handlerType} and $eeBox2{$handlerType}{$tag}) {
9039
+ $eeTag = 1;
9040
+ $$et{OPTIONS}{Unknown} = 1;
9035
9041
  }
9036
9042
  my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
9037
9043
 
@@ -531,7 +531,10 @@ my %insvLimit = (
531
531
  PROCESS_PROC => \&Process_tx3g,
532
532
  GROUPS => { 2 => 'Location' },
533
533
  FIRST_ENTRY => 0,
534
- NOTES => 'Tags extracted from the tx3g sbtl timed metadata of Yuneec drones.',
534
+ NOTES => q{
535
+ Tags extracted from the tx3g sbtl timed metadata of Yuneec drones, and
536
+ subtitle text in some other videos.
537
+ },
535
538
  Lat => {
536
539
  Name => 'GPSLatitude',
537
540
  RawConv => '$$self{FoundGPSLatitude} = 1; $val',
@@ -552,6 +555,11 @@ my %insvLimit = (
552
555
  GimYaw => 'GimbalYaw',
553
556
  GimPitch => 'GimbalPitch',
554
557
  GimRoll => 'GimbalRoll',
558
+ DateTime => { # for date/time-format subtitle text
559
+ Groups => { 2 => 'Time' },
560
+ PrintConv => '$self->ConvertDateTime($val)',
561
+ },
562
+ Text => { Groups => { 2 => 'Other' } },
555
563
  );
556
564
 
557
565
  %Image::ExifTool::QuickTime::INSV_MakerNotes = (
@@ -1195,6 +1203,10 @@ sub ProcessSamples($)
1195
1203
  $pos += $hdrLen + $len;
1196
1204
  last if $pos + $hdrLen >= length($buff);
1197
1205
  }
1206
+ if ($$et{GotNAL06}) {
1207
+ my $eeOpt = $et->Options('ExtractEmbedded');
1208
+ last unless $eeOpt and $eeOpt > 2;
1209
+ }
1198
1210
  next;
1199
1211
  }
1200
1212
  if ($verbose > 1) {
@@ -1981,7 +1993,13 @@ sub Process_tx3g($$$)
1981
1993
  my $dataPt = $$dirInfo{DataPt};
1982
1994
  return 0 if length $$dataPt < 2;
1983
1995
  pos($$dataPt) = 2; # skip 2-byte length word
1984
- $et->HandleTag($tagTablePtr, $1, $2) while $$dataPt =~ /(\w+):([^:]*[^:\s])(\s|$)/sg;
1996
+ $et->VerboseDir('tx3g', undef, length($$dataPt)-2);
1997
+ $et->HandleTag($tagTablePtr, 'Text', substr($$dataPt, 2));
1998
+ if ($$dataPt =~ /^..\w{3} (\d{4})-(\d{2})-(\d{2}) (\d{2}:\d{2}:\d{2}) ?([-+])(\d{2}):?(\d{2})$/s) {
1999
+ $et->HandleTag($tagTablePtr, 'DateTime', "$1:$2:$3 $4$5$6:$7");
2000
+ } else {
2001
+ $et->HandleTag($tagTablePtr, $1, $2) while $$dataPt =~ /(\w+):([^:]*[^:\s])(\s|$)/sg;
2002
+ }
1985
2003
  return 1;
1986
2004
  }
1987
2005
 
@@ -2513,7 +2531,7 @@ sub ProcessInsta360($;$)
2513
2531
  $et->HandleTag($tagTbl, GPSTrack => $a[9]);
2514
2532
  $et->HandleTag($tagTbl, GPSTrackRef => 'T');
2515
2533
  $et->HandleTag($tagTbl, GPSAltitude => $a[10]);
2516
- $et->HandleTag($tagTbl, Unknown02 => "@a[1,2]") if $unknown;
2534
+ $et->HandleTag($tagTbl, Unknown02 => "@a[1,2]") if $unknown; # millisecond counter (https://exiftool.org/forum/index.php?topic=9884.msg65143#msg65143)
2517
2535
  }
2518
2536
  }
2519
2537
  } elsif ($id == 0x101) {
@@ -12,7 +12,7 @@ meta information extracted from or written to a file.
12
12
  =head1 TAG TABLES
13
13
 
14
14
  The tables listed below give the names of all tags recognized by ExifTool.
15
- They contain a total of 23980 tags, with 15546 unique tag names.
15
+ They contain a total of 23982 tags, with 15546 unique tag names.
16
16
 
17
17
  B<Tag ID>, B<Index#> or B<Sequence> is given in the first column of each
18
18
  table. A B<Tag ID> is the computer-readable equivalent of a tag name, and
@@ -25951,11 +25951,13 @@ changed via the config file.
25951
25951
 
25952
25952
  =head3 QuickTime tx3g Tags
25953
25953
 
25954
- Tags extracted from the tx3g sbtl timed metadata of Yuneec drones.
25954
+ Tags extracted from the tx3g sbtl timed metadata of Yuneec drones, and
25955
+ subtitle text in some other videos.
25955
25956
 
25956
25957
  Tag ID Tag Name Writable
25957
25958
  ------ -------- --------
25958
25959
  'Alt' GPSAltitude no
25960
+ 'DateTime' DateTime no
25959
25961
  'GimPitch' GimbalPitch no
25960
25962
  'GimRoll' GimbalRoll no
25961
25963
  'GimYaw' GimbalYaw no
@@ -25963,6 +25965,7 @@ Tags extracted from the tx3g sbtl timed metadata of Yuneec drones.
25963
25965
  'Lon' GPSLongitude no
25964
25966
  'Pitch' Pitch no
25965
25967
  'Roll' Roll no
25968
+ 'Text' Text no
25966
25969
  'Yaw' Yaw no
25967
25970
 
25968
25971
  =head3 QuickTime FileType Tags
@@ -1,6 +1,6 @@
1
1
  Summary: perl module for image data extraction
2
2
  Name: perl-Image-ExifTool
3
- Version: 12.15
3
+ Version: 12.16
4
4
  Release: 1
5
5
  License: Artistic/GPL
6
6
  Group: Development/Libraries/Perl
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ExiftoolVendored
4
- VERSION = Gem::Version.new('12.15.0')
4
+ VERSION = Gem::Version.new('12.16.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: 12.15.0
4
+ version: 12.16.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: 2021-01-19 00:00:00.000000000 Z
12
+ date: 2021-01-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: exiftool