exiftool_vendored 13.57.1 → 13.59.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.
@@ -12,7 +12,7 @@ require Exporter;
12
12
 
13
13
  use vars qw($VERSION @ISA @EXPORT_OK);
14
14
 
15
- $VERSION = '1.14';
15
+ $VERSION = '1.15';
16
16
  @ISA = qw(Exporter);
17
17
  @EXPORT_OK = qw(ReadCSV ReadJSON);
18
18
 
@@ -100,19 +100,22 @@ sub ReadCSV($$;$$)
100
100
  # terminate at first blank tag name (eg. extra comma at end of line)
101
101
  last unless length $_;
102
102
  @tags or s/^\xef\xbb\xbf//; # remove UTF-8 BOM if it exists
103
- /^([-_0-9A-Z]+:)*[-_0-9A-Z]+#?$/i or $err = "Invalid tag name '${_}'", last;
103
+ unless (/^([-_0-9A-Z]+:)*[-_0-9A-Z]+#?$/i) {
104
+ /\0/ and $err = "Format error in $file (doesn't look like UTF-8)", last;
105
+ $err = "Invalid tag name '${_}' in $file", last;
106
+ }
104
107
  push(@tags, $_);
105
108
  }
106
109
  last if $err;
107
- @tags or $err = 'No tags found', last;
110
+ @tags or $err = "No tags found in $file", last;
108
111
  # fix "SourceFile" case if necessary
109
112
  $tags[0] = 'SourceFile' if lc $tags[0] eq 'sourcefile';
110
113
  }
111
114
  }
112
115
  close CSVFILE if $openedFile;
113
116
  undef $raf;
114
- $err = 'No SourceFile column' unless $found or $err;
115
- return $err ? "$err in $file" : undef;
117
+ $err = "No SourceFile column in $file" unless $found or $err;
118
+ return $err || undef;
116
119
  }
117
120
 
118
121
  #------------------------------------------------------------------------------
@@ -248,7 +251,7 @@ sub ReadJSON($$;$$)
248
251
  {
249
252
  local $_;
250
253
  my ($file, $database, $missingValue, $chset) = @_;
251
- my ($raf, $openedFile);
254
+ my ($raf, $openedFile, $buff);
252
255
 
253
256
  # initialize character set for converting "\uHHHH" chars
254
257
  $charset = $chset || 'UTF8';
@@ -260,7 +263,7 @@ sub ReadJSON($$;$$)
260
263
  $file = 'JSON file';
261
264
  } elsif (ref $file eq 'SCALAR') {
262
265
  $raf = File::RandomAccess->new($file);
263
- $file = 'in memory';
266
+ $file = 'JSON in memory';
264
267
  } else {
265
268
  open JSONFILE, $file or return "Error opening JSON file '${file}'";
266
269
  binmode JSONFILE;
@@ -270,7 +273,13 @@ sub ReadJSON($$;$$)
270
273
  my $obj = ReadJSONObject($raf);
271
274
  close JSONFILE if $openedFile;
272
275
  unless (ref $obj eq 'ARRAY') {
273
- ref $obj eq 'HASH' or return "Format error in JSON file '${file}'";
276
+ unless (ref $obj eq 'HASH') {
277
+ my $err = "Format error in $file";
278
+ if ($raf->Seek(0,0) and $raf->Read($buff, 64) and $buff =~ /\0/) {
279
+ $err .= " (doesn't look like UTF-8)";
280
+ }
281
+ return $err;
282
+ }
274
283
  $obj = [ $obj ];
275
284
  }
276
285
  my ($info, $found);
@@ -292,7 +301,7 @@ sub ReadJSON($$;$$)
292
301
  $$database{$$info{SourceFile}} = $info;
293
302
  $found = 1;
294
303
  }
295
- return $found ? undef : "No valid JSON objects in '${file}'";
304
+ return $found ? undef : "No valid JSON objects in $file";
296
305
  }
297
306
 
298
307
 
@@ -32,7 +32,7 @@ use strict;
32
32
  use vars qw($VERSION);
33
33
  use Image::ExifTool qw(:DataAccess :Utils);
34
34
 
35
- $VERSION = '1.33';
35
+ $VERSION = '1.34';
36
36
 
37
37
  # program map table "stream_type" lookup (ref 6/1/9)
38
38
  my %streamType = (
@@ -315,6 +315,29 @@ sub ParsePID($$$$$)
315
315
  Image::ExifTool::LigoGPS::ProcessLigoGPS($et, \%dirInfo, $tbl, length($$dataPt)!=200);
316
316
  $$et{FoundGoodGPS} = 1;
317
317
  $more = 1;
318
+ } elsif ($$dataPt =~ m(^Viidure(20\d{2})/(\d{2})/(\d{2}) (\d{2}:\d{2}:\d{2}) ([NS]):(\S+) ([EW]):(\S+) (\S+) km/h (\S+) (\S+) (\S+) x:(\S+) y:(\S+) z:(\S+))s) {
319
+ # (Innovv N2 dashcam)
320
+ # 0000: 56 69 69 64 75 72 65 32 30 32 36 2f 30 34 2f 31 [Viidure2026/04/1]
321
+ # 0010: 36 20 30 31 3a 30 31 3a 30 32 20 4e 3a 34 32 2e [6 01:01:02 N:42.]
322
+ # 0020: 32 31 31 34 32 34 20 57 3a 38 38 2e 33 32 30 39 [211424 W:88.3209]
323
+ # 0030: 37 35 20 38 39 2e 31 20 6b 6d 2f 68 20 32 36 37 [75 89.1 km/h 267]
324
+ # 0040: 2e 33 38 20 32 33 37 2e 38 30 20 31 30 20 78 3a [.38 237.80 10 x:]
325
+ # 0050: 2d 30 2e 30 30 31 20 79 3a 2d 30 2e 30 30 31 20 [-0.001 y:-0.001 ]
326
+ # 0060: 7a 3a 2d 30 2e 30 30 31 00 00 00 00 00 00 00 00 [z:-0.001........]
327
+ my $tbl = GetTagTable('Image::ExifTool::QuickTime::Stream');
328
+ $$et{DOC_NUM} = ++$$et{DOC_COUNT};
329
+ my $time = "$1:$2:$3 $4Z";
330
+ $et->HandleTag($tbl, 'GPSDateTime', $time);
331
+ $et->HandleTag($tbl, 'GPSLatitude', $6 * (($5 eq 'S') ? -1 : 1));
332
+ $et->HandleTag($tbl, 'GPSLongitude', $8 * (($7 eq 'W') ? -1 : 1));
333
+ $et->HandleTag($tbl, 'GPSSpeed', $9);
334
+ $et->HandleTag($tbl, 'GPSTrack', $10);
335
+ $et->HandleTag($tbl, 'GPSAltitude', $11);
336
+ # (not sure what $12 is -- was a constant "10" in my sample)
337
+ $et->HandleTag($tbl, 'Accelerometer',"$13 $14 $15");
338
+ $$et{FoundGoodGPS} = 1;
339
+ $more = 1;
340
+ delete $$et{DOC_NUM};
318
341
  }
