exiftool_vendored 11.99.0 → 12.06.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +119 -2
  3. data/bin/MANIFEST +5 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +32 -32
  7. data/bin/exiftool +55 -50
  8. data/bin/lib/Image/ExifTool.pm +155 -109
  9. data/bin/lib/Image/ExifTool.pod +103 -77
  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 +11 -6
  13. data/bin/lib/Image/ExifTool/Canon.pm +2 -1
  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 +16 -3
  17. data/bin/lib/Image/ExifTool/Exif.pm +15 -6
  18. data/bin/lib/Image/ExifTool/Font.pm +9 -2
  19. data/bin/lib/Image/ExifTool/GIF.pm +5 -0
  20. data/bin/lib/Image/ExifTool/GeoTiff.pm +2 -0
  21. data/bin/lib/Image/ExifTool/GoPro.pm +10 -1
  22. data/bin/lib/Image/ExifTool/H264.pm +1 -1
  23. data/bin/lib/Image/ExifTool/ID3.pm +86 -12
  24. data/bin/lib/Image/ExifTool/Lang/de.pm +3 -1
  25. data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  26. data/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  27. data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
  28. data/bin/lib/Image/ExifTool/Minolta.pm +3 -2
  29. data/bin/lib/Image/ExifTool/Nikon.pm +134 -15
  30. data/bin/lib/Image/ExifTool/Olympus.pm +34 -17
  31. data/bin/lib/Image/ExifTool/PNG.pm +14 -3
  32. data/bin/lib/Image/ExifTool/PPM.pm +5 -5
  33. data/bin/lib/Image/ExifTool/Panasonic.pm +147 -13
  34. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +33 -0
  35. data/bin/lib/Image/ExifTool/Parrot.pm +2 -1
  36. data/bin/lib/Image/ExifTool/Pentax.pm +2 -1
  37. data/bin/lib/Image/ExifTool/Photoshop.pm +2 -1
  38. data/bin/lib/Image/ExifTool/QuickTime.pm +204 -27
  39. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +355 -19
  40. data/bin/lib/Image/ExifTool/README +20 -19
  41. data/bin/lib/Image/ExifTool/Ricoh.pm +19 -1
  42. data/bin/lib/Image/ExifTool/Shift.pl +1 -0
  43. data/bin/lib/Image/ExifTool/SigmaRaw.pm +40 -33
  44. data/bin/lib/Image/ExifTool/Sony.pm +376 -11
  45. data/bin/lib/Image/ExifTool/TagLookup.pm +1949 -1872
  46. data/bin/lib/Image/ExifTool/TagNames.pod +329 -53
  47. data/bin/lib/Image/ExifTool/Validate.pm +4 -4
  48. data/bin/lib/Image/ExifTool/WriteExif.pl +1 -0
  49. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +23 -15
  50. data/bin/lib/Image/ExifTool/Writer.pl +44 -21
  51. data/bin/lib/Image/ExifTool/XMP.pm +41 -4
  52. data/bin/lib/Image/ExifTool/XMPStruct.pl +3 -1
  53. data/bin/lib/Image/ExifTool/ZISRAW.pm +123 -0
  54. data/bin/perl-Image-ExifTool.spec +31 -31
  55. data/lib/exiftool_vendored/version.rb +1 -1
  56. metadata +4 -3
@@ -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.68';
43
44
 
44
45
  sub PrintLensInfo($$$);
45
46
 
@@ -172,6 +173,7 @@ my %olympusLensTypes = (
172
173
  '2 28 10' => 'Lumix G Vario 12-60mm F3.5-5.6 Asph. Power OIS', #NJ
173
174
  '2 29 10' => 'Leica DG Summilux 12mm F1.4 Asph.', #IB
174
175
  '2 30 10' => 'Leica DG Vario-Elmarit 12-60mm F2.8-4 Asph. Power OIS', #IB
176
+ '2 31 10' => 'Lumix G Vario 45-200mm F4.0-5.6 II', #forum3833
175
177
  '2 32 10' => 'Lumix G Vario 100-300mm F4.0-5.6 II', #PH
176
178
  '2 33 10' => 'Lumix G X Vario 12-35mm F2.8 II Asph. Power OIS', #IB
177
179
  '2 34 10' => 'Lumix G Vario 35-100mm F2.8 II', #forum3833
@@ -184,6 +186,8 @@ my %olympusLensTypes = (
184
186
  # Tamron lenses
185
187
  '5 01 10' => 'Tamron 14-150mm F3.5-5.8 Di III', #NJ (model C001)
186
188
  # '65535 07 40' - Seen for LUMIX S 16-35/F4 on Panasonic DC-S1H (ref PH)
189
+ # Other makes
190
+ '24 01 10' => 'Venus Optics Laowa 50mm F2.8 2x Macro', #DonKomarechka
187
191
  );
188
192
 
189
193
  # lookup for Olympus camera types (ref PH)
@@ -1836,6 +1840,7 @@ my %indexInfo = (
1836
1840
  6 => 'Imager AF',
1837
1841
  7 => 'Live View Magnification Frame',
1838
1842
  8 => 'AF sensor',
1843
+ 9 => 'Starry Sky AF', #24
1839
1844
  },
1840
1845
  }],
