exiftool_vendored 12.16.0 → 12.17.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: 6e5f50165965c391eee5f2088b8220f437030d2c6f03f3f1af04df861f962f24
4
- data.tar.gz: e9c7f8127928dfc92efcbe0e851dffeea05f6a97282497ff7a1e456c4802c9b6
3
+ metadata.gz: 282998369bb9233d2f181df0f59f292915623e97fba11993c01c310e533eb29f
4
+ data.tar.gz: fd371cfbcd5c85f4a8ab489cd9ee53f0a24dd3ac69a598d5d0a35a47a05853a9
5
5
  SHA512:
6
- metadata.gz: 54b390d7d5dd0b4e8420b747301442137dba8efea7fb6fb3b509634560ac1f5845f5d8dfae09b35c8ce6793a13cdd88e8620068464437d97632f19fb567da837
7
- data.tar.gz: c2f4c386d46378f95d080c67e9a06d8c0b4a8e48038aff3dda4dc3da32cfa280dd79f39ac85c15174dd6186a24e8093157ec2529944a72d19312f4a569806f77
6
+ metadata.gz: 0347af9fa9e87b8a4de28e8274cd5f00bbd75d78ffc0a340624da063681eae24385a46928848248b92a53ec3549010b269bd2216e5a8390f8da4bf727223ba86
7
+ data.tar.gz: becbc52e82c10df8e11c73460e711926d3e422d8e42af2c81bf94b4f1f511a7e68037e9e1601cda42964fe995bb8c54d79ecd2196a583a85941d748d749d18be
data/bin/Changes CHANGED
@@ -7,6 +7,26 @@ RSS feed: https://exiftool.org/rss.xml
7
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
+ Feb. 3, 2021 - Version 12.17
11
+
12
+ - Added a new Canon FocusMode value
13
+ - Added a new FujiFilm FilmMode value
14
+ - Added a number of new XMP-crs tags (thanks Herb)
15
+ - Decode a new H264 MDPM tag
16
+ - Allow non-conforming lower-case XMP boolean "true" and "false" values to be
17
+ written, but only when print conversion is disabled
18
+ - Improved Validate option to warn about non-capitalized boolean XMP values
19
+ - Improved logic for setting GPSLatitude/LongitudeRef values when writing
20
+ - Changed -json and -php options so the -a option is implied even without the
21
+ -g option
22
+ - Avoid extracting audio/video data from AVI videos when -ee -u is used
23
+ - Patched decoding of Canon ContinuousShootingSpeed for newer firmware
24
+ versions of the EOS-1DXmkIII
25
+ - Re-worked LensID patch of version 12.00 (github issue #51)
26
+ - Fixed a few typos in newly-added NikonSettings tags (thanks Herb)
27
+ - Fixed problem where group could not be specified for PNG-pHYs tags when
28
+ writing
29
+
10
30
  Jan. 21, 2021 - Version 12.16 (production release)
11
31
 
12
32
  - Extract another form of video subtitle text
@@ -14,6 +34,8 @@ Jan. 21, 2021 - Version 12.16 (production release)
14
34
  stream in MP4 files
15
35
  - Changed a Nikon FlashMode value
16
36
  - Fixed problem that caused a failed DPX test on Strawberry Perl
37
+ - API Changes:
38
+ - Enhanced ExtractEmbedded option
17
39
 
18
40
  Jan. 18, 2021 - Version 12.15 (production release)
19
41
 
@@ -220,7 +242,7 @@ July 27, 2020 - Version 12.02
220
242
  - Improved decoding of some Canon EOS 1DXmkIII custom functions
221
243
  - Allow integer QuickTime TrackNumber and DiskNumber values
222
244
  - Relax validity check of QuickTime:ContentCreateDate when writing with -n
223
- - Removed "Com" from the start of some unknown ItemList tag names
245
+ - Removed "Com" from the start of some unknown QuickTime ItemList tag names
224
246
  - Patched CanonCustom decoding for bug in Canon EOS-1DX firmware
225
247
  - Changed QuickTime CleanAperture tags decode as signed rationals
226
248
 
data/bin/META.json CHANGED
@@ -47,5 +47,5 @@
47
47
  }