319
342
  } elsif ($type == 0x1b) {
320
343
  # H.264 Video
@@ -65,7 +65,7 @@ use Image::ExifTool::Exif;
65
65
  use Image::ExifTool::GPS;
66
66
  use Image::ExifTool::XMP;
67
67
 
68
- $VERSION = '4.57';
68
+ $VERSION = '4.58';
69
69
 
70
70
  sub LensIDConv($$$);
71
71
  sub ProcessNikonAVI($$$);
@@ -5863,8 +5863,11 @@ my %nikonFocalConversions = (
5863
5863
  47 => 'Nikkor Z 35mm f/1.2 S', #28
5864
5864
  48 => 'Nikkor Z 28-400mm f/4-8 VR', #30
5865
5865
  49 => 'Nikkor Z 28-135mm f/4 PZ', #28
5866
+ 50 => 'Nikkor Z 24-70mm f/2.8 S II', #28
5866
5867
  51 => 'Nikkor Z 35mm f/1.4', #28
5867
5868
  52 => 'Nikkor Z 50mm f/1.4', #28
5869
+ 54 => 'Nikkor Z 70-200mm f/2.8 VR S II', #28
5870
+ 57 => 'Nikkor Z 24-105mm f/4-7.1', #28
5868
5871
  2305 => 'Laowa FFII 10mm F2.8 C&D Dreamer', #30
5869
5872
  32768 => 'Nikkor Z 400mm f/2.8 TC VR S TC-1.4x', #28
5870
5873
  32769 => 'Nikkor Z 600mm f/4 TC VR S TC-1.4x', #28
@@ -59,7 +59,7 @@ use Image::ExifTool::Exif;
59
59
  use Image::ExifTool::GPS;
60
60
  use Image::ExifTool::HP;
61
61
 
62
- $VERSION = '3.62';
62
+ $VERSION = '3.63';
63
63
 
64
64
  sub CryptShutterCount($$);
65
65
  sub PrintFilter($$$);
@@ -2743,6 +2743,11 @@ my %binaryDataAttrs = (
2743
2743
  },
2744
2744
  },
2745
2745
  },
