exiftool_vendored 11.65.0 → 11.67.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
  SHA1:
3
- metadata.gz: 7b7ab4c79fc1d811625bd4643955a68d924ef262
4
- data.tar.gz: ac2f64040dc9f70ca62fd12d5945d25e18a99606
3
+ metadata.gz: bde7c46f693f484613c7cf4fe77dec3d59a38aef
4
+ data.tar.gz: 90b28efc64aca6df9015a99c18591e3bdf0edc77
5
5
  SHA512:
6
- metadata.gz: e5e788b7497fa5a9d369efda1acf944a21f19d7859ef04660000f40fdd96b9a7db9844cd949b813ff32f8dc8ce451fecead32d16704fca9af17b3e493670e695
7
- data.tar.gz: a1ff8ddd79c87d6489f1c109739f1ceb90cf2257921b266b26e79f1d16b7ef19f572f2e9640078e80e39de7ff4a40f0253432ba39e240e87bb335578be73d592
6
+ metadata.gz: 459ee5aa30a83cc36b44ad84cc86bfdf767c745f3707704035cde596c74b0ea7cfd7667f5529db48ea67a9d21e2483cde62c26123d82ecb071a36961f490672b
7
+ data.tar.gz: 1d7f84c0ed3bc2e6ea28ff1b511e0763e8fc49342ac888df64977b7113e65246497d98e2f09b90dbaeb6e4c3a1028d92fa7ac39975b754470bf667a75d7a2e4b
data/bin/Changes CHANGED
@@ -7,14 +7,37 @@ RSS feed: http://owl.phy.queensu.ca/~phil/exiftool/rss.xml
7
7
  Note: The most recent production release is Version 11.50. (Other versions are
8
8
  considered development releases, and are not uploaded to CPAN.)
9
9
 
10
- [I will be on vacation and without access to my computer
11
- from Sept. 3-24, so don't expect any updates or email/forum responses from
12
- me during this time - PH]
10
+ Sept. 30, 2019 - Version 11.67
11
+
12
+ - Added config_files/thinkware.config to the distribution
13
+ - Fixed bug decoding negative GPS coordinates from INSV videos
14
+
15
+ Sept. 30, 2019 - Version 11.66
16
+
17
+ - Added a new Nikon LensID (thanks LibRaw)
18
+ - Added a few new Canon LensType values (thanks LibRaw and Tom Lachecki)
19
+ - Decode a few more Hasselblad tags (thanks LibRaw)
20
+ - Decode a new Canon tag (thanks Laurent Clevy)
21
+ - Decode more Samsung trailer tags
22
+ - Extract BWF iXML, aXML and UMID from RIFF-format files
23
+ - Extract ICC_Profile from more types of PDF files
24
+ - Enhanced %s of the -W option to recognize the PICT format
25
+ - Recognize MacOS alias files
26
+ - Changed name of Ricoh CropMode35mm tag and added a new value (thanks LibRaw)
27
+ - Minor change to a Minolta lens name (thanks Jos Roost)
28
+ - Fixed problem where NikonCapture information couldn't be deleted from an NEF
29
+ - Fixed problem identifying some SVG files
30
+ - Fixed typo in a CanonModelID value (thanks Dmitry)
31
+ - Fixed bug which could result in "Internal error: no list index" warning when
32
+ creating nested XMP lang-alt lists
33
+ - Fixed the names of a few Tamron lenses for Nikon (thanks Tom Lachecki)
34
+ - Fixed problem extracting Layer information from some PSD files
35
+ - Fixed writing of QuickTime GPSCoordinates to use the correct number of
36
+ digits before the decimal point for latitude and longitude
13
37
 
14
38
  Aug. 29, 2019 - Version 11.65
15
39
 
16
- - Added some new SonyModelID and Sony LensType values (thanks LibRaw and Jos
17
- Roost)
40
+ - Added new SonyModelID and Sony LensType values (thanks LibRaw and Jos Roost)
18
41
  - Added support for some new Sony models (thanks Jos Roost)