48
48
  },
49
49
  "release_status" : "stable",
50
- "version" : "12.16"
50
+ "version" : "12.17"
51
51
  }
data/bin/META.yml CHANGED
@@ -28,4 +28,4 @@ recommends:
28
28
  Time::HiRes: 0
29
29
  requires:
30
30
  perl: 5.004
31
- version: 12.16
31
+ version: 12.17
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.16.tar.gz | tar -xf -
110
- cd Image-ExifTool-12.16
109
+ gzip -dc Image-ExifTool-12.17.tar.gz | tar -xf -
110
+ cd Image-ExifTool-12.17
111
111
  ./exiftool t/images/ExifTool.jpg
112
112
 
113
113
  Note: These commands extract meta information from one of the test images.
data/bin/exiftool CHANGED
@@ -10,7 +10,7 @@
10
10
  use strict;
11
11
  require 5.004;
12
12
 
13
- my $version = '12.16';
13
+ my $version = '12.17';
14
14
 
15
15
  # add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
16
16
  my $exeDir;
@@ -1264,7 +1264,7 @@ for (;;) {
1264
1264
  if (/^php$/i) {
1265
1265
  $json = 2;
1266
1266
  $html = $xml = 0;
1267
- $mt->Options(Duplicates=>1);
1267
+ $mt->Options(Duplicates => 1);
1268
1268
  next;
1269
1269
  }
1270
1270
  if (/^z(ip)?$/i) {
@@ -1505,7 +1505,6 @@ if ($xml) {
1505
1505
  require Image::ExifTool::XMP if $json == 1; # (for EncodeBase64)
1506
1506
  }
1507
1507
  $mt->Options(List => 1) unless $joinLists;
1508
- $mt->Options(Duplicates => 0) unless defined $showGroup;
1509
1508
  $showTagID = 'D' if $tabFormat and not $showTagID;
1510
1509
  } elsif ($structOpt) {
1511
1510
  $mt->Options(List => 1);
@@ -2304,7 +2303,7 @@ TAG: foreach $tag (@foundTags) {
2304
2303
  $group = $et->GetGroup($tag, $showGroup);
2305
2304
  # look ahead to see if this tag may suppress a priority tag in
2306
2305
  # the same group, and if so suppress this tag instead
2307
- next if $noDups and $tag =~ /^(.*?) ?\(/ and defined $$info{$1} and
2306
+ next if $noDups and $tag =~ /^(.*?) \(/ and defined $$info{$1} and
2308
2307
  $group eq $et->GetGroup($1, $showGroup);
2309
2308
  $group = 'Unknown' if not $group and ($xml or $json or $csv);
2310
2309
  if ($fp and not ($allGroup or $csv)) {
@@ -2327,6 +2326,9 @@ TAG: foreach $tag (@foundTags) {
2327
2326
  }
2328
2327
  undef $group; # undefine so we don't print it below
2329
2328
  }
2329
+ } elsif ($noDups) {
2330
+ # don't allow duplicates, but avoid suppressing the priority tag
2331
+ next if $tag =~ /^(.*?) \(/ and defined $$info{$1};
2330
2332
  }
2331
2333
 
2332
2334
  ++$lineCount; # we are printing something meaningful
@@ -4917,7 +4919,7 @@ and the value is written to all possible groups/tags. For example, the
4917
4919
  string form must be used in the following command since the intent is to set
4918
4920
  the value of all existing date/time tags from C<CreateDate>:
4919
4921
 
4920
- exiftool "-time:all<$createdate" -wm w FILE
4922
+ exiftool '-time:all<$createdate' -wm w FILE
4921
4923
 
4922
4924
  =item B<-x> I<TAG> (B<-exclude>)
4923
4925
 
@@ -4943,7 +4945,7 @@ between images, but allows the metadata to be altered by editing the
4943
4945
  intermediate file (C<out.args> in this example):
4944
4946
 
4945
4947
  exiftool -args -G1 --filename --directory src.jpg > out.args
4946
- exiftool -@ out.args -sep ", " dst.jpg
4948
+ exiftool -@ out.args -sep ', ' dst.jpg
4947
4949
 
4948
4950
  Note: Be careful when copying information with this technique since it is
4949
4951
  easy to write tags which are normally considered "unsafe". For instance,
@@ -5207,18 +5209,18 @@ JSON arrays unless B<-sep> is used. By default XMP structures are flattened
5207
5209
  into individual tags in the JSON output, but the original structure may be
5208
5210
  preserved with the B<-struct> option (this also causes all list-type XMP
5209
5211
  tags to be output as JSON arrays, otherwise single-item lists would be
5210
- output as simple strings). The B<-a> option is implied if the B<-g> or
5211
- B<-G> options are used, otherwise it is ignored and tags with identical
5212
- JSON names are suppressed. (B<-g4> may be used to ensure that all tags have
5213
- unique JSON names.) Adding the B<-D> or B<-H> option changes tag values to
5214
- JSON objects with "val" and "id" fields, and adding B<-l> adds a "desc"
5215
- field, and a "num" field if the numerical value is different from the
5216
- converted "val". The B<-b> option may be added to output binary data,
5217
- encoded in base64 if necessary (indicated by ASCII "base64:" as the first 7
5218
- bytes of the value), and B<-t> may be added to include tag table information
5219
- (see B<-t> for details). The JSON output is UTF-8 regardless of any B<-L>
5220
- or B<-charset> option setting, but the UTF-8 validation is disabled if a
5221
- character set other than UTF-8 is specified.
5212
+ output as simple strings). The B<-a> option is implied when B<-json> is
5213
+ used, but entries with identical JSON names are suppressed in the output.
5214
+ (B<-G4> may be used to ensure that all tags have unique JSON names.) Adding
5215
+ the B<-D> or B<-H> option changes tag values to JSON objects with "val" and
5216
+ "id" fields, and adding B<-l> adds a "desc" field, and a "num" field if the
5217
+ numerical value is different from the converted "val". The B<-b> option may
5218
+ be added to output binary data, encoded in base64 if necessary (indicated by
5219
+ ASCII "base64:" as the first 7 bytes of the value), and B<-t> may be added
5220
+ to include tag table information (see B<-t> for details). The JSON output
5221
+ is UTF-8 regardless of any B<-L> or B<-charset> option setting, but the
5222
+ UTF-8 validation is disabled if a character set other than UTF-8 is
5223
+ specified.
5222
5224
 
5223
5225
  If I<JSONFILE> is specified, the file is imported and the tag definitions
5224
5226
  from the file are used to set tag values on a per-file basis. The special
@@ -5367,7 +5369,7 @@ with this command:
5367
5369
 
5368
5370
  produces output like this:
5369
5371
 
5370
- -- Generated by ExifTool 12.16 --
5372
+ -- Generated by ExifTool 12.17 --
5371
5373
  File: a.jpg - 2003:10:31 15:44:19
5372
5374
  (f/5.6, 1/60s, ISO 100)
5373
5375
  File: b.jpg - 2006:05:23 11:57:38
@@ -5527,18 +5529,18 @@ Notes:
5527
5529
  argument like C<%d%f.txt> is written as C<%%d%%f.txt>.
5528
5530
 
5529
5531
  2) If the argument for B<-w> does not contain a valid format code (eg. %f),
5530
- then it is interpreted as a file extension. It is not possible to specify a
5531
- simple filename as an argument -- creating a single output file from
5532
- multiple source files is typically done by shell redirection, ie)
5532
+ then it is interpreted as a file extension, but there are three different
5533
+ ways to create a single output file from multiple source files:
5533
5534
 
5535
+ # 1. Shell redirection
5534
5536
  exiftool FILE1 FILE2 ... > out.txt
5535
5537
 
5536
- But if necessary, an empty format code may be used to force the argument to
5537
- be interpreted as a format string, and the same result may be obtained
5538
- without the use of shell redirection:
5539
-
5538
+ # 2. With the -w option and a zero-width format code
5540
5539
  exiftool -w+! %0fout.txt FILE1 FILE2 ...
5541
5540
 
5541
+ # 3. With the -W option (see the -W option below)
5542
+ exiftool -W+! out.txt FILE1 FILE2 ...
5543
+
5542
5544
  Advanced features:
5543
5545
 
5544
5546
  A substring of the original file name, directory or extension may be taken
@@ -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.16';
31
+ $VERSION = '12.17';
32
32
  $RELEASE = '';
33
33
  @ISA = qw(Exporter);
34
34
  %EXPORT_TAGS = (
@@ -310,9 +310,10 @@ C<integer> is a string of digits (possibly beginning with a '+' or '-'),
310
310
  C<real> is a floating point number, C<rational> is entered as a floating
311
311
  point number but stored as two C<integer> strings separated by a '/'
312
312
  character, C<date> is a date/time string entered in the format "YYYY:mm:dd
313
- HH:MM:SS[.ss][+/-HH:MM]", C<boolean> is either "True" or "False", C<struct>
314
- indicates a structured tag, and C<lang-alt> is a tag that supports alternate
315
- languages.
313
+ HH:MM:SS[.ss][+/-HH:MM]", C<boolean> is either "True" or "False" (but "true"
314
+ and "false" may be written as a ValueConv value for compatibility with
315
+ non-conforming applications), C<struct> indicates a structured tag, and
316
+ C<lang-alt> is a tag that supports alternate languages.
316
317
 
317
318
  When reading, C<struct> tags are extracted only if the L<Struct|../ExifTool.html#Struct> (-struct)
318
319
  option is used. Otherwise the corresponding I<Flattened> tags, indicated by
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
88
88
  sub ProcessExifInfo($$$);
89
89
  sub SwapWords($);
90
90
 
91
- $VERSION = '4.42';
91
+ $VERSION = '4.43';
92
92
 
93
93
  # Note: Removed 'USM' from 'L' lenses since it is redundant - PH
94
94
  # (or is it? Ref 32 shows 5 non-USM L-type lenses)
@@ -2128,6 +2128,7 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
2128
2128
  16 => 'Pan Focus', #PH
2129
2129
  # 137 - Single?
2130
2130
  256 => 'AF + MF', #PH (NC, EOS M)
2131
+ 257 => 'Live View', #forum12082
2131
2132
  512 => 'Movie Snap Focus', #48
2132
2133
  519 => 'Movie Servo AF', #PH (NC, EOS M)
2133
2134
  },
@@ -19,7 +19,7 @@ use Image::ExifTool qw(:DataAccess);
19
19
  use Image::ExifTool::Canon;
20
20
  use Image::ExifTool::Exif;
21
21
 
22
- $VERSION = '1.57';
22
+ $VERSION = '1.58';
23
23
 
24
24
  sub ProcessCanonCustom($$$);
25
25
  sub ProcessCanonCustom2($$$);
@@ -2098,6 +2098,24 @@ my %convPFn = ( PrintConv => \&ConvertPfn, PrintConvInv => \&ConvertPfnInv );
2098
2098
  '$val=~/(\d+)/ ? $1 : 0',
2099
2099
  '$val=~/(\d+)/ ? $1 : 0',
2100
2100
  ],
