exiftool_vendored 11.99.0 → 12.11.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.

Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +201 -2
  3. data/bin/MANIFEST +8 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +43 -42
  7. data/bin/exiftool +172 -99
  8. data/bin/lib/Image/ExifTool.pm +170 -117
  9. data/bin/lib/Image/ExifTool.pod +132 -97
  10. data/bin/lib/Image/ExifTool/AIFF.pm +2 -2
  11. data/bin/lib/Image/ExifTool/APE.pm +2 -2
  12. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +21 -10
  13. data/bin/lib/Image/ExifTool/Canon.pm +202 -13
  14. data/bin/lib/Image/ExifTool/CanonCustom.pm +82 -16
  15. data/bin/lib/Image/ExifTool/DPX.pm +56 -2
  16. data/bin/lib/Image/ExifTool/DarwinCore.pm +22 -3
  17. data/bin/lib/Image/ExifTool/EXE.pm +8 -5
  18. data/bin/lib/Image/ExifTool/Exif.pm +15 -6
  19. data/bin/lib/Image/ExifTool/Font.pm +9 -2
  20. data/bin/lib/Image/ExifTool/GIF.pm +6 -1
  21. data/bin/lib/Image/ExifTool/GeoTiff.pm +2 -0
  22. data/bin/lib/Image/ExifTool/Geotag.pm +2 -2
  23. data/bin/lib/Image/ExifTool/GoPro.pm +48 -22
  24. data/bin/lib/Image/ExifTool/H264.pm +1 -1
  25. data/bin/lib/Image/ExifTool/ID3.pm +86 -12
  26. data/bin/lib/Image/ExifTool/IPTC.pm +1 -0
  27. data/bin/lib/Image/ExifTool/Import.pm +12 -9
  28. data/bin/lib/Image/ExifTool/JSON.pm +27 -4
  29. data/bin/lib/Image/ExifTool/Lang/de.pm +3 -1
  30. data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  31. data/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  32. data/bin/lib/Image/ExifTool/MPF.pm +2 -2
  33. data/bin/lib/Image/ExifTool/MacOS.pm +154 -38
  34. data/bin/lib/Image/ExifTool/Matroska.pm +3 -1
  35. data/bin/lib/Image/ExifTool/Minolta.pm +7 -2
  36. data/bin/lib/Image/ExifTool/Nikon.pm +143 -17
  37. data/bin/lib/Image/ExifTool/Olympus.pm +40 -17
  38. data/bin/lib/Image/ExifTool/PNG.pm +14 -3
  39. data/bin/lib/Image/ExifTool/PPM.pm +5 -5
  40. data/bin/lib/Image/ExifTool/Panasonic.pm +148 -14
  41. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +34 -0
  42. data/bin/lib/Image/ExifTool/Parrot.pm +2 -1
  43. data/bin/lib/Image/ExifTool/Pentax.pm +11 -3
  44. data/bin/lib/Image/ExifTool/Photoshop.pm +2 -1
  45. data/bin/lib/Image/ExifTool/QuickTime.pm +240 -37
  46. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +419 -60
  47. data/bin/lib/Image/ExifTool/README +25 -21
  48. data/bin/lib/Image/ExifTool/RSRC.pm +17 -11
  49. data/bin/lib/Image/ExifTool/Radiance.pm +7 -2
  50. data/bin/lib/Image/ExifTool/Ricoh.pm +19 -1
  51. data/bin/lib/Image/ExifTool/Shift.pl +1 -0
  52. data/bin/lib/Image/ExifTool/SigmaRaw.pm +40 -33
  53. data/bin/lib/Image/ExifTool/Sony.pm +423 -39
  54. data/bin/lib/Image/ExifTool/Stim.pm +2 -2
  55. data/bin/lib/Image/ExifTool/TagLookup.pm +5798 -5675
  56. data/bin/lib/Image/ExifTool/TagNames.pod +575 -100
  57. data/bin/lib/Image/ExifTool/Validate.pm +4 -4
  58. data/bin/lib/Image/ExifTool/WriteExif.pl +1 -0
  59. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +30 -21
  60. data/bin/lib/Image/ExifTool/Writer.pl +49 -24
  61. data/bin/lib/Image/ExifTool/XMP.pm +99 -17
  62. data/bin/lib/Image/ExifTool/XMP2.pl +1 -0
  63. data/bin/lib/Image/ExifTool/XMPStruct.pl +3 -1
  64. data/bin/lib/Image/ExifTool/ZISRAW.pm +123 -0
  65. data/bin/perl-Image-ExifTool.spec +42 -41
  66. data/lib/exiftool_vendored/version.rb +1 -1
  67. metadata +9 -8