19
42
  - Added a couple of new CanonModelID values (thanks LibRaw)
20
43
  - Added a new Canon ColorDataVersion value
data/bin/MANIFEST CHANGED
@@ -28,6 +28,7 @@ config_files/nksc.config
28
28
  config_files/photoshop_paths.config
29
29
  config_files/picasa_faces.config
30
30
  config_files/rotate_regions.config
31
+ config_files/thinkware.config
31
32
  config_files/tiff_version.config
32
33
  config_files/time_zone.config
33
34
  exiftool
data/bin/META.json CHANGED
@@ -47,6 +47,6 @@
47
47
  }
48
48
  },
49
49
  "release_status" : "stable",
50
- "version" : "11.65",
50
+ "version" : "11.67",
51
51
  "x_serialization_backend" : "JSON::PP version 4.02"
52
52
  }
data/bin/META.yml CHANGED
@@ -28,5 +28,5 @@ recommends:
28
28
  Time::HiRes: '0'
29
29
  requires:
30
30
  perl: '5.004'
31
- version: '11.65'
31
+ version: '11.67'
32
32
  x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
data/bin/README CHANGED
@@ -104,8 +104,8 @@ your home directory, then you would type the following commands in a
104
104
  terminal window to extract and run ExifTool:
105
105
 
106
106
  cd ~/Desktop
107
- gzip -dc Image-ExifTool-11.65.tar.gz | tar -xf -
108
- cd Image-ExifTool-11.65
107
+ gzip -dc Image-ExifTool-11.67.tar.gz | tar -xf -
108
+ cd Image-ExifTool-11.67
109
109
  ./exiftool t/images/ExifTool.jpg
110
110
 
111
111
  Note: These commands extract meta information from one of the test images.
@@ -201,6 +201,7 @@ distribution package:
201
201
  photoshop_paths.config - For extracting or copying Photoshop paths
202
202
  picasa_faces.config - Convert from Picasa to MWG/MP face regions
203
203
  rotate_regions.config - Rotate MWG and MP region tags
204
+ thinkware.config - Decode text from Thinkware dashcam videos
204
205
  tiff_version.config - Determine the version of a TIFF file
205
206
  time_zone.config - Calcuate time zone from EXIF tags
206
207
  exiftool - The exiftool application (Perl script)