2101
+ },{ # (1DXmkIII firmware 1.3)
2102
+ Name => 'ContinuousShootingSpeed',
2103
+ Condition => '$count == 5',
2104
+ Count => 5,
2105
+ PrintConv => [
2106
+ '"Hi $val"',
2107
+ '"Cont $val"',
2108
+ '"Lo $val"',
2109
+ '"Soft $val"',
2110
+ '"Soft LS $val"',
2111
+ ],
2112
+ PrintConvInv => [
2113
+ '$val=~/(\d+)/ ? $1 : 0',
2114
+ '$val=~/(\d+)/ ? $1 : 0',
2115
+ '$val=~/(\d+)/ ? $1 : 0',
2116
+ '$val=~/(\d+)/ ? $1 : 0',
2117
+ '$val=~/(\d+)/ ? $1 : 0',
2118
+ ],
2101
2119
  },{ # others
2102
2120
  Name => 'ContinuousShootingSpeed',
2103
2121
  Count => 3,
@@ -56,7 +56,7 @@ use vars qw($VERSION $AUTOLOAD @formatSize @formatName %formatNumber %intFormat
56
56
  use Image::ExifTool qw(:DataAccess :Utils);
57
57
  use Image::ExifTool::MakerNotes;
58
58
 
59
- $VERSION = '4.31';
59
+ $VERSION = '4.32';
60
60
 
61
61
  sub ProcessExif($$$);
62
62
  sub WriteExif($$$);
@@ -2560,6 +2560,7 @@ my %opcodeInfo = (
2560
2560
  5 => 'Color sequential area',
2561
2561
  7 => 'Trilinear',
2562
2562
  8 => 'Color sequential linear',
2563
+ # 15 - used by DJI XT2
2563
2564
  },
2564
2565
  },
2565
2566
  0xa300 => {
@@ -4728,8 +4729,8 @@ my %subSecConv = (
4728
4729
  },
4729
4730
  LensID => {
4730
4731
  Groups => { 2 => 'Camera' },
4732
+ Require => 'LensType',
4731
4733
  Desire => {
4732
- 0 => 'LensType',
4733
4734
  1 => 'FocalLength',
4734
4735
  2 => 'MaxAperture',
4735
4736
  3 => 'MaxApertureValue',
@@ -4748,25 +4749,16 @@ my %subSecConv = (
4748
4749
  Applies only to LensType values with a lookup table. May be configured
4749
4750
  by adding user-defined lenses
4750
4751
  },
4751
- # this LensID is only valid if the LensType has a PrintConv,
4752
- # or LensType or LensModel are the model name
4752
+ # this LensID is only valid if the LensType has a PrintConv or is a model name
4753
4753
  RawConv => q{
4754
4754
  my $printConv = $$self{TAG_INFO}{LensType}{PrintConv};
4755
- return $val if ref $printConv eq 'HASH' or
4756
- (ref $printConv eq 'ARRAY' and ref $$printConv[0] eq 'HASH') or
4757
- (defined $val[0] and $val[0] =~ /(mm|\d\/F)/) or
4758
- (defined $val[6] and $val[6] =~ /(mm|\d\/F)/);
4755
+ return $val if ref $printConv eq 'HASH' or (ref $printConv eq 'ARRAY' and
4756
+ ref $$printConv[0] eq 'HASH') or $val[0] =~ /(mm|\d\/F)/;
4759
4757
  return undef;
4760
4758
  },
4761
- ValueConv => '$val[0] || $val[6]',
4759
+ ValueConv => '$val',
4762
4760
  PrintConv => q{
4763
4761
  my $pcv;
4764
- # use LensModel ([6]) if LensType ([0]) is not populated
4765
- # (iPhone populates LensModel but not LensType)
4766
- if (not defined $val[0] and defined $val[6]) {
4767
- $val[0] = $val[6];
4768
- $prt[0] = $prt[6];
4769
- }
4770
4762
  # use LensType2 instead of LensType if available and valid (Sony E-mount lenses)
4771
4763
  # (0x8000 or greater; 0 for several older/3rd-party E-mount lenses)
4772
4764
  if (defined $val[9] and ($val[9] & 0x8000 or $val[9] == 0)) {
@@ -4794,6 +4786,30 @@ my %subSecConv = (
4794
4786
  return $lens;
4795
4787
  },
4796
4788
  },
4789
+ 'LensID-2' => {
4790
+ Name => 'LensID',
4791
+ Groups => { 2 => 'Camera' },
4792
+ Desire => {
4793
+ 0 => 'LensModel',
4794
+ 1 => 'Lens',
4795
+ 2 => 'XMP-aux:LensID',
4796
+ 3 => 'Make',
4797
+ },
4798
+ Inhibit => {
4799
+ 4 => 'Composite:LensID',
4800
+ },
4801
+ RawConv => q{
4802
+ return undef if defined $val[2] and defined $val[3];
4803
+ return $val if defined $val[0] and $val[0] =~ /(mm|\d\/F)/;
4804
+ return $val if defined $val[1] and $val[1] =~ /(mm|\d\/F)/;
4805
+ return undef;
4806
+ },
4807
+ ValueConv => q{
4808
+ return $val[0] if defined $val[0] and $val[0] =~ /(mm|\d\/F)/;
4809
+ return $val[1];
4810
+ },
4811
+ PrintConv => '$_=$val; s/(\d)\/F/$1mm F/; s/mmF/mm F/; s/(\d) mm/${1}mm/; s/ - /-/; $_',
4812
+ },
4797
4813
  );
4798
4814
 
4799
4815
  # table for unknown IFD entries
@@ -31,7 +31,7 @@ use vars qw($VERSION);
31
31
  use Image::ExifTool qw(:DataAccess :Utils);
32
32
  use Image::ExifTool::Exif;
33
33
 
34
- $VERSION = '1.78';
34
+ $VERSION = '1.79';
35
35
 
36
36
  sub ProcessFujiDir($$$);
37
37
  sub ProcessFaceRec($$$);
@@ -623,6 +623,7 @@ my %faceCategories = (
623
623
  0x700 => 'Eterna', #12
624
624
  0x800 => 'Classic Negative', #forum10536
625
625
  0x900 => 'Bleach Bypass', #forum10890
626
+ 0xa00 => 'Nostalgic Neg', #forum12085
626
627
  },
627
628
  },
628
629
  0x1402 => { #2
@@ -12,7 +12,7 @@ use strict;
12
12
  use vars qw($VERSION);
13
13
  use Image::ExifTool::Exif;
14
14
 
15
- $VERSION = '1.51';
15
+ $VERSION = '1.52';
16
16
 
17
17
  my %coordConv = (
18
18
  ValueConv => 'Image::ExifTool::GPS::ToDegrees($val)',
@@ -50,8 +50,8 @@ my %coordConv = (
50
50
  OTHER => sub {
51
51
  my ($val, $inv) = @_;
52
52
  return undef unless $inv;
53
- return uc $1 if $val =~ /\b([NS])$/i;
54
- return $1 eq '-' ? 'S' : 'N' if $val =~ /^([-+]?)\d+(\.\d*)?$/;
53
+ return uc $1 if $val =~ /\b([NS])\b/i;
54
+ return $1 eq '-' ? 'S' : 'N' if $val =~ /([-+]?)\d+/;
55
55
  return undef;
56
56
  },
57
57
  N => 'North',
@@ -78,8 +78,8 @@ my %coordConv = (
78
78
  OTHER => sub {
79
79
  my ($val, $inv) = @_;
80
80
  return undef unless $inv;
81
- return uc $1 if $val =~ /\b([EW])$/i;
82
- return $1 eq '-' ? 'W' : 'E' if $val =~ /^([-+]?)\d+(\.\d*)?$/;
81
+ return uc $1 if $val =~ /\b([EW])\b/i;
82
+ return $1 eq '-' ? 'W' : 'E' if $val =~ /([-+]?)\d+/;
83
83
  return undef;
84
84
  },
85
85
  E => 'East',
@@ -89,7 +89,7 @@ my $parsePictureTiming; # flag to enable parsing of picture timing information (
89
89
  Notes => 'hours:minutes:seconds:frames',
90
90
  ValueConv => 'sprintf("%.2x:%.2x:%.2x:%.2x",reverse unpack("C*",$val))',
91
91
  },
92
- # 0x14 - TitleBinaryGroup
92
+ # 0x14 - TitleBinaryGroup - val: 0x00000000,0x14200130
93
93
  # 0x15 - TitleCassetteNo (ref 7)
94
94
  # 0x16-0x17 - TitleSoftID (ref 7)
95
95
  # (0x18,0x19 listed as TitleTextHeader/TitleText by ref 7)
@@ -134,8 +134,8 @@ my $parsePictureTiming; # flag to enable parsing of picture timing information (
134
134
  Name => 'Camera2',
135
135
  SubDirectory => { TagTable => 'Image::ExifTool::H264::Camera2' },
136
136
  },
137
- # 0x73 Lens - val: 0x75ffffd3,0x0effffd3,0x59ffffd3,0x79ffffd3,0xffffffd3...
138
- # 0x74 Gain
137
+ # 0x73 Lens - val: 0x04ffffd3,0x0effffd3,0x15ffffd3,0x41ffffd3,0x52ffffd3,0x59ffffd3,0x65ffffd3,0x71ffffd3,0x75ffffd3,0x79ffffd3,0x7fffffd3,0xffffffd3...
138
+ # 0x74 Gain - val: 0xb8ffff0f
139
139
  # 0x75 Pedestal
140
140
  # 0x76 Gamma
141
141
  # 0x77 Detail
@@ -376,34 +376,49 @@ my $parsePictureTiming; # flag to enable parsing of picture timing information (
376
376
  Notes => 'combined with tag 0xc8',
377
377
  },
378
378
  # 0xc9-0xcf - GPSOption
379
+ # 0xc9 - val: 0x001d0203
380
+ 0xca => { #PH (Sony DSC-HX7V)
381
+ Name => 'GPSDateStamp',
382
+ Format => 'string',
383
+ Groups => { 1 => 'GPS', 2 => 'Time' },
384
+ Combine => 2, # the next 2 tags contain the rest of the string
385
+ Notes => 'combined with tags 0xcb and 0xcc',
386
+ ValueConv => 'Image::ExifTool::Exif::ExifDate($val)',
387
+ },
379
388
  0xe0 => {
380
389
  Name => 'MakeModel',
381
390
  SubDirectory => { TagTable => 'Image::ExifTool::H264::MakeModel' },
382
391
  },
383
392
  # 0xe1-0xef - MakerOption
384
393
  # 0xe1 - val: 0x01000670,0x01000678,0x06ffffff,0x01ffffff,0x01000020,0x01000400...
385
- # 0xe2-0xe8 - val: 0x00000000 in many samples
386
394
  0xe1 => { #6
387
395
  Name => 'RecInfo',
388
396
  Condition => '$$self{Make} eq "Canon"',
389
397
  Notes => 'Canon only',
390
398
  SubDirectory => { TagTable => 'Image::ExifTool::H264::RecInfo' },
391
399
  },
400
+ # 0xe2-0xe8 - val: 0x00000000 in many samples
401
+ # 0xe2 - val: 0x00000000,0x01000000,0x01010000,0x8080900c,0x8080a074
402
+ # 0xe3 - val: 0x00801f89,0x00801f8b,0x00c01f89,0xc9c01f80
392
403
  0xe4 => { #PH
393
404
  Name => 'Model',
394
405
  Condition => '$$self{Make} eq "Sony"', # (possibly also Canon models?)
395
406
  Description => 'Camera Model Name',
396
- Notes => 'Sony cameras only, combined with tags 0xe5 and 0xe6',
407
+ Notes => 'Sony only, combined with tags 0xe5 and 0xe6',
397
408
  Format => 'string',
398
409
  Combine => 2, # (not sure about 0xe6, but include it just in case)
399
410
  RawConv => '$val eq "" ? undef : $val',
400
411
  },
412
+ # 0xeb - val: 0x008a0a00,0x0a300000,0x508a0a00,0x52880a00,0x528a0a00
413
+ # 0xec - val: 0x0b700000
414
+ # 0xed - val: 0x0ce0f819
401
415
  0xee => { #6 (HFS200)
402
416
  Name => 'FrameInfo',
403
417
  Condition => '$$self{Make} eq "Canon"',
404
418
  Notes => 'Canon only',
405
419
  SubDirectory => { TagTable => 'Image::ExifTool::H264::FrameInfo' },
406
420
  },
421
+ # 0xef - val: 0x01c00000,0x0e00000c
407
422
  );
408
423
 
409
424
  # ConsumerCamera1 information (ref PH)