2746
+ 0x009e => { #https://www.dpreview.com/forums/threads/gr-iv-hdf-dng-exif-data.4837151/#post-68693164
2747
+ Name => 'HDF', # (Highlight Diffusion Filter)
2748
+ Writable => 'int8u',
2749
+ PrintConv => { 0 => 'Off', 1 => 'On' },
2750
+ },
2746
2751
  0x0200 => { #5
2747
2752
  Name => 'BlackPoint',
2748
2753
  Writable => 'int16u',
@@ -49,7 +49,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
49
49
  use Image::ExifTool::Exif;
50
50
  use Image::ExifTool::GPS;
51
51
 
52
- $VERSION = '3.34';
52
+ $VERSION = '3.35';
53
53
 
54
54
  sub ProcessMOV($$;$);
55
55
  sub ProcessKeys($$$);
@@ -230,6 +230,9 @@ my %ftypLookup = (
230
230
  'msf1' => 'High Efficiency Image Format sequence (.HEIFS)', # image/heif-sequence
231
231
  'heix' => 'High Efficiency Image Format still image (.HEIF)', # image/heif (ref PH, Canon 1DXmkIII)
232
232
  'avif' => 'AV1 Image File Format (.AVIF)', # image/avif
233
+ 'avis' => 'AV1 Image Sequence (.AVIF)', # image/avif
234
+ 'avio' => 'AV1 Intra-Only Image (.AVIF)', # image/avif
235
+ 'miaf' => 'Multi-Image Application Format (.AVIF)', # image/avif
233
236
  'crx ' => 'Canon Raw (.CRX)', #PH (CR3 or CRM; use Canon CompressorVersion to decide)
234
237
  );
235
238
 
@@ -111,7 +111,7 @@ my %insvLimit = (
111
111
  The tags below are extracted from timed metadata in QuickTime and other
112
112
  formats of video files when the ExtractEmbedded option is used. Although
113
113
  most of these tags are combined into the single table below, ExifTool
114
- currently reads 123 different types of timed GPS metadata.
114
+ currently reads 124 different types of timed GPS metadata.
115
115
  },
116
116
  GPSLatitude => { PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")', RawConv => '$$self{FoundGPSLatitude} = 1; $val' },
117
117
  GPSLongitude => { PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "E")' },
@@ -34,7 +34,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
34
34
  use Image::ExifTool::Exif;
35
35
  use Image::ExifTool::Minolta;
36
36
 
37
- $VERSION = '3.86';
37
+ $VERSION = '3.87';
38
38
 
39
39
  sub ProcessSRF($$$);
40
40
  sub ProcessSR2($$$);
@@ -81,6 +81,7 @@ sub PrintInvLensSpec($;$$);
81
81
  20 => 'Samyang AF 35mm F1.4 P FE', #JR
82
82
  21 => 'Samyang AF 14-24mm F2.8', #JR
83
83
  22 => 'Samyang AF 24-60mm F2.8', #JR
84
+ 24 => 'Samyang AF 85mm F1.8 P FE',
84
85
  # 27 => Venus Optics Laowa 12mm f2.8 Zero-D or 105mm f2 (T3.2) Smooth Trans Focus (ref IB)
85
86
  44 => 'Metabones Canon EF Smart Adapter', #JR
86
87
  78 => 'Metabones Canon EF Smart Adapter Mark III or Other Adapter', #PH/JR (also Mark IV, Fotodiox and Viltrox)
@@ -181,6 +182,7 @@ sub PrintInvLensSpec($;$$);
181
182
  32890 => 'Sony FE 400-800mm F6.3-8 G OSS', #JR
182
183
  32891 => 'Sony FE 50-150mm F2 GM', #github335
183
184
  32893 => 'Sony FE 100mm F2.8 Macro GM OSS', #JR
185
+ 32895 => 'Sony FE 100-400mm F4.5 GM OSS',
184
186
 
185
187
  # (comment this out so LensID will report the LensModel, which is more useful)
186
188
  # 32952 => 'Metabones Canon EF Speed Booster Ultra', #JR (corresponds to 184, but 'Advanced' mode, LensMount reported as E-mount)
@@ -207,6 +209,8 @@ sub PrintInvLensSpec($;$$);
207
209
  33092 => 'Sony FE 400-800mm F6.3-8 G OSS + 2X Teleconverter', #JR
208
210
  33093 => 'Sony FE 100mm F2.8 Macro GM OSS + 1.4X Teleconverter', #JR (NC)
209
211
  33094 => 'Sony FE 100mm F2.8 Macro GM OSS + 2X Teleconverter', #JR
212
+ 33095 => 'Sony FE 100-400mm F4.5 GM OSS + 1.4X Teleconverter', #JR (NC)
213
+ 33096 => 'Sony FE 100-400mm F4.5 GM OSS + 2X Teleconverter', #JR
210
214
 
211
215
  49201 => 'Zeiss Touit 12mm F2.8 or other Touit lens', #JR (lens firmware Ver.02) / github342 (firmware Ver.02.001)
212
216
  49201.1 => 'Zeiss Touit 32mm F1.8', #github342 (firmware Ver.02.001)
@@ -255,9 +259,11 @@ sub PrintInvLensSpec($;$$);
255
259
  49474.6 => 'Viltrox 33mm F1.4 E', #JR
256
260
  49474.7 => 'Viltrox 35mm F1.8 FE', #JR
257
261
  49474.8 => 'Viltrox 50mm F1.8 FE', #JR
258
- 49474.9 => 'Viltrox 75mm F1.2 E', #JR
259
- '49474.10' => 'Viltrox 20mm F2.8 FE', #JR
260
- '49474.11' => 'Viltrox AF 135/1.8 LAB FE', #JR
262
+ 49474.9 => 'Viltrox 75mm F1.2 E Pro', #JR
263
+ '49474.10' => 'Viltrox 20mm F2.8 FE Air', #JR
264
+ '49474.11' => 'Viltrox 135mm F1.8 FE LAB', #JR
265
+ '49474.12' => 'Viltrox 27mm F1.2 E Pro',
266
+ '49474.13' => 'Viltrox 56mm F1.4 E', #JR
261
267
  49475 => 'Tamron 50-300mm F4.5-6.3 Di III VC VXD', #JR (Model A069)
262
268
  49476 => 'Tamron 28-300mm F4-7.1 Di III VC VXD', #JR (Model A074)
263
269
  49477 => 'Tamron 90mm F2.8 Di III Macro VXD', #JR (Model F072)
@@ -332,6 +338,8 @@ sub PrintInvLensSpec($;$$);
332
338
  50557 => 'Sigma 200mm F2 DG OS | S', #github352/JR (025)
333
339
  50558 => 'Sigma 20-200mm F3.5-6.3 DG | C', #github352/JR (025)
334
340
  50559 => 'Sigma 135mm F1.4 DG | A', #github352/JR (025)
341
+ 50563 => 'Sigma 35mm F1.4 DG II | A', # (026)
342
+ 50564 => 'Sigma 15mm F1.4 DC | C', # (026)
335
343
 
336
344
  # lenses listed in the Sigma MC-11 list, but not yet seen:
337
345
  # 504xx => 'Sigma 18-200mm F3.5-6.3 DC MACRO OS HSM | C + MC-11', # (014)
@@ -353,6 +361,7 @@ sub PrintInvLensSpec($;$$);
353
361
  51007 => 'Voigtlander NOKTON 50mm F1 Aspherical', #JR
354
362
  51008 => 'Voigtlander NOKTON 75mm F1.5 Aspherical', #JR
355
363
  51009 => 'Voigtlander NOKTON 28mm F1.5 Aspherical', #JR
364
+ 51011 => 'Voigtlander APO-LANTHAR 28mm F2 Aspherical',
356
365
 
357
366
  51072 => 'ZEISS Otus ML 50mm F1.4', #JR
358
367
  51073 => 'ZEISS Otus ML 85mm F1.4', #JR
@@ -377,13 +386,23 @@ sub PrintInvLensSpec($;$$);
377
386
  61569 => 'LAOWA FFII 10mm F2.8 C&D Dreamer', #JR
378
387
  61572 => 'LAOWA FFII 12mm F2.8 C&D Dreamer', #JR
379
388
 
389
+ 61600 => 'Thypoch AF 24-50mm F2.8 FE',
390
+
380
391
  61760 => 'Viltrox 135mm F1.8 FE LAB', #JR
381
392
  61761 => 'Viltrox 28mm F4.5 FE', #JR
382
393
  61762 => 'Viltrox 35mm F1.2 FE LAB', #JR
383
- 61763 => 'Viltrox 85mm F1.4 FE PRO', #JR
384
- 61767 => 'Viltrox 50mm F2.0 FE AIR', #JR
385
- 61776 => 'Viltrox 50mm F1.4 FE PRO', #JR
394
+ 61763 => 'Viltrox 85mm F1.4 FE Pro', #JR
395
+ 61766 => 'Viltrox 40mm F2.5 FE Air',
396
+ 61767 => 'Viltrox 50mm F2.0 FE Air', #JR
397
+ 61768 => 'Viltrox 25mm F1.7 E Air',
398
+ 61776 => 'Viltrox 50mm F1.4 FE Pro', #JR
399
+ 61777 => 'Viltrox 9mm F2.8 E Air',
400
+ 61778 => 'Viltrox 14mm F4.0 FE Air',
401
+ 61779 => 'Viltrox 56mm F1.2 E Pro',
386
402
  61780 => 'Viltrox 85mm F2.0 FE EVO', #JR
403
+ 61781 => 'Viltrox 55mm F1.8 FE EVO',
404
+ 61783 => 'Viltrox 15mm F1.7 E Air',
405
+ 61789 => 'Viltrox 35mm F1.8 II FE EVO',
387
406
  );
388
407
 
389
408
  # ExposureProgram values (ref PH, mainly decoded from A200)
@@ -1774,7 +1793,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1774
1793
  # from mid-2015: ILCE-7RM2/7SM2/6300 and newer models use different offsets
1775
1794
  {
1776
1795
  Name => 'Tag9050a',
1777
- Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(1|6100|6300|6400|6500|6600|6700|7C|7M3|7M4|7M5|7RM2|7RM3A?|7RM4A?|7RM5|7SM2|7SM3|9|9M2)|ILCA-99M2|ILME-(FX2|FX3)|ZV-)/',
1796
+ Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(1|6100|6300|6400|6500|6600|6700|7C|7M3|7M4|7M5|7RM2|7RM3A?|7RM4A?|7RM5|7RM6|7SM2|7SM3|9|9M2)|ILCA-99M2|ILME-(FX2|FX3)|ZV-)/',
1778
1797
  SubDirectory => {
1779
1798
  TagTable => 'Image::ExifTool::Sony::Tag9050a',
1780
1799
  ByteOrder => 'LittleEndian',
@@ -1795,7 +1814,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1795
1814
  },
