exiftool-vendored.pl 13.32.0 → 13.34.1
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.
- package/README.md +2 -2
- package/bin/Changes +43 -4
- package/bin/MANIFEST +5 -0
- package/bin/META.json +1 -1
- package/bin/META.yml +1 -1
- package/bin/README +47 -46
- package/bin/exiftool +100 -83
- package/bin/lib/Image/ExifTool/BuildTagLookup.pm +4 -2
- package/bin/lib/Image/ExifTool/Canon.pm +15 -2
- package/bin/lib/Image/ExifTool/Exif.pm +6 -5
- package/bin/lib/Image/ExifTool/FlashPix.pm +4 -159
- package/bin/lib/Image/ExifTool/FujiFilm.pm +11 -3
- package/bin/lib/Image/ExifTool/Geotag.pm +5 -3
- package/bin/lib/Image/ExifTool/GoPro.pm +14 -2
- package/bin/lib/Image/ExifTool/LNK.pm +4 -1
- package/bin/lib/Image/ExifTool/Lang/cs.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/de.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/fr.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/it.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/ja.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/nl.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/pl.pm +0 -1
- package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +0 -1
- package/bin/lib/Image/ExifTool/Microsoft.pm +158 -1
- package/bin/lib/Image/ExifTool/Minolta.pm +4 -2
- package/bin/lib/Image/ExifTool/Nikon.pm +69 -35
- package/bin/lib/Image/ExifTool/NikonCustom.pm +40 -10
- package/bin/lib/Image/ExifTool/Olympus.pm +253 -34
- package/bin/lib/Image/ExifTool/Panasonic.pm +3 -3
- package/bin/lib/Image/ExifTool/Pentax.pm +168 -14
- package/bin/lib/Image/ExifTool/QuickTime.pm +11 -4
- package/bin/lib/Image/ExifTool/README +2 -1
- package/bin/lib/Image/ExifTool/Sony.pm +43 -17
- package/bin/lib/Image/ExifTool/TNEF.pm +487 -0
- package/bin/lib/Image/ExifTool/TagLookup.pm +4375 -4267
- package/bin/lib/Image/ExifTool/TagNames.pod +244 -16
- package/bin/lib/Image/ExifTool/WriteExif.pl +14 -12
- package/bin/lib/Image/ExifTool/Writer.pl +12 -12
- package/bin/lib/Image/ExifTool.pm +12 -4
- package/bin/lib/Image/ExifTool.pod +50 -44
- package/bin/perl-Image-ExifTool.spec +46 -45
- package/index.js +2 -2
- package/package.json +9 -7
- package/bin/windows_exiftool.txt +0 -2936
|
@@ -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
|
|
|
@@ -1933,20 +1934,39 @@ my %indexInfo = (
|
|
|
1933
1934
|
0x309 => { #forum13341
|
|
1934
1935
|
Name => 'AISubjectTrackingMode',
|
|
1935
1936
|
Writable => 'int16u',
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
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' },
|
|
1950
1970
|
},
|
|
1951
1971
|
0x400 => { #6
|
|
1952
1972
|
Name => 'FlashMode',
|
|
@@ -2490,15 +2510,22 @@ my %indexInfo = (
|
|
|
2490
2510
|
Name => 'DriveMode',
|
|
2491
2511
|
Writable => 'int16u',
|
|
2492
2512
|
Count => -1,
|
|
2493
|
-
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
|
+
},
|
|
2494
2517
|
PrintConv => q{
|
|
2495
|
-
my ($a,$b,$c,$d,$e) = split ' ',$val;
|
|
2496
|
-
if ($
|
|
2497
|
-
$
|
|
2518
|
+
my ($a,$b,$c,$d,$e,$f) = split ' ',$val;
|
|
2519
|
+
if ($b) {
|
|
2520
|
+
$b = ', Shot ' . $b;
|
|
2498
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
|
|
2499
2525
|
$e = '';
|
|
2526
|
+
} else {
|
|
2527
|
+
$e = '; ' . ({ 0 => 'Mechanical shutter' , 2 => 'Anti-shock' }->{$e} || "Unknown ($e)");
|
|
2500
2528
|
}
|
|
2501
|
-
return "Single Shot$e" unless $a;
|
|
2502
2529
|
if ($a == 5 and defined $c) {
|
|
2503
2530
|
$a = DecodeBits($c, { #6
|
|
2504
2531
|
0 => 'AE',
|
|
@@ -2510,16 +2537,51 @@ my %indexInfo = (
|
|
|
2510
2537
|
6 => 'Focus', #PH
|
|
2511
2538
|
}) . ' Bracketing';
|
|
2512
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)";
|
|
2513
2574
|
} else {
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
|
|
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)";
|
|
2521
2583
|
}
|
|
2522
|
-
return "$a
|
|
2584
|
+
return "$a$b$e";
|
|
2523
2585
|
},
|
|
2524
2586
|
},
|
|
2525
2587
|
0x601 => { #6
|
|
@@ -2556,10 +2618,10 @@ my %indexInfo = (
|
|
|
2556
2618
|
RawConv => '$$self{ImageStabilization} = $val',
|
|
2557
2619
|
PrintConv => {
|
|
2558
2620
|
0 => 'Off',
|
|
2559
|
-
1 => 'On,
|
|
2560
|
-
2 => 'On,
|
|
2561
|
-
3 => 'On,
|
|
2562
|
-
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
|
|
2563
2625
|
},
|
|
2564
2626
|
},
|
|
2565
2627
|
0x804 => { #PH (E-M1 with firmware update)
|
|
@@ -2582,6 +2644,9 @@ my %indexInfo = (
|
|
|
2582
2644
|
'9 *' => 'Focus-stacked (* images)', #IB (* = 2-15)
|
|
2583
2645
|
'11 12' => 'Hand-held high resolution (11 12)', #forum13341 (OM-1)
|
|
2584
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
|
|
2585
2650
|
OTHER => sub {
|
|
2586
2651
|
my ($val, $inv, $conv) = @_;
|
|
2587
2652
|
if ($inv) {
|
|
@@ -2602,6 +2667,73 @@ my %indexInfo = (
|
|
|
2602
2667
|
},
|
|
2603
2668
|
},
|
|
2604
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
|
+
},
|
|
2605
2737
|
0x900 => { #11
|
|
2606
2738
|
Name => 'ManometerPressure',
|
|
2607
2739
|
Writable => 'int16u',
|
|
@@ -2652,6 +2784,66 @@ my %indexInfo = (
|
|
|
2652
2784
|
},
|
|
2653
2785
|
);
|
|
2654
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
|
+
|
|
2655
2847
|
# Olympus RAW processing IFD (ref 6)
|
|
2656
2848
|
%Image::ExifTool::Olympus::RawDevelopment = (
|
|
2657
2849
|
WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
|
|
@@ -2836,6 +3028,23 @@ my %indexInfo = (
|
|
|
2836
3028
|
PrintConvColumns => 2,
|
|
2837
3029
|
PrintConv => [ \%filters ],
|
|
2838
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' },
|
|
2839
3048
|
);
|
|
2840
3049
|
|
|
2841
3050
|
# Olympus Image processing IFD
|
|
@@ -3074,6 +3283,11 @@ my %indexInfo = (
|
|
|
3074
3283
|
# (use in conjunction with KeystoneDirection, -ve is Top or Right, +ve is Bottom or Left)
|
|
3075
3284
|
Notes => '3 numbers: 1. Keystone Value, 2. Min, 3. Max',
|
|
3076
3285
|
},
|
|
3286
|
+
0x2110 => { #25
|
|
3287
|
+
Name => 'GNDFilterType',
|
|
3288
|
+
Format => 'int8u',
|
|
3289
|
+
PrintConv => { 0 => 'High', 1 => 'Medium', 2 => 'Soft' },
|
|
3290
|
+
},
|
|
3077
3291
|
);
|
|
3078
3292
|
|
|
3079
3293
|
# Olympus Focus Info IFD
|
|
@@ -3239,7 +3453,7 @@ my %indexInfo = (
|
|
|
3239
3453
|
],
|
|
3240
3454
|
# 0x31a Continuous AF parameters?
|
|
3241
3455
|
0x31b => [ #herb, based on investigations of abgestumpft: https://exiftool.org/forum/index.php?topic=14527.0
|
|
3242
|
-
# for newer models E-Mxxx and OM-x
|
|
3456
|
+
# for newer models E-Mxxx and OM-x
|
|
3243
3457
|
{
|
|
3244
3458
|
Name => 'AFPointDetails',
|
|
3245
3459
|
Condition => '$$self{Model} =~ m/^E-M|^OM-/ ',
|
|
@@ -3251,7 +3465,7 @@ my %indexInfo = (
|
|
|
3251
3465
|
(($val >> 8) & 0x3) . " " . (($val >> 7) & 0x1) . " " . (($val >> 5) & 0x1) . " " .
|
|
3252
3466
|
# eye AF face detect x-AF with MF
|
|
3253
3467
|
(($val >> 4) & 0x1) . " " . (($val >> 3) & 0x1) . " " . ($val & 0x7)',
|
|
3254
|
-
# release object found MF...
|
|
3468
|
+
# release object found MF...
|
|
3255
3469
|
PrintConvColumns => 4,
|
|
3256
3470
|
PrintConv => [
|
|
3257
3471
|
{
|
|
@@ -3406,6 +3620,7 @@ my %indexInfo = (
|
|
|
3406
3620
|
},
|
|
3407
3621
|
},
|
|
3408
3622
|
# 0x102a same as Subdir4-0x300
|
|
3623
|
+
0x2100 => 'AntiShockWaitingTime', #25
|
|
3409
3624
|
);
|
|
3410
3625
|
|
|
3411
3626
|
# AF information (ref PH)
|
|
@@ -3420,6 +3635,10 @@ my %indexInfo = (
|
|
|
3420
3635
|
# 0x36 - int16u: AFAreaHeight? (50)
|
|
3421
3636
|
# (AF area positions above give the top-left coordinates of the AF area in the
|
|
3422
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
|
+
},
|
|
3423
3642
|
);
|
|
3424
3643
|
|
|
3425
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',
|