@@ -0,0 +1,144 @@
1
+ #------------------------------------------------------------------------------
2
+ # File: thinkware.config
3
+ #
4
+ # Description: This config file defines Composite tags to decode subtitle text
5
+ # from Thinkware dashcam videos
6
+ #
7
+ # Usage: exiftool -config thinkware.config -ee FILE
8
+ #
9
+ # Example command to create .gpx log file from Thinkware video
10
+ # (requires gpx.fmt available in the full Exiftool distribution):
11
+ #
12
+ # exiftool -config thinkware.config -p gpx.fmt -ee -api QuickTimeUTC FILE
13
+ #
14
+ # Requires: ExifTool version 10.75 or later
15
+ #
16
+ # Revisions: 2019/09/30 - P. Harvey Created
17
+ #------------------------------------------------------------------------------
18
+
19
+ use Time::Local;
20
+
21
+ #------------------------------------------------------------------------------
22
+ # Decode GPS from Thinkware subtitle Text
23
+ # Inputs: 0) ExifTool ref, 1) Text value
24
+ # Returns: Hash containing GPS tags
25
+ sub Image::ExifTool::UserDefined::DecodeGPS($$)
26
+ {
27
+ my ($et, $val) = @_;
28
+ unless ($$et{ThinkwareInfo}{Text} and $val eq $$et{ThinkwareInfo}{Text}) {
29
+ my %gps;
30
+ $$et{ThinkwareInfo}{GPS} = \%gps;
31
+ $$et{ThinkwareInfo}{Text} = $val;
32
+ #
33
+ # Example embedded "Text" from a Thinkware Q800:
34
+ #
35
+ # "gsensori,4,512,-67,-12,100;GNRMC,161313.00,A,4529.87489,N,07337.01215,W,6.225,35.34,310819,,,A*52..;
36
+ # CAR,0,0,0,0.0,0,0,0,0,0,0,0,0"
37
+ #
38
+ if ($val =~ /[A-Z]{2}RMC,(\d{2})(\d{2})(\d+(\.\d*)?),A?,(\d*?)(\d{1,2}\.\d+),([NS]),(\d*?)(\d{1,2}\.\d+),([EW]),(\d*\.?\d*),(\d*\.?\d*),(\d{2})(\d{2})(\d+)/ and
39
+ # do some basic sanity checks on the date
40
+ $13 <= 31 and $14 <= 12 and $15 <= 99)
41
+ {
42
+ $gps{lat} = (($5 || 0) + $6/60) * ($7 eq 'N' ? 1 : -1);
43
+ $gps{lon} = (($8 || 0) + $9/60) * ($10 eq 'E' ? 1 : -1);
44
+ $gps{speed} = $11 if length $11;
45
+ $gps{track} = $12 if length $12;
46
+ my $year = $15 + ($15 >= 70 ? 1900 : 2000);
47
+ $gps{datetime} = sprintf('%.4d:%.2d:%.2d %.2d:%.2d:%.2dZ', $year, $14, $13, $1, $2, $3);
48
+ }
49
+ }
50
+ return $$et{ThinkwareInfo}{GPS};
51
+ }
52
+
53
+ # Composite tags to decode information from subtitle Text
54
+ %Image::ExifTool::UserDefined = (
55
+ 'Image::ExifTool::Composite' => {
56
+ GROUPS => { 2 => 'Location' },
57
+ #
58
+ # Note: SubDoc flag is set for all these tags so they will be generated for
59
+ # all embedded documents
60
+ #
61
+ GPSDateTime => {
62
+ Description => 'GPS Date/Time',
63
+ Groups => { 2 => 'Time' },
64
+ SubDoc => 1,
65
+ Require => 'Text',
66
+ RawConv => q{
67
+ my $gps = Image::ExifTool::UserDefined::DecodeGPS($self, $val[0]);
68
+ return $$gps{datetime};
69
+ },
70
+ PrintConv => '$self->ConvertDateTime($val)',
71
+ },
72
+ GPSLatitude => {
73
+ SubDoc => 1,
74
+ Require => 'Text',
75
+ RawConv => q{
76
+ my $gps = Image::ExifTool::UserDefined::DecodeGPS($self, $val[0]);
77
+ return $$gps{lat};
78
+ },
79
+ PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")',
80
+ },
81
+ GPSLongitude => {
82
+ SubDoc => 1,
83
+ Require => 'Text',
84
+ RawConv => q{
85
+ my $gps = Image::ExifTool::UserDefined::DecodeGPS($self, $val[0]);
86
+ return $$gps{lon};
87
+ },
88
+ PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "E")',
89
+ },
90
+ GPSSpeed => {
91
+ SubDoc => 1,
92
+ Require => 'Text',
93
+ RawConv => q{
94
+ my $gps = Image::ExifTool::UserDefined::DecodeGPS($self, $val[0]);
95
+ # convert from knots to km/hr
96
+ return defined $$gps{speed} ? $$gps{speed} * 1.852 : undef;
97
+ },
98
+ },
99
+ GPSSpeedRef => {
100
+ SubDoc => 1,
101
+ Require => 'Text',
102
+ RawConv => q{
103
+ my $gps = Image::ExifTool::UserDefined::DecodeGPS($self, $val[0]);
104
+ return defined $$gps{speed} ? 'K' : undef;
105
+ },
106
+ PrintConv => { K => 'km/h', M => 'mph', N => 'knots' },
107
+ },
108
+ GPSTrack => {
109
+ SubDoc => 1,
110
+ Require => 'Text',
111
+ RawConv => q{
112
+ my $gps = Image::ExifTool::UserDefined::DecodeGPS($self, $val[0]);
113
+ return $$gps{track};
114
+ },
115
+ },
116
+ GPSTrackRef => {
117
+ SubDoc => 1,
118
+ Require => 'Text',
119
+ RawConv => q{
120
+ my $gps = Image::ExifTool::UserDefined::DecodeGPS($self, $val[0]);
121
+ return defined $$gps{track} ? 'T' : undef;
122
+ },
123
+ PrintConv => { M => 'Magnetic North', T => 'True North' },
124
+ },
125
+ GSensor => {
126
+ SubDoc => 1,
127
+ Require => 'Text',
128
+ RawConv => q{
129
+ return undef unless $val[0] =~ /gsensori,(.*?)(;|$)/;
130
+ return $1;
131
+ },
132
+ },
133
+ Car => {
134
+ SubDoc => 1,
135
+ Require => 'Text',
136
+ RawConv => q{
137
+ return undef unless $val[0] =~ /CAR,(.*?)(;|$)/;
138
+ return $1;
139
+ },
140
+ },
141
+ },
142
+ );
143
+
144
+ 1; #end
data/bin/exiftool CHANGED
@@ -10,7 +10,7 @@
10
10
  use strict;
