exiftool_vendored 13.31.0 → 13.36.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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +88 -2
  3. data/bin/MANIFEST +5 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/Makefile.PL +1 -0
  7. data/bin/README +47 -46
  8. data/bin/exiftool +155 -120
  9. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +7 -5
  10. data/bin/lib/Image/ExifTool/Canon.pm +46 -6
  11. data/bin/lib/Image/ExifTool/DJI.pm +54 -3
  12. data/bin/lib/Image/ExifTool/Exif.pm +9 -6
  13. data/bin/lib/Image/ExifTool/FlashPix.pm +4 -159
  14. data/bin/lib/Image/ExifTool/FujiFilm.pm +97 -32
  15. data/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
  16. data/bin/lib/Image/ExifTool/Geotag.pm +5 -3
  17. data/bin/lib/Image/ExifTool/GoPro.pm +14 -2
  18. data/bin/lib/Image/ExifTool/LNK.pm +4 -1
  19. data/bin/lib/Image/ExifTool/Lang/cs.pm +0 -1
  20. data/bin/lib/Image/ExifTool/Lang/de.pm +0 -1
  21. data/bin/lib/Image/ExifTool/Lang/fr.pm +0 -1
  22. data/bin/lib/Image/ExifTool/Lang/it.pm +0 -1
  23. data/bin/lib/Image/ExifTool/Lang/ja.pm +0 -1
  24. data/bin/lib/Image/ExifTool/Lang/nl.pm +0 -1
  25. data/bin/lib/Image/ExifTool/Lang/pl.pm +0 -1
  26. data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +0 -1
  27. data/bin/lib/Image/ExifTool/M2TS.pm +2 -4
  28. data/bin/lib/Image/ExifTool/Microsoft.pm +158 -1
  29. data/bin/lib/Image/ExifTool/Minolta.pm +4 -2
  30. data/bin/lib/Image/ExifTool/Nikon.pm +73 -37
  31. data/bin/lib/Image/ExifTool/NikonCustom.pm +40 -10
  32. data/bin/lib/Image/ExifTool/Olympus.pm +258 -34
  33. data/bin/lib/Image/ExifTool/Panasonic.pm +3 -3
  34. data/bin/lib/Image/ExifTool/Pentax.pm +341 -61
  35. data/bin/lib/Image/ExifTool/Protobuf.pm +1 -1
  36. data/bin/lib/Image/ExifTool/QuickTime.pm +11 -4
  37. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +1 -1
  38. data/bin/lib/Image/ExifTool/README +2 -1
  39. data/bin/lib/Image/ExifTool/RIFF.pm +5 -3
  40. data/bin/lib/Image/ExifTool/Sony.pm +46 -17
  41. data/bin/lib/Image/ExifTool/TNEF.pm +487 -0
  42. data/bin/lib/Image/ExifTool/TagLookup.pm +4384 -4265
  43. data/bin/lib/Image/ExifTool/TagNames.pod +291 -27
  44. data/bin/lib/Image/ExifTool/WriteExif.pl +14 -12
  45. data/bin/lib/Image/ExifTool/Writer.pl +21 -16
  46. data/bin/lib/Image/ExifTool/XMP.pm +8 -2
  47. data/bin/lib/Image/ExifTool/XMP2.pl +1 -1
  48. data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
  49. data/bin/lib/Image/ExifTool.pm +14 -4
  50. data/bin/lib/Image/ExifTool.pod +50 -44
  51. data/bin/perl-Image-ExifTool.spec +46 -45
  52. data/lib/exiftool_vendored/version.rb +1 -1
  53. metadata +3 -2
@@ -28,6 +28,7 @@
28
28
  # 22) Herbert Kauer private communication
29
29
  # 23) Daniel Pollock private communication (PEN-F)
30
30
  # 24) Sebastian private communication (E-M1 Mark III)
31
+ # 25) Karsten Gieselmann private communication (OM series)
31
32
  # IB) Iliah Borg private communication (LibRaw)
32
33
  # NJ) Niels Kristian Bech Jensen private communication
33
34
  #------------------------------------------------------------------------------
@@ -40,7 +41,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
40
41
  use Image::ExifTool::Exif;
41
42
  use Image::ExifTool::APP12;
42
43
 
43
- $VERSION = '2.86';
44
+ $VERSION = '2.90';
44
45
 
45
46
  sub PrintLensInfo($$$);
46
47
 
