Ignore:
Timestamp:
2021-02-26T19:39:51+13:00 (3 years ago)
Author:
anupama
Message:

Committing the improvements to EmbeddedMetaPlugin's processing of Keywords vs other metadata fields. Keywords were literally stored as arrays of words rather than phrases in PDFs (at least in Diego's sample PDF), whereas other meta fields like Subjects and Creators stored them as arrays of phrases. To get both to work, Kathy updated EXIF to a newer version, to retrieve the actual EXIF values stored in the PDF. And Kathy and Dr Bainbridge came up with a new option that I added called apply_join_before_split_to_metafields that's a regex which can list the metadata fields to apply the join_before_split to and whcih previously always got applied to all metadata fields. Now it's applied to any *Keywords metafields by default, as that's the metafield we have experience of that behaves differently to the others, as it stores by word instead of phrases. Tested on Diego's sample PDF. Diego has double-checked it to works on his sample PDF too, setting the split char to ; and turning on the join_before_split and leaving apply_join_before_split_to_metafields at its default of .*Keywords. File changes are strings.properties for the tooltip, the plugin introducing the option and working with it and Kathy's EXIF updates affecting cpan/File and cpan/Image.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone2/perllib/cpan/Image/ExifTool/Minolta.pm

    r24107 r34921  
    1010#               2) Jay Al-Saadi private communication (testing with A2)
    1111#               3) Shingo Noguchi, PhotoXP (http://www.daifukuya.com/photoxp/)
    12 #               4) Niels Kristian Bech Jensen private communication
    1312#               5) http://www.cybercom.net/~dcoffin/dcraw/
    1413#               6) Pedro Corte-Real private communication
     
    3332#              23) Marcin Krol private communication
    3433#              24) http://cpanforum.com/threads/12291
     34#              26) https://exiftool.org/forum/index.php/topic,3521.0.html
     35#              27) https://exiftool.org/forum/index.php/topic,3833.0.html
     36#              28) Michael Reitinger private communication (RX100)
     37#              29) https://exiftool.org/forum/index.php/topic,4086.0.html
     38#              IB) Iliah Borg private communication (LibRaw)
    3539#              JD) Jens Duttke private communication
     40#              JR) Jos Roost private communication
     41#              NJ) Niels Kristian Bech Jensen private communication
    3642#------------------------------------------------------------------------------
    3743
     
    3945
    4046use strict;
    41 use vars qw($VERSION %minoltaLensTypes %minoltaColorMode %sonyColorMode %minoltaSceneMode);
     47use vars qw($VERSION %minoltaLensTypes %minoltaTeleconverters %minoltaColorMode
     48            %sonyColorMode %minoltaSceneMode %afStatusInfo %metabonesID);
    4249use Image::ExifTool qw(:DataAccess :Utils);
    4350use Image::ExifTool::Exif;
    4451
    45 $VERSION = '1.76';
     52$VERSION = '2.87';
     53
     54# Full list of product codes for Sony-compatible Minolta lenses
     55# (ref http://www.kb.sony.com/selfservice/documentLink.do?externalId=C1000570)
     56# NOTE: Unfortunately, these product codes sometimes do not match the first 4
     57#       digits of the lens ID
     58# 2578 AF 16mm F2.8 FISH-EYE
     59# 2579 AF 20mm F2.8
     60# 2641 AF 20mm F2.8 NEW
     61# 2566 AF 24mm F2.8
     62# 2642 AF 24mm F2.8 NEW
     63# 2596 AF 28mm F2
     64# 2668 AF 28mm F2 NEW
     65# 2557 AF 28mm F2.8
     66# 2591 AF 35mm F1.4 G
     67# 2666 AF 35mm F1.4 G NEW
     68# 2597 AF 35mm F2
     69# 2667 AF 35mm F2 NEW
     70# 2562 AF 50mm F1.4
     71# 2662 AF 50mm F1.4 NEW
     72# 2550 AF 50mm F1.7
     73# 2613 AF 50mm F1.7 NEW
     74# 2592 AF 85mm F1.4
     75# 2629 AF 85mm F1.4 G
     76# 2677 AF 85mm F1.4 G (D)
     77# 2689 AF 85mm F1.4 G (D) Limited
     78# 2598 AF 100mm F2
     79# 2648 AF 100mm F2.8 SOFT
     80# 2556 AF 135mm F2.8
     81# 2656 STF 135mm F2.8 [T4.5]
     82# 2593 AF APO 20 0mm F2.8
     83# 2612 High Speed AF APO 200mm F2.8 G
     84# 2563 AF APO 300mm F2.8
     85# 2608 High Speed AF APO 300mm F2.8 G
     86# 2674 AF APO 300mm F2.8 G(D) SSM
     87# 2640 AF APO 300mm F4 G
     88# 2651 AF APO 400mm F4.5 G
     89# 2572 AF REFLEX 500mm F8
     90# 2565 AF APO 600mm F4
     91# 2609 High Speed AF APO 600mm F4 G
     92# 2564 AF MACRO 50mm F2.8
     93# 2638 AF MACRO 50mm F2.8 NEW
     94# 2675 AF MACRO 50mm F2.8 (D)
     95# 2646 AF MACRO 50mm F3.5
     96# 2581 AF MACRO 100mm F2.8
     97# 2639 AF MACRO 100mm F2.8 NEW
     98# 2676 AF MACRO 100mm F2.8 (D)
     99# 2658 AF APO TE LE MACRO 200mm F4 G
     100# 2594 AF MACRO ZOOM 1x-3x F1.7-2.8
     101# 2695 AF 17-35mm F2.8-4 (D)
     102# 2654 AF 17-35mm F3.5 G
     103# 2657 AF 20-35mm F3.5-4.5
     104# 2558 AF 24-50mm F4
     105# 2632 AF 24-50mm F4 NEW
     106# 2636 AF 24-85mm F3.5-4.5
     107# 2660 AF 24-85mm F3.5-4.5 NEW
     108# 2672 AF 24-105mm F3.5-4.5 (D)
     109# 2620 AF 28-70mm F2.8 G
     110# 2696 AF 28-75mm F2.8 (D)
     111# 2659 AF 28-80mm F3.5-5.6
     112# 2670 AF 28-80mm F3.5-5.6 II
     113# 2683 AF 28-80mm F3.5-5.6 (D)
     114# 2633 AF 28-80mm F4-5.6
     115# 2552 AF 28-85mm F3.5-4.5
     116# 2586 AF 28-85mm F3.5-4.5 NEW
     117# 2692 AF 28-100mm F3.5-5.6 (D)
     118# 2635 AF 28-105mm F3.5-4.5
     119# 2661 AF 28-105mm F3.5-4.5 NEW
     120# 2553 AF 28-135mm F4-4.5
     121# 2551 AF 35-70mm F4
     122# 2643 AF 35-70mm F3.5-4.5
     123# 2652 AF 35-70mm F3.5-4.5 NEW
     124# 2605 AF 35-80mm F4-5.6
     125# 2671 AF 35-80mm F4.5-5.6 II
     126# 2554 AF 35-105mm F3.5-4.5
     127# 2585 AF 35-105mm F3.5-4.5
     128# 2682 AF APO 70-200mm F2.8 G (D) SSM
     129# 2588 AF 70-210mm F4.5-5.6
     130# 2555 AF 70-210mm F4
     131# 2634 AF 70-210mm F4.5-5.6 NEW
     132# 2669 AF 70-210mm F4.5-5.6 II
     133# 2561 AF 75-300mm F4.5-5.6
     134# 2649 AF 75-300mm F4.5-5.6 NEW
     135# 2665 AF 75-300mm F4.5-5.6 II
     136# 2684 AF 75-300mm F4.5-5.6 (D)
     137# 2589 AF APO 80-200mm F2.8
     138# 2628 High-Speed AF APO 80-200mm F2.8 G
     139# 2604 AF 80-200mm F4.5-5.6
     140# 2560 AF 100-200mm F4.5
     141# 2606 AF 100-300mm F4.5-5.6
     142# 2631 AF APO 100-300mm F4.5-5.6
     143# 2681 AF APO 100-300mm F4.5-5.6 (D)
     144# 2644 AF APO 100-400mm F4.5-6.7
     145# 2618 AF Xi 28-80mm F4-5.6
     146# 2615 AF Xi 28-105mm F3.5-4.5
     147# 2624 AF PZ 35-80mm F4-5.6
     148# 2616 AF Xi 35-200mm F4.5-5.6
     149# 2619 AF Xi 80-200mm F4.5-5.6
     150# 2621 AF Xi 100-300mm F4.5-5.6
     151# 2698 AF DT 11-18mm F4.5-5.6 (D)
     152# 2697 AF DT 18-70mm F3.5-5.6 (D)
     153# 2699 AF DT 18-200mm F3.5-6.3 (D)
     154# 2590 1.4x TELE CONVERTER APO
     155# 2601 2x TELE CONVERTER APO
     156# 2610 1.4x TELE CONVERTER APO II
     157# 2611 2x TELE CONVERTER APO II
     158# 2687 1.4x TELE CONVERTER APO (D)
     159# 2688 2x TELE CONVERTER APO (D)
     160
     161# high bytes in Sony LensID's identifying Metabones adapters and high bytes of Canon LensID's
     162%metabonesID = (
     163    # 0xef00 is used by Metabones, Fotodiox, Sigma and Viltrox adapters (JR)
     164    0xef00 => \ 'Canon EF Adapter',         # with Canon LensID 0x00xx
     165    0xf000 => 0xef00,                       # with Canon LensID 0x01xx
     166    0xf100 => 0xef00,                       # with Canon LensID 0x02xx
     167    0xff00 => 0xef00,                       # with Canon LensID 0x10xx
     168    0x7700 => \ 'Metabones Speed Booster',  # with Canon LensID 0x00xx
     169    0x7800 => 0x7700,                       # with Canon LensID 0x01xx
     170    0x7900 => 0x7700,                       # with Canon LensID 0x02xx
     171    0x8700 => 0x7700,                       # with Canon LensID 0x10xx
     172    0xbc00 => \ 'Metabones Speed Booster Ultra', # with Canon LensID 0x00xx
     173    0xbd00 => 0xbc00,                       # with Canon LensID 0x01xx
     174    0xbe00 => 0xbc00,                       # with Canon LensID 0x02xx
     175    0xcc00 => 0xbc00,                       # with Canon LensID 0x10xx
     176);
    46177
    47178# lens ID numbers (ref 3)
     
    49180%minoltaLensTypes = (
    50181    Notes => q{
    51         Decimal values differentiate lenses which would otherwise have the same
    52         LensType, and are used by the Composite LensID tag when attempting to
    53         identify the specific lens model.  "New" or "II" appear in brackets if the
    54         original version of the lens has the same LensType.
     182        Decimal values have been added to differentiate lenses which would otherwise
     183        have the same LensType, and are used by the Composite LensID tag when
     184        attempting to identify the specific lens model.  "New" or "II" appear in
     185        brackets if the original version of the lens has the same LensType.  Special
     186        logic is employed to identify the attached lens when a Metabones Canon EF
     187        adapter is used.
     188    },
     189    OTHER => sub {
     190        my ($val, $inv) = @_;
     191        return undef if $inv;
     192        my $id = $val & 0xff00;
     193        # Note: Metabones Smart Adapter firmware versions before 31 kill
     194        # the high byte for 2-byte Canon LensType values, so the reported lens
     195        # will be incorrect for these
     196        my $mb = $metabonesID{$id};
     197        if ($mb) {
     198            ref $mb or $id = $mb, $mb = $metabonesID{$id};
     199            require Image::ExifTool::Canon;
     200            my $lens = $Image::ExifTool::Canon::canonLensTypes{$val - $id};
     201            return "$lens + $$mb" if $lens;
     202        } elsif ($val >= 0x4900) { # test for Sigma MC-11 SA-E adapter with Sigma SA-mount lens
     203            require Image::ExifTool::Sigma;
     204            my $lens = $Image::ExifTool::Sigma::sigmaLensTypes{$val - 0x4900};
     205            return "$lens + MC-11 SA-E" if $lens;
     206        }
     207        return undef;
    55208    },
    56209    0 => 'Minolta AF 28-85mm F3.5-4.5 New', # New added (ref 13/18)
    57     1 => 'Minolta AF 80-200mm F2.8 HS-APO G',
     210    1 => 'Minolta AF 80-200mm F2.8 HS-APO G', # white
    58211    2 => 'Minolta AF 28-70mm F2.8 G',
    59212    3 => 'Minolta AF 28-80mm F4-5.6',
     213    4 => 'Minolta AF 85mm F1.4G', #exiv2 0.23
    60214    5 => 'Minolta AF 35-70mm F3.5-4.5 [II]', # (original and II, ref 13)
    61215    6 => 'Minolta AF 24-85mm F3.5-4.5 [New]', # (original and New, ref 13)
     
    77231    19 => 'Minolta AF 35mm F1.4 G', # G added (ref 18), but not New as per ref 13
    78232    20 => 'Minolta/Sony 135mm F2.8 [T4.5] STF',
     233    # 20 => 'Sony 135mm F2.8 [T4.5] STF (SAL135F28)', (ref JR)
    79234    22 => 'Minolta AF 35-80mm F4-5.6 II', # II added (ref 13)
    80235    23 => 'Minolta AF 200mm F4 Macro APO G',
    81236    24 => 'Minolta/Sony AF 24-105mm F3.5-4.5 (D) or Sigma or Tamron Lens',
     237    # 24 => 'Sony 24-105mm F3.5-4.5 (SAL24105)', (ref JR)
    82238    24.1 => 'Sigma 18-50mm F2.8',
    83     24.2 => 'Sigma 17-70mm F2.8-4.5 (D)',
    84     24.3 => 'Sigma 20-40mm F2.8 EX DG Aspherical IF', #JD
     239    24.2 => 'Sigma 17-70mm F2.8-4.5 DC Macro', # (changed "(D)" to "DC Macro", ref JR)
     240    24.3 => 'Sigma 20-40mm F2.8 EX DG Aspherical IF', #JD/22
    85241    24.4 => 'Sigma 18-200mm F3.5-6.3 DC', #22
    86     24.5 => 'Sigma 20-40mm F2.8 EX DG Aspherical IF', #22
    87     24.6 => 'Tamron SP AF 28-75mm F2.8 XR Di (IF) Macro', #JD
     242    24.5 => 'Sigma DC 18-125mm F4-5,6 D', #exiv2 0.23
     243  # 24.6 => 'Tamron SP AF 28-75mm F2.8 XR Di (IF) Macro', #JD
     244    24.6 => 'Tamron SP AF 28-75mm F2.8 XR Di LD Aspherical [IF] Macro', #NJ (Model A09)
     245    24.7 => 'Sigma 15-30mm F3.5-4.5 EX DG Aspherical', #JR
    88246    25 => 'Minolta AF 100-300mm F4.5-5.6 APO (D) or Sigma Lens',
    89247    25.1 => 'Sigma 100-300mm F4 EX (APO (D) or D IF)', #JD
    90248    25.2 => 'Sigma 70mm F2.8 EX DG Macro', #JD
    91249    25.3 => 'Sigma 20mm F1.8 EX DG Aspherical RF', #19
    92     25.4 => 'Sigma 30mm F1.4 DG EX', #21
     250    25.4 => 'Sigma 30mm F1.4 EX DC', #21/27
     251    25.5 => 'Sigma 24mm F1.8 EX DG ASP Macro', #Florian Knorn
     252    # 25 - also seen for an "old Sigma 50mm Macro" (forum2833)
    93253    27 => 'Minolta AF 85mm F1.4 G (D)', # added (D) (ref 13)
     254    # 27 => 'Venus Optics Laowa 105mm F2 STF', #IB (NC)
    94255    28 => 'Minolta/Sony AF 100mm F2.8 Macro (D) or Tamron Lens',
    95     # 28 => 'Sony 100mm F2.8 Macro (SAL-100M28)' (ref 18)
    96     28.1 => 'Tamron SP AF 90mm F2.8 Di Macro', #JD
     256    # 28 => 'Sony 100mm F2.8 Macro (SAL100M28)', (ref 18/JR)
     257    28.1 => 'Tamron SP AF 90mm F2.8 Di Macro', #JD (Model 272E)
     258    28.2 => 'Tamron SP AF 180mm F3.5 Di LD [IF] Macro', #27 (Model B01) ("SP" moved - ref JR)
    97259    29 => 'Minolta/Sony AF 75-300mm F4.5-5.6 (D)', # Sony added (ref 13)
     260    # 29 => 'Sony 75-300mm F4.5-5.6 (SAL75300)', (ref JR)
    98261    30 => 'Minolta AF 28-80mm F3.5-5.6 (D) or Sigma Lens',
    99262    30.1 => 'Sigma AF 10-20mm F4-5.6 EX DC', #JD
     
    102265    30.4 => 'Sigma 55-200mm F4-5.6 DC', #JD
    103266    31 => 'Minolta/Sony AF 50mm F2.8 Macro (D) or F3.5',
     267    # 31 => 'Sony 50mm F2.8 Macro (SAL50M28)', (ref JR)
    104268    31.1 => 'Minolta/Sony AF 50mm F3.5 Macro',
    105269    32 => 'Minolta/Sony AF 300mm F2.8 G or 1.5x Teleconverter', #13/18
    106     # 32 => 'Minolta AF 300mm F2.8 G (D) SSM' (ref 13)
    107     # 32 => 'Sony 300mm F2.8 G (SAL-300F28G)' (ref 18)
     270    # 32 => 'Minolta AF 300mm F2.8 APO G (D) SSM', (ref 13) ("APO" added - ref JR)
     271    # 32 => 'Sony 300mm F2.8 G (SAL300F28G)', (ref 18/JR)
    108272    33 => 'Minolta/Sony AF 70-200mm F2.8 G',
    109     # 33 => 'Minolta AF 70-200mm F2.8 G (D) SSM' (ref 13)
     273    # 33 => 'Sony 70-200mm F2.8 G (SAL70200G)', (ref JR)
     274    # 33 => 'Minolta AF 70-200mm F2.8 APO G (D) SSM' (ref 13) ("APO" added - ref JR)
    110275    35 => 'Minolta AF 85mm F1.4 G (D) Limited',
    111276    36 => 'Minolta AF 28-100mm F3.5-5.6 (D)',
    112277    38 => 'Minolta AF 17-35mm F2.8-4 (D)', # (Konica Minolta, ref 13)
    113278    39 => 'Minolta AF 28-75mm F2.8 (D)', # (Konica Minolta, ref 13)
    114     40 => 'Minolta/Sony AF DT 18-70mm F3.5-5.6 (D) or 18-200m F3.5-6.3', # (Konica Minolta, ref 13)
    115     40.1 => 'Sony AF DT 18-200mm F3.5-6.3', #11
     279    40 => 'Minolta/Sony AF DT 18-70mm F3.5-5.6 (D)', # (Konica Minolta, ref 13)
     280    # 40 => 'Sony DT 18-70mm F3.5-5.6 (SAL1870)', (ref JR)
     281    #40.1 => 'Sony AF DT 18-200mm F3.5-6.3', #11 (anomaly? - PH)
    116282    41 => 'Minolta/Sony AF DT 11-18mm F4.5-5.6 (D) or Tamron Lens', # (Konica Minolta, ref 13)
    117     41.1 => 'Tamron SP AF 11-18mm F4.5-5.6 Di II LD Aspherical IF', #JD
     283    # 41 => 'Sony DT 11-18mm F4.5-5.6 (SAL1118)', (ref JR)
     284    41.1 => 'Tamron SP AF 11-18mm F4.5-5.6 Di II LD Aspherical IF', #JD (Model A13)
    118285    42 => 'Minolta/Sony AF DT 18-200mm F3.5-6.3 (D)', # Sony added (ref 13) (Konica Minolta, ref 13)
    119     43 => 'Sony 35mm F1.4 G (SAL-35F14G)', # changed from Minolta to Sony (ref 13/18) (but ref 11 shows both!)
    120     44 => 'Sony 50mm F1.4 (SAL-50F14)', # changed from Minolta to Sony (ref 13/18)
    121     45 => 'Carl Zeiss Planar T* 85mm F1.4 ZA',
    122     46 => 'Carl Zeiss Vario-Sonnar T* DT 16-80mm F3.5-4.5 ZA',
    123     47 => 'Carl Zeiss Sonnar T* 135mm F1.8 ZA',
    124     48 => 'Carl Zeiss Vario-Sonnar T* 24-70mm F2.8 ZA SSM (SAL-2470Z)', #11
    125     49 => 'Sony AF DT 55-200mm F4-5.6', #JD
    126     50 => 'Sony AF DT 18-250mm F3.5-6.3', #11
    127     51 => 'Sony AF DT 16-105mm F3.5-5.6 or 55-200mm F4-5.5', #11
    128     51.1 => 'Sony AF DT 55-200mm F4-5.5', #11
    129     52 => 'Sony 70-300mm F4.5-5.6 G SSM', #JD
    130     53 => 'Sony AF 70-400mm F4-5.6 G SSM (SAL-70400G)', #17 (/w correction by Stephen Bishop)
    131     54 => 'Carl Zeiss Vario-Sonnar T* 16-35mm F2.8 ZA SSM (SAL-1635Z)', #17
    132     55 => 'Sony DT 18-55mm F3.5-5.6 SAM (SAL-1855)', #PH
    133     56 => 'Sony AF DT 55-200mm F4-5.6 SAM', #22
    134     57 => 'Sony AF DT 50mm F1.8 SAM', #22
    135     58 => 'Sony AF DT 30mm F2.8 SAM Macro', #22
    136     59 => 'Sony 28-75/2.8 SAM', #21
    137     60 => 'Carl Zeiss Distagon T* 24mm F2 SSM', #17
    138     61 => 'Sony 85mm F2.8 SAM (SAL-85F28)', #17
    139     62 => 'Sony DT 35mm F1.8 SAM (SAL-35F18)', #PH
     286    # 42 => 'Sony DT 18-200mm F3.5-6.3 (SAL18200)', (ref JR)
     287    43 => 'Sony 35mm F1.4 G (SAL35F14G)', # changed from Minolta to Sony (ref 13/18/JR) (but ref 11 shows both!)
     288    44 => 'Sony 50mm F1.4 (SAL50F14)', # changed from Minolta to Sony (ref 13/18/JR)
     289    45 => 'Carl Zeiss Planar T* 85mm F1.4 ZA (SAL85F14Z)', #JR
     290    46 => 'Carl Zeiss Vario-Sonnar T* DT 16-80mm F3.5-4.5 ZA (SAL1680Z)', #JR
     291    47 => 'Carl Zeiss Sonnar T* 135mm F1.8 ZA (SAL135F18Z)', #JR
     292    48 => 'Carl Zeiss Vario-Sonnar T* 24-70mm F2.8 ZA SSM (SAL2470Z) or Other Lens', #11/JR
     293    48.1 => 'Carl Zeiss Vario-Sonnar T* 24-70mm F2.8 ZA SSM II (SAL2470Z2)', #JR
     294    48.2 => 'Tamron SP 24-70mm F2.8 Di USD', #IB (A007) (also with id 204)
     295    49 => 'Sony DT 55-200mm F4-5.6 (SAL55200)', #JD/JR
     296    50 => 'Sony DT 18-250mm F3.5-6.3 (SAL18250)', #11/JR
     297    51 => 'Sony DT 16-105mm F3.5-5.6 (SAL16105)', #11/JR
     298    #51.1 => 'Sony AF DT 55-200mm F4-5.5', #11 (anomaly? - PH)
     299    # LensType 52 also seen for Fringer Contax_N to E-mount adapter Ver.31 and Ver.21 (ref JR)
     300    52 => 'Sony 70-300mm F4.5-5.6 G SSM (SAL70300G) or G SSM II or Tamron Lens', #JD
     301    52.1 => 'Sony 70-300mm F4.5-5.6 G SSM II (SAL70300G2)', #JR
     302    52.2 => 'Tamron SP 70-300mm F4-5.6 Di USD', #JR,NJ (Model A005)
     303    53 => 'Sony 70-400mm F4-5.6 G SSM (SAL70400G)', #17(/w correction by Stephen Bishop)/JR
     304    54 => 'Carl Zeiss Vario-Sonnar T* 16-35mm F2.8 ZA SSM (SAL1635Z) or ZA SSM II', #17/JR
     305    54.1 => 'Carl Zeiss Vario-Sonnar T* 16-35mm F2.8 ZA SSM II (SAL1635Z2)', #JR
     306    55 => 'Sony DT 18-55mm F3.5-5.6 SAM (SAL1855) or SAM II', #PH
     307    55.1 => 'Sony DT 18-55mm F3.5-5.6 SAM II (SAL18552)', #JR
     308    56 => 'Sony DT 55-200mm F4-5.6 SAM (SAL55200-2)', #22/JR
     309    57 => 'Sony DT 50mm F1.8 SAM (SAL50F18) or Tamron Lens or Commlite CM-EF-NEX adapter', #22/JR
     310    57.1 => 'Tamron SP AF 60mm F2 Di II LD [IF] Macro 1:1', # (Model G005) (ref https://exiftool.org/forum/index.php/topic,3858.0.html)
     311    57.2 => 'Tamron 18-270mm F3.5-6.3 Di II PZD', #27 (Model B008)
     312    # (note: the Commlite CM-EF-NEX adapter also appears to give LensType 57, ref JR)
     313    58 => 'Sony DT 30mm F2.8 Macro SAM (SAL30M28)', #22/JR
     314    59 => 'Sony 28-75mm F2.8 SAM (SAL2875)', #21/JR
     315    60 => 'Carl Zeiss Distagon T* 24mm F2 ZA SSM (SAL24F20Z)', #17/JR
     316    61 => 'Sony 85mm F2.8 SAM (SAL85F28)', #17/JR
     317    62 => 'Sony DT 35mm F1.8 SAM (SAL35F18)', #PH/JR
     318    63 => 'Sony DT 16-50mm F2.8 SSM (SAL1650)', #17/JR
     319    64 => 'Sony 500mm F4 G SSM (SAL500F40G)', #29
     320    65 => 'Sony DT 18-135mm F3.5-5.6 SAM (SAL18135)', #JR
     321    66 => 'Sony 300mm F2.8 G SSM II (SAL300F28G2)', #29
     322    67 => 'Sony 70-200mm F2.8 G SSM II (SAL70200G2)', #JR
     323    68 => 'Sony DT 55-300mm F4.5-5.6 SAM (SAL55300)', #29
     324    69 => 'Sony 70-400mm F4-5.6 G SSM II (SAL70400G2)', #JR
     325    70 => 'Carl Zeiss Planar T* 50mm F1.4 ZA SSM (SAL50F14Z)', #JR
    140326    128 => 'Tamron or Sigma Lens (128)',
    141     128.1 => 'Tamron 18-200mm F3.5-6.3',
    142     128.2 => 'Tamron 28-300mm F3.5-6.3',
    143     128.3 => 'Tamron 80-300mm F3.5-6.3',
    144     128.4 => 'Tamron AF 28-200mm F3.8-5.6 XR Di Aspherical [IF] MACRO', #JD
    145     128.5 => 'Tamron SP AF 17-35mm F2.8-4 Di LD Aspherical IF', #JD
    146     128.6 => 'Sigma AF 50-150mm F2.8 EX DC APO HSM II', #JD
    147     128.7 => 'Sigma 10-20mm F3.5 EX DC HSM', #11 (model 202-205)
    148     128.8 => 'Sigma 70-200mm F2.8 II EX DG APO MACRO HSM', #24
     327    128.1 => 'Tamron AF 18-200mm F3.5-6.3 XR Di II LD Aspherical [IF] Macro', #JR (Model A14)
     328    # was 128.1 => 'Tamron 18-200mm F3.5-6.3',
     329    128.2 => 'Tamron AF 28-300mm F3.5-6.3 XR Di LD Aspherical [IF] Macro', #JR (Model A061)
     330    # was 128.2 => 'Tamron 28-300mm F3.5-6.3',
     331    # (removed -- probably never existed, ref IB) 'Tamron 80-300mm F3.5-6.3',
     332    128.3 => 'Tamron AF 28-200mm F3.8-5.6 XR Di Aspherical [IF] Macro', #JD (Model A031)
     333   # also Tamron AF 28-200mm F3.8-5.6 Aspherical', #IB (Model 71D)
     334   # and 'Tamron AF 28-200mm F3.8-5.6 LD Aspherical [IF] Super', #IB (Model 171D)
     335    128.4 => 'Tamron SP AF 17-35mm F2.8-4 Di LD Aspherical IF', #JD (Model A05)
     336    128.5 => 'Sigma AF 50-150mm F2.8 EX DC APO HSM II', #JD
     337    128.6 => 'Sigma 10-20mm F3.5 EX DC HSM', #11 (Model 202-205)
     338    128.7 => 'Sigma 70-200mm F2.8 II EX DG APO MACRO HSM', #24
     339    128.8 => 'Sigma 10mm F2.8 EX DC HSM Fisheye', #Florian Knorn
     340    # (yes, '128.10'.  My condolences to typed languages that use this database - PH)
     341    128.9 => 'Sigma 50mm F1.4 EX DG HSM', #Florian Knorn (Model A014, ref IB)
     342   '128.10' => 'Sigma 85mm F1.4 EX DG HSM', #27
     343   '128.11' => 'Sigma 24-70mm F2.8 IF EX DG HSM', #27
     344   '128.12' => 'Sigma 18-250mm F3.5-6.3 DC OS HSM', #27
     345   '128.13' => 'Sigma 17-50mm F2.8 EX DC HSM', #Exiv2
     346   '128.14' => 'Sigma 17-70mm F2.8-4 DC Macro HSM', # (no OS for Sony mount, ref JR) (also C013 Model, ref IB)
     347   '128.15' => 'Sigma 150mm F2.8 EX DG OS HSM APO Macro', #Marcus Holland-Moritz
     348   '128.16' => 'Sigma 150-500mm F5-6.3 APO DG OS HSM', #IB
     349   '128.17' => 'Tamron AF 28-105mm F4-5.6 [IF]', #IB (Model 179D)
     350   '128.18' => 'Sigma 35mm F1.4 DG HSM', #JR
     351   '128.19' => 'Sigma 18-35mm F1.8 DC HSM', #JR (Model A013, ref IB)
     352   '128.20' => 'Sigma 50-500mm F4.5-6.3 APO DG OS HSM', #JR
     353   '128.21' => 'Sigma 24-105mm F4 DG HSM | A', #JR (013)
     354   '128.22' => 'Sigma 30mm F1.4', #IB
     355   '128.23' => 'Sigma 35mm F1.4 DG HSM | A', #IB/JR (012)
     356   '128.24' => 'Sigma 105mm F2.8 EX DG OS HSM Macro', #IB
     357   '128.25' => 'Sigma 180mm F2.8 EX DG OS HSM APO Macro', #IB
     358   '128.26' => 'Sigma 18-300mm F3.5-6.3 DC Macro HSM | C', #IB/JR (014)
     359   '128.27' => 'Sigma 18-50mm F2.8-4.5 DC HSM', #IB
    149360    129 => 'Tamron Lens (129)',
    150361    129.1 => 'Tamron 200-400mm F5.6 LD', #12 (LD ref 23)
    151362    129.2 => 'Tamron 70-300mm F4-5.6 LD', #12
    152     131 => 'Tamron 20-40mm F2.7-3.5 SP Aspherical IF', #23
     363    131 => 'Tamron 20-40mm F2.7-3.5 SP Aspherical IF', #23 (Model 266D)
    153364    135 => 'Vivitar 28-210mm F3.5-5.6', #16
    154365    136 => 'Tokina EMZ M100 AF 100mm F3.5', #JD
    155366    137 => 'Cosina 70-210mm F2.8-4 AF', #11
    156367    138 => 'Soligor 19-35mm F3.5-4.5', #11
    157     142 => 'Voigtlander 70-300mm F4.5-5.6', #JD
     368    139 => 'Tokina AF 28-300mm F4-6.3', #IB
     369    # (the following Cosina 70-300mm lens was also marketed as a Phoenix, Vivitar Series 1, and
     370    # some sort of 3rd-party marketing as a Voightlander 70-300mm F4.5-5.6 SKOPAR AF, ref IB)
     371    142 => 'Cosina AF 70-300mm F4.5-5.6 MC', #IB (was 'Voigtlander 70-300mm F4.5-5.6', #JD)
    158372    146 => 'Voigtlander Macro APO-Lanthar 125mm F2.5 SL', #JD
     373    194 => 'Tamron SP AF 17-50mm F2.8 XR Di II LD Aspherical [IF]', #23 (Model A16)
     374    202 => 'Tamron SP AF 70-200mm F2.8 Di LD [IF] Macro', #JR (Model A001) (see also 255.7)
     375    203 => 'Tamron SP 70-200mm F2.8 Di USD', #JR (Model A009)
     376    204 => 'Tamron SP 24-70mm F2.8 Di USD', #JR (Model A007) (also with id 48)
     377    212 => 'Tamron 28-300mm F3.5-6.3 Di PZD', #JR (Model A010)
     378    213 => 'Tamron 16-300mm F3.5-6.3 Di II PZD Macro', #JR (Model B016)
     379    214 => 'Tamron SP 150-600mm F5-6.3 Di USD', #JR (Model A011)
     380    215 => 'Tamron SP 15-30mm F2.8 Di USD', #JR (Model A012)
     381    216 => 'Tamron SP 45mm F1.8 Di USD', #forum8320 (F013)
     382    217 => 'Tamron SP 35mm F1.8 Di USD', #forum8320 (F012)
     383    218 => 'Tamron SP 90mm F2.8 Di Macro 1:1 USD (F017)', #JR (Model F017)
     384    220 => 'Tamron SP 150-600mm F5-6.3 Di USD G2', #forum8846 (Model A022)
     385    224 => 'Tamron SP 90mm F2.8 Di Macro 1:1 USD (F004)', #JR (Model F004)
    159386    255 => 'Tamron Lens (255)',
    160     255.1 => 'Tamron SP AF 17-50mm F2.8 XR Di II LD Aspherical',
    161     255.2 => 'Tamron AF 18-250mm F3.5-6.3 XR Di II LD', #JD
    162     255.3 => 'Tamron AF 55-200mm F4-5.6 Di II',
    163     255.4 => 'Tamron AF 70-300mm F4-5.6 Di LD MACRO 1:2',
    164     255.5 => 'Tamron SP AF 200-500mm F5.0-6.3 Di LD IF',
    165     255.6 => 'Tamron SP AF 10-24mm F3.5-4.5 Di II LD Aspherical IF', #22
    166     255.7 => 'Tamron SP AF 70-200mm F2.8 Di LD IF Macro', #22
    167     255.8 => 'Tamron SP AF 28-75mm F2.8 XR Di LD Aspherical IF', #24
     387    255.1 => 'Tamron SP AF 17-50mm F2.8 XR Di II LD Aspherical', # (Model A16)
     388    255.2 => 'Tamron AF 18-250mm F3.5-6.3 XR Di II LD', #JD (Model A18?)
     389 #? 225.2 => 'Tamron AF 18-250mm F3.5-6.3 Di II LD Aspherical [IF] Macro', #JR (Model A18)
     390    255.3 => 'Tamron AF 55-200mm F4-5.6 Di II LD Macro', # (Model A15) (added "LD Macro", ref 23)
     391    255.4 => 'Tamron AF 70-300mm F4-5.6 Di LD Macro 1:2', # (Model A17)
     392    255.5 => 'Tamron SP AF 200-500mm F5.0-6.3 Di LD IF', # (Model A08)
     393    255.6 => 'Tamron SP AF 10-24mm F3.5-4.5 Di II LD Aspherical IF', #22 (Model B001)
     394    255.7 => 'Tamron SP AF 70-200mm F2.8 Di LD IF Macro', #22 (Model A001)
     395    255.8 => 'Tamron SP AF 28-75mm F2.8 XR Di LD Aspherical IF', #24 (Model A09)
     396    255.9 => 'Tamron AF 90-300mm F4.5-5.6 Telemacro', #Fredrik Agert
     397    18688 => 'Sigma MC-11 SA-E Mount Converter with not-supported Sigma lens',
     398    # The MC-11 SA-E Mount Converter uses this 18688 offset for not-supported SIGMA mount lenses.
     399    # The MC-11 EF-E Mount Converter uses the 61184 offset for not-supported CANON mount lenses, as also used by Metabones.
     400    # Both MC-11 SA-E and EF-E Mount Converters use the 504xx LensType2 values for supported SA-mount or EF-mount Sigma lenses.
    168401    25501 => 'Minolta AF 50mm F1.7', #7
    169402    25511 => 'Minolta AF 35-70mm F4 or Other Lens',
     
    172405    25511.3 => 'Sigma M-AF 70-200mm F2.8 EX Aspherical', #12
    173406    25511.4 => 'Quantaray M-AF 35-80mm F4-5.6', #JD
     407    25511.5 => 'Tokina 28-70mm F2.8-4.5 AF', #IB
    174408    25521 => 'Minolta AF 28-85mm F3.5-4.5 or Other Lens', # not New (ref 18)
    175409    25521.1 => 'Tokina 19-35mm F3.5-4.5', #3
     
    177411    25521.3 => 'Tokina 80-400mm F4.5-5.6 AT-X AF II 840', #JD
    178412    25521.4 => 'Tokina AF PRO 28-80mm F2.8 AT-X 280', #JD
    179     25521.5 => 'Tokina AT-X PRO II AF 28-70mm F2.6-2.8 270', #24
    180     25521.6 => 'Tamron AF 19-35mm F3.5-4.5', #JD
     413    25521.5 => 'Tokina AT-X PRO [II] AF 28-70mm F2.6-2.8 270', #24 (original + II versions)
     414    25521.6 => 'Tamron AF 19-35mm F3.5-4.5', #JD (Model A10)
    181415    25521.7 => 'Angenieux AF 28-70mm F2.6', #JD
    182     25531 => 'Minolta AF 28-135mm F4-4.5 or Sigma Lens',
     416    25521.8 => 'Tokina AT-X 17 AF 17mm F3.5', #27
     417    25521.9 => 'Tokina 20-35mm F3.5-4.5 II AF', #IB
     418    25531 => 'Minolta AF 28-135mm F4-4.5 or Other Lens',
    183419    25531.1 => 'Sigma ZOOM-alpha 35-135mm F3.5-4.5', #16
    184420    25531.2 => 'Sigma 28-105mm F2.8-4 Aspherical', #JD
     421    25531.3 => 'Sigma 28-105mm F4-5.6 UC', #JR
     422    25531.4 => 'Tokina AT-X 242 AF 24-200mm F3.5-5.6', #IB
    185423    25541 => 'Minolta AF 35-105mm F3.5-4.5', #13
    186424    25551 => 'Minolta AF 70-210mm F4 Macro or Sigma Lens',
     
    190428    25561 => 'Minolta AF 135mm F2.8',
    191429    25571 => 'Minolta/Sony AF 28mm F2.8', # Sony added (ref 18)
    192     # 25571 => 'Sony 28mm F2.8 (SAL-28F28)' (ref 18)
     430    # 25571 => 'Sony 28mm F2.8 (SAL28F28)', (ref 18/JR)
    193431    25581 => 'Minolta AF 24-50mm F4',
    194432    25601 => 'Minolta AF 100-200mm F4.5',
    195433    25611 => 'Minolta AF 75-300mm F4.5-5.6 or Sigma Lens', #13
    196     25611.1 => 'Sigma 70-300mm F4-5.6 DL Macro', #12
     434    25611.1 => 'Sigma 70-300mm F4-5.6 DL Macro', #12 (also DG version ref 27, and APO version ref JR)
    197435    25611.2 => 'Sigma 300mm F4 APO Macro', #3/7
    198436    25611.3 => 'Sigma AF 500mm F4.5 APO', #JD
     
    201439    25611.6 => 'Tokina AT-X AF 400mm F5.6 SD', #22
    202440    25611.7 => 'Tokina AF 730 II 75-300mm F4.5-5.6', #JD
     441    25611.8 => 'Sigma 800mm F5.6 APO', #https://exiftool.org/forum/index.php/topic,3472.0.html
     442    25611.9 => 'Sigma AF 400mm F5.6 APO Macro', #27
     443   '25611.10' => 'Sigma 1000mm F8 APO', #JR
    203444    25621 => 'Minolta AF 50mm F1.4 [New]', # original and New, not Sony (ref 13/18)
    204445    25631 => 'Minolta AF 300mm F2.8 APO or Sigma Lens', # changed G to APO (ref 13)
    205446    25631.1 => 'Sigma AF 50-500mm F4-6.3 EX DG APO', #JD
    206     25631.2 => 'Sigma AF 170-500mm F5-6.3 APO Aspherical', #JD
     447    25631.2 => 'Sigma AF 170-500mm F5-6.3 APO Aspherical', #JD (also DG version, ref 27)
    207448    25631.3 => 'Sigma AF 500mm F4.5 EX DG APO', #JD
    208449    25631.4 => 'Sigma 400mm F5.6 APO', #22
    209450    25641 => 'Minolta AF 50mm F2.8 Macro or Sigma Lens',
    210451    25641.1 => 'Sigma 50mm F2.8 EX Macro', #11
    211     25651 => 'Minolta AF 600mm F4',
    212     25661 => 'Minolta AF 24mm F2.8',
     452    25651 => 'Minolta AF 600mm F4 APO', # ("APO" added - ref JR)
     453    25661 => 'Minolta AF 24mm F2.8 or Sigma Lens',
     454    25661.1 => 'Sigma 17-35mm F2.8-4 EX Aspherical', #https://exiftool.org/forum/index.php/topic,3789.msg17679.html#msg17679
    213455    25721 => 'Minolta/Sony AF 500mm F8 Reflex',
     456    # 25721 => 'Sony 500mm F8 Reflex (SAL500F80)', (ref JR)
    214457    25781 => 'Minolta/Sony AF 16mm F2.8 Fisheye or Sigma Lens', # Sony added (ref 13/18)
    215     # 25781 => 'Sony 16mm F2.8 Fisheye (SAL-16F28)' (ref 18)
     458    # 25781 => 'Sony 16mm F2.8 Fisheye (SAL16F28)', (ref 18/JR)
    216459    25781.1 => 'Sigma 8mm F4 EX [DG] Fisheye',
    217460    25781.2 => 'Sigma 14mm F3.5',
    218461    25781.3 => 'Sigma 15mm F2.8 Fisheye', #JD (writes 16mm to EXIF)
    219     25791 => 'Minolta/Sony AF 20mm F2.8', # Sony added (ref 11)
     462    25791 => 'Minolta/Sony AF 20mm F2.8 or Tokina Lens', # Sony added (ref 11)
     463    # 25791 => 'Sony 20mm F2.8 (SAL20F28)', (ref JR)
     464    25791.1 => 'Tokina AT-X Pro DX 11-16mm F2.8', #https://exiftool.org/forum/index.php/topic,3593.0.html
    220465    25811 => 'Minolta AF 100mm F2.8 Macro [New] or Sigma or Tamron Lens', # not Sony (ref 13/18)
    221466    25811.1 => 'Sigma AF 90mm F2.8 Macro', #JD
    222467    25811.2 => 'Sigma AF 105mm F2.8 EX [DG] Macro', #JD
    223468    25811.3 => 'Sigma 180mm F5.6 Macro',
    224     25811.4 => 'Tamron 90mm F2.8 Macro',
     469    25811.4 => 'Sigma 180mm F3.5 EX DG Macro', #https://exiftool.org/forum/index.php/topic,3789.msg17679.html#msg17679
     470    25811.5 => 'Tamron 90mm F2.8 Macro',
    225471    25851 => 'Beroflex 35-135mm F3.5-4.5', #16
    226472    25858 => 'Minolta AF 35-105mm F3.5-4.5 New or Tamron Lens',
    227     25858.1 => 'Tamron 24-135mm F3.5-5.6',
     473    25858.1 => 'Tamron 24-135mm F3.5-5.6', # (Model 190D)
    228474    25881 => 'Minolta AF 70-210mm F3.5-4.5',
    229     25891 => 'Minolta AF 80-200mm F2.8 APO or Tokina Lens',
     475    25891 => 'Minolta AF 80-200mm F2.8 APO or Tokina Lens', # black
    230476    25891.1 => 'Tokina 80-200mm F2.8',
     477    # 25901 - Note: only get this with older 1.4x and lenses with 5-digit LensTypes (ref 27)
     478    # 25901 - also "Minolta AF 200mm F2.8 HS-APO G + Minolta AF 1.4x APO"
     479    25901 => 'Minolta AF 200mm F2.8 G APO + Minolta AF 1.4x APO or Other Lens + 1.4x', #26
     480    25901.1 => 'Minolta AF 600mm F4 HS-APO G + Minolta AF 1.4x APO', #27
    231481    25911 => 'Minolta AF 35mm F1.4', #(from Sony list) (not G as per ref 13)
    232482    25921 => 'Minolta AF 85mm F1.4 G (D)',
    233     25931 => 'Minolta AF 200mm F2.8 G APO',
     483    25931 => 'Minolta AF 200mm F2.8 APO', # (not "G", see 26121 - ref JR)
    234484    25941 => 'Minolta AF 3x-1x F1.7-2.8 Macro',
    235485    25961 => 'Minolta AF 28mm F2',
    236486    25971 => 'Minolta AF 35mm F2 [New]', #13
    237487    25981 => 'Minolta AF 100mm F2',
     488    # 26011 - Note: only get this with older 2x and lenses with 5-digit LensTypes (ref 27)
     489    # 26011 - also "Minolta AF 200mm F2.8 HS-APO G + Minolta AF 2x APO"
     490    26011 => 'Minolta AF 200mm F2.8 G APO + Minolta AF 2x APO or Other Lens + 2x', #26
     491    26011.1 => 'Minolta AF 600mm F4 HS-APO G + Minolta AF 2x APO', #27
    238492    26041 => 'Minolta AF 80-200mm F4.5-5.6',
    239493    26051 => 'Minolta AF 35-80mm F4-5.6', #(from Sony list)
     
    251505    26211 => 'Minolta AF 100-300mm F4.5-5.6 xi', # xi, not Power Zoom (ref 13/18)
    252506    26241 => 'Minolta AF 35-80mm F4-5.6 Power Zoom',
    253     26281 => 'Minolta AF 80-200mm F2.8 G', #11
     507    26281 => 'Minolta AF 80-200mm F2.8 HS-APO G', #11 ("HS-APO" added, white, probably same as 1, non-HS is 25891 - ref JR)
    254508    26291 => 'Minolta AF 85mm F1.4 New',
    255     26311 => 'Minolta/Sony AF 100-300mm F4.5-5.6 APO', #11
     509    26311 => 'Minolta AF 100-300mm F4.5-5.6 APO', #11 (does not exist? https://www.dyxum.com/dforum/lens-data-requested_topic23435_page2.html)
    256510    26321 => 'Minolta AF 24-50mm F4 New',
    257511    26381 => 'Minolta AF 50mm F2.8 Macro New',
     
    264518    26681 => 'Minolta AF 28mm F2 New',
    265519    26721 => 'Minolta AF 24-105mm F3.5-4.5 (D)', #11
     520    # 30464: newer firmware versions of the Speed Booster report type 30464 (=0x7700)
     521    # - this is the base to which the Canon LensType is added
     522    30464 => 'Metabones Canon EF Speed Booster', #Metabones (to this, add Canon LensType)
    266523    45671 => 'Tokina 70-210mm F4-5.6', #22
     524    45681 => 'Tokina AF 35-200mm F4-5.6 Zoom SD', #IB (model 352)
     525    45701 => 'Tamron AF 35-135mm F3.5-4.5', #IB (model 40d)
     526    45711 => 'Vivitar 70-210mm F4.5-5.6', #IB
    267527    45741 => '2x Teleconverter or Tamron or Tokina Lens', #18
    268528    45741.1 => 'Tamron SP AF 90mm F2.5', #JD
     
    271531    45751 => '1.4x Teleconverter', #18
    272532    45851 => 'Tamron SP AF 300mm F2.8 LD IF', #11
     533    45861 => 'Tamron SP AF 35-105mm F2.8 LD Aspherical IF', #Fredrik Agert
     534    45871 => 'Tamron AF 70-210mm F2.8 SP LD', #Fabio Suprani
     535    # 48128: the Speed Booster Ultra appears to report type 48128 (=0xbc00)
     536    # - this is the base to which the Canon LensType is added
     537    48128 => 'Metabones Canon EF Speed Booster Ultra', #JR (to this, add Canon LensType)
     538    # 61184: older firmware versions of both the Speed Booster and the Smart Adapter
     539    # report type 61184 (=0xef00), and add only the lower byte of the Canon LensType (ref JR).
     540    # For newer firmware versions this is only used by the Smart Adapter, and
     541    # the full Canon LensType code is added - PH
     542    # the metabones adapter translates Canon L -> G, II -> II, USM -> SSM, IS -> OSS (ref JR)
     543    # This offset is used by Metabones, Fotodiox, Sigma MC-11 EF-E and Viltrox Canon EF adapters.
     544    61184 => 'Canon EF Adapter', #JR (to this, add Canon LensType)
     545    # 65280 = 0xff00
     546    65280 => 'Sigma 16mm F2.8 Filtermatic Fisheye', #IB
    273547    # all M42-type lenses give a value of 65535 (and FocalLength=0, FNumber=1)
    274     65535 => 'T-Mount or Other Lens or no lens', #JD
    275     65535.1 => 'Arax MC 35mm F2.8 Tilt+Shift', #JD
    276     65535.2 => 'Arax MC 80mm F2.8 Tilt+Shift', #JD
    277     65535.3 => 'Zenitar MF 16mm F2.8 Fisheye M42', #JD
    278     65535.4 => 'Samyang 500mm Mirror F8.0', #19
    279     65535.5 => 'Pentacon Auto 135mm F2.8', #19
    280     65535.6 => 'Pentacon Auto 29mm F2.8', #19
    281     65535.7 => 'Helios 44-2 58mm F2.0', #19
     548    65535 => 'E-Mount, T-Mount, Other Lens or no lens', #JD/JR
     549   '65535.1' => 'Arax MC 35mm F2.8 Tilt+Shift', #JD
     550   '65535.2' => 'Arax MC 80mm F2.8 Tilt+Shift', #JD
     551   '65535.3' => 'Zenitar MF 16mm F2.8 Fisheye M42', #JD
     552   '65535.4' => 'Samyang 500mm Mirror F8.0', #19
     553   '65535.5' => 'Pentacon Auto 135mm F2.8', #19
     554   '65535.6' => 'Pentacon Auto 29mm F2.8', #19
     555   '65535.7' => 'Helios 44-2 58mm F2.0', #19
     556);
     557
     558%minoltaTeleconverters = (
     559    0x00 => 'None',
     560    0x04 => 'Minolta/Sony AF 1.4x APO (D) (0x04)', # (Andy Johnson, A77 APO and APO D)
     561    0x05 => 'Minolta/Sony AF 2x APO (D) (0x05)', # (Andy Johnson, A77 APO D)
     562    0x48 => 'Minolta/Sony AF 2x APO (D)',
     563    # 0x48 => 'Sony 2x Teleconverter (SAL20TC)', (ref JR)
     564    0x50 => 'Minolta AF 2x APO II',
     565    0x60 => 'Minolta AF 2x APO',#26
     566    0x88 => 'Minolta/Sony AF 1.4x APO (D)',
     567    # 0x88 => 'Sony 1.4x Teleconverter (SAL14TC)', (ref JR)
     568    0x90 => 'Minolta AF 1.4x APO II',
     569    0xa0 => 'Minolta AF 1.4x APO',#26
    282570);
    283571
     
    310598    7 => 'Adobe RGB',
    311599    12 => 'Neutral', # Sony
     600    13 => 'Clear', #JR (NC)
     601    14 => 'Deep', #JR
     602    15 => 'Light', #JR (NC)
     603    16 => 'Autumn Leaves', #JR (NC)
     604    17 => 'Sepia', #JR
     605    18 => 'FL', #JR (7SM3)
     606    19 => 'Vivid 2', #JR (7SM3)
     607    20 => 'IN', #JR (7SM3)
     608    21 => 'SH', #JR (7SM3)
    312609    100 => 'Neutral', #JD
    313610    101 => 'Clear', #JD
     
    316613    104 => 'Night View', #JD
    317614    105 => 'Autumn Leaves', #JD
    318     0xffffffff => 'n/a', #PH
     615    255 => 'Off', #JR (new for ILCE-7SM3, July 2020)
     616   0xffffffff => 'n/a', #PH
    319617);
    320618
     
    330628    8 => 'Macro',
    331629    9 => 'Super Macro',
    332     16 => 'Auto',
     630    16 => 'Auto', # (RX100 'Intelligent Auto' - PH)
    333631    17 => 'Night View/Portrait',
    334632    18 => 'Sweep Panorama', #PH (SLT-A55V)
     
    338636    22 => 'Auto+',
    339637    23 => '3D Sweep Panorama', #PH (SLT-A55V)
     638    24 => 'Superior Auto', #28
     639    25 => 'High Sensitivity', #28
     640    26 => 'Fireworks', #28
     641    27 => 'Food', #28
     642    28 => 'Pet', #28
     643    33 => 'HDR', #JR
    340644    0xffff => 'n/a', #PH
     645);
     646
     647# tag information for AFStatus tags (ref 20)
     648%afStatusInfo = (
     649    Format => 'int16s',
     650    # 0=in focus, -32768=out of focus, -ve=front focus, +ve=back focus
     651    PrintConvColumns => 2,
     652    PrintConv => {
     653        0 => 'In Focus',
     654        -32768 => 'Out of Focus',
     655        OTHER => sub {
     656            my ($val, $inv) = @_;
     657            $inv and $val =~ /([-+]?\d+)/, return $1;
     658            return $val < 0 ? "Front Focus ($val)" : "Back Focus (+$val)";
     659        },
     660    },
    341661);
    342662
     
    403723        },
    404724    },
     725    0x0010 => { #20 (count: 256)
     726        Name => 'CameraInfoA100',
     727        Condition => '$$self{Model} eq "DSLR-A100"',
     728        SubDirectory => {
     729            TagTable => 'Image::ExifTool::Minolta::CameraInfoA100',
     730            ByteOrder => 'LittleEndian',
     731        },
     732    },
    405733    # it appears that image stabilization is on if this tag exists (ref 2),
    406734    # but it is an 8kB binary data block!
    407     0x0018 => {
    408         Name => 'ImageStabilization',
    409         Condition => '$self->{Model} =~ /^DiMAGE (A1|A2|X1)$/',
    410         Notes => q{
    411             a block of binary data which exists in DiMAGE A2 (and A1/X1?) images only if
    412             image stabilization is enabled
    413         },
    414         ValueConv => '"On"',
    415     },
     735    0x0018 => [
     736        {
     737            Name => 'ISInfoA100',
     738            Condition => '$self->{Model} eq "DSLR-A100"',
     739            SubDirectory => {
     740                TagTable => 'Image::ExifTool::Minolta::ISInfoA100',
     741                ByteOrder => 'BigEndian',
     742            },
     743        },{
     744            Name => 'ImageStabilization',
     745            Condition => '$self->{Model} =~ /^DiMAGE (A1|A2|X1)$/',
     746            Notes => q{
     747                a block of binary data which exists in DiMAGE A2 (and A1/X1?) images only if
     748                image stabilization is enabled
     749            },
     750            ValueConv => '"On"',
     751        },
     752    ],
    416753    0x0020 => {
    417754        Name => 'WBInfoA100',
     
    430767        # JPEG preview found in DiMAGE 7 images
    431768        %Image::ExifTool::previewImageTagInfo,
     769        Groups => { 2 => 'Preview' },
    432770        Permanent => 1,     # don't add this to a file
    433771    },
     
    438776        DataTag => 'PreviewImage',
    439777        Writable => 'int32u',
     778        WriteGroup => 'MakerNotes',
    440779        Protected => 2,
    441780        # Note: Sony also uses this tag in A100 ARW images, but it points
     
    447786        DataTag => 'PreviewImage',
    448787        Writable => 'int32u',
     788        WriteGroup => 'MakerNotes',
    449789        Protected => 2,
    450790    },
     
    472812        Name => 'MinoltaQuality',
    473813        Writable => 'int32u',
    474         # PrintConv strings conform with Minolta reference manual (ref 4)
     814        # PrintConv strings conform with Minolta reference manual (ref NJ)
    475815        # (note that Minolta calls an uncompressed TIFF image "Super fine")
    476816        PrintConv => {
     
    492832            Notes => 'quality for DiMAGE A2/7Hi',
    493833            Priority => 0, # lower priority because this doesn't work for A200
    494             PrintConv => { #4
     834            PrintConv => { #NJ
    495835                0 => 'Raw',
    496836                1 => 'Super Fine',
     
    525865        Writable => 'int32u',
    526866        PrintHex => 1,
    527         PrintConv => {
    528             0x00 => 'None',
    529             0x48 => 'Minolta AF 2x APO (D)',
    530             0x50 => 'Minolta AF 2x APO II',
    531             0x88 => 'Minolta AF 1.4x APO (D)',
    532             0x90 => 'Minolta AF 1.4x APO II',
    533         },
     867        PrintConv => \%minoltaTeleconverters,
    534868    },
    535869    0x0107 => { #8
     
    563897        Writable => 'int32u',
    564898        SeparateTable => 1,
     899        ValueConvInv => 'int($val)', # (must truncate decimal part)
    565900        PrintConv => \%minoltaLensTypes,
    566901    },
     
    646981        information may not be as reliable as it should be.  Because of this, tags
    647982        in the following tables are set to lower priority to prevent them from
    648         superceding the values of same-named tags in other locations when duplicate
     983        superseding the values of same-named tags in other locations when duplicate
    649984        tags are disabled.
    650985    },
     
    6861021    5 => {
    6871022        Name => 'MinoltaQuality',
    688         PrintConv => { #4
     1023        PrintConv => { #NJ
    6891024            0 => 'Raw',
    6901025            1 => 'Super Fine',
     
    10681403    0x10 => {
    10691404        Name => 'AFPoints',
    1070         PrintConv => { BITMASK => {
    1071             0 => 'Center',
    1072             1 => 'Top',
    1073             2 => 'Top-Right',
    1074             3 => 'Right',
    1075             4 => 'Bottom-Right',
    1076             5 => 'Bottom',
    1077             6 => 'Bottom-Left',
    1078             7 => 'Left',
    1079             8 => 'Top-Left',
    1080         } },
     1405        PrintConv => {
     1406            0 => '(none)',
     1407            BITMASK => {
     1408                0 => 'Center',
     1409                1 => 'Top',
     1410                2 => 'Top-right',
     1411                3 => 'Right',
     1412                4 => 'Bottom-right',
     1413                5 => 'Bottom',
     1414                6 => 'Bottom-left',
     1415                7 => 'Left',
     1416                8 => 'Top-left',
     1417            },
     1418        },
    10811419    },
    10821420    0x15 => {
     
    14081746        Name => 'ImageStabilization',
    14091747        PrintConv => \%offOn,
     1748    },
     1749);
     1750
     1751# Camera settings used by the Sony DSLR-A100 (ref 20)
     1752%Image::ExifTool::Minolta::CameraInfoA100 = (
     1753    PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
     1754    WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
     1755    CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
     1756    NOTES => 'Camera information for the Sony DSLR-A100.',
     1757    WRITABLE => 1,
     1758    PRIORITY => 0, # may not be as reliable as other information
     1759    GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
     1760    FIRST_ENTRY => 0,
     1761    0x01 => { #PH
     1762        Name => 'AFSensorActive',
     1763        PrintConv => {
     1764            0 => 'Top-right',
     1765            1 => 'Bottom-right',
     1766            2 => 'Bottom',
     1767            3 => 'Middle Horizontal',
     1768            4 => 'Center Vertical',
     1769            5 => 'Top',
     1770            6 => 'Top-left',
     1771            7 => 'Bottom-left',
     1772        },
     1773    },
     1774    0x02 => {
     1775        Name => 'AFStatusActiveSensor',
     1776        %afStatusInfo,
     1777        Notes => q{
     1778            the focus status at shutter release.  May not reflect the status after
     1779            focusing if the image is focused then recomposed
     1780        },
     1781    },
     1782    0x04 => { Name => 'AFStatusTop-right',      %afStatusInfo },
     1783    0x06 => { Name => 'AFStatusBottom-right',   %afStatusInfo },
     1784    0x08 => { Name => 'AFStatusBottom',         %afStatusInfo },
     1785    0x0a => {
     1786        Name => 'AFStatusMiddleHorizontal',
     1787        %afStatusInfo,
     1788        Notes => q{
     1789            any of the three horizontal sensors at the middle of the focus frame: Left,
     1790            Center or Right
     1791        },
     1792    },
     1793    0x0c => { Name => 'AFStatusCenterVertical', %afStatusInfo },
     1794    0x0e => { Name => 'AFStatusTop',            %afStatusInfo },
     1795    0x10 => { Name => 'AFStatusTop-left',       %afStatusInfo },
     1796    0x12 => { Name => 'AFStatusBottom-left',    %afStatusInfo },
     1797    0x14 => {
     1798        Name => 'FocusLocked',
     1799        # (Focus can be locked in all modes other than Manual and Continuous,
     1800        # and the latter can be overridden by pushing the Spot AF button)
     1801        PrintConv => {
     1802            0 => 'Manual Focus',
     1803            4 => 'No',
     1804            16 => 'Continuous Focus',
     1805            64 => 'Yes',
     1806        },
     1807    },
     1808    0x15 => {
     1809        Name => 'AFPoint',
     1810        PrintConvColumns => 2,
     1811        PrintConv => {
     1812            0 => 'Auto',
     1813            1 => 'Center',
     1814            2 => 'Top',
     1815            3 => 'Top-right',
     1816            4 => 'Right',
     1817            5 => 'Bottom-right',
     1818            6 => 'Bottom',
     1819            7 => 'Bottom-left',
     1820            8 => 'Left',
     1821            9 => 'Top-left',
     1822        },
     1823    },
     1824    0x16 => {
     1825        Name => 'AFMode',
     1826        PrintConv => {
     1827            0 => 'DMF',
     1828            1 => 'AF-S',
     1829            2 => 'AF-C',
     1830            3 => 'AF-A',
     1831        },
     1832    },
     1833    0x2d => { Name => 'AFStatusLeft',            %afStatusInfo },
     1834    0x2f => { Name => 'AFStatusCenterHorizontal',%afStatusInfo },
     1835    0x31 => { Name => 'AFStatusRight',           %afStatusInfo },
     1836    0x33 => {
     1837        Name => 'AFAreaMode',
     1838        PrintConv => {
     1839            0 => 'Wide',
     1840            1 => 'Local',
     1841            2 => 'Spot',
     1842        },
     1843    },
     1844);
     1845
     1846# Image stabilization information used by the Sony DSLR-A100 (ref 20)
     1847%Image::ExifTool::Minolta::ISInfoA100 = (
     1848    PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
     1849    WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
     1850    CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
     1851    NOTES => 'Image stabilization information for the Sony DSLR-A100.',
     1852    WRITABLE => 1,
     1853    PRIORITY => 0, # may not be as reliable as other information
     1854    GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
     1855    FIRST_ENTRY => 0,
     1856    0 => {
     1857        Name => 'ImageStabilization',
     1858        Format => 'int16u',
     1859        PrintHex => 1,
     1860        PrintConv => {
     1861            0x0000 => 'Off',
     1862            0x2784 => 'On',
     1863        },
    14101864    },
    14111865);
     
    14521906    },
    14531907    0x06 => { #20
    1454         Name => 'ManualExposureTime',
    1455         Notes => 'the most recent exposure time set manually by the user',
    1456         ValueConv => '$val ? 2 ** ((48-$val)/8) : $val',
    1457         ValueConvInv => '$val ? 48 - 8*log($val)/log(2) : $val',
     1908        Name => 'ShutterSpeedSetting',
     1909        Notes => 'used only in M and S exposure modes',
     1910        ValueConv => '$val ? 2 ** (6 - $val/8) : 0',
     1911        ValueConvInv => '$val ? int((6 - log($val) / log(2)) * 8 + 0.5) : 0',
    14581912        PrintConv => '$val ? Image::ExifTool::Exif::PrintExposureTime($val) : "Bulb"',
    14591913        PrintConvInv => 'lc($val) eq "bulb" ? 0 : Image::ExifTool::Exif::ConvertFraction($val)',
    14601914    },
    14611915    0x07 => { #20
    1462         Name => 'ManualFNumber',
    1463         Notes => 'the most recent aperture set manually by the user',
    1464         ValueConv => '2 ** (($val-8)/16)',
    1465         ValueConvInv => '8 + 16*log($val)/log(2)',
    1466         PrintConv => 'sprintf("%.1f",$val)',
     1916        Name => 'ApertureSetting',
     1917        Notes => 'used only in M and A exposure modes',
     1918        ValueConv => '2 ** (($val/8 - 1) / 2)',
     1919        ValueConvInv => 'int((log($val) * 2 / log(2) + 1) * 8 + 0.5)',
     1920        PrintConv => 'Image::ExifTool::Exif::PrintFNumber($val)',
    14671921        PrintConvInv => '$val',
    14681922    },
    14691923    0x08 => { #20
    14701924        Name => 'ExposureTime',
    1471         ValueConv => '$val ? 2 ** ((48-$val)/8) : $val',
    1472         ValueConvInv => '$val ? 48 - 8*log($val)/log(2) : $val',
     1925        ValueConv => '$val ? 2 ** (6 - $val/8) : 0',
     1926        ValueConvInv => '$val ? int((6 - log($val) / log(2)) * 8 + 0.5) : 0',
    14731927        PrintConv => '$val ? Image::ExifTool::Exif::PrintExposureTime($val) : "Bulb"',
    14741928        PrintConvInv => 'lc($val) eq "bulb" ? 0 : Image::ExifTool::Exif::ConvertFraction($val)',
     
    14761930    0x09 => { #15/20
    14771931        Name => 'FNumber',
    1478         ValueConv => '2 ** (($val / 8 - 1) / 2)',
    1479         ValueConvInv => '$val>0 ? (2*log($val)/log(2)+1) * 8 : undef',
    1480         PrintConv => 'sprintf("%.1f",$val)',
     1932        ValueConv => '2 ** (($val/8 - 1) / 2)',
     1933        ValueConvInv => 'int((log($val) * 2 / log(2) + 1) * 8 + 0.5)',
     1934        PrintConv => 'Image::ExifTool::Exif::PrintFNumber($val)',
    14811935        PrintConvInv => '$val',
    14821936    },
    14831937    0x0a => { #20
    1484         Name => 'DriveMode2',
    1485         PrintConv => {
    1486             0 => 'Self-timer 10 sec',
    1487             1 => 'Continuous',
    1488             4 => 'Self-timer 2 sec',
    1489             5 => 'Single Frame',
    1490             8 => 'White Balance Bracketing Low',
    1491             9 => 'White Balance Bracketing High',
    1492             770 => 'Single-frame Bracketing Low',
    1493             771 => 'Continous Bracketing Low',
    1494             1794 => 'Single-frame Bracketing High',
    1495             1795 => 'Continuous Bracketing High',
     1938        Name => 'DriveMode2', # (one of these is probably DriveModeSetting like Sony - PH)
     1939        PrintHex => 1,
     1940        PrintConv => {
     1941            0x000 => 'Self-timer 10 sec',
     1942            0x001 => 'Continuous',
     1943            0x302 => 'Single-frame Bracketing Low',
     1944            0x702 => 'Single-frame Bracketing High',
     1945            0x303 => 'Continous Bracketing Low',
     1946            0x703 => 'Continuous Bracketing High',
     1947            0x004 => 'Self-timer 2 sec',
     1948            0x005 => 'Single Frame',
     1949            0x008 => 'White Balance Bracketing Low',
     1950            0x009 => 'White Balance Bracketing High',
    14961951        },
    14971952    },
     
    15221977    },
    15231978    0x0d => { #20
    1524         Name => 'LocalAFAreaPoint',
     1979        Name => 'AFPointSelected', # (v8.88: renamed from LocalAFAreaPoint)
     1980        # (9-point centre-cross AF system, ref JR)
    15251981        PrintConv => {
    15261982            1 => 'Center',
    15271983            2 => 'Top',
    1528             3 => 'Top-Right',
     1984            3 => 'Top-right',
    15291985            4 => 'Right',
    1530             5 => 'Bottom-Right',
     1986            5 => 'Bottom-right',
    15311987            6 => 'Bottom',
    1532             7 => 'Bottom-Left',
     1988            7 => 'Bottom-left',
    15331989            8 => 'Left',
    1534             9 => 'Top-Left',
     1990            9 => 'Top-left',
    15351991        },
    15361992    },
     
    15532009    },
    15542010    0x10 => { #20
    1555         Name => 'FlashExposureCompSetting',
     2011        Name => 'FlashExposureCompSet',
    15562012        Description => 'Flash Exposure Comp. Setting',
    15572013        # (may differ from FlashExposureComp for flash bracketing shots)
     
    16182074        PrintConv => {
    16192075            0 => 'sRGB',
     2076            2 => 'B&W', #PH (A100)
    16202077            5 => 'Adobe RGB',
    16212078        },
     
    19812438    },
    19822439    0x60 => { #20
    1983         Name => 'BatteryLevel',
     2440        Name => 'BatteryState',
    19842441        PrintConv => {
    19852442            3 => 'Very Low',
     
    20002457    GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
    20012458    FIRST_ENTRY => 0,
    2002     0x96  => { Name => 'WB_RGBLevels',          Format => 'int16u[3]' },
    2003     0xae  => { Name => 'WB_GBRGLevels',         Format => 'int16u[4]' },
    2004     0x304 => { Name => 'WB_RBPresetFlash',      Format => 'int16u[2]' },
    2005     0x308 => { Name => 'WB_RBPresetCoolWhiteF', Format => 'int16u[2]' },
    2006     0x3e8 => { Name => 'WB_RBPresetTungsten',   Format => 'int16u[2]' },
    2007     0x3ec => { Name => 'WB_RBPresetDaylight',   Format => 'int16u[2]' },
    2008     0x3f0 => { Name => 'WB_RBPresetCloudy',     Format => 'int16u[2]' },
    2009     0x3f4 => { Name => 'WB_RBPresetFlash',      Format => 'int16u[2]' },
    2010     0x3fc => {
    2011         Name => 'WB_RedPresetsFluorescent',
     2459    PRIORITY => 0,
     2460    0x0e => {
     2461        Name => 'DriveMode',
     2462        PrintConv => {
     2463            0 => 'Self-timer 10 sec',
     2464            1 => 'Continuous',
     2465            2 => 'Single-frame Exposure Bracketing',
     2466            3 => 'Continuous Exposure Bracketing',
     2467            4 => 'Self-Timer 2 sec',
     2468            5 => 'Single Frame',
     2469            8 => 'White Balance Bracketing Low',
     2470            9 => 'White Balance Bracketing High',
     2471        },
     2472    },
     2473    0x10 => {
     2474        Name => 'Rotation',
     2475        PrintConv => {
     2476            0 => 'Horizontal (normal)',
     2477            1 => 'Rotate 270 CW',
     2478            2 => 'Rotate 90 CW',
     2479        },
     2480    },
     2481    0x14 => {
     2482        Name => 'ImageStabilizationSetting',
     2483        PrintConv => { 0 => 'Off', 1 => 'On' },
     2484    },
     2485    0x15 => {
     2486        Name => 'DynamicRangeOptimizerMode',
     2487        PrintConv => {
     2488            0 => 'Off',
     2489            1 => 'Standard',
     2490            2 => 'Advanced',
     2491        },
     2492    },
     2493    0x2a => {
     2494        Name => 'ExposureCompensationMode',
     2495        PrintConv => {
     2496            0 => 'Ambient and Flash',
     2497            1 => 'Ambient Only',
     2498        },
     2499    },
     2500    0x2b => 'WBBracketShotNumber',
     2501    0x2c => {
     2502        Name => 'WhiteBalanceBracketing',
     2503        PrintConv => {
     2504            0 => 'Off',
     2505            1 => 'Low',
     2506            2 => 'High',
     2507        },
     2508    },
     2509    0x2d => 'ExposureBracketShotNumber',
     2510    0x31 => {
     2511        Name => 'FlashFunction',
     2512        Format => 'int16u',
     2513        PrintHex => 1,
     2514        PrintConv => {
     2515            0x0000 => 'No flash',
     2516            0x0300 => 'Built-in flash',
     2517            # (the following refers to an external flash)
     2518            0x1205 => 'Manual',
     2519            0x120e => 'Strobe',
     2520            #0x122e => ?
     2521            0x128e => 'Fill flash, Pre-flash TTL',
     2522            0x12ae => 'Bounce flash',
     2523            0x140e => 'Rear sync, ADI',
     2524            0x148e => 'Fill flash, ADI',
     2525            0x1580 => 'Wireless',
     2526            # 0x17ae => ?
     2527            0x178e => 'HSS',
     2528        },
     2529    },
     2530    0x34 => {
     2531        Name => 'ExposureMode',
     2532        Format => 'int16u',
     2533        PrintHex => 1,
     2534        PrintConvColumns => 2,
     2535        PrintConv => {
     2536            0x0000 => 'Program',
     2537            0x0001 => 'Aperture Priority',
     2538            0x0002 => 'Shutter Priority',
     2539            0x0003 => 'Manual',
     2540            0x0004 => 'Auto',
     2541            0x0005 => 'Program Shift A',
     2542            0x0006 => 'Program Shift S',
     2543            0x1013 => 'Portrait',
     2544            0x1023 => 'Sports',
     2545            0x1033 => 'Sunset',
     2546            0x1043 => 'Night View/Portrait',
     2547            0x1053 => 'Landscape',
     2548            0x1083 => 'Macro',
     2549        },
     2550    },
     2551    0x36 => {
     2552        Name => 'ColorMode',
     2553        Format => 'int16u',
     2554        PrintConv => {
     2555            0x00 => 'Standard',
     2556            0x01 => 'Vivid',
     2557            0x02 => 'Portrait',
     2558            0x03 => 'Landscape',
     2559            0x04 => 'Sunset',
     2560            0x05 => 'Night View',
     2561            0x07 => 'B&W',
     2562            0x08 => 'Adobe RGB',
     2563        },
     2564    },
     2565    0x38 => {
     2566        Name => 'AverageLV',
     2567        Format => 'int16u',
     2568        Notes => 'arithmetic mean of the readings from the 40 honeycomb segments',
     2569        ValueConv => '($val-106)/8',
     2570        ValueConvInv => '$val * 8 + 106',
     2571    },
     2572    # 0x3a - int16u: Approx FocusDistance in metres (0x0f50=inf)
     2573    0x3c => {
     2574        Name => 'FrameNumber',
     2575        # Numbers > 1 appear in continuous and continuous bracketing drive modes,
     2576        # as well as WB bracketing.
     2577    },
     2578    0x96  => { Name => 'WB_RGBLevels',              Format => 'int16u[3]' },
     2579    0xae  => { Name => 'WB_GBRGLevels',             Format => 'int16u[4]' },
     2580    0xc0  => {
     2581        Name => 'WB_RedLevelsTungsten',
     2582        Notes => '7 values for adjustments of -3 through +3',
     2583        Format => 'int16u[7]',
     2584    },
     2585    0xce  => { Name => 'WB_BlueLevelsTungsten',     Format => 'int16u[7]' },
     2586    0xdc  => { Name => 'WB_RedLevelsDaylight',      Format => 'int16u[7]' },
     2587    0xea  => { Name => 'WB_BlueLevelsDaylight',     Format => 'int16u[7]' },
     2588    0xf8  => { Name => 'WB_RedLevelsCloudy',        Format => 'int16u[7]' },
     2589    0x106 => { Name => 'WB_BlueLevelsCloudy',       Format => 'int16u[7]' },
     2590    0x114 => { Name => 'WB_RedLevelsFlash',         Format => 'int16u[7]' },
     2591    0x122 => { Name => 'WB_BlueLevelsFlash',        Format => 'int16u[7]' },
     2592    0x14c => {
     2593        Name => 'WB_RedLevelsFluorescent',
    20122594        Format => 'int16u[7]',
    20132595        Notes => q{
    2014             white balance red presets for fluorescent -2 through +4.  -2=Fluorescent,
     2596            white balance red presets for fluorescent -2 through +4:  -2=Fluorescent,
    20152597            -1=WhiteFluorescent, 0=CoolWhiteFluorescent, +1=DayWhiteFluorescent and
    20162598            +3=DaylightFluorescent
    20172599        },
    20182600    },
    2019     0x40a => {
    2020         Name => 'WB_BluePresetsFluorescent',
    2021         Format => 'int16u[7]',
    2022         Notes => 'white balance blue presets for fluorescent -2 through +4',
    2023     },
    2024     0x418 => { Name => 'WB_RBPresetShade',                 Format => 'int16u[2]' },
    2025     0x424 => { Name => 'WB_RBPresetCustom',                Format => 'int16u[2]' },
     2601    0x15a => { Name => 'WB_BlueLevelsFluorescent',  Format => 'int16u[7]' },
     2602    0x168 => { Name => 'WB_RedLevelsShade',         Format => 'int16u[7]' },
     2603    0x176 => { Name => 'WB_BlueLevelsShade',        Format => 'int16u[7]' },
     2604    0x188 => { Name => 'WB_RedLevel6500K',          Format => 'int16u' },
     2605    0x18a => { Name => 'WB_BlueLevel6500K',         Format => 'int16u' },
     2606    0x18c => { Name => 'WB_RedLevelCustom',         Format => 'int16u' },
     2607    0x18e => { Name => 'WB_BlueLevelCustom',        Format => 'int16u' },
     2608    0x198 => { Name => 'WB_RedLevel3500K',          Format => 'int16u' },
     2609    0x19a => { Name => 'WB_BlueLevel3500K',         Format => 'int16u' },
     2610    0x1be => {
     2611        Name => 'WB_RedLevelsKelvin',
     2612        Format => 'int16u[75]',
     2613        Notes => 'values for 2500-9900 K, in increments of 100 K',
     2614    },
     2615    0x254 => { Name => 'WB_BlueLevelsKelvin',       Format => 'int16u[75]' },
     2616    0x304 => { Name => 'WB_RBLevelsFlash',          Format => 'int16u[2]' },
     2617    0x308 => { Name => 'WB_RBLevelsCoolWhiteF',     Format => 'int16u[2]' },
     2618    0x3e8 => { Name => 'WB_RBLevelsTungsten',       Format => 'int16u[2]' },
     2619    0x3ec => { Name => 'WB_RBLevelsDaylight',       Format => 'int16u[2]' },
     2620    0x3f0 => { Name => 'WB_RBLevelsCloudy',         Format => 'int16u[2]' },
     2621    0x3f4 => { Name => 'WB_RBLevelsFlash',          Format => 'int16u[2]' },
     2622    0x3fc => { Name => 'WB_RedLevelsFluorescent',   Format => 'int16u[7]' },
     2623    0x40a => { Name => 'WB_BlueLevelsFluorescent',  Format => 'int16u[7]' },
     2624    0x418 => { Name => 'WB_RBLevelsShade',          Format => 'int16u[2]' },
     2625    0x420 => { Name => 'WB_RBLevels6500K',          Format => 'int16u[2]' },
     2626    0x424 => { Name => 'WB_RBLevelsCustom',         Format => 'int16u[2]' },
     2627    0x430 => { Name => 'WB_RBLevels3500K',          Format => 'int16u[2]' },
     2628    0x528 => { Name => 'WB_RBLevelsDaylight',       Format => 'int16u[2]' },
     2629    0x546 => { Name => 'WB_RGBLevels',              Format => 'int16u[3]' },
     2630    0x628 => {
     2631        Name => 'AEMeteringSegments',
     2632        Format => 'int8u[40]',
     2633        Notes => q{
     2634            metering values from the 40 honeycomb segments, converted to LV.  The first
     2635            value is for the outer cell, then the values are given row by row, from top
     2636            to bottom, with each row scanned left-to-right.  The 21st value is the
     2637            middle cell, which gives the spot metering
     2638        },
     2639        ValueConv    => sub { join ' ', map( { ($_ - 106) / 8 } split(' ',$_[0]) ) },
     2640        ValueConvInv => sub { join ' ', map( { int($_ * 8 + 106.5) } split(' ',$_[0]) ) },
     2641    },
     2642    0x690 => {
     2643        Name => 'MeasuredLV',
     2644        Notes => 'measured light value based on MeteringMode',
     2645        ValueConv => '($val-106)/8',
     2646        ValueConvInv => '$val * 8 + 106',
     2647    },
     2648    0x691 => {
     2649        Name => 'BrightnessValue',
     2650        ValueConv => '($val-106)/8',
     2651        ValueConvInv => '$val * 8 + 106',
     2652    },
     2653    # 0x87f - int8u: 33mm Equivalent magnification (FocusDistance = (1.5 * $val + 1) * FocalLength) (255=inf)
     2654    0x104c => { # (9600 bytes: 4 sets of 40x30 int16u values in the range 0-8191)
     2655        Name => 'TiffMeteringImage',
     2656        Format => 'undef[9600]',
     2657        Notes => q{
     2658            13-bit RBGG (?) 40x30 pixels, presumably metering info, converted to a 16-bit
     2659            TIFF image;
     2660        },
     2661        ValueConv => sub {
     2662            my ($val, $et) = @_;
     2663            return undef unless length $val >= 9600;
     2664            return \ "Binary data 7404 bytes" unless $et->Options('Binary');
     2665            my @dat = unpack('n*', $val);  # for Big-endian
     2666            # TIFF header for a 16-bit RGB 10dpi 40x30 image
     2667            $val = Image::ExifTool::MakeTiffHeader(40,30,3,16,10);
     2668            # re-order data to RGB pixels
     2669            my ($i, @val);
     2670            for ($i=0; $i<40*30; ++$i) {
     2671                # data is 13-bit (max 8191), shift left to fill 16 bits
     2672                # (typically, this gives a very dark image since the data should
     2673                # really be anti-logged to convert from EV to perceived brightness)
     2674#                 push @val, $dat[$i]<<3, $dat[$i+2400]<<3, $dat[$i+1200]<<3;
     2675                push @val, int(5041.1*log($dat[$i]+1)/log(2)), int(5041.1*log($dat[$i+2400]+1)/log(2)), int(5041.1*log($dat[$i+1200]+1)/log(2));
     2676            }
     2677            $val .= pack('v*', @val);   # add TIFF strip data
     2678            return \$val;
     2679        },
     2680    },
     2681    0x49b8 => {
     2682        Name => 'ExposureTime',
     2683        ValueConv => '$val ? 2 ** (6 - $val/8) : 0',
     2684        ValueConvInv => '$val ? int((6 - log($val) / log(2)) * 8 + 0.5) : 0',
     2685        PrintConv => '$val ? Image::ExifTool::Exif::PrintExposureTime($val) : "Bulb"',
     2686        PrintConvInv => 'lc($val) eq "bulb" ? 0 : Image::ExifTool::Exif::ConvertFraction($val)',
     2687    },
     2688    0x49ba => {
     2689        Name => 'ISO',
     2690        ValueConv => '2 ** (($val-48)/8) * 100',
     2691        ValueConvInv => '48 + 8*log($val/100)/log(2)',
     2692        PrintConv => 'int($val + 0.5)',
     2693        PrintConvInv => '$val',
     2694    },
     2695    0x49bb => { # (https://exiftool.org/forum/index.php/topic,3688.0.html)
     2696        # if this value is the 35mm equivalent magnification, then the formula could
     2697        # be (1.5 * 2**($val/16-5)+1) * FocalLength, but this tends to underestimate
     2698        # distance by about 18% (ref 20) (255=inf)
     2699        Name => 'FocusDistance',
     2700        ValueConv => '2**(($val-126)/16)',
     2701        ValueConvInv => 'log($val)/log(2)*16+126',
     2702        PrintConv => '$val > 266 ? "inf" : sprintf("%.2f m", $val)',
     2703        PrintConvInv => '$val=~s/ ?m//; $val=~/inf/i ? 267 : $val',
     2704    },
     2705    0x49bd => {
     2706        Name => 'LensType',
     2707        Format => 'int16uRev',
     2708        SeparateTable => 1,
     2709        ValueConvInv => 'int($val)', # (must truncate decimal part)
     2710        PrintConv => \%minoltaLensTypes,
     2711    },
     2712    0x49c0 => {
     2713        Name => 'ExposureCompensation', # (in exposure bracketing, this is the actual value used)
     2714        Format => 'int8s',
     2715        ValueConv => '$val / 8',
     2716        ValueConvInv => '$val * 8',
     2717        PrintConv => '$val ? sprintf("%+.1f",$val) : 0',
     2718        PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
     2719    },
     2720    0x49c1 => {
     2721        Name => 'FlashExposureComp',
     2722        Description => 'Flash Exposure Compensation',
     2723        Format => 'int8s',
     2724        ValueConv => '$val / 8',
     2725        ValueConvInv => '$val * 8',
     2726        PrintConv => '$val ? sprintf("%+.1f",$val) : 0',
     2727        PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
     2728    },
     2729    0x49c2 => {
     2730        Name => 'ImageStabilization',
     2731        PrintConv => \%offOn,
     2732    },
     2733    0x49c3 => {
     2734        Name => 'BrightnessValue',
     2735        ValueConv => '($val-106)/8',
     2736        ValueConvInv => '$val * 8 + 106',
     2737    },
     2738    0x49c5 => {
     2739        Name => 'MaxAperture',
     2740        ValueConv => '2 ** (($val-8)/16)',
     2741        ValueConvInv => '8 + 16*log($val)/log(2)',
     2742        PrintConv => 'sprintf("%.1f",$val)',
     2743        PrintConvInv => '$val',
     2744    },
     2745    # 0x49c6 - gives focal length using same formula as 0x49bb
     2746    0x49c7 => {
     2747        Name => 'FNumber',
     2748        ValueConv => '2 ** (($val-8)/16)',
     2749        ValueConvInv => '8 + 16*log($val)/log(2)',
     2750        PrintConv => 'sprintf("%.1f",$val)',
     2751        PrintConvInv => '$val',
     2752    },
    20262753    0x49dc => {
    20272754        Name => 'InternalSerialNumber',
     
    21662893    unless (defined $printConv) {
    21672894        if ($val & 0xffff0000) {
    2168             # the A2 values can be shifted by += 3 settings, where
     2895            # the A2 values can be shifted by +- 3 settings, where
    21692896            # each setting adds or subtracts 0x0010000 (ref 2)
    21702897            my $type = ($val & 0xff000000) + 0x800000;
     
    22022929=head1 AUTHOR
    22032930
    2204 Copyright 2003-2011, Phil Harvey (phil at owl.phy.queensu.ca)
     2931Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
    22052932
    22062933This library is free software; you can redistribute it and/or modify it
     
    22212948Thanks to Jay Al-Saadi, Niels Kristian Bech Jensen, Shingo Noguchi, Pedro
    22222949Corte-Real, Jeffery Small, Jens Duttke,  Thomas Kassner, Mladen Sever, Olaf
    2223 Ulrich, Lukasz Stelmach and Igal Milchtaich for the information they
    2224 provided, and for everyone who helped with the LensType list.
     2950Ulrich, Lukasz Stelmach, Igal Milchtaich, Jos Roost and Michael Reitinger
     2951for the information they provided, and for everyone who helped with the
     2952LensType list.
    22252953
    22262954=head1 SEE ALSO
Note: See TracChangeset for help on using the changeset viewer.