exiftool_vendored 13.31.0 → 13.34.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.
- checksums.yaml +4 -4
- data/bin/Changes +56 -1
- data/bin/MANIFEST +5 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +47 -46
- data/bin/exiftool +114 -89
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +7 -5
- data/bin/lib/Image/ExifTool/Canon.pm +19 -2
- data/bin/lib/Image/ExifTool/Exif.pm +9 -6
- data/bin/lib/Image/ExifTool/FlashPix.pm +4 -159
- data/bin/lib/Image/ExifTool/FujiFilm.pm +11 -3
- data/bin/lib/Image/ExifTool/Geotag.pm +5 -3
- data/bin/lib/Image/ExifTool/GoPro.pm +14 -2
- data/bin/lib/Image/ExifTool/LNK.pm +4 -1
- data/bin/lib/Image/ExifTool/Lang/cs.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/de.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/fr.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/it.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/ja.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/nl.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/pl.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +0 -1
- data/bin/lib/Image/ExifTool/Microsoft.pm +158 -1
- data/bin/lib/Image/ExifTool/Minolta.pm +4 -2
- data/bin/lib/Image/ExifTool/Nikon.pm +72 -37
- data/bin/lib/Image/ExifTool/NikonCustom.pm +40 -10
- data/bin/lib/Image/ExifTool/Olympus.pm +254 -34
- data/bin/lib/Image/ExifTool/Panasonic.pm +3 -3
- data/bin/lib/Image/ExifTool/Pentax.pm +340 -61
- data/bin/lib/Image/ExifTool/QuickTime.pm +11 -4
- data/bin/lib/Image/ExifTool/README +2 -1
- data/bin/lib/Image/ExifTool/Sony.pm +44 -17
- data/bin/lib/Image/ExifTool/TNEF.pm +487 -0
- data/bin/lib/Image/ExifTool/TagLookup.pm +4380 -4265
- data/bin/lib/Image/ExifTool/TagNames.pod +265 -19
- data/bin/lib/Image/ExifTool/WriteExif.pl +14 -12
- data/bin/lib/Image/ExifTool/Writer.pl +19 -15
- data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- data/bin/lib/Image/ExifTool.pm +12 -4
- data/bin/lib/Image/ExifTool.pod +50 -44
- data/bin/perl-Image-ExifTool.spec +46 -45
- data/lib/exiftool_vendored/version.rb +1 -1
- 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.
|
44
|
+
$VERSION = '2.89';
|
44
45
|
|
45
46
|
sub PrintLensInfo($$$);
|
46
47
|
|
@@ -447,6 +448,7 @@ my %olympusCameraTypes = (
|
|
447
448
|
S0101 => 'OM-5', #IB
|
448
449
|
S0121 => 'OM-1MarkII', #forum15652
|
449
450
|
S0123 => 'OM-3', #forum17208
|
451
|
+
S0130 => 'OM-5MarkII', #forum17465
|
450
452
|
SR45 => 'D220',
|
451
453
|
SR55 => 'D320L',
|
452
454
|
SR83 => 'D340L',
|
@@ -1932,20 +1934,39 @@ my %indexInfo = (
|
|
1932
1934
|
0x309 => { #forum13341
|
1933
1935
|
Name => 'AISubjectTrackingMode',
|
1934
1936
|
Writable => 'int16u',
|
1935
|
-
|
1936
|
-
|
1937
|
-
|
1938
|
-
|
1939
|
-
|
1940
|
-
|
1941
|
-
|
1942
|
-
|
1943
|
-
|
1944
|
-
|
1945
|
-
|
1946
|
-
|
1947
|
-
|
1948
|
-
|
1937
|
+
PrintConv => { #25 (OM models)
|
1938
|
+
0 => 'Off',
|
1939
|
+
0x100 => 'Motorsports; Object Not Found',
|
1940
|
+
0x101 => 'Motorsports; Racing Car Found',
|
1941
|
+
0x102 => 'Motorsports; Car Found',
|
1942
|
+
0x103 => 'Motorsports; Motorcyle Found',
|
1943
|
+
0x200 => 'Airplanes; Object Not Found',
|
1944
|
+
0x201 => 'Airplanes; Passenger/Transport Plane Found',
|
1945
|
+
0x202 => 'Airplanes; Small Plane/Fighter Jet Found',
|
1946
|
+
0x203 => 'Airplanes; Helicopter Found',
|
1947
|
+
0x300 => 'Trains; Object Not Found',
|
1948
|
+
0x301 => 'Trains; Object Found',
|
1949
|
+
0x400 => 'Birds; Object Not Found',
|
1950
|
+
0x401 => 'Birds; Object Found',
|
1951
|
+
0x500 => 'Dogs & Cats; Object Not Found',
|
1952
|
+
0x501 => 'Dogs & Cats; Object Found',
|
1953
|
+
0x600 => 'Human; Object Not Found',
|
1954
|
+
0x601 => 'Human; Object Found',
|
1955
|
+
},
|
1956
|
+
},
|
1957
|
+
0x030a => {
|
1958
|
+
Name => 'AFTargetInfo',
|
1959
|
+
Format => 'undef',
|
1960
|
+
Writable => 'int16u',
|
1961
|
+
Count => 10,
|
1962
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Olympus::AFTargetInfo' },
|
1963
|
+
},
|
1964
|
+
0x030b => {
|
1965
|
+
Name => 'SubjectDetectInfo',
|
1966
|
+
Format => 'undef',
|
1967
|
+
Writable => 'int16u',
|
1968
|
+
Count => 11,
|
1969
|
+
SubDirectory => { TagTable => 'Image::ExifTool::Olympus::SubjectDetectInfo' },
|
1949
1970
|
},
|
1950
1971
|
0x400 => { #6
|
1951
1972
|
Name => 'FlashMode',
|
@@ -2489,15 +2510,22 @@ my %indexInfo = (
|
|
2489
2510
|
Name => 'DriveMode',
|
2490
2511
|
Writable => 'int16u',
|
2491
2512
|
Count => -1,
|
2492
|
-
Notes =>
|
2513
|
+
Notes => q{
|
2514
|
+
2, 3, 5 or numbers: 1. Mode, 2. Shot number, 3. Mode bits, 5. Shutter mode,
|
2515
|
+
6. Shooting mode (E-M1 II and later models)
|
2516
|
+
},
|
2493
2517
|
PrintConv => q{
|
2494
|
-
my ($a,$b,$c,$d,$e) = split ' ',$val;
|
2495
|
-
if ($
|
2496
|
-
$
|
2518
|
+
my ($a,$b,$c,$d,$e,$f) = split ' ',$val;
|
2519
|
+
if ($b) {
|
2520
|
+
$b = ', Shot ' . $b;
|
2497
2521
|
} else {
|
2522
|
+
$b = '';
|
2523
|
+
}
|
2524
|
+
if (not defined $e or $e == 4) { #KG: personally, I'd like to skip 'Electronic shutter' since this is the defacto default setting
|
2498
2525
|
$e = '';
|
2526
|
+
} else {
|
2527
|
+
$e = '; ' . ({ 0 => 'Mechanical shutter' , 2 => 'Anti-shock' }->{$e} || "Unknown ($e)");
|
2499
2528
|
}
|
2500
|
-
return "Single Shot$e" unless $a;
|
2501
2529
|
if ($a == 5 and defined $c) {
|
2502
2530
|
$a = DecodeBits($c, { #6
|
2503
2531
|
0 => 'AE',
|
@@ -2509,16 +2537,51 @@ my %indexInfo = (
|
|
2509
2537
|
6 => 'Focus', #PH
|
2510
2538
|
}) . ' Bracketing';
|
2511
2539
|
$a =~ s/, /+/g;
|
2540
|
+
} elsif ($f) { #25
|
2541
|
+
# for newer models (E-M1 and later) look at byte 6 for other shooting modes
|
2542
|
+
my %f = (
|
2543
|
+
# Mechanical shutter modes
|
2544
|
+
0x01 => 'Single Shot',
|
2545
|
+
0x02 => 'Sequential L',
|
2546
|
+
0x03 => 'Sequential H',
|
2547
|
+
0x07 => 'Sequential',
|
2548
|
+
# Anti-shock modes
|
2549
|
+
0x11 => 'Single Shot',
|
2550
|
+
0x12 => 'Sequential L',
|
2551
|
+
0x13 => 'Sequential H',
|
2552
|
+
0x14 => 'Self-Timer 12 sec',
|
2553
|
+
0x15 => 'Self-Timer 2 sec',
|
2554
|
+
0x16 => 'Custom Self-Timer',
|
2555
|
+
0x17 => 'Sequential',
|
2556
|
+
# Electronical shutter modes
|
2557
|
+
0x21 => 'Single Shot',
|
2558
|
+
0x22 => 'Sequential L',
|
2559
|
+
0x23 => 'Sequential H',
|
2560
|
+
0x24 => 'Self-Timer 2 sec',
|
2561
|
+
0x25 => 'Self-Timer 12 sec',
|
2562
|
+
0x26 => 'Custom Self-Timer',
|
2563
|
+
0x27 => 'Sequential',
|
2564
|
+
0x28 => 'Sequential SH1',
|
2565
|
+
0x29 => 'Sequential SH2',
|
2566
|
+
0x30 => 'HighRes Shot', # only E-M models
|
2567
|
+
0x41 => 'ProCap H',
|
2568
|
+
0x42 => 'ProCap L',
|
2569
|
+
0x43 => 'ProCap',
|
2570
|
+
0x48 => 'ProCap SH1',
|
2571
|
+
0x49 => 'ProCap SH2',
|
2572
|
+
);
|
2573
|
+
$a = $f{$f} || "Unknown ($f)";
|
2512
2574
|
} else {
|
2513
|
-
|
2514
|
-
|
2515
|
-
|
2516
|
-
|
2517
|
-
|
2518
|
-
|
2519
|
-
|
2575
|
+
my %a = (
|
2576
|
+
0 => 'Single Shot',
|
2577
|
+
1 => 'Continuous Shooting',
|
2578
|
+
2 => 'Exposure Bracketing',
|
2579
|
+
3 => 'White Balance Bracketing',
|
2580
|
+
4 => 'Exposure+WB Bracketing', #6
|
2581
|
+
);
|
2582
|
+
$a = $a{$a} || "Unknown ($a)";
|
2520
2583
|
}
|
2521
|
-
return "$a
|
2584
|
+
return "$a$b$e";
|
2522
2585
|
},
|
2523
2586
|
},
|
2524
2587
|
0x601 => { #6
|
@@ -2555,10 +2618,10 @@ my %indexInfo = (
|
|
2555
2618
|
RawConv => '$$self{ImageStabilization} = $val',
|
2556
2619
|
PrintConv => {
|
2557
2620
|
0 => 'Off',
|
2558
|
-
1 => 'On,
|
2559
|
-
2 => 'On,
|
2560
|
-
3 => 'On,
|
2561
|
-
4 => 'On,
|
2621
|
+
1 => 'On, S-IS1 (All Direction Shake IS)', #25
|
2622
|
+
2 => 'On, S-IS2 (Vertical Shake IS)', #25
|
2623
|
+
3 => 'On, S-IS3 (Horizontal Shake IS)', #25
|
2624
|
+
4 => 'On, S-IS Auto', #25
|
2562
2625
|
},
|
2563
2626
|
},
|
2564
2627
|
0x804 => { #PH (E-M1 with firmware update)
|
@@ -2581,6 +2644,9 @@ my %indexInfo = (
|
|
2581
2644
|
'9 *' => 'Focus-stacked (* images)', #IB (* = 2-15)
|
2582
2645
|
'11 12' => 'Hand-held high resolution (11 12)', #forum13341 (OM-1)
|
2583
2646
|
'11 16' => 'Hand-held high resolution (11 16)', #IB (perhaps '11 15' would be possible, ref 24)
|
2647
|
+
'13 2' => 'GND2 (1EV)', #25
|
2648
|
+
'13 4' => 'GND4 (2EV)', #25
|
2649
|
+
'13 8' => 'GND8 (3EV)', #25
|
2584
2650
|
OTHER => sub {
|
2585
2651
|
my ($val, $inv, $conv) = @_;
|
2586
2652
|
if ($inv) {
|
@@ -2601,6 +2667,73 @@ my %indexInfo = (
|
|
2601
2667
|
},
|
2602
2668
|
},
|
2603
2669
|
},
|
2670
|
+
0x0821 => { #25
|
2671
|
+
Name => 'ISOAutoSettings',
|
2672
|
+
Writable => 'int16u',
|
2673
|
+
Count => 2,
|
2674
|
+
Notes => '2 numbers: 1. Default sensitivty, 2. Maximum sensitivity',
|
2675
|
+
PrintConv => [{
|
2676
|
+
0 => 'n/a',
|
2677
|
+
0x0600 => '200',
|
2678
|
+
0x0655 => '250',
|
2679
|
+
0x06aa => '320',
|
2680
|
+
0x0700 => '400',
|
2681
|
+
0x0755 => '500',
|
2682
|
+
0x07aa => '640',
|
2683
|
+
0x0800 => '800',
|
2684
|
+
0x0855 => '1000',
|
2685
|
+
0x08aa => '1250',
|
2686
|
+
0x0900 => '1600',
|
2687
|
+
0x0955 => '2000',
|
2688
|
+
0x09aa => '2500',
|
2689
|
+
0x0a00 => '3200',
|
2690
|
+
0x0a55 => '4000',
|
2691
|
+
0x0aaa => '5000',
|
2692
|
+
0x0b00 => '6400',
|
2693
|
+
0x0b55 => '8000',
|
2694
|
+
0x0baa => '10000',
|
2695
|
+
0x0c00 => '12800',
|
2696
|
+
0x0c55 => '16000',
|
2697
|
+
0x0caa => '20000',
|
2698
|
+
0x0d00 => '25600',
|
2699
|
+
0x0d55 => '32000',
|
2700
|
+
0x0daa => '40000',
|
2701
|
+
0x0e00 => '51200',
|
2702
|
+
0x0e55 => '64000',
|
2703
|
+
0x0eaa => '80000',
|
2704
|
+
0x0f00 => '102400',
|
2705
|
+
},{
|
2706
|
+
0 => 'n/a',
|
2707
|
+
0x0600 => '200',
|
2708
|
+
0x0655 => '250',
|
2709
|
+
0x06aa => '320',
|
2710
|
+
0x0700 => '400',
|
2711
|
+
0x0755 => '500',
|
2712
|
+
0x07aa => '640',
|
2713
|
+
0x0800 => '800',
|
2714
|
+
0x0855 => '1000',
|
2715
|
+
0x08aa => '1250',
|
2716
|
+
0x0900 => '1600',
|
2717
|
+
0x0955 => '2000',
|
2718
|
+
0x09aa => '2500',
|
2719
|
+
0x0a00 => '3200',
|
2720
|
+
0x0a55 => '4000',
|
2721
|
+
0x0aaa => '5000',
|
2722
|
+
0x0b00 => '6400',
|
2723
|
+
0x0b55 => '8000',
|
2724
|
+
0x0baa => '10000',
|
2725
|
+
0x0c00 => '12800',
|
2726
|
+
0x0c55 => '16000',
|
2727
|
+
0x0caa => '20000',
|
2728
|
+
0x0d00 => '25600',
|
2729
|
+
0x0d55 => '32000',
|
2730
|
+
0x0daa => '40000',
|
2731
|
+
0x0e00 => '51200',
|
2732
|
+
0x0e55 => '64000',
|
2733
|
+
0x0eaa => '80000',
|
2734
|
+
0x0f00 => '102400',
|
2735
|
+
}],
|
2736
|
+
},
|
2604
2737
|
0x900 => { #11
|
2605
2738
|
Name => 'ManometerPressure',
|
2606
2739
|
Writable => 'int16u',
|
@@ -2651,6 +2784,66 @@ my %indexInfo = (
|
|
2651
2784
|
},
|
2652
2785
|
);
|
2653
2786
|
|
2787
|
+
# ref 25
|
2788
|
+
%Image::ExifTool::Olympus::AFTargetInfo = (
|
2789
|
+
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
2790
|
+
WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
|
2791
|
+
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
2792
|
+
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
2793
|
+
FIRST_ENTRY => 0,
|
2794
|
+
FORMAT => 'int16u',
|
2795
|
+
WRITABLE => 1,
|
2796
|
+
NOTES => 'Position and size of selected AF Area and focus areas for OM cameras.',
|
2797
|
+
0 => { Name => 'AFFrameSize', Format => 'int16u[2]' , Notes => 'width/height of the focus/select frame' },
|
2798
|
+
2 => { Name => 'AFFocusArea', Format => 'int16u[4]' , Notes => 'X Y width height. The center is identical to AFPointSelected' },
|
2799
|
+
6 => {
|
2800
|
+
Name => 'AFSelectedArea',
|
2801
|
+
Format => 'int16u[4]',
|
2802
|
+
Notes => q{
|
2803
|
+
X Y width height. Subject and Face Detection OFF: User selected AF target
|
2804
|
+
area. Subject or Face Detection ON: Area related to detection process.
|
2805
|
+
},
|
2806
|
+
},
|
2807
|
+
);
|
2808
|
+
|
2809
|
+
# ref 25
|
2810
|
+
%Image::ExifTool::Olympus::SubjectDetectInfo = (
|
2811
|
+
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
2812
|
+
WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
|
2813
|
+
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
2814
|
+
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
2815
|
+
FIRST_ENTRY => 0,
|
2816
|
+
FORMAT => 'int16u',
|
2817
|
+
WRITABLE => 1,
|
2818
|
+
NOTES => q{
|
2819
|
+
Subject Detection data for OM cameras. These tags contain the areas of a
|
2820
|
+
subject and its elements detected by Subject Detection, or the main face and
|
2821
|
+
eyes detected by Face Detection. These elements can be either L1 details
|
2822
|
+
(level 1, such as head, chassis, airplane nose, etc.) or L2 details (level
|
2823
|
+
2, such as eye, driver, airplane cockpit, etc.).
|
2824
|
+
},
|
2825
|
+
0 => { Name => 'SubjectDetectFrameSize', Format => 'int16u[2]', Notes => 'width/height of the subject detect frame' },
|
2826
|
+
2 => { Name => 'SubjectDetectArea', Format => 'int16u[4]', Notes => 'X Y width height' },
|
2827
|
+
6 => { Name => 'SubjectDetectDetail', Format => 'int16u[4]', Notes => 'X Y width height' },
|
2828
|
+
10 => {
|
2829
|
+
Name => 'SubjectDetectStatus',
|
2830
|
+
Notes => q{
|
2831
|
+
Indicates the presence of data related to subject and face detection, not
|
2832
|
+
necessarily corresponding to the detection result
|
2833
|
+
},
|
2834
|
+
PrintConv => {
|
2835
|
+
0 => 'No Data',
|
2836
|
+
257 => 'Subject and L1 Detail Detected', # (head, airplane nose, ...)
|
2837
|
+
258 => 'Subject and L2 Detail Detected', # (eye, airplane cockpit, ...)
|
2838
|
+
260 => 'Subject Detected, No Details',
|
2839
|
+
515 => 'Face and Eye Detected',
|
2840
|
+
516 => 'Face Detected',
|
2841
|
+
771 => 'Subject Detail or Eye Detected',
|
2842
|
+
772 => 'No Subject or Face Detected',
|
2843
|
+
},
|
2844
|
+
},
|
2845
|
+
);
|
2846
|
+
|
2654
2847
|
# Olympus RAW processing IFD (ref 6)
|
2655
2848
|
%Image::ExifTool::Olympus::RawDevelopment = (
|
2656
2849
|
WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
|
@@ -2835,6 +3028,23 @@ my %indexInfo = (
|
|
2835
3028
|
PrintConvColumns => 2,
|
2836
3029
|
PrintConv => [ \%filters ],
|
2837
3030
|
},
|
3031
|
+
0x8000 => {
|
3032
|
+
Name => 'RawDevSubIFD',
|
3033
|
+
Groups => { 1 => 'MakerNotes' },
|
3034
|
+
Flags => 'SubIFD',
|
3035
|
+
FixFormat => 'ifd',
|
3036
|
+
SubDirectory => {
|
3037
|
+
TagTable => 'Image::ExifTool::Olympus::RawDevSubIFD',
|
3038
|
+
Start => '$val',
|
3039
|
+
},
|
3040
|
+
},
|
3041
|
+
);
|
3042
|
+
|
3043
|
+
%Image::ExifTool::Olympus::RawDevSubIFD = (
|
3044
|
+
WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
|
3045
|
+
CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
|
3046
|
+
WRITABLE => 1,
|
3047
|
+
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
|
2838
3048
|
);
|
2839
3049
|
|
2840
3050
|
# Olympus Image processing IFD
|
@@ -3073,6 +3283,11 @@ my %indexInfo = (
|
|
3073
3283
|
# (use in conjunction with KeystoneDirection, -ve is Top or Right, +ve is Bottom or Left)
|
3074
3284
|
Notes => '3 numbers: 1. Keystone Value, 2. Min, 3. Max',
|
3075
3285
|
},
|
3286
|
+
0x2110 => { #25
|
3287
|
+
Name => 'GNDFilterType',
|
3288
|
+
Format => 'int8u',
|
3289
|
+
PrintConv => { 0 => 'High', 1 => 'Medium', 2 => 'Soft' },
|
3290
|
+
},
|
3076
3291
|
);
|
3077
3292
|
|
3078
3293
|
# Olympus Focus Info IFD
|
@@ -3238,7 +3453,7 @@ my %indexInfo = (
|
|
3238
3453
|
],
|
3239
3454
|
# 0x31a Continuous AF parameters?
|
3240
3455
|
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
|
3456
|
+
# for newer models E-Mxxx and OM-x
|
3242
3457
|
{
|
3243
3458
|
Name => 'AFPointDetails',
|
3244
3459
|
Condition => '$$self{Model} =~ m/^E-M|^OM-/ ',
|
@@ -3250,7 +3465,7 @@ my %indexInfo = (
|
|
3250
3465
|
(($val >> 8) & 0x3) . " " . (($val >> 7) & 0x1) . " " . (($val >> 5) & 0x1) . " " .
|
3251
3466
|
# eye AF face detect x-AF with MF
|
3252
3467
|
(($val >> 4) & 0x1) . " " . (($val >> 3) & 0x1) . " " . ($val & 0x7)',
|
3253
|
-
# release object found MF...
|
3468
|
+
# release object found MF...
|
3254
3469
|
PrintConvColumns => 4,
|
3255
3470
|
PrintConv => [
|
3256
3471
|
{
|
@@ -3405,6 +3620,7 @@ my %indexInfo = (
|
|
3405
3620
|
},
|
3406
3621
|
},
|
3407
3622
|
# 0x102a same as Subdir4-0x300
|
3623
|
+
0x2100 => 'AntiShockWaitingTime', #25
|
3408
3624
|
);
|
3409
3625
|
|
3410
3626
|
# AF information (ref PH)
|
@@ -3419,6 +3635,10 @@ my %indexInfo = (
|
|
3419
3635
|
# 0x36 - int16u: AFAreaHeight? (50)
|
3420
3636
|
# (AF area positions above give the top-left coordinates of the AF area in the
|
3421
3637
|
# AF frame. Increasing Y is downwards, and the AF frame size is about 1280x256)
|
3638
|
+
0x062c => { #25
|
3639
|
+
Name => 'CAFSensitivity',
|
3640
|
+
Format => 'int8s',
|
3641
|
+
},
|
3422
3642
|
);
|
3423
3643
|
|
3424
3644
|
# 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.
|
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 => {
|
1380
|
+
PrintConv => { 1 => 'No', 2 => 'Yes' },
|
1381
1381
|
},
|
1382
1382
|
0xbf => { #forum11194
|
1383
1383
|
Name => 'PostFocusMerging',
|