exiftool_vendored 12.16.0 → 12.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

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)