1796
1815
  },{
1797
1816
  Name => 'Tag9050d',
1798
- Condition => '$$self{Model} =~ /^(ILCE-(6700|7CM2|7CR)|ILME-FX2|ZV-(E1|E10M2))\b/ or ($$self{Model} =~ /^(ILCE-(1M2|7M5))/ and $$valPt =~ /^\x00\x00\x00\x00\x00/)',
1817
+ Condition => '$$self{Model} =~ /^(ILCE-(6700|7CM2|7CR)|ILME-FX2|ZV-(E1|E10M2))\b/ or ($$self{Model} =~ /^(ILCE-(1M2|7M5|7RM6))/ and $$valPt =~ /^\x00\x00\x00\x00\x00/)',
1799
1818
  SubDirectory => {
1800
1819
  TagTable => 'Image::ExifTool::Sony::Tag9050d',
1801
1820
  ByteOrder => 'LittleEndian',
@@ -1819,7 +1838,8 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1819
1838
  # 0x32 (e) for ILCE-7RM5, ILME-FX30
1820
1839
  # 0x33 (e) for ILCE-6700/7CM2/7CR/9M3, ZV-E1
1821
1840
  # 0x41 (e) for ILCE-7M5
1822
- # first byte decoded: 40, 204, 202, 27, 58, 62, 48, 215, 28, 106, 89, 63, 92 respectively
1841
+ # 0x43 (e) for ILCE-7RM6
1842
+ # first byte decoded: 40, 204, 202, 27, 58, 62, 48, 215, 28, 106, 89, 63, 92, 232 respectively
1823
1843
  {
1824
1844
  Name => 'Tag9400a',
1825
1845
  Condition => q{
@@ -1833,7 +1853,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1833
1853
  SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9400b' },
1834
1854
  },{
1835
1855
  Name => 'Tag9400c',
1836
- Condition => '$$valPt =~ /^[\x23\x24\x26\x28\x31\x32\x33\x41]/',
1856
+ Condition => '$$valPt =~ /^[\x23\x24\x26\x28\x31\x32\x33\x41\x43]/',
1837
1857
  SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9400c' },
1838
1858
  },{
1839
1859
  Name => 'Sony_0x9400',
@@ -2245,6 +2265,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
2245
2265
  406 => 'ILME-FX2', #JR
2246
2266
  407 => 'ILCE-7M5', #PH
2247
2267
  408 => 'ZV-1A', #JR
2268
+ 410 => 'ILCE-7RM6',
2248
2269
  },
2249
2270
  },
2250
2271
  0xb020 => { #2
@@ -2326,6 +2347,9 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
2326
2347
  18 => 'Lv3',
2327
2348
  19 => 'Lv4',
2328
2349
  20 => 'Lv5',
2350
+ 21 => 'Lv6', # (ILCE-7RM6)
2351
+ 22 => 'Lv7',
2352
+ 23 => 'Lv8',
2329
2353
  },
2330
2354
  },
2331
2355
  0xb026 => { #PH (A100)
@@ -8288,8 +8312,8 @@ my %isoSetting2010 = (
8288
8312
  CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
8289
8313
  FORMAT => 'int8u',
8290
8314
  NOTES => q{
8291
- Valid for ILCE-6700/7CM2/7CR/ZV-E1. Also for ILCE-1M2/7M5 when using mechanical
8292
- shutter.
8315
+ Valid for ILCE-6700/7CM2/7CR/ZV-E1. Also for ILCE-1M2/7M5/7RM6 when using
8316
+ mechanical shutter.
8293
8317
  },
8294
8318
  WRITABLE => 1,
8295
8319
  FIRST_ENTRY => 0,
@@ -8297,7 +8321,7 @@ my %isoSetting2010 = (
8297
8321
  0x000a => {
8298
8322
  Name => 'ShutterCount',
8299
8323
  # number of mechanical shutter actuations, does not increase during electronic shutter / Silent Shooting
8300
- Condition => '$$self{Model} =~ /^(ILCE-(1M2|6700|7CM2|7CR|7M5)|ILME-FX2)/',
8324
+ Condition => '$$self{Model} =~ /^(ILCE-(1M2|6700|7CM2|7CR|7M5|7RM6)|ILME-FX2)/',
8301
8325
  Format => 'int32u',
8302
8326
  Notes => 'total number of mechanical shutter actuations',
8303
8327
  RawConv => '$val & 0x00ffffff',
@@ -8312,7 +8336,7 @@ my %isoSetting2010 = (
8312
8336
  },
8313
8337
  0x001c => { # appr. same value as Exif ExposureTime, but not valid in HDR-modes
8314
8338
  Name => 'SonyFNumber',
8315
- Condition => '$$self{Model} !~ /^(ILCE-7M5)/',
8339
+ Condition => '$$self{Model} !~ /^(ILCE-(1M2|7M5|7RM6))/',
8316
8340
  Format => 'int16u',
8317
8341
  ValueConv => '2 ** (($val/256 - 16) / 2)',
8318
8342
  ValueConvInv => '(log($val)*2/log(2)+16)*256',
@@ -8497,9 +8521,6 @@ my %isoSetting2010 = (
8497
8521
  CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
8498
8522
  FORMAT => 'int8u',
8499
8523
  WRITABLE => 1,
8500
- FIRST_ENTRY => 0,
8501
- GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
8502
- DATAMEMBER => [ 0x1e ],
8503
8524
  NOTES => q{
8504
8525
  Valid for DSC-HX60V/HX80/HX90V/HX99/HX350/HX400V/QX30/RX0/RX1RM2/RX10/
8505
8526
  RX10M2/RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/RX100M7/WX220/
@@ -8508,6 +8529,7 @@ my %isoSetting2010 = (
8508
8529
  },
8509
8530
  FIRST_ENTRY => 0,
8510
8531
  GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
8532
+ DATAMEMBER => [ 0x1e ],
8511
8533
  0x0009 => { %releaseMode2 },
8512
8534
  0x000a => {
8513
8535
  Name => 'ShotNumberSincePowerUp',
@@ -8535,11 +8557,11 @@ my %isoSetting2010 = (
8535
8557
  200 => 'Continuous - Sweep Panorama',
8536
8558
  },
8537
8559
  },
8538
- 0x001a => { %sequenceFileNumber }, # ILCE-9M3/1M2 have sometimes deviating values.
8560
+ 0x001a => { %sequenceFileNumber }, # ILCE-9M3/1M2/7RM6 have sometimes deviating values.
8539
8561
  0x001e => {
8540
8562
  Name => 'SequenceLength',
8541
8563
  Notes => 'offsets after this are shifted by -1 for the ILCE-7M5',
8542
- Hook => '$varSize -= 1 if $$self{Model} =~ /^(ILCE-7M5)/',
8564
+ Hook => '$varSize -= 1 if $$self{Model} =~ /^(ILCE-(7M5|7RM6))/',
8543
8565
  PrintConv => {
8544
8566
  0 => 'Continuous',
8545
8567
  1 => '1 file',
@@ -8562,7 +8584,7 @@ my %isoSetting2010 = (
8562
8584
  },
8563
8585
  0x002a => [{
8564
8586
  Name => 'Quality2',
8565
- Condition => '$$self{Model} !~ /^(DSC-RX1RM3|ILCE-(1|1M2|6700|7CM2|7CR|7M4|7M5|7RM5|7SM3|9M3)|ILME-(FX2|FX3A?|FX30)|ZV-(E1|E10M2))\b/',
8587
+ Condition => '$$self{Model} !~ /^(DSC-RX1RM3|ILCE-(1|1M2|6700|7CM2|7CR|7M4|7M5|7RM5|7RM6|7SM3|9M3)|ILME-(FX2|FX3A?|FX30)|ILX-LR1|ZV-(E1|E10M2))\b/',
8566
8588
  PrintConv => {
8567
8589
  0 => 'JPEG',
8568
8590
  1 => 'RAW',
@@ -8587,7 +8609,7 @@ my %isoSetting2010 = (
8587
8609
  # },
8588
8610
  0x0053 => {
8589
8611
  Name => 'ModelReleaseYear',
8590
- Condition => '$$self{Model} !~ /^(DSC-RX1RM3|ILCE-(1|6700|7CM2|7CR|7M4|7M5|7RM5|7SM3|9M3)|ILME-(FX2|FX3A?|FX30)|ZV-(E1|E10M2))\b/',
8612
+ Condition => '$$self{Model} !~ /^(DSC-RX1RM3|ILCE-(1|6700|7CM2|7CR|7M4|7M5|7RM5|7RM6|7SM3|9M3)|ILME-(FX2|FX3A?|FX30)|ZV-(E1|E10M2))\b/',
8591
8613
  Format => 'int8u',
8592
8614
  PrintConv => 'sprintf("20%.2d", $val)',
8593
8615
  },
@@ -8631,7 +8653,7 @@ my %isoSetting2010 = (
8631
8653
 
8632
8654
  0x03e2 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 181', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8633
8655
  0x03f4 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(185|186|187)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8634
- 0x044e => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 178', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8656
+ 0x044e => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(178|201)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8635
8657
  0x0453 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 198', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8636
8658
  0x0498 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 148', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8637
8659
  0x049d => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 167 and $$self{Software} !~ /^ILCE-7M4 (v2|v3)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
@@ -9961,8 +9983,8 @@ my %isoSetting2010 = (
9961
9983
  FORMAT => 'int8u',
9962
9984
  DATAMEMBER => [ 0x00, 0x37 ],
9963
9985
  NOTES => q{
9964
- Valid for the ILCE-1/6700/7CM2/7CR/7M4/7M5/7RM5/7SM3/9M3, ILME-FX2/FX3/FX30,
9965
- ZV-E1/E10M2, but ILCE-7M5 has different offsets.
9986
+ Valid for the ILCE-1/6700/7CM2/7CR/7M4/7M5/7RM5/7RM6/7SM3/9M3,
9987
+ ILME-FX2/FX3/FX30, ZV-E1/E10M2, but ILCE-7M5 has different offsets.
9966
9988
  },
9967
9989
  FIRST_ENTRY => 0,
9968
9990
  GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
@@ -9970,7 +9992,7 @@ my %isoSetting2010 = (
9970
9992
  Name => 'Tag9416_0000',
9971
9993
  Hidden => 1, # (hide from documentation)
9972
9994
  Notes => 'offsets after this are shifted by +4 for the ILCE-7M5',
9973
- Hook => '$varSize += 4 if $$self{Model} =~ /^(ILCE-7M5)/',
9995
+ Hook => '$varSize += 4 if $$self{Model} =~ /^(ILCE-(7M5|7RM6))/',
9974
9996
  PrintConv => 'sprintf("%3d",$val)',
9975
9997
  RawConv => '$$self{TagVersion} = $val; undef', # (used only to set TagVersion)
9976
9998
  },
@@ -10016,7 +10038,7 @@ my %isoSetting2010 = (
10016
10038
  0x001d => { %sequenceImageNumber },
10017
10039
  0x002b => {
10018
10040
  Notes => 'offsets after this are shifted by -2 for the ILCE-7M5',
10019
- Hook => '$varSize -= 2 if $$self{Model} =~ /^(ILCE-7M5)/',
10041
+ Hook => '$varSize -= 2 if $$self{Model} =~ /^(ILCE-(7M5|7RM6))/',
10020
10042
  %releaseMode2,
10021
10043
  },
10022
10044
  0x0035 => {
@@ -10028,7 +10050,7 @@ my %isoSetting2010 = (
10028
10050
  0x0037 => {
10029
10051
  Name => 'CreativeStyle',
10030
10052
  Notes => 'offsets after this are shifted by 1 for the ILME-FX2 and ILCE-7M5',
10031
- Hook => '$varSize += 1 if $$self{Model} =~ /^(ILME-FX2|ILCE-7M5)/',
10053
+ Hook => '$varSize += 1 if $$self{Model} =~ /^(ILME-FX2|ILCE-(7M5|7RM6))/',
10032
10054
  PrintConv => {
10033
10055
  0 => 'Standard',
10034
10056
  1 => 'Vivid',
@@ -10134,6 +10156,11 @@ my %isoSetting2010 = (
10134
10156
  Condition => '$$self{Model} =~ /^(ILCE-7M5)\b/',
10135
10157
  Format => 'int16s[32]',
10136
10158
  },
10159
+ 0x0708 => {
10160
+ Name => 'VignettingCorrParams',
10161
+ Condition => '$$self{Model} =~ /^(ILCE-7RM6)\b/',
10162
+ Format => 'int16s[32]',
10163
+ },
10137
10164
  0x074a => {
10138
10165
  Name => 'APS-CSizeCapture',
10139
10166
  Condition => '$$self{Model} =~ /^(ILCE-7M5)/',
@@ -10142,11 +10169,24 @@ my %isoSetting2010 = (
10142
10169
  1 => 'On',
10143
10170
  },
10144
10171
  },
10172
+ 0x074f => {
10173
+ Name => 'APS-CSizeCapture',
10174
+ Condition => '$$self{Model} =~ /^(ILCE-7RM6)/',
10175
+ PrintConv => {
10176
+ 0 => 'Off',
10177
+ 1 => 'On',
10178
+ },
10179
+ },
10145
10180
  0x083b => {
10146
10181
  Name => 'ChromaticAberrationCorrParams',
10147
10182
  Condition => '$$self{Model} =~ /^(ILCE-7M5)/',
10148
10183
  Format => 'int16s[32]',
10149
10184
  },
10185
+ 0x0843 => {
10186
+ Name => 'ChromaticAberrationCorrParams',
10187
+ Condition => '$$self{Model} =~ /^(ILCE-7RM6)/',
10188
+ Format => 'int16s[32]',
10189
+ },
10150
10190
  0x088f => {
10151
10191
  Name => 'VignettingCorrParams',
10152
10192
  Condition => '$$self{Model} =~ /^(ILCE-(1|7SM3)|ILME-FX3A?)\b/',
@@ -1898,25 +1898,25 @@ my %tagLookup = (
1898
1898
  'colortemptungsten' => { 42 => 0x27, 43 => 0x3f, 44 => 0x36, 45 => 0xa9, 46 => 0xe0, 47 => 0x81, 48 => 0x3a, 49 => 0x61, 52 => 0x7a, 53 => 0x93, 54 => 0x98, 55 => 0x9b, 411 => 0x56 },
1899
1899
  'colortempunknown' => { 42 => 0x13, 43 => 0x1f, 45 => 0x68, 46 => 0x7c, 48 => 0x21, 52 => 0x52, 53 => 0x52, 54 => 0x52, 55 => 0x5a },
1900
1900
  'colortempunknown10' => { 42 => 0x63, 43 => 0x9f, 45 => 0x95, 46 => 0xa9, 47 => 0xb8, 48 => 0x76, 52 => 0xa2, 53 => 0x7f, 54 => 0x7f, 55 => 0x87 },
1901
- 'colortempunknown11' => { 42 => 0x68, 43 => 0xa7, 45 => 0xbd, 46 => [0xae,0xb3], 47 => 0xbd, 48 => 0x7b, 52 => 0xa7, 53 => 0xa7, 54 => 0x84, 55 => 0xaf },
1902
- 'colortempunknown12' => { 42 => 0x6d, 43 => 0xaf, 45 => 0xc2, 46 => 0xb8, 47 => 0xc2, 48 => 0x80, 52 => 0xac, 53 => 0xac, 54 => 0xac, 55 => 0xb4 },
1903
- 'colortempunknown13' => { 42 => 0x72, 43 => 0xb7, 45 => 0xc7, 46 => 0xbd, 47 => 0xc7, 48 => 0x85, 52 => 0xb1, 53 => 0xb1, 54 => 0xb1, 55 => 0xb9 },
1904
- 'colortempunknown14' => { 45 => 0xcc, 46 => 0xc2, 47 => 0xcc, 48 => 0x8a, 52 => 0xb6, 53 => 0xb6, 54 => 0xb6, 55 => 0xbe },
1905
- 'colortempunknown15' => { 45 => 0xd1, 46 => 0xc7, 47 => 0xd1, 48 => 0x8f, 52 => 0xbb, 53 => 0xbb, 54 => 0xbb, 55 => 0xc3 },
1906
- 'colortempunknown16' => { 45 => 0xd6, 46 => 0xcc, 47 => 0xd6, 48 => 0xa3, 53 => 0xc0, 54 => 0xc0, 55 => 0xc8 },
1907
- 'colortempunknown17' => { 45 => 0xdb, 46 => 0xf4, 47 => 0xdb, 53 => 0xc5, 54 => 0xc5, 55 => 0xcd },
1908
- 'colortempunknown18' => { 45 => 0xe0, 46 => 0xf9, 47 => 0xe0, 53 => 0xca, 54 => 0xca, 55 => 0xd2 },
1909
- 'colortempunknown19' => { 45 => 0xe5, 46 => 0xfe, 47 => 0xe5, 53 => 0xcf, 54 => 0xcf, 55 => 0xd7 },
1901
+ 'colortempunknown11' => { 42 => 0x68, 43 => 0xa7, 45 => 0xbd, 46 => 0xae, 47 => 0xbd, 48 => 0x7b, 52 => 0xa7, 53 => 0xa7, 54 => 0x84, 55 => 0xaf },
1902
+ 'colortempunknown12' => { 42 => 0x6d, 43 => 0xaf, 45 => 0xc2, 46 => 0xb3, 47 => 0xc2, 48 => 0x80, 52 => 0xac, 53 => 0xac, 54 => 0xac, 55 => 0xb4 },
1903
+ 'colortempunknown13' => { 42 => 0x72, 43 => 0xb7, 45 => 0xc7, 46 => 0xb8, 47 => 0xc7, 48 => 0x85, 52 => 0xb1, 53 => 0xb1, 54 => 0xb1, 55 => 0xb9 },
1904
+ 'colortempunknown14' => { 45 => 0xcc, 46 => 0xbd, 47 => 0xcc, 48 => 0x8a, 52 => 0xb6, 53 => 0xb6, 54 => 0xb6, 55 => 0xbe },
1905
+ 'colortempunknown15' => { 45 => 0xd1, 46 => 0xc2, 47 => 0xd1, 48 => 0x8f, 52 => 0xbb, 53 => 0xbb, 54 => 0xbb, 55 => 0xc3 },
1906
+ 'colortempunknown16' => { 45 => 0xd6, 46 => 0xc7, 47 => 0xd6, 48 => 0xa3, 53 => 0xc0, 54 => 0xc0, 55 => 0xc8 },
1907
+ 'colortempunknown17' => { 45 => 0xdb, 46 => 0xcc, 47 => 0xdb, 53 => 0xc5, 54 => 0xc5, 55 => 0xcd },
1908
+ 'colortempunknown18' => { 45 => 0xe0, 46 => 0xf4, 47 => 0xe0, 53 => 0xca, 54 => 0xca, 55 => 0xd2 },
1909
+ 'colortempunknown19' => { 45 => 0xe5, 46 => 0xf9, 47 => 0xe5, 53 => 0xcf, 54 => 0xcf, 55 => 0xd7 },
1910
1910
  'colortempunknown2' => { 42 => 0x3b, 43 => 0x5f, 45 => 0x6d, 46 => 0x81, 47 => 0x90, 48 => 0x4e, 52 => 0x57, 53 => 0x57, 54 => 0x57, 55 => 0x5f },
1911
- 'colortempunknown20' => { 45 => 0xea, 46 => 0x103, 47 => 0xea, 53 => 0xd4, 54 => 0xd4, 55 => 0xdc },
1912
- 'colortempunknown21' => { 45 => 0xef, 46 => 0x108, 47 => 0xef, 54 => 0xd9, 55 => 0xe1 },
1913
- 'colortempunknown22' => { 45 => 0xf4, 46 => 0x10d, 47 => 0xf4, 54 => 0xde, 55 => 0xe6 },
1914
- 'colortempunknown23' => { 45 => 0xf9, 46 => 0x112, 47 => 0xf9, 54 => 0xe3, 55 => 0xeb },
1915
- 'colortempunknown24' => { 45 => 0xfe, 46 => 0x117, 47 => 0xfe, 54 => 0xe8, 55 => 0xf0 },
1916
- 'colortempunknown25' => { 45 => 0x103, 46 => 0x11c, 47 => 0x103, 54 => 0xed, 55 => 0xf5 },
1917
- 'colortempunknown26' => { 45 => 0x108, 46 => 0x121, 47 => 0x108, 54 => 0xf2, 55 => 0xfa },
1918
- 'colortempunknown27' => { 45 => 0x10d, 46 => 0x126, 47 => 0x10d, 54 => 0xf7, 55 => 0xff },
1919
- 'colortempunknown28' => { 45 => 0x112, 47 => 0x112, 54 => 0xfc, 55 => 0x104 },
1911
+ 'colortempunknown20' => { 45 => 0xea, 46 => 0xfe, 47 => 0xea, 53 => 0xd4, 54 => 0xd4, 55 => 0xdc },
1912
+ 'colortempunknown21' => { 45 => 0xef, 46 => 0x103, 47 => 0xef, 54 => 0xd9, 55 => 0xe1 },
1913
+ 'colortempunknown22' => { 45 => 0xf4, 46 => 0x108, 47 => 0xf4, 54 => 0xde, 55 => 0xe6 },
1914
+ 'colortempunknown23' => { 45 => 0xf9, 46 => 0x10d, 47 => 0xf9, 54 => 0xe3, 55 => 0xeb },
1915
+ 'colortempunknown24' => { 45 => 0xfe, 46 => 0x112, 47 => 0xfe, 54 => 0xe8, 55 => 0xf0 },
1916
+ 'colortempunknown25' => { 45 => 0x103, 46 => 0x117, 47 => 0x103, 54 => 0xed, 55 => 0xf5 },
1917
+ 'colortempunknown26' => { 45 => 0x108, 46 => 0x11c, 47 => 0x108, 54 => 0xf2, 55 => 0xfa },
1918
+ 'colortempunknown27' => { 45 => 0x10d, 46 => 0x121, 47 => 0x10d, 54 => 0xf7, 55 => 0xff },
1919
+ 'colortempunknown28' => { 45 => 0x112, 46 => 0x126, 47 => 0x112, 54 => 0xfc, 55 => 0x104 },
1920
1920
  'colortempunknown29' => { 45 => 0x117, 47 => 0x117, 54 => 0x101, 55 => 0x109 },
1921
1921
  'colortempunknown3' => { 42 => 0x40, 43 => 0x67, 45 => 0x72, 46 => 0x86, 47 => 0x95, 48 => 0x53, 52 => 0x5c, 53 => 0x5c, 54 => 0x5c, 55 => 0x64 },
1922
1922
  'colortempunknown30' => { 47 => 0x11c, 54 => 0x106 },
@@ -3712,6 +3712,7 @@ my %tagLookup = (
3712
3712
  'hastranslation' => { 556 => 'hasTranslation' },
3713
3713
  'hasvisibleoverprint' => { 571 => 'HasVisibleOverprint' },
3714
3714
  'hasvisibletransparency' => { 571 => 'HasVisibleTransparency' },
3715
+ 'hdf' => { 411 => 0x9e },
3715
3716
  'hdmioutputn-log' => { 263 => 0x35a },
3716
3717
  'hdmioutputresolution' => { 265 => 0x710, 266 => 0x770, 267 => 0x610, 268 => 0x640, 269 => 0x6a8 },
3717
3718
  'hdmiviewassist' => { 343 => 0x20f, 344 => 0x227 },
@@ -7658,25 +7659,25 @@ my %tagLookup = (
7658
7659
  'wb_rggblevelsuncorrected' => { 454 => 0xa021 },
7659
7660
  'wb_rggblevelsunknown' => { 42 => 0xf, 43 => 0x18, 45 => 0x64, 46 => 0x78, 48 => 0x1d, 52 => 0x4e, 53 => 0x4e, 54 => 0x4e, 55 => 0x56, 419 => 0x53 },
7660
7661
  'wb_rggblevelsunknown10' => { 42 => 0x5f, 43 => 0x98, 45 => 0x91, 46 => 0xa5, 47 => 0xb4, 48 => 0x72, 52 => 0x9e, 53 => 0x7b, 54 => 0x7b, 55 => 0x83 },
7661
- 'wb_rggblevelsunknown11' => { 42 => 0x64, 43 => 0xa0, 45 => 0xb9, 46 => [0xaa,0xaf], 47 => 0xb9, 48 => 0x77, 52 => 0xa3, 53 => 0xa3, 54 => 0x80, 55 => 0xab },
7662
- 'wb_rggblevelsunknown12' => { 42 => 0x69, 43 => 0xa8, 45 => 0xbe, 46 => 0xb4, 47 => 0xbe, 48 => 0x7c, 52 => 0xa8, 53 => 0xa8, 54 => 0xa8, 55 => 0xb0 },
7663
- 'wb_rggblevelsunknown13' => { 42 => 0x6e, 43 => 0xb0, 45 => 0xc3, 46 => 0xb9, 47 => 0xc3, 48 => 0x81, 52 => 0xad, 53 => 0xad, 54 => 0xad, 55 => 0xb5 },
7664
- 'wb_rggblevelsunknown14' => { 45 => 0xc8, 46 => 0xbe, 47 => 0xc8, 48 => 0x86, 52 => 0xb2, 53 => 0xb2, 54 => 0xb2, 55 => 0xba },
7665
- 'wb_rggblevelsunknown15' => { 45 => 0xcd, 46 => 0xc3, 47 => 0xcd, 48 => 0x8b, 52 => 0xb7, 53 => 0xb7, 54 => 0xb7, 55 => 0xbf },
7666
- 'wb_rggblevelsunknown16' => { 45 => 0xd2, 46 => 0xc8, 47 => 0xd2, 48 => 0x9f, 53 => 0xbc, 54 => 0xbc, 55 => 0xc4 },
7667
- 'wb_rggblevelsunknown17' => { 45 => 0xd7, 46 => 0xf0, 47 => 0xd7, 53 => 0xc1, 54 => 0xc1, 55 => 0xc9 },
7668
- 'wb_rggblevelsunknown18' => { 45 => 0xdc, 46 => 0xf5, 47 => 0xdc, 53 => 0xc6, 54 => 0xc6, 55 => 0xce },
7669
- 'wb_rggblevelsunknown19' => { 45 => 0xe1, 46 => 0xfa, 47 => 0xe1, 53 => 0xcb, 54 => 0xcb, 55 => 0xd3 },
7662
+ 'wb_rggblevelsunknown11' => { 42 => 0x64, 43 => 0xa0, 45 => 0xb9, 46 => 0xaa, 47 => 0xb9, 48 => 0x77, 52 => 0xa3, 53 => 0xa3, 54 => 0x80, 55 => 0xab },
7663
+ 'wb_rggblevelsunknown12' => { 42 => 0x69, 43 => 0xa8, 45 => 0xbe, 46 => 0xaf, 47 => 0xbe, 48 => 0x7c, 52 => 0xa8, 53 => 0xa8, 54 => 0xa8, 55 => 0xb0 },
7664
+ 'wb_rggblevelsunknown13' => { 42 => 0x6e, 43 => 0xb0, 45 => 0xc3, 46 => 0xb4, 47 => 0xc3, 48 => 0x81, 52 => 0xad, 53 => 0xad, 54 => 0xad, 55 => 0xb5 },
7665
+ 'wb_rggblevelsunknown14' => { 45 => 0xc8, 46 => 0xb9, 47 => 0xc8, 48 => 0x86, 52 => 0xb2, 53 => 0xb2, 54 => 0xb2, 55 => 0xba },
7666
+ 'wb_rggblevelsunknown15' => { 45 => 0xcd, 46 => 0xbe, 47 => 0xcd, 48 => 0x8b, 52 => 0xb7, 53 => 0xb7, 54 => 0xb7, 55 => 0xbf },
7667
+ 'wb_rggblevelsunknown16' => { 45 => 0xd2, 46 => 0xc3, 47 => 0xd2, 48 => 0x9f, 53 => 0xbc, 54 => 0xbc, 55 => 0xc4 },
7668
+ 'wb_rggblevelsunknown17' => { 45 => 0xd7, 46 => 0xc8, 47 => 0xd7, 53 => 0xc1, 54 => 0xc1, 55 => 0xc9 },
7669
+ 'wb_rggblevelsunknown18' => { 45 => 0xdc, 46 => 0xf0, 47 => 0xdc, 53 => 0xc6, 54 => 0xc6, 55 => 0xce },
7670
+ 'wb_rggblevelsunknown19' => { 45 => 0xe1, 46 => 0xf5, 47 => 0xe1, 53 => 0xcb, 54 => 0xcb, 55 => 0xd3 },
7670
7671
  'wb_rggblevelsunknown2' => { 42 => 0x37, 43 => 0x58, 45 => 0x69, 46 => 0x7d, 47 => 0x8c, 48 => 0x4a, 52 => 0x53, 53 => 0x53, 54 => 0x53, 55 => 0x5b },
7671
- 'wb_rggblevelsunknown20' => { 45 => 0xe6, 46 => 0xff, 47 => 0xe6, 53 => 0xd0, 54 => 0xd0, 55 => 0xd8 },
7672
- 'wb_rggblevelsunknown21' => { 45 => 0xeb, 46 => 0x104, 47 => 0xeb, 54 => 0xd5, 55 => 0xdd },
7673
- 'wb_rggblevelsunknown22' => { 45 => 0xf0, 46 => 0x109, 47 => 0xf0, 54 => 0xda, 55 => 0xe2 },
7674
- 'wb_rggblevelsunknown23' => { 45 => 0xf5, 46 => 0x10e, 47 => 0xf5, 54 => 0xdf, 55 => 0xe7 },
7675
- 'wb_rggblevelsunknown24' => { 45 => 0xfa, 46 => 0x113, 47 => 0xfa, 54 => 0xe4, 55 => 0xec },
7676
- 'wb_rggblevelsunknown25' => { 45 => 0xff, 46 => 0x118, 47 => 0xff, 54 => 0xe9, 55 => 0xf1 },
7677
- 'wb_rggblevelsunknown26' => { 45 => 0x104, 46 => 0x11d, 47 => 0x104, 54 => 0xee, 55 => 0xf6 },
7678
- 'wb_rggblevelsunknown27' => { 45 => 0x109, 46 => 0x122, 47 => 0x109, 54 => 0xf3, 55 => 0xfb },
7679
- 'wb_rggblevelsunknown28' => { 45 => 0x10e, 47 => 0x10e, 54 => 0xf8, 55 => 0x100 },
7672
+ 'wb_rggblevelsunknown20' => { 45 => 0xe6, 46 => 0xfa, 47 => 0xe6, 53 => 0xd0, 54 => 0xd0, 55 => 0xd8 },
7673
+ 'wb_rggblevelsunknown21' => { 45 => 0xeb, 46 => 0xff, 47 => 0xeb, 54 => 0xd5, 55 => 0xdd },
7674
+ 'wb_rggblevelsunknown22' => { 45 => 0xf0, 46 => 0x104, 47 => 0xf0, 54 => 0xda, 55 => 0xe2 },
7675
+ 'wb_rggblevelsunknown23' => { 45 => 0xf5, 46 => 0x109, 47 => 0xf5, 54 => 0xdf, 55 => 0xe7 },
7676
+ 'wb_rggblevelsunknown24' => { 45 => 0xfa, 46 => 0x10e, 47 => 0xfa, 54 => 0xe4, 55 => 0xec },
7677
+ 'wb_rggblevelsunknown25' => { 45 => 0xff, 46 => 0x113, 47 => 0xff, 54 => 0xe9, 55 => 0xf1 },
7678
+ 'wb_rggblevelsunknown26' => { 45 => 0x104, 46 => 0x118, 47 => 0x104, 54 => 0xee, 55 => 0xf6 },
7679
+ 'wb_rggblevelsunknown27' => { 45 => 0x109, 46 => 0x11d, 47 => 0x109, 54 => 0xf3, 55 => 0xfb },
7680
+ 'wb_rggblevelsunknown28' => { 45 => 0x10e, 46 => 0x122, 47 => 0x10e, 54 => 0xf8, 55 => 0x100 },
7680
7681
  'wb_rggblevelsunknown29' => { 45 => 0x113, 47 => 0x113, 54 => 0xfd, 55 => 0x105 },
7681
7682
  'wb_rggblevelsunknown3' => { 42 => 0x3c, 43 => 0x60, 45 => 0x6e, 46 => 0x82, 47 => 0x91, 48 => 0x4f, 52 => 0x58, 53 => 0x58, 54 => 0x58, 55 => 0x60 },
7682
7683
  'wb_rggblevelsunknown30' => { 47 => 0x118, 54 => 0x102 },
@@ -11431,6 +11432,7 @@ my %tagExists = (
11431
11432
  'newcolortype' => 1,
11432
11433
  'newguid' => 1,
11433
11434
  'newlines' => 1,
11435
+ 'newuuid' => 1,
11434
11436
  'nextbasemeta' => 1,
11435
11437
  'nexttrackid' => 1,
11436
11438
  'nifnonlinearity' => 1,
@@ -12139,7 +12141,6 @@ my %tagExists = (
12139
12141
  'radiostationowner' => 1,
12140
12142
  'rafcompression' => 1,
12141
12143
  'rafdata' => 1,
12142
- 'rafversion' => 1,
12143
12144
  'rangeimagelocalset' => 1,
12144
12145
  'rasterpadding' => 1,
12145
12146
  'rate' => 1,
@@ -13614,6 +13615,7 @@ my %tagExists = (
13614
13615
  'wb_grgblevelsdaylight' => 1,
13615
13616
  'wb_grgblevelsdaylightfluor' => 1,
13616
13617
  'wb_grgblevelsdaywhitefluor' => 1,
13618
+ 'wb_grgblevelsflash' => 1,
13617
13619
  'wb_grgblevelslivingroomwarmwhitefluor' => 1,
13618
13620
  'wb_grgblevelstungsten' => 1,
13619
13621
  'wb_grgblevelswarmwhitefluor' => 1,