@@ -116,6 +117,7 @@ my %olympusLensTypes = (
116
117
  '0 35 10' => 'Olympus M.Zuiko 100-400mm F5.0-6.3', #IB (also OM System M.Zuiko Digital ED 100-400mm F5.0-6.3 IS II", forum2833)
117
118
  '0 36 10' => 'Olympus M.Zuiko Digital ED 8-25mm F4 Pro', #IB
118
119
  '0 37 10' => 'Olympus M.Zuiko Digital ED 40-150mm F4.0 Pro', #forum3833
120
+ '0 38 10' => 'Olympus M.Zuiko Digital ED 20mm F1.4 Pro',
119
121
  '0 39 10' => 'Olympus M.Zuiko Digital ED 90mm F3.5 Macro IS Pro', #forum3833
120
122
  '0 40 10' => 'Olympus M.Zuiko Digital ED 150-600mm F5.0-6.3', #forum15652
121
123
  # Sigma lenses
@@ -447,6 +449,7 @@ my %olympusCameraTypes = (
447
449
  S0101 => 'OM-5', #IB
448
450
  S0121 => 'OM-1MarkII', #forum15652
449
451
  S0123 => 'OM-3', #forum17208
452
+ S0130 => 'OM-5MarkII', #forum17465
450
453
  SR45 => 'D220',
451
454
  SR55 => 'D320L',
452
455
  SR83 => 'D340L',
@@ -1932,20 +1935,39 @@ my %indexInfo = (
1932
1935
  0x309 => { #forum13341
1933
1936
  Name => 'AISubjectTrackingMode',
1934
1937
  Writable => 'int16u',
1935
- ValueConv => '($val >> 8) . " " . ($val & 0xff)',
1936
- ValueConvInv => 'my @a = split " ", $val; $val = $a[0]*256 + $a[1]',
1937
- PrintConv => [{
1938
- 0 => 'Off',
1939
- 1 => 'Motorsports',
1940
- 2 => 'Airplanes',
1941
- 3 => 'Trains',
1942
- 4 => 'Birds',
1943
- 5 => 'Dogs & Cats',
1944
- 6 => 'Human', #forum16072
1945
- },{
1946
- 0 => 'Object Not Found',
1947
- 1 => 'Object Found',
1948
- }],
1938
+ PrintConv => { #25 (OM models)
1939
+ 0 => 'Off',
1940
+ 0x100 => 'Motorsports; Object Not Found',
1941
+ 0x101 => 'Motorsports; Racing Car Found',
1942
+ 0x102 => 'Motorsports; Car Found',
1943
+ 0x103 => 'Motorsports; Motorcyle Found',
1944
+ 0x200 => 'Airplanes; Object Not Found',
1945
+ 0x201 => 'Airplanes; Passenger/Transport Plane Found',
1946
+ 0x202 => 'Airplanes; Small Plane/Fighter Jet Found',
1947
+ 0x203 => 'Airplanes; Helicopter Found',
1948
+ 0x300 => 'Trains; Object Not Found',
1949
+ 0x301 => 'Trains; Object Found',
1950
+ 0x400 => 'Birds; Object Not Found',
1951
+ 0x401 => 'Birds; Object Found',
1952
+ 0x500 => 'Dogs & Cats; Object Not Found',
1953
+ 0x501 => 'Dogs & Cats; Object Found',
1954
+ 0x600 => 'Human; Object Not Found',
1955
+ 0x601 => 'Human; Object Found',
1956
+ },
1957
+ },
1958
+ 0x030a => {
1959
+ Name => 'AFTargetInfo',
1960
+ Format => 'undef',
1961
+ Writable => 'int16u',
1962
+ Count => 10,
1963
+ SubDirectory => { TagTable => 'Image::ExifTool::Olympus::AFTargetInfo' },
1964
+ },
1965
+ 0x030b => {
1966
+ Name => 'SubjectDetectInfo',
1967
+ Format => 'undef',
1968
+ Writable => 'int16u',
1969
+ Count => 11,
1970
+ SubDirectory => { TagTable => 'Image::ExifTool::Olympus::SubjectDetectInfo' },
1949
1971
  },
1950
1972
  0x400 => { #6
1951
1973
  Name => 'FlashMode',
@@ -2231,12 +2253,15 @@ my %indexInfo = (
2231
2253
  5 => 'i-Enhance', #11
2232
2254
  6 => 'e-Portrait', #23
2233
2255
  7 => 'Color Creator', #23
2256
+ 8 => 'Underwater', #7
2234
2257
  9 => 'Color Profile 1', #23
2235
2258
  10 => 'Color Profile 2', #23
2236
2259
  11 => 'Color Profile 3', #23
2237
2260
  12 => 'Monochrome Profile 1', #23
2238
2261
  13 => 'Monochrome Profile 2', #23
2239
2262
  14 => 'Monochrome Profile 3', #23
2263
+ 17 => 'Art Mode', #7
2264
+ 18 => 'Monochrome Profile 4', #7
2240
2265
  256 => 'Monotone',
2241
2266
  512 => 'Sepia',
2242
2267
  }],
@@ -2489,15 +2514,22 @@ my %indexInfo = (
2489
2514
  Name => 'DriveMode',
2490
2515
  Writable => 'int16u',
2491
2516
  Count => -1,
2492
- Notes => '2, 3 or 5 numbers: 1. Mode, 2. Shot number, 3. Mode bits, 5. Shutter mode',
2517
+ Notes => q{
2518
+ 2, 3, 5 or numbers: 1. Mode, 2. Shot number, 3. Mode bits, 5. Shutter mode,
2519
+ 6. Shooting mode (E-M1 II and later models)
2520
+ },
2493
2521
  PrintConv => q{
2494
- my ($a,$b,$c,$d,$e) = split ' ',$val;
2495
- if ($e) {
2496
- $e = '; ' . ({ 2 => 'Anti-shock 0', 4 => 'Electronic shutter' }->{$e} || "Unknown ($e)");
2522
+ my ($a,$b,$c,$d,$e,$f) = split ' ',$val;
2523
+ if ($b) {
2524
+ $b = ', Shot ' . $b;
2497
2525
  } else {
2526
+ $b = '';
2527
+ }
2528
+ if (not defined $e or $e == 4) { #KG: personally, I'd like to skip 'Electronic shutter' since this is the defacto default setting
2498
2529
  $e = '';
2530
+ } else {
2531
+ $e = '; ' . ({ 0 => 'Mechanical shutter' , 2 => 'Anti-shock' }->{$e} || "Unknown ($e)");
2499
2532
  }
2500
- return "Single Shot$e" unless $a;
2501
2533
  if ($a == 5 and defined $c) {
2502
2534
  $a = DecodeBits($c, { #6
2503
2535
  0 => 'AE',
@@ -2509,16 +2541,51 @@ my %indexInfo = (
2509
2541
  6 => 'Focus', #PH
2510
2542
  }) . ' Bracketing';
2511
2543
  $a =~ s/, /+/g;
2544
+ } elsif ($f) { #25
2545
+ # for newer models (E-M1 and later) look at byte 6 for other shooting modes
2546
+ my %f = (
2547
+ # Mechanical shutter modes
2548
+ 0x01 => 'Single Shot',
2549
+ 0x02 => 'Sequential L',
2550
+ 0x03 => 'Sequential H',
2551
+ 0x07 => 'Sequential',
2552
+ # Anti-shock modes
2553
+ 0x11 => 'Single Shot',
2554
+ 0x12 => 'Sequential L',
2555
+ 0x13 => 'Sequential H',
2556
+ 0x14 => 'Self-Timer 12 sec',
2557
+ 0x15 => 'Self-Timer 2 sec',
2558
+ 0x16 => 'Custom Self-Timer',
2559
+ 0x17 => 'Sequential',
2560
+ # Electronical shutter modes
2561
+ 0x21 => 'Single Shot',
2562
+ 0x22 => 'Sequential L',
2563
+ 0x23 => 'Sequential H',
2564
+ 0x24 => 'Self-Timer 2 sec',
2565
+ 0x25 => 'Self-Timer 12 sec',
2566
+ 0x26 => 'Custom Self-Timer',
2567
+ 0x27 => 'Sequential',
2568
+ 0x28 => 'Sequential SH1',
2569
+ 0x29 => 'Sequential SH2',
2570
+ 0x30 => 'HighRes Shot', # only E-M models
2571
+ 0x41 => 'ProCap H',
2572
+ 0x42 => 'ProCap L',
2573
+ 0x43 => 'ProCap',
2574
+ 0x48 => 'ProCap SH1',
2575
+ 0x49 => 'ProCap SH2',
2576
+ );
2577
+ $a = $f{$f} || "Unknown ($f)";
2512
2578
  } else {
2513
- my %a = (
2514
- 1 => 'Continuous Shooting',
2515
- 2 => 'Exposure Bracketing',
2516
- 3 => 'White Balance Bracketing',
2517
- 4 => 'Exposure+WB Bracketing', #6
2518
- );
2519
- $a = $a{$a} || "Unknown ($a)";
2579
+ my %a = (
2580
+ 0 => 'Single Shot',
2581
+ 1 => 'Continuous Shooting',
2582
+ 2 => 'Exposure Bracketing',
2583
+ 3 => 'White Balance Bracketing',
2584
+ 4 => 'Exposure+WB Bracketing', #6
2585
+ );
2586
+ $a = $a{$a} || "Unknown ($a)";
2520
2587
  }
2521
- return "$a, Shot $b$e";
2588
+ return "$a$b$e";
2522
2589
  },
2523
2590
  },
2524
2591
  0x601 => { #6
@@ -2555,10 +2622,10 @@ my %indexInfo = (
2555
2622
  RawConv => '$$self{ImageStabilization} = $val',
2556
2623
  PrintConv => {
2557
2624
  0 => 'Off',
2558
- 1 => 'On, Mode 1',
2559
- 2 => 'On, Mode 2',
2560
- 3 => 'On, Mode 3',
2561
- 4 => 'On, Mode 4', # (NC, E-P5)
2625
+ 1 => 'On, S-IS1 (All Direction Shake IS)', #25
2626
+ 2 => 'On, S-IS2 (Vertical Shake IS)', #25
2627
+ 3 => 'On, S-IS3 (Horizontal Shake IS)', #25
2628
+ 4 => 'On, S-IS Auto', #25
2562
2629
  },
2563
2630
  },
2564
2631
  0x804 => { #PH (E-M1 with firmware update)
@@ -2581,6 +2648,9 @@ my %indexInfo = (
2581
2648
  '9 *' => 'Focus-stacked (* images)', #IB (* = 2-15)
2582
2649
  '11 12' => 'Hand-held high resolution (11 12)', #forum13341 (OM-1)
2583
2650
  '11 16' => 'Hand-held high resolution (11 16)', #IB (perhaps '11 15' would be possible, ref 24)
2651
+ '13 2' => 'GND2 (1EV)', #25
2652
+ '13 4' => 'GND4 (2EV)', #25
2653
+ '13 8' => 'GND8 (3EV)', #25
2584
2654
  OTHER => sub {
2585
2655
  my ($val, $inv, $conv) = @_;
2586
2656
  if ($inv) {
@@ -2601,6 +2671,73 @@ my %indexInfo = (
2601
2671
  },
2602
2672
  },
2603
2673
  },
2674
+ 0x0821 => { #25
2675
+ Name => 'ISOAutoSettings',
2676
+ Writable => 'int16u',
2677
+ Count => 2,
2678
+ Notes => '2 numbers: 1. Default sensitivty, 2. Maximum sensitivity',
2679
+ PrintConv => [{
2680
+ 0 => 'n/a',
2681
+ 0x0600 => '200',
2682
+ 0x0655 => '250',
2683
+ 0x06aa => '320',
2684
+ 0x0700 => '400',
2685
+ 0x0755 => '500',
2686
+ 0x07aa => '640',
2687
+ 0x0800 => '800',
2688
+ 0x0855 => '1000',
2689
+ 0x08aa => '1250',
2690
+ 0x0900 => '1600',
2691
+ 0x0955 => '2000',
2692
+ 0x09aa => '2500',
2693
+ 0x0a00 => '3200',
2694
+ 0x0a55 => '4000',
2695
+ 0x0aaa => '5000',
2696
+ 0x0b00 => '6400',
2697
+ 0x0b55 => '8000',
2698
+ 0x0baa => '10000',
2699
+ 0x0c00 => '12800',
2700
+ 0x0c55 => '16000',
2701
+ 0x0caa => '20000',
2702
+ 0x0d00 => '25600',
2703
+ 0x0d55 => '32000',
2704
+ 0x0daa => '40000',
2705
+ 0x0e00 => '51200',
2706
+ 0x0e55 => '64000',
2707
+ 0x0eaa => '80000',
2708
+ 0x0f00 => '102400',
2709
+ },{
2710
+ 0 => 'n/a',
2711
+ 0x0600 => '200',
2712
+ 0x0655 => '250',
2713
+ 0x06aa => '320',
2714
+ 0x0700 => '400',
2715
+ 0x0755 => '500',
2716
+ 0x07aa => '640',
2717
+ 0x0800 => '800',
2718
+ 0x0855 => '1000',
2719
+ 0x08aa => '1250',
2720
+ 0x0900 => '1600',
2721
+ 0x0955 => '2000',
2722
+ 0x09aa => '2500',
2723
+ 0x0a00 => '3200',
2724
+ 0x0a55 => '4000',
2725
+ 0x0aaa => '5000',
2726
+ 0x0b00 => '6400',
2727
+ 0x0b55 => '8000',
2728
+ 0x0baa => '10000',
2729
+ 0x0c00 => '12800',
2730
+ 0x0c55 => '16000',
2731
+ 0x0caa => '20000',
2732
+ 0x0d00 => '25600',
2733
+ 0x0d55 => '32000',
2734
+ 0x0daa => '40000',
2735
+ 0x0e00 => '51200',
2736
+ 0x0e55 => '64000',
2737
+ 0x0eaa => '80000',
2738
+ 0x0f00 => '102400',
2739
+ }],
2740
+ },
2604
2741
  0x900 => { #11
2605
2742
  Name => 'ManometerPressure',
2606
2743
  Writable => 'int16u',
@@ -2651,6 +2788,66 @@ my %indexInfo = (
2651
2788
  },
2652
2789
  );
2653
2790
 
2791
+ # ref 25
2792
+ %Image::ExifTool::Olympus::AFTargetInfo = (
2793
+ PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
2794
+ WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
2795
+ CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
2796
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
2797
+ FIRST_ENTRY => 0,
2798
+ FORMAT => 'int16u',
2799
+ WRITABLE => 1,
2800
+ NOTES => 'Position and size of selected AF Area and focus areas for OM cameras.',
2801
+ 0 => { Name => 'AFFrameSize', Format => 'int16u[2]' , Notes => 'width/height of the focus/select frame' },
2802
+ 2 => { Name => 'AFFocusArea', Format => 'int16u[4]' , Notes => 'X Y width height. The center is identical to AFPointSelected' },
2803
+ 6 => {
2804
+ Name => 'AFSelectedArea',
2805
+ Format => 'int16u[4]',
2806
+ Notes => q{
2807
+ X Y width height. Subject and Face Detection OFF: User selected AF target
2808
+ area. Subject or Face Detection ON: Area related to detection process.
2809
+ },
2810
+ },
2811
+ );
2812
+
2813
+ # ref 25
2814
+ %Image::ExifTool::Olympus::SubjectDetectInfo = (
2815
+ PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
2816
+ WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
2817
+ CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
2818
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
2819
+ FIRST_ENTRY => 0,
2820
+ FORMAT => 'int16u',
2821
+ WRITABLE => 1,
2822
+ NOTES => q{
2823
+ Subject Detection data for OM cameras. These tags contain the areas of a
2824
+ subject and its elements detected by Subject Detection, or the main face and
2825
+ eyes detected by Face Detection. These elements can be either L1 details
2826
+ (level 1, such as head, chassis, airplane nose, etc.) or L2 details (level
2827
+ 2, such as eye, driver, airplane cockpit, etc.).
2828
+ },
2829
+ 0 => { Name => 'SubjectDetectFrameSize', Format => 'int16u[2]', Notes => 'width/height of the subject detect frame' },
2830
+ 2 => { Name => 'SubjectDetectArea', Format => 'int16u[4]', Notes => 'X Y width height' },
2831
+ 6 => { Name => 'SubjectDetectDetail', Format => 'int16u[4]', Notes => 'X Y width height' },
2832
+ 10 => {
2833
+ Name => 'SubjectDetectStatus',
2834
+ Notes => q{
2835
+ Indicates the presence of data related to subject and face detection, not
2836
+ necessarily corresponding to the detection result
2837
+ },
2838
+ PrintConv => {
2839
+ 0 => 'No Data',
2840
+ 257 => 'Subject and L1 Detail Detected', # (head, airplane nose, ...)
2841
+ 258 => 'Subject and L2 Detail Detected', # (eye, airplane cockpit, ...)
2842
+ 260 => 'Subject Detected, No Details',
2843
+ 515 => 'Face and Eye Detected',
2844
+ 516 => 'Face Detected',
2845
+ 771 => 'Subject Detail or Eye Detected',
2846
+ 772 => 'No Subject or Face Detected',
2847
+ },
2848
+ },
2849
+ );
2850
+
2654
2851
  # Olympus RAW processing IFD (ref 6)
2655
2852
  %Image::ExifTool::Olympus::RawDevelopment = (
2656
2853
  WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
@@ -2835,6 +3032,23 @@ my %indexInfo = (
2835
3032
  PrintConvColumns => 2,
2836
3033
  PrintConv => [ \%filters ],
2837
3034
  },
3035
+ 0x8000 => {
3036
+ Name => 'RawDevSubIFD',
3037
+ Groups => { 1 => 'MakerNotes' },
3038
+ Flags => 'SubIFD',
3039
+ FixFormat => 'ifd',
3040
+ SubDirectory => {
3041
+ TagTable => 'Image::ExifTool::Olympus::RawDevSubIFD',
3042
+ Start => '$val',
3043
+ },
3044
+ },
3045
+ );
3046
+
3047
+ %Image::ExifTool::Olympus::RawDevSubIFD = (
3048
+ WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
3049
+ CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
3050
+ WRITABLE => 1,
3051
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
2838
3052
  );
2839
3053
 
2840
3054
  # Olympus Image processing IFD
@@ -3073,6 +3287,11 @@ my %indexInfo = (
3073
3287
  # (use in conjunction with KeystoneDirection, -ve is Top or Right, +ve is Bottom or Left)
3074
3288
  Notes => '3 numbers: 1. Keystone Value, 2. Min, 3. Max',
3075
3289
  },
3290
+ 0x2110 => { #25
3291
+ Name => 'GNDFilterType',
3292
+ Format => 'int8u',
3293
+ PrintConv => { 0 => 'High', 1 => 'Medium', 2 => 'Soft' },
3294
+ },
3076
3295
  );
3077
3296
 
3078
3297
  # Olympus Focus Info IFD
@@ -3238,7 +3457,7 @@ my %indexInfo = (
3238
3457
  ],
3239
3458
  # 0x31a Continuous AF parameters?
3240
3459
  0x31b => [ #herb, based on investigations of abgestumpft: https://exiftool.org/forum/index.php?topic=14527.0
3241
- # for newer models E-Mxxx and OM-x
3460
+ # for newer models E-Mxxx and OM-x
3242
3461
  {
3243
3462
  Name => 'AFPointDetails',
3244
3463
  Condition => '$$self{Model} =~ m/^E-M|^OM-/ ',
@@ -3250,7 +3469,7 @@ my %indexInfo = (
3250
3469
  (($val >> 8) & 0x3) . " " . (($val >> 7) & 0x1) . " " . (($val >> 5) & 0x1) . " " .
3251
3470
  # eye AF face detect x-AF with MF
3252
3471
  (($val >> 4) & 0x1) . " " . (($val >> 3) & 0x1) . " " . ($val & 0x7)',
3253
- # release object found MF...
3472
+ # release object found MF...
3254
3473
  PrintConvColumns => 4,
3255
3474
  PrintConv => [
3256
3475
  {
@@ -3405,6 +3624,7 @@ my %indexInfo = (
3405
3624
  },
3406
3625
  },
3407
3626
  # 0x102a same as Subdir4-0x300
3627
+ 0x2100 => 'AntiShockWaitingTime', #25
3408
3628
  );
3409
3629
 
3410
3630
  # AF information (ref PH)
@@ -3419,6 +3639,10 @@ my %indexInfo = (
3419
3639
  # 0x36 - int16u: AFAreaHeight? (50)
3420
3640
  # (AF area positions above give the top-left coordinates of the AF area in the
3421
3641
  # AF frame. Increasing Y is downwards, and the AF frame size is about 1280x256)
3642
+ 0x062c => { #25
3643
+ Name => 'CAFSensitivity',
3644
+ Format => 'int8s',
3645
+ },
3422
3646
  );
3423
3647
 
3424
3648
  # Olympus raw information tags (ref 6)
@@ -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.25';
40
+ $VERSION = '2.26';
41
41
 
42
42
  sub ProcessLeicaLEIC($$$);
43
43
  sub WhiteBalanceConv($;$$);
@@ -1374,10 +1374,10 @@ my %shootingMode = (
1374
1374
  Writable => 'int16u',
1375
1375
  Format => 'int16s',
1376
1376
  },
1377
- 0xbe => { #forum11194
1377
+ 0xbe => { #forum11194/17508
1378
1378
  Name => 'LongExposureNRUsed',
1379
1379
  Writable => 'int16u',
1380
- PrintConv => { 0 => 'No', 1 => 'Yes' },
1380
+ PrintConv => { 1 => 'No', 2 => 'Yes' },
1381
1381
  },
1382
1382
  0xbf => { #forum11194
1383
1383
  Name => 'PostFocusMerging',