@@ -27,6 +27,7 @@
27
27
  # 19) Brad Grier private communication
28
28
  # 22) Herbert Kauer private communication
29
29
  # 23) Daniel Pollock private communication (PEN-F)
30
+ # 24) Sebastian private communication (E-M1 Mark III)
30
31
  # IB) Iliah Borg private communication (LibRaw)
31
32
  # NJ) Niels Kristian Bech Jensen private communication
32
33
  #------------------------------------------------------------------------------
@@ -39,7 +40,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
39
40
  use Image::ExifTool::Exif;
40
41
  use Image::ExifTool::APP12;
41
42
 
42
- $VERSION = '2.65';
43
+ $VERSION = '2.70';
43
44
 
44
45
  sub PrintLensInfo($$$);
45
46
 
@@ -108,6 +109,7 @@ my %olympusLensTypes = (
108
109
  '0 32 00' => 'Olympus Zuiko Digital ED 14-35mm F2.0 SWD', #PH
109
110
  '0 32 10' => 'Olympus M.Zuiko Digital ED 12-200mm F3.5-6.3', #IB
110
111
  '0 33 00' => 'Olympus Zuiko Digital 25mm F2.8', #PH
112
+ '0 33 10' => 'Olympus M.Zuiko Digital 150-400mm F4.5 TC1.25x IS Pro', #IB
111
113
  '0 34 00' => 'Olympus Zuiko Digital ED 9-18mm F4.0-5.6', #7
112
114
  '0 34 10' => 'Olympus M.Zuiko Digital ED 12-45mm F4.0 Pro', #IB
113
115
  '0 35 00' => 'Olympus Zuiko Digital 14-54mm F2.8-3.5 II', #PH
@@ -172,6 +174,7 @@ my %olympusLensTypes = (
172
174
  '2 28 10' => 'Lumix G Vario 12-60mm F3.5-5.6 Asph. Power OIS', #NJ
173
175
  '2 29 10' => 'Leica DG Summilux 12mm F1.4 Asph.', #IB
174
176
  '2 30 10' => 'Leica DG Vario-Elmarit 12-60mm F2.8-4 Asph. Power OIS', #IB
177
+ '2 31 10' => 'Lumix G Vario 45-200mm F4.0-5.6 II', #forum3833
175
178
  '2 32 10' => 'Lumix G Vario 100-300mm F4.0-5.6 II', #PH
176
179
  '2 33 10' => 'Lumix G X Vario 12-35mm F2.8 II Asph. Power OIS', #IB
177
180
  '2 34 10' => 'Lumix G Vario 35-100mm F2.8 II', #forum3833
@@ -184,6 +187,8 @@ my %olympusLensTypes = (
184
187
  # Tamron lenses
185
188
  '5 01 10' => 'Tamron 14-150mm F3.5-5.8 Di III', #NJ (model C001)
186
189
  # '65535 07 40' - Seen for LUMIX S 16-35/F4 on Panasonic DC-S1H (ref PH)
190
+ # Other makes
191
+ '24 01 10' => 'Venus Optics Laowa 50mm F2.8 2x Macro', #DonKomarechka
187
192
  );
188
193
 
189
194
  # lookup for Olympus camera types (ref PH)
@@ -1836,6 +1841,7 @@ my %indexInfo = (
1836
1841
  6 => 'Imager AF',
1837
1842
  7 => 'Live View Magnification Frame',
1838
1843
  8 => 'AF sensor',
1844
+ 9 => 'Starry Sky AF', #24
1839
1845
  },
1840
1846
  }],
1841
1847
  },
@@ -1893,9 +1899,13 @@ my %indexInfo = (
1893
1899
  },
1894
1900
  0x307 => { #15
1895
1901
  Name => 'AFFineTuneAdj',
1896
- Format => 'int16s',
1902
+ Writable => 'int16s',
1897
1903
  Count => 3, # not sure what the 3 values mean
1898
1904
  },