11
11
  require 5.004;
12
12
 
13
- my $version = '11.65';
13
+ my $version = '11.67';
14
14
 
15
15
  # add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
16
16
  my $exeDir;
@@ -3787,6 +3787,8 @@ sub SuggestedExtension($$$)
3787
3787
  $ext = 'vrd';
3788
3788
  } elsif ($$valPt =~ /^IIII\x04\0\x04\0/) {
3789
3789
  $ext = 'dr4';
3790
+ } elsif ($$valPt =~ /^(.{10}|.{522})(\x11\x01|\x00\x11)/) {
3791
+ $ext = 'pict';
3790
3792
  } else {
3791
3793
  $ext = 'dat';
3792
3794
  }
@@ -4274,8 +4276,8 @@ directory are processed (in write mode only writable types are processed).
4274
4276
  However, files may be specified by name, or the B<-ext> option may be used
4275
4277
  to force processing of files with any extension. Hidden files in the
4276
4278
  directory are also processed. Adding the B<-r> option causes subdirectories
4277
- to be processed recursively, but those with names beginning with "." are
4278
- skipped unless B<-r.> is used.
4279
+ to be processed recursively, but subdirectories with names beginning with
4280
+ "." are skipped unless B<-r.> is used.
4279
4281
 
4280
4282
  Below is a list of file types and meta information formats currently
4281
4283
  supported by ExifTool (r = read, w = write, c = create):
@@ -5171,7 +5173,7 @@ with this command:
5171
5173
 
5172
5174
  produces output like this:
5173
5175
 
5174
- -- Generated by ExifTool 11.65 --
5176
+ -- Generated by ExifTool 11.67 --
5175
5177
  File: a.jpg - 2003:10:31 15:44:19
5176
5178
  (f/5.6, 1/60s, ISO 100)
5177
5179
  File: b.jpg - 2006:05:23 11:57:38
@@ -27,7 +27,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
27
27
  %mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
28
28
  %jpegMarker %specialTags %fileTypeLookup);
29
29
 
30
- $VERSION = '11.65';
30
+ $VERSION = '11.67';
31
31
  $RELEASE = '';
32
32
  @ISA = qw(Exporter);
33
33
  %EXPORT_TAGS = (
@@ -186,7 +186,7 @@ $defaultLang = 'en'; # default language
186
186
  HTML VRD RTF FITS XCF DSS QTIF FPX PICT ZIP GZIP PLIST RAR BZ2
187
187
  TAR RWZ EXE EXR HDR CHM LNK WMF AVC DEX DPX RAW Font RSRC M2TS
188
188
  PHP PCX DCX DWF DWG WTV Torrent VCard LRI R3D AA PDB MOI ISO
189
- JSON MP3 DICOM PCD);
189
+ ALIAS JSON MP3 DICOM PCD);
190
190
 