1841
1846
  },
@@ -1893,9 +1898,13 @@ my %indexInfo = (
1893
1898
  },
1894
1899
  0x307 => { #15
1895
1900
  Name => 'AFFineTuneAdj',
1896
- Format => 'int16s',
1901
+ Writable => 'int16s',
1897
1902
  Count => 3, # not sure what the 3 values mean
1898
1903
  },
1904
+ 0x308 => { #forum11578
1905
+ Name => 'FocusBracketStepSize',
1906
+ Writable => 'int8u',
1907
+ },
1899
1908
  0x400 => { #6
1900
1909
  Name => 'FlashMode',
1901
1910
  Writable => 'int16u',
@@ -2511,6 +2520,8 @@ my %indexInfo = (
2511
2520
  Count => 2,
2512
2521
  PrintConv => {
2513
2522
  '0 0' => 'No',
2523
+ '1 *' => 'Live Composite (* images)', #24
2524
+ '4 *' => 'Live Time/Bulb (* images)', #24
2514
2525
  '3 2' => 'ND2 (1EV)', #IB
2515
2526
  '3 4' => 'ND4 (2EV)', #IB
2516
2527
  '3 8' => 'ND8 (3EV)', #IB
@@ -2519,21 +2530,26 @@ my %indexInfo = (
2519
2530
  '5 4' => 'HDR1', #forum8906
2520
2531
  '6 4' => 'HDR2', #forum8906
2521
2532
  '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
2533
+ '9 *' => 'Focus-stacked (* images)', #IB (* = 2-15)
2534
+ '11 16' => 'Hand-held high resolution', #IB (perhaps '11 15' would be possible, ref 24)
2535
+ OTHER => sub {
2536
+ my ($val, $inv, $conv) = @_;
2537
+ if ($inv) {
2538
+ $val = lc $val;
2539
+ return undef unless $val =~ s/(\d+) images/\* images/;
2540
+ my $num = $1;
2541
+ foreach (keys %$conv) {
2542
+ next unless $val eq lc $$conv{$_};
2543
+ ($val = $_) =~ s/\*/$num/ or return undef;
2544
+ return $val;
2545
+ }
2546
+ } else {
2547
+ return "Unknown ($_[0])" unless $val =~ s/ (\d+)/ \*/ and $$conv{$val};
2548
+ my $num = $1;
2549
+ ($val = $$conv{$val}) =~ s/\*/$num/;
2550
+ return $val;
2551
+ }
2552
+ },
2537
2553
  },
2538
2554
  },
2539
2555
  0x900 => { #11
@@ -2894,6 +2910,7 @@ my %indexInfo = (
2894
2910
  Count => 2,
2895
2911
  PrintConv => [{
2896
2912
  0 => 'Off',
2913
+ 1 => 'Live Composite', #github issue#61
2897
2914
  2 => 'On (2 frames)',
2898
2915
  3 => 'On (3 frames)',
2899
2916
  }],
@@ -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.13';
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',
@@ -2418,6 +2542,16 @@ my %shootingMode = (
2418
2542
  'DMC-TZ40 90 10' => 'Toy Effect',
2419
2543
  'DMC-TZ40 90 11' => 'Dynamic Monochrome',
2420
2544
  'DMC-TZ40 90 12' => 'Soft',
2545
+ # some TZ5 modes are different (forum11523)
2546
+ # (these may be the same for the TZ4, TZ11 and TZ15)
2547
+ 'DMC-TZ5 18 1' => 'High Sensitivity',
2548
+ 'DMC-TZ5 26 1' => 'High-speed Burst (shot 1)',
2549
+ 'DMC-TZ5 27 1' => 'High-speed Burst (shot 2)',
2550
+ 'DMC-TZ5 29 1' => 'Snow',
2551
+ 'DMC-TZ5 30 1' => 'Starry Sky',
2552
+ 'DMC-TZ5 31 1' => 'Beach',
2553
+ 'DMC-TZ5 36 1' => 'High-speed Burst (shot 3)',
2554
+ 'DMC-TZ5 39 1' => 'Aerial Photo / Underwater / Multi-aspect',
2421
2555
  },
2422
2556
  },
2423
2557
  );