1905
+ 0x308 => { #forum11578
1906
+ Name => 'FocusBracketStepSize',
1907
+ Writable => 'int8u',
1908
+ },
1899
1909
  0x400 => { #6
1900
1910
  Name => 'FlashMode',
1901
1911
  Writable => 'int16u',
@@ -2120,6 +2130,11 @@ my %indexInfo = (
2120
2130
  67 => 'Soft Background Shot', #11
2121
2131
  142 => 'Hand-held Starlight', #PH (SH-21)
2122
2132
  154 => 'HDR', #PH (XZ-2)
2133
+ 197 => 'Panning', #forum11631 (EM5iii)
2134
+ 203 => 'Light Trails', #forum11631 (EM5iii)
2135
+ 204 => 'Backlight HDR', #forum11631 (EM5iii)
2136
+ 205 => 'Silent', #forum11631 (EM5iii)
2137
+ 206 => 'Multi Focus Shot', #forum11631 (EM5iii)
2123
2138
  },
2124
2139
  },
2125
2140
  0x50a => { #PH/4/6
@@ -2511,6 +2526,8 @@ my %indexInfo = (
2511
2526
  Count => 2,
2512
2527
  PrintConv => {
2513
2528
  '0 0' => 'No',
2529
+ '1 *' => 'Live Composite (* images)', #24
2530
+ '4 *' => 'Live Time/Bulb (* images)', #24
2514
2531
  '3 2' => 'ND2 (1EV)', #IB
2515
2532
  '3 4' => 'ND4 (2EV)', #IB
2516
2533
  '3 8' => 'ND8 (3EV)', #IB
@@ -2519,21 +2536,26 @@ my %indexInfo = (
2519
2536
  '5 4' => 'HDR1', #forum8906
2520
2537
  '6 4' => 'HDR2', #forum8906
2521
2538
  '8 8' => 'Tripod high resolution', #IB
2522
- '9 2' => 'Focus-stacked (2 images)', #IB
2523
- '9 3' => 'Focus-stacked (3 images)', #IB
2524
- '9 4' => 'Focus-stacked (4 images)', #IB
2525
- '9 5' => 'Focus-stacked (5 images)', #IB
2526
- '9 6' => 'Focus-stacked (6 images)', #IB
2527
- '9 7' => 'Focus-stacked (7 images)', #IB
2528
- '9 8' => 'Focus-stacked (8 images)',
2529
- '9 9' => 'Focus-stacked (9 images)', #IB
2530
- '9 10' => 'Focus-stacked (10 images)', #IB
2531
- '9 11' => 'Focus-stacked (11 images)', #IB
2532
- '9 12' => 'Focus-stacked (12 images)', #IB
2533
- '9 13' => 'Focus-stacked (13 images)', #IB
2534
- '9 14' => 'Focus-stacked (14 images)', #IB
2535
- '9 15' => 'Focus-stacked (15 images)', #IB
2536
- '11 16' => 'Hand-held high resolution', #IB
2539
+ '9 *' => 'Focus-stacked (* images)', #IB (* = 2-15)
2540
+ '11 16' => 'Hand-held high resolution', #IB (perhaps '11 15' would be possible, ref 24)
2541
+ OTHER => sub {
2542
+ my ($val, $inv, $conv) = @_;
2543
+ if ($inv) {
2544
+ $val = lc $val;
2545
+ return undef unless $val =~ s/(\d+) images/\* images/;
2546
+ my $num = $1;
2547
+ foreach (keys %$conv) {
2548
+ next unless $val eq lc $$conv{$_};
2549
+ ($val = $_) =~ s/\*/$num/ or return undef;
2550
+ return $val;
2551
+ }
2552
+ } else {
2553
+ return "Unknown ($_[0])" unless $val =~ s/ (\d+)/ \*/ and $$conv{$val};
2554
+ my $num = $1;
2555
+ ($val = $$conv{$val}) =~ s/\*/$num/;
2556
+ return $val;
2557
+ }
2558
+ },
2537
2559
  },
2538
2560
  },
2539
2561
  0x900 => { #11
@@ -2894,6 +2916,7 @@ my %indexInfo = (
2894
2916
  Count => 2,
2895
2917
  PrintConv => [{
2896
2918
  0 => 'Off',
2919
+ 1 => 'Live Composite', #github issue#61
2897
2920
  2 => 'On (2 frames)',
2898
2921
  3 => 'On (3 frames)',
2899
2922
  }],
@@ -36,7 +36,7 @@ use strict;
36
36
  use vars qw($VERSION $AUTOLOAD %stdCase);
37
37
  use Image::ExifTool qw(:DataAccess :Utils);
38
38
 
39
- $VERSION = '1.54';
39
+ $VERSION = '1.55';
40
40
 
41
41
  sub ProcessPNG_tEXt($$$);
42
42
  sub ProcessPNG_iTXt($$$);
@@ -311,6 +311,18 @@ my %noLeapFrog = ( SAVE => 1, SEEK => 1, IHDR => 1, JHDR => 1, IEND => 1, MEND =
311
311
  },
312
312
  # fcTL - animation frame control for each frame
313
313
  # fdAT - animation data for each frame
314
+ iDOT => { # (ref NealKrawetz)
315
+ Name => 'AppleDataOffsets',
316
+ Binary => 1,
317
+ # Apple offsets into data relative to start of iDOT chunk:
318
+ # int32u Divisor [only ever seen 2]
319
+ # int32u Unknown [always 0]
320
+ # int32u TotalDividedHeight [image height from IDHR/Divisor]
321
+ # int32u Size [always 40 / 0x28; size of this chunk]
322
+ # int32u DividedHeight1
323
+ # int32u DividedHeight2
324
+ # int32u IDAT_Offset2 [location of IDAT with start of DividedHeight2 segment]
325
+ },
314
326
  );
315
327
 
316
328
  # PNG IHDR chunk
@@ -1342,8 +1354,7 @@ sub ProcessPNG($$)
1342
1354
  } elsif ($hdrChunk eq 'IHDR' and $chunk eq 'CgBI') {
1343
1355
  $et->Warn('Non-standard PNG image (Apple iPhone format)');
1344
1356
  } else {
1345
- $et->Warn("$fileType image did not start with $hdrChunk");
1346
- last;
1357
+ $et->WarnOnce("$fileType image did not start with $hdrChunk");
1347
1358
  }
1348
1359
  }
1349
1360
  if ($outfile and ($isDatChunk{$chunk} or $chunk eq $endChunk) and @txtOffset) {
@@ -16,7 +16,7 @@ use strict;
16
16
  use vars qw($VERSION);
17
17
  use Image::ExifTool qw(:DataAccess :Utils);
18
18
 
19
- $VERSION = '1.09';
19
+ $VERSION = '1.10';
20
20
 
21
21
  #------------------------------------------------------------------------------
22
22
  # Read or write information in a PPM/PGM/PBM image
@@ -48,19 +48,19 @@ sub ProcessPPM($$)
48
48
  # note: may contain comments starting with '#'
49
49
  if ($buff =~ /\G#/gc) {
50
50
  # must read more if we are in the middle of a comment
51
- next unless $buff =~ /\G ?(.*\n(#.*\n)*)\s*/g;
51
+ next unless $buff =~ /\G ?(.*[\n\r]+(#.*[\n\r]+)*)\s*/g;
52
52
  $info{Comment} = $1;
53
53
  next if $buff =~ /\G#/gc;
54
54
  } else {
55
55
  delete $info{Comment};
56
56
  }
57
- next unless $buff =~ /\G(\S+)\s+(\S+)\s/g;
57
+ next unless $buff =~ /\G(\S+)\s+(\S+)\s+/g;
58
58
  $info{ImageWidth} = $1;
59
59
  $info{ImageHeight} = $2;
60
60
  $type = [qw{PPM PBM PGM}]->[$num % 3];
61
61
  last if $type eq 'PBM'; # (no MaxVal for PBM images)
62
62
  if ($buff =~ /\G\s*#/gc) {
63
- next unless $buff =~ /\G ?(.*\n(#.*\n)*)\s*/g;
63
+ next unless $buff =~ /\G ?(.*[\n\r]+(#.*[\n\r]+)*)\s*/g;
64
64
  $info{Comment} = '' unless exists $info{Comment};
65
65
  $info{Comment} .= $1;
66
66
  next if $buff =~ /\G#/gc;
@@ -76,7 +76,7 @@ sub ProcessPPM($$)
76
76
  }
77
77
  if (defined $info{Comment}) {
78
78
  $info{Comment} =~ s/^# ?//mg; # remove "# " at the start of each line
79
- $info{Comment} =~ s/\n$//; # remove trailing newline
79
+ $info{Comment} =~ s/[\n\r]+$//; # remove trailing newline
80
80
  }
81
81
  $et->SetFileType($type);
82
82
  my $len = pos($buff);
@@ -37,7 +37,7 @@ use vars qw($VERSION %leicaLensTypes);
37
37
  use Image::ExifTool qw(:DataAccess :Utils);
38
38
  use Image::ExifTool::Exif;
39
39
 
40
- $VERSION = '2.09';
40
+ $VERSION = '2.14';
41
41
 
42
42
  sub ProcessLeicaLEIC($$$);
43
43
  sub WhiteBalanceConv($;$$);
@@ -259,6 +259,7 @@ my %shootingMode = (
259
259
  88 => 'Clear Sports Shot', #18
260
260
  89 => 'Monochrome', #18
261
261
  90 => 'Creative Control', #18
262
+ 92 => 'Handheld Night Shot', #forum11523
262
263
  );
263
264
 
264
265
  %Image::ExifTool::Panasonic::Main = (
@@ -366,7 +367,9 @@ my %shootingMode = (
366
367
  '32 2' => '3-area (center)?', # (DMC-L1 guess)
367
368
  '32 3' => '3-area (right)?', # (DMC-L1 guess)
368
369
  '64 0' => 'Face Detect',
369
- '128 0' => 'Spot Focusing 2', #18
370
+ '64 1' => 'Face Detect (animal detect on)', #forum11194
371
+ '64 2' => 'Face Detect (animal detect off)', #forum11194
372
+ '128 0' => 'Pinpoint focus', #18/forum11194
370
373
  '240 0' => 'Tracking', #22
371
374
  },
372
375
  },
@@ -375,14 +378,17 @@ my %shootingMode = (
375
378
  Name => 'ImageStabilization',
376
379
  Writable => 'int16u',
377
380
  PrintConv => {
378
- 2 => 'On, Mode 1',
381
+ 2 => 'On, Optical',
379
382
  3 => 'Off',
380
383
  4 => 'On, Mode 2',
381
- 5 => 'Panning', #18
384
+ 5 => 'On, Optical Panning', #18
382
385
  # GF1 also has a "Mode 3" - PH
383
- 6 => 'On, Mode 3', #PH (GX7, sensor shift?)
386
+ 6 => 'On, Body-only', #PH (GX7, sensor shift?)
387
+ 7 => 'On, Body-only Panning', #forum11194
384
388
  9 => 'Dual IS', #20
389
+ 10 => 'Dual IS Panning', #forum11194
385
390
  11 => 'Dual2 IS', #forum9298
391
+ 12 => 'Dual2 IS Panning', #forum11194
386
392
  },
387
393
  },
388
394
  0x1c => {
@@ -453,7 +459,15 @@ my %shootingMode = (
453
459
  Name => 'PanasonicExifVersion',
454
460
  Writable => 'undef',
455
461
  },
456
- # 0x27 - values: 0 (LZ6,FX10K)
462
+ 0x27 => {
463
+ Name => 'VideoFrameRate',
464
+ Writable => 'int16u',
465
+ Notes => 'only valid for older models',
466
+ PrintConv => {
467
+ OTHER => sub { shift },
468
+ 0 => 'n/a',
469
+ },
470
+ },
457
471
  0x28 => {
458
472
  Name => 'ColorEffect',
459
473
  Writable => 'int16u',
@@ -515,9 +529,11 @@ my %shootingMode = (
515
529
  0 => 'Off',
516
530
  1 => 'On', #PH (TZ5) [was "Low/High Quality" from ref 4]
517
531
  2 => 'Auto Exposure Bracketing (AEB)', #17
532
+ 3 => 'Focus Bracketing', #forum11194
518
533
  4 => 'Unlimited', #PH (TZ5)
519
534
  8 => 'White Balance Bracketing', #18
520
535
  17 => 'On (with flash)', #forum5597
536
+ 18 => 'Aperture Bracketing', #forum11194
521
537
  },
522
538
  },
523
539
  0x2b => { #4
@@ -542,13 +558,15 @@ my %shootingMode = (
542
558
  # 0x03 - observed with LZ6 and TZ5 in Fireworks mode
543
559
  # and GX7 in Fantasy/Retro/OldDays/HighKey - PH
544
560
  # 0x04 - observed in MP4 movie with GM1 (EXIF and 0x39 Contrast "Normal") - PH
545
- # 0x05 - observed with FX01, FX40 and FP8 (EXIF contrast "Normal") - PH
561
+ 0x05 => 'Normal 2', #forum1194
546
562
  0x06 => 'Medium Low', #PH (FZ18)
547
563
  0x07 => 'Medium High', #PH (FZ18)
548
564
  # 0x08 - GX7 in DynamicMonochrome mode
549
565
  0x0d => 'High Dynamic', #PH (FZ47 in ?)
550
566
  # 0x13 - seen for LX100 (PH)
551
- # 0x18 - seen for FZ2500 (PH)
567
+ 0x18 => 'Dynamic Range (film-like)', #forum11194
568
+ 0x2e => 'Match Filter Effects Toy', #forum11194
569
+ 0x37 => 'Match Photo Style L. Monochrome', #forum11194
552
570
  # DMC-LC1 values:
553
571
  0x100 => 'Low',
554
572
  0x110 => 'Normal',
@@ -653,11 +671,14 @@ my %shootingMode = (
653
671
  Name => 'SelfTimer',
654
672
  Writable => 'int16u',
655
673
  PrintConv => {
674
+ 0 => 'Off (0)', #forum11529
656
675
  1 => 'Off',
657
676
  2 => '10 s',
658
677
  3 => '2 s',
659
678
  4 => '10 s / 3 pictures', #17
660
- # 258 - seen for FZ2500,TZ90,LeicaCLux (PH)
679
+ 258 => '2 s after shutter pressed', #forum11194
680
+ 266 => '10 s after shutter pressed', #forum11194
681
+ 778 => '3 photos after 10 s', #forum11194
661
682
  },
662
683
  },
663
684
  # 0x2f - values: 1 (LZ6,FX10K)
@@ -725,8 +746,20 @@ my %shootingMode = (
725
746
  PrintConvInv => '$val =~ /(\d+)/ ? $1 : $val',
726
747
  },
727
748
  # 0x37 - values: 0,1,2 (LZ6, 0 for movie preview); 257 (FX10K); 0,256 (TZ5, 0 for movie preview)
728
- # 0x38 - values: 0,1,2 (LZ6, same as 0x37); 1,2 (FX10K); 0,256 (TZ5, 0 for movie preview)
729
- # - changes with noise reduction for DC-S1
749
+ # --> may indicate battery power (forum11388)
750
+ 0x38 => { #forum11388
751
+ Name => 'BatteryLevel',
752
+ Writable => 'int16u',
753
+ PrintConv => {
754
+ 1 => 'Full',
755
+ 2 => 'Medium',
756
+ 3 => 'Low',
757
+ 4 => 'Near Empty',
758
+ 7 => 'Near Full',
759
+ 8 => 'Medium Low',
760
+ 256 => 'n/a',
761
+ },
762
+ },
730
763
  0x39 => { #7 (L1/L10)
731
764
  Name => 'Contrast',
732
765
  Format => 'int16s',
@@ -761,6 +794,7 @@ my %shootingMode = (
761
794
  Name => 'AdvancedSceneType',
762
795
  Writable => 'int16u',
763
796
  Notes => 'used together with SceneMode to derive Composite AdvancedSceneMode',
797
+ # see forum11194 for more info
764
798
  },
765
799
  0x3e => { #PH (TZ5/FS7)
766
800
  # (tags 0x3b, 0x3e, 0x8008 and 0x8009 have the same values in all my samples - PH)
@@ -853,7 +887,7 @@ my %shootingMode = (
853
887
  },
854
888
  },
855
889
  0x49 => { #19
856
- Name => 'LongExposureNoiseReduction',
890
+ Name => 'LongExposureNoiseReduction', # (indicates availability, forum11194)
857
891
  Writable => 'int16u',
858
892
  PrintConv => {
859
893
  1 => 'Off',
@@ -1092,6 +1126,10 @@ my %shootingMode = (
1092
1126
  4 => 'Monochrome',
1093
1127
  5 => 'Scenery',
1094
1128
  6 => 'Portrait',
1129
+ 8 => 'Cinelike D', #forum11194
1130
+ 9 => 'Cinelike V', #forum11194
1131
+ 11 => 'L. Monochrome', #forum11194
1132
+ 15 => 'L. Monochrome D', #forum11194
1095
1133
  },
1096
1134
  },
1097
1135
  0x8a => { #18
@@ -1154,7 +1192,7 @@ my %shootingMode = (
1154
1192
  ValueConv => '-$val / 10',
1155
1193
  ValueConvInv => '-$val * 10',
1156
1194
  },
1157
- 0x92 => { #21 (forum9453)
1195
+ 0x92 => { #21 (forum9453) (more to decode in forum11194)
1158
1196
  Name => 'WBShiftCreativeControl',
1159
1197
  Writable => 'int8u',
1160
1198
  Format => 'int8s',
@@ -1182,6 +1220,7 @@ my %shootingMode = (
1182
1220
  0 => 'Off',
1183
1221
  1 => 'Time Lapse',
1184
1222
  2 => 'Stop-motion Animation',
1223
+ 3 => 'Focus Bracketing', #forum11194
1185
1224
  },
1186
1225
  },
1187
1226
  0x9d => { #18
@@ -1211,6 +1250,36 @@ my %shootingMode = (
1211
1250
  },
1212
1251
  },
1213
1252
  # 0xa0 - undef[32]: AWB gains and black levels (ref forum9303)
1253
+ 0xa1 => { #forum11194
1254
+ Name => 'FilterEffect',
1255
+ Writable => 'rational64u',
1256
+ Format => 'int32u',
1257
+ PrintConv => {
1258
+ '0 0' => 'Expressive',
1259
+ # '0 1' => have seen this for XS1 (PH)
1260
+ '0 2' => 'Retro',
1261
+ '0 4' => 'High Key',
1262
+ '0 8' => 'Sepia',
1263
+ '0 16' => 'High Dynamic',
1264
+ '0 32' => 'Miniature Effect',
1265
+ '0 256' => 'Low Key',
1266
+ '0 512' => 'Toy Effect',
1267
+ '0 1024' => 'Dynamic Monochrome',
1268
+ '0 2048' => 'Soft Focus',
1269
+ '0 4096' => 'Impressive Art',
1270
+ '0 8192' => 'Cross Process',
1271
+ '0 16384' => 'One Point Color',
1272
+ '0 32768' => 'Star Filter',
1273
+ '0 524288' => 'Old Days',
1274
+ '0 1048576' => 'Sunshine',
1275
+ '0 2097152' => 'Bleach Bypass',
1276
+ '0 4194304' => 'Toy Pop',
1277
+ '0 8388608' => 'Fantasy',
1278
+ '0 33554432' => 'Monochrome',
1279
+ '0 67108864' => 'Rough Monochrome',
1280
+ '0 134217728' => 'Silky Monochrome',
1281
+ },
1282
+ },
1214
1283
  0xa3 => { #18
1215
1284
  Name => 'ClearRetouchValue',
1216
1285
  Writable => 'rational64u',
@@ -1230,9 +1299,15 @@ my %shootingMode = (
1230
1299
  Writable => 'int16u',
1231
1300
  PrintConv => { 0 => 'Off', 1 => 'On' },
1232
1301
  },
1302
+ 0xac => { #forum11194
1303
+ Name => 'MonochromeFilterEffect',
1304
+ Writable => 'int16u',
1305
+ PrintConv => { 0 => 'Off', 1 => 'Yellow', 2 => 'Orange', 3 => 'Red', 4 => 'Green' },
1306
+ },
1233
1307
  0xad => { #forum9360
1234
1308
  Name => 'HighlightShadow',
1235
1309
  Writable => 'int16u',
1310
+ Format => 'int16s', #forum11194
1236
1311
  Count => 2,
1237
1312
  },
1238
1313
  0xaf => { #PH (is this in UTC maybe? -- sometimes different time zone other times)
@@ -1243,6 +1318,11 @@ my %shootingMode = (
1243
1318
  PrintConv => '$self->ConvertDateTime($val)',
1244
1319
  PrintConvInv => '$self->InverseDateTime($val)',
1245
1320
  },
1321
+ 0xb3 => { #forum11194
1322
+ Name => 'VideoBurstResolution',
1323
+ Writable => 'int16u',
1324
+ PrintConv => { 1 => 'Off or 4K', 4 => '6K' },
1325
+ },
1246
1326
  0xb4 => { #forum9429
1247
1327
  Name => 'MultiExposure',
1248
1328
  Writable => 'int16u',
@@ -1264,6 +1344,10 @@ my %shootingMode = (
1264
1344
  0x28 => '4K Burst (Start/Stop)',
1265
1345
  0x48 => '4K Pre-burst',
1266
1346
  0x108 => 'Loop Recording',
1347
+ 0x810 => '6K Burst',
1348
+ 0x820 => '6K Burst (Start/Stop)',
1349
+ 0x408 => 'Focus Stacking', #forum11563
1350
+ 0x1001 => 'High Resolution Mode',
1267
1351
  },
1268
1352
  },
1269
1353
  0xbc => { #forum9282
@@ -1271,6 +1355,36 @@ my %shootingMode = (
1271
1355
  Writable => 'int16u',
1272
1356
  PrintConv => { 0 => 'Off', 1 => 'Auto' },
1273
1357
  },
1358
+ 0xbd => { #forum11194
1359
+ Name => 'FocusBracket',
1360
+ Notes => 'positive is further, negative is closer',
1361
+ Writable => 'int16u',
1362
+ Format => 'int16s',
1363
+ },
1364
+ 0xbe => { #forum11194
1365
+ Name => 'LongExposureNRUsed',
1366
+ Writable => 'int16u',
1367
+ PrintConv => { 0 => 'No', 1 => 'Yes' },
1368
+ },
1369
+ 0xbf => { #forum11194
1370
+ Name => 'PostFocusMerging',
1371
+ Format => 'int32u',
1372
+ Count => 2,
1373
+ PrintConv => { '0 0' => 'Post Focus Auto Merging or None' },
1374
+ },
1375
+ 0xc1 => { #forum11194
1376
+ Name => 'VideoPreburst',
1377
+ Writable => 'int16u',
1378
+ PrintConv => { 0 => 'No', 1 => '4K or 6K' },
1379
+ },
1380
+ 0xca => { #forum11459
1381
+ Name => 'SensorType',
1382
+ Writable => 'int16u',
1383
+ PrintConv => {
1384
+ 0 => 'Multi-aspect',
1385
+ 1 => 'Standard',
1386
+ },
1387
+ },
1274
1388
  # Note: LensTypeMake and LensTypeModel are combined into a Composite LensType tag
1275
1389
  # defined in Olympus.pm which has the same values as Olympus:LensType
1276
1390
  0xc4 => { #PH
@@ -1295,6 +1409,16 @@ my %shootingMode = (
1295
1409
  RawConv => '$val > 0xfffffff0 ? undef : $val',
1296
1410
  Writable => 'int32u',
1297
1411
  },
1412
+ 0xd2 => { #forum11194
1413
+ Name => 'MonochromeGrainEffect',
1414
+ Writable => 'int16u',
1415
+ PrintConv => {
1416
+ 0 => 'Off',
1417
+ 1 => 'Low',
1418
+ 2 => 'Standard',
1419
+ 3 => 'High',
1420
+ },
1421
+ },
1298
1422
  0xd6 => { #PH (DC-S1)
1299
1423
  Name => 'NoiseReductionStrength',
1300
1424
  Writable => 'rational64s',
@@ -2347,7 +2471,8 @@ my %shootingMode = (
2347
2471
  # AdvancedSceneType=5 for automatic mode iA (ref 19)
2348
2472
  if ($prt) {
2349
2473
  return $prt if $v[1] == 1;
2350
- return "$prt (intelligent auto)" if $v[1] == 5;
2474
+ return "$prt (intelligent auto)" if $v[1] == 5; #forum11523
2475
+ return "$prt (intelligent auto plus)" if $v[1] == 7; #forum11523
2351
2476
  return "$prt ($v[1])";
2352
2477
  }
2353
2478
  return "Unknown ($val)";
@@ -2370,10 +2495,19 @@ my %shootingMode = (
2370
2495
  '9 3' => 'Objects', #(FZ28)
2371
2496
  '9 4' => 'Creative Macro', #(FZ28)
2372
2497
  #'9 5' - ? (GF3)
2498
+ '18 1' => 'High Sensitivity', #forum11523 (TZ5)
2499
+ '20 1' => 'Fireworks', #forum11523 (TZ5)
2373
2500
  '21 2' => 'Illuminations', #(FZ28)
2374
2501
  '21 4' => 'Creative Night Scenery', #(FZ28)
2375
2502
  #'21 5' - ? (LX3)
2503
+ '26 1' => 'High-speed Burst (shot 1)', #forum11523 (TZ5)
2504
+ '27 1' => 'High-speed Burst (shot 2)', #forum11523 (TZ5)
2505
+ '29 1' => 'Snow', #forum11523 (TZ5)
2506
+ '30 1' => 'Starry Sky', #forum11523 (TZ5)
2507
+ '31 1' => 'Beach', #forum11523 (TZ5)
2508
+ '36 1' => 'High-speed Burst (shot 3)', #forum11523 (TZ5)
2376
2509
  #'37 5' - ? (various)
2510
+ '39 1' => 'Aerial Photo / Underwater / Multi-aspect', #forum11523 (TZ5)
2377
2511
  '45 2' => 'Cinema', #(GF2)
2378
2512
  '45 7' => 'Expressive', #(GF1,GF2)
2379
2513
  '45 8' => 'Retro', #(GF1,GF2)