191
191
  # file types that we can write (edit)
192
192
  my @writeTypes = qw(JPEG TIFF GIF CRW MRW ORF RAF RAW PNG MIE PSD XMP PPM EPS
@@ -227,6 +227,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
227
227
  AIFC => ['AIFF', 'Audio Interchange File Format Compressed'],
228
228
  AIFF => ['AIFF', 'Audio Interchange File Format'],
229
229
  AIT => 'AI',
230
+ ALIAS=> ['ALIAS','MacOS file alias'],
230
231
  APE => ['APE', "Monkey's Audio format"],
231
232
  APNG => ['PNG', 'Animated Portable Network Graphics'],
232
233
  ARW => ['TIFF', 'Sony Alpha RAW format'],
@@ -554,6 +555,7 @@ my %fileDescription = (
554
555
  AAE => 'application/vnd.apple.photos',
555
556
  AI => 'application/vnd.adobe.illustrator',
556
557
  AIFF => 'audio/x-aiff',
558
+ ALIAS=> 'application/x-macos',
557
559
  APE => 'audio/x-monkeys-audio',
558
560
  APNG => 'image/apng',
559
561
  ASF => 'video/x-ms-asf',
@@ -749,6 +751,7 @@ my %fileDescription = (
749
751
  # - module name '0' indicates a recognized but unsupported file
750
752
  my %moduleName = (
751
753
  AA => 'Audible',
754
+ ALIAS=> 0,
752
755
  AVC => 0,
753
756
  BTF => 'BigTIFF',
754
757
  BZ2 => 0,
@@ -811,6 +814,7 @@ my %moduleName = (
811
814
  %magicNumber = (
812
815
  AA => '.{4}\x57\x90\x75\x36',
813
816
  AIFF => '(FORM....AIF[FC]|AT&TFORM)',
817
+ ALIAS=> "book\0\0\0\0mark\0\0\0\0",
814
818
  APE => '(MAC |APETAGEX|ID3)',
815
819
  ASF => '\x30\x26\xb2\x75\x8e\x66\xcf\x11\xa6\xd9\x00\xaa\x00\x62\xce\x6c',
816
820
  AVC => '\+A\+V\+C\+',
@@ -855,7 +859,7 @@ my %moduleName = (
855
859
  ITC => '.{4}itch',
856
860
  JP2 => '(\0\0\0\x0cjP( |\x1a\x1a)\x0d\x0a\x87\x0a|\xff\x4f\xff\x51\0)',
857
861
  JPEG => '\xff\xd8\xff',
858
- JSON => '(\xef\xbb\xbf)?\s*(\[\s*)?\{\s*"[^"]+"\s*:',
862
+ JSON => '(\xef\xbb\xbf)?\s*(\[\s*)?\{\s*"[^"]*"\s*:',
859
863
  LFP => '\x89LFP\x0d\x0a\x1a\x0a',
860
864
  LNK => '.{4}\x01\x14\x02\0{5}\xc0\0{6}\x46',
861
865
  LRI => 'LELR \0',
@@ -2240,7 +2244,7 @@ sub ExtractInfo($;@)
2240
2244
  my $fast = $$options{FastScan};
2241
2245
  my $req = $$self{REQ_TAG_LOOKUP};
2242
2246
  my $reqAll = $$options{RequestAll} || 0;
2243
- my (%saveOptions, $reEntry, $rsize, $type, @startTime);
2247
+ my (%saveOptions, $reEntry, $rsize, $type, @startTime, $saveOrder);
2244
2248
 
2245
2249
  # check for internal ReEntry option to allow recursive calls to ExtractInfo
2246
2250
  if (ref $_[1] eq 'HASH' and $_[1]{ReEntry} and
@@ -2254,6 +2258,7 @@ sub ExtractInfo($;@)
2254
2258
  EXIF_POS => $$self{EXIF_POS},
2255
2259
  FILE_TYPE => $$self{FILE_TYPE},
2256
2260
  };
2261
+ $saveOrder = GetByteOrder(),
2257
2262
  $$self{RAF} = new File::RandomAccess($_[0]);
2258
2263
  $$self{PROCESSED} = { };
2259
2264
  delete $$self{EXIF_DATA};
@@ -2645,6 +2650,7 @@ sub ExtractInfo($;@)
2645
2650
  if ($reEntry) {
2646
2651
  # restore necessary members when exiting re-entrant code
2647
2652
  $$self{$_} = $$reEntry{$_} foreach keys %$reEntry;
2653
+ SetByteOrder($saveOrder);
2648
2654
  }
2649
2655
 
2650
2656
  # ($type may be undef without an Error when processing sub-documents)
@@ -35,7 +35,7 @@ use Image::ExifTool::Sony;
35
35
  use Image::ExifTool::Validate;
36
36
  use Image::ExifTool::MacOS;
37
37
 
38
- $VERSION = '3.27';
38
+ $VERSION = '3.28';
39
39
  @ISA = qw(Exporter);
40
40
 
41
41
  sub NumbersFirst($$);
@@ -217,8 +217,8 @@ writing.
217
217
 
218
218
  The HTML version of these tables also lists possible B<Values> for
219
219
  discrete-valued tags, as well as B<Notes> for some tags. The B<Values> are
220
- listed as the computer-readable and human-readable values on the left and
221
- right hand side of an equals sign (C<=>) respectively. The human-readable
220
+ listed with the computer-readable values on the left of the equals sign
221
+ (C<=>), and the human-readable values on the right. The human-readable
222
222
  values are used by default when reading and writing, but the
223
223
  computer-readable values may be accessed by disabling the value conversion
224
224
  with the -n option on the command line, by setting the L<PrintConv|../ExifTool.html#PrintConv> option to 0
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
88
88
  sub ProcessExifInfo($$$);
89
89
  sub SwapWords($);
90
90
 
91
- $VERSION = '4.24';
91
+ $VERSION = '4.25';
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)
@@ -224,7 +224,8 @@ $VERSION = '4.24';
224
224
  124 => 'Canon MP-E 65mm f/2.8 1-5x Macro Photo', #9
225
225
  125 => 'Canon TS-E 24mm f/3.5L',
226
226
  126 => 'Canon TS-E 45mm f/2.8', #15
227
- 127 => 'Canon TS-E 90mm f/2.8', #15
227
+ 127 => 'Canon TS-E 90mm f/2.8 or Tamron Lens', #15
228
+ 127.1 => 'Tamron 18-200mm f/3.5-6.3 Di II VC', #TomLachecki (model B018)
228
229
  129 => 'Canon EF 300mm f/2.8L USM', #32
229
230
  130 => 'Canon EF 50mm f/1.0L USM', #10/15
230
231
  131 => 'Canon EF 28-80mm f/2.8-4L USM or Sigma Lens', #32
@@ -242,6 +243,7 @@ $VERSION = '4.24';
242
243
  134 => 'Canon EF 600mm f/4L IS USM', #15
243
244
  135 => 'Canon EF 200mm f/1.8L USM',
244
245
  136 => 'Canon EF 300mm f/2.8L USM',
246
+ 136.1 => 'Tamron SP 15-30mm f/2.8 Di VC USD', #TomLachecki (model A012)
245
247
  137 => 'Canon EF 85mm f/1.2L USM or Sigma or Tamron Lens', #10
246
248
  137.1 => 'Sigma 18-50mm f/2.8-4.5 DC OS HSM', #PH
247
249
  137.2 => 'Sigma 50-200mm f/4-5.6 DC OS HSM', #PH
@@ -345,6 +347,7 @@ $VERSION = '4.24';
345
347
  173.2 => 'Sigma APO Macro 150mm f/2.8 EX DG HSM', #14
346
348
  173.3 => 'Sigma 10mm f/2.8 EX DC Fisheye', #IB
347
349
  173.4 => 'Sigma 15mm f/2.8 EX DG Diagonal Fisheye', #IB
350
+ 173.5 => 'Venus Laowa 100mm F2.8 2X Ultra Macro APO', #IB
348
351
  174 => 'Canon EF 135mm f/2L USM or Other Lens', #9
349
352
  174.1 => 'Sigma 70-200mm f/2.8 EX DG APO OS HSM', #PH (probably version II of this lens)
350
353
  174.2 => 'Sigma 50-500mm f/4.5-6.3 APO DG OS HSM', #forum4031
@@ -908,7 +911,7 @@ $VERSION = '4.24';
908
911
  0x80000408 => 'EOS 77D / 9000D',
909
912
  0x80000417 => 'EOS Rebel SL2 / 200D / Kiss X9', #IB/42
910
913
  0x80000422 => 'EOS Rebel T100 / 4000D / 3000D', #IB (3000D in China; Kiss? - PH)
911
- 0x80000424 => 'EOR R', #IB
914
+ 0x80000424 => 'EOS R', #IB
912
915
  0x80000432 => 'EOS Rebel T7 / 2000D / 1500D / Kiss X90', #IB
913
916
  0x80000433 => 'EOS RP',
914
917
  0x80000436 => 'EOS SL3 / 250D / Kiss X10', #25
@@ -1885,7 +1888,7 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
1885
1888
  },
1886
1889
  0x4008 => { #53
1887
1890
  Name => 'PictureStyleUserDef', # (BasePictStyleOfUser)
1888
- Format => 'int16u',
1891
+ Writable => 'int16u',
1889
1892
  Count => 3, # UserDef1, UserDef2, UserDef3
1890
1893
  PrintHex => 1,
1891
1894
  SeparateTable => 'PictureStyle',
@@ -1893,7 +1896,7 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
1893
1896
  },
1894
1897
  0x4009 => { #53
1895
1898
  Name => 'PictureStylePC', # (BasePictStyleOfUser)
1896
- Format => 'int16u',
1899
+ Writable => 'int16u',
1897
1900
  Count => 3, # PC1, PC2, PC3
1898
1901
  PrintHex => 1,
1899
1902
  SeparateTable => 'PictureStyle',
@@ -1997,6 +2000,13 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
1997
2000
  TagTable => 'Image::ExifTool::Canon::AFConfig',
1998
2001
  }
1999
2002
  },
2003
+ 0x403f => { #25
2004
+ Name => 'RawBurstModeRoll',
2005
+ SubDirectory => {
2006
+ Validate => 'Image::ExifTool::Canon::Validate($dirData,$subdirStart,$size)',
2007
+ TagTable => 'Image::ExifTool::Canon::RawBurstInfo',
2008
+ }
2009
+ },
2000
2010
  );
2001
2011
 
2002
2012
  #..............................................................................
@@ -8438,6 +8448,16 @@ my %filterConv = (
8438
8448
  },
8439
8449
  );
8440
8450
 
8451
+ # RAW burst mode info (MakerNotes tag 0x403f) (ref 25)
8452
+ %Image::ExifTool::Canon::RawBurstInfo = (
8453
+ %binaryDataAttrs,
8454
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
8455
+ FORMAT => 'int32u',
8456
+ FIRST_ENTRY => 1,
8457
+ 1 => 'RawBurstImageNum',
8458
+ 2 => 'RawBurstImageCount',
8459
+ );
8460
+
8441
8461
  # Canon UUID atoms (ref PH, SX280)
8442
8462
  %Image::ExifTool::Canon::uuid = (
8443
8463
  GROUPS => { 0 => 'MakerNotes', 1 => 'Canon', 2 => 'Video' },