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.
- checksums.yaml +4 -4
- data/bin/Changes +88 -2
- data/bin/MANIFEST +5 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/Makefile.PL +1 -0
- data/bin/README +47 -46
- data/bin/exiftool +155 -120
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +7 -5
- data/bin/lib/Image/ExifTool/Canon.pm +46 -6
- data/bin/lib/Image/ExifTool/DJI.pm +54 -3
- 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 +97 -32
- data/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
- 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/M2TS.pm +2 -4
- 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 +73 -37
- data/bin/lib/Image/ExifTool/NikonCustom.pm +40 -10
- data/bin/lib/Image/ExifTool/Olympus.pm +258 -34
- data/bin/lib/Image/ExifTool/Panasonic.pm +3 -3
- data/bin/lib/Image/ExifTool/Pentax.pm +341 -61
- data/bin/lib/Image/ExifTool/Protobuf.pm +1 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +11 -4
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +1 -1
- data/bin/lib/Image/ExifTool/README +2 -1
- data/bin/lib/Image/ExifTool/RIFF.pm +5 -3
- data/bin/lib/Image/ExifTool/Sony.pm +46 -17
- data/bin/lib/Image/ExifTool/TNEF.pm +487 -0
- data/bin/lib/Image/ExifTool/TagLookup.pm +4384 -4265
- data/bin/lib/Image/ExifTool/TagNames.pod +291 -27
- data/bin/lib/Image/ExifTool/WriteExif.pl +14 -12
- data/bin/lib/Image/ExifTool/Writer.pl +21 -16
- data/bin/lib/Image/ExifTool/XMP.pm +8 -2
- data/bin/lib/Image/ExifTool/XMP2.pl +1 -1
- data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- data/bin/lib/Image/ExifTool.pm +14 -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.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
|
-
|
1936
|
-
|
1937
|
-
|
1938
|
-
|
1939
|
-
|
1940
|
-
|
1941
|
-
|
1942
|
-
|
1943
|
-
|
1944
|
-
|
1945
|
-
|
1946
|
-
|
1947
|
-
|
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 =>
|
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 ($
|
2496
|
-
$
|
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
|
-
|
2514
|
-
|
2515
|
-
|
2516
|
-
|
2517
|
-
|
2518
|
-
|
2519
|
-
|
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
|
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,
|
2559
|
-
2 => 'On,
|
2560
|
-
3 => 'On,
|
2561
|
-
4 => 'On,
|
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.
|
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',
|