Pentax.pm (Image-ExifTool-12.57) | : | Pentax.pm (Image-ExifTool-12.58) | ||
---|---|---|---|---|
skipping to change at line 61 | skipping to change at line 61 | |||
#------------------------------------------------------------------------------ | #------------------------------------------------------------------------------ | |||
package Image::ExifTool::Pentax; | package Image::ExifTool::Pentax; | |||
use strict; | use strict; | |||
use vars qw($VERSION %pentaxLensTypes); | use vars qw($VERSION %pentaxLensTypes); | |||
use Image::ExifTool::Exif; | use Image::ExifTool::Exif; | |||
use Image::ExifTool::GPS; | use Image::ExifTool::GPS; | |||
use Image::ExifTool::HP; | use Image::ExifTool::HP; | |||
$VERSION = '3.41'; | $VERSION = '3.42'; | |||
sub CryptShutterCount($$); | sub CryptShutterCount($$); | |||
sub PrintFilter($$$); | sub PrintFilter($$$); | |||
sub DecodeAFPoints($$$$;$); | sub DecodeAFPoints($$$$;$); | |||
# pentax lens type codes (ref 4) | # pentax lens type codes (ref 4) | |||
# The first number gives the lens series, and the 2nd gives the model number | # The first number gives the lens series, and the 2nd gives the model number | |||
# Series numbers: K=1; A=2; F=3; FAJ=4; DFA=4,7; FA=3,4,5,6; FA*=5,6; | # Series numbers: K=1; A=2; F=3; FAJ=4; DFA=4,7; FA=3,4,5,6; FA*=5,6; | |||
# DA=3,4,7; DA*=7,8; FA645=11; DFA645=13; Q=21 | # DA=3,4,7; DA*=7,8; FA645=11; DFA645=13; Q=21 | |||
%pentaxLensTypes = ( | %pentaxLensTypes = ( | |||
Notes => q{ | Notes => q{ | |||
The first number gives the series of the lens, and the second identifies the | The first number gives the series of the lens, and the second identifies the | |||
lens model. Note that newer series numbers may not always be properly | lens model. Note that newer series numbers may not always be properly | |||
identified by cameras running older firmware versions. Decimal values h | identified by cameras running older firmware versions. | |||
ave | ||||
been added to differentiate lenses which would otherwise have the same | ||||
LensType, and are used by the Composite LensID tag when attempting to | ||||
identify the specific lens model. | ||||
}, | }, | |||
OTHER => sub { | OTHER => sub { | |||
my ($val, $inv, $conv) = @_; | my ($val, $inv, $conv) = @_; | |||
return undef if $inv; | return undef if $inv; | |||
# *istD may report a series number of 4 for series 7 lenses | # *istD may report a series number of 4 for series 7 lenses | |||
$val =~ s/^4 /7 / and $$conv{$val} and return "$$conv{$val} ($_[0])"; | $val =~ s/^4 /7 / and $$conv{$val} and return "$$conv{$val} ($_[0])"; | |||
# cameras that don't recognize SDM lenses (eg. older K10 firmware) | # cameras that don't recognize SDM lenses (eg. older K10 firmware) | |||
# may report series 7 instead of 8 | # may report series 7 instead of 8 | |||
$val =~ s/^7 /8 / and $$conv{$val} and return "$$conv{$val} ? ($_[0])"; | $val =~ s/^7 /8 / and $$conv{$val} and return "$$conv{$val} ? ($_[0])"; | |||
# there seems to some inconsistency between FA and DFA lenses for the 64 5D... | # there seems to some inconsistency between FA and DFA lenses for the 64 5D... | |||
skipping to change at line 4084 | skipping to change at line 4081 | |||
This record stores the LensType, plus one or two unknown bytes for some | This record stores the LensType, plus one or two unknown bytes for some | |||
models. | models. | |||
}, | }, | |||
0 => { | 0 => { | |||
Name => 'LensType', | Name => 'LensType', | |||
Format => 'int8u[2]', | Format => 'int8u[2]', | |||
Priority => 0, | Priority => 0, | |||
ValueConvInv => '$val=~s/\.\d+$//; $val', | ValueConvInv => '$val=~s/\.\d+$//; $val', | |||
PrintConv => \%pentaxLensTypes, | PrintConv => \%pentaxLensTypes, | |||
SeparateTable => 1, | SeparateTable => 1, | |||
PrintInt => 1, | ||||
}, | }, | |||
3 => { #PH | 3 => { #PH | |||
Name => 'ExtenderStatus', | Name => 'ExtenderStatus', | |||
Notes => 'not valid if a non-AF lens is used', | Notes => 'not valid if a non-AF lens is used', | |||
PrintConv => { 0 => 'Not attached', 1 => 'Attached' }, | PrintConv => { 0 => 'Not attached', 1 => 'Attached' }, | |||
}, | }, | |||
# this is a binaryData table because some cameras add an extra | # this is a binaryData table because some cameras add an extra | |||
# byte or two here (typically zeros)... | # byte or two here (typically zeros)... | |||
); | ); | |||
skipping to change at line 4107 | skipping to change at line 4105 | |||
GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' }, | GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' }, | |||
IS_SUBDIR => [ 3 ], | IS_SUBDIR => [ 3 ], | |||
NOTES => 'Pentax lens information structure for models such as the *istD.', | NOTES => 'Pentax lens information structure for models such as the *istD.', | |||
0 => { | 0 => { | |||
Name => 'LensType', | Name => 'LensType', | |||
Format => 'int8u[2]', | Format => 'int8u[2]', | |||
Priority => 0, | Priority => 0, | |||
ValueConvInv => '$val=~s/\.\d+$//; $val', | ValueConvInv => '$val=~s/\.\d+$//; $val', | |||
PrintConv => \%pentaxLensTypes, | PrintConv => \%pentaxLensTypes, | |||
SeparateTable => 1, | SeparateTable => 1, | |||
PrintInt => 1, | ||||
}, | }, | |||
3 => { | 3 => { | |||
Name => 'LensData', | Name => 'LensData', | |||
Format => 'undef[17]', | Format => 'undef[17]', | |||
SubDirectory => { TagTable => 'Image::ExifTool::Pentax::LensData' }, | SubDirectory => { TagTable => 'Image::ExifTool::Pentax::LensData' }, | |||
}, | }, | |||
); | ); | |||
# lens information for newer models (ref PH) | # lens information for newer models (ref PH) | |||
%Image::ExifTool::Pentax::LensInfo2 = ( | %Image::ExifTool::Pentax::LensInfo2 = ( | |||
skipping to change at line 4142 | skipping to change at line 4141 | |||
ValueConvInv => q{ | ValueConvInv => q{ | |||
my @v = split(' ',$val); | my @v = split(' ',$val); | |||
return undef unless @v == 2; | return undef unless @v == 2; | |||
$v[2] = ($v[1] >> 8) & 0xff; | $v[2] = ($v[1] >> 8) & 0xff; | |||
$v[3] = $v[1] & 0xff; | $v[3] = $v[1] & 0xff; | |||
$v[1] = 0; | $v[1] = 0; | |||
return "@v"; | return "@v"; | |||
}, | }, | |||
PrintConv => \%pentaxLensTypes, | PrintConv => \%pentaxLensTypes, | |||
SeparateTable => 1, | SeparateTable => 1, | |||
PrintInt => 1, | ||||
}, | }, | |||
4 => { | 4 => { | |||
Name => 'LensData', | Name => 'LensData', | |||
Format => 'undef[17]', | Format => 'undef[17]', | |||
SubDirectory => { TagTable => 'Image::ExifTool::Pentax::LensData' }, | SubDirectory => { TagTable => 'Image::ExifTool::Pentax::LensData' }, | |||
}, | }, | |||
); | ); | |||
# lens information for 645D (ref PH) | # lens information for 645D (ref PH) | |||
%Image::ExifTool::Pentax::LensInfo3 = ( | %Image::ExifTool::Pentax::LensInfo3 = ( | |||
skipping to change at line 4177 | skipping to change at line 4177 | |||
ValueConvInv => q{ | ValueConvInv => q{ | |||
my @v = split(' ',$val); | my @v = split(' ',$val); | |||
return undef unless @v == 2; | return undef unless @v == 2; | |||
$v[2] = ($v[1] >> 8) & 0xff; | $v[2] = ($v[1] >> 8) & 0xff; | |||
$v[3] = $v[1] & 0xff; | $v[3] = $v[1] & 0xff; | |||
$v[1] = 0; | $v[1] = 0; | |||
return "@v"; | return "@v"; | |||
}, | }, | |||
PrintConv => \%pentaxLensTypes, | PrintConv => \%pentaxLensTypes, | |||
SeparateTable => 1, | SeparateTable => 1, | |||
PrintInt => 1, | ||||
}, | }, | |||
13 => { | 13 => { | |||
Name => 'LensData', | Name => 'LensData', | |||
Format => 'undef[17]', | Format => 'undef[17]', | |||
SubDirectory => { TagTable => 'Image::ExifTool::Pentax::LensData' }, | SubDirectory => { TagTable => 'Image::ExifTool::Pentax::LensData' }, | |||
}, | }, | |||
); | ); | |||
# lens information for K-5, K-r, etc (ref PH) | # lens information for K-5, K-r, etc (ref PH) | |||
%Image::ExifTool::Pentax::LensInfo4 = ( | %Image::ExifTool::Pentax::LensInfo4 = ( | |||
skipping to change at line 4212 | skipping to change at line 4213 | |||
ValueConvInv => q{ | ValueConvInv => q{ | |||
my @v = split(' ',$val); | my @v = split(' ',$val); | |||
return undef unless @v == 2; | return undef unless @v == 2; | |||
$v[2] = ($v[1] >> 8) & 0xff; | $v[2] = ($v[1] >> 8) & 0xff; | |||
$v[3] = $v[1] & 0xff; | $v[3] = $v[1] & 0xff; | |||
$v[1] = 0; | $v[1] = 0; | |||
return "@v"; | return "@v"; | |||
}, | }, | |||
PrintConv => \%pentaxLensTypes, | PrintConv => \%pentaxLensTypes, | |||
SeparateTable => 1, | SeparateTable => 1, | |||
PrintInt => 1, | ||||
}, | }, | |||
12 => { | 12 => { | |||
Name => 'LensData', | Name => 'LensData', | |||
Format => 'undef[18]', | Format => 'undef[18]', | |||
Condition => '$$self{NewLensData} = 1', # not really a condition, just u sed to set flag | Condition => '$$self{NewLensData} = 1', # not really a condition, just u sed to set flag | |||
SubDirectory => { TagTable => 'Image::ExifTool::Pentax::LensData' }, | SubDirectory => { TagTable => 'Image::ExifTool::Pentax::LensData' }, | |||
}, | }, | |||
); | ); | |||
# lens information for K-01, K-30, K-50, K-500, K-3, K-3II, K-S1 (ref PH) | # lens information for K-01, K-30, K-50, K-500, K-3, K-3II, K-S1 (ref PH) | |||
skipping to change at line 4248 | skipping to change at line 4250 | |||
ValueConvInv => q{ | ValueConvInv => q{ | |||
my @v = split(' ',$val); | my @v = split(' ',$val); | |||
return undef unless @v == 2; | return undef unless @v == 2; | |||
$v[3] = ($v[1] >> 8) & 0xff; | $v[3] = ($v[1] >> 8) & 0xff; | |||
$v[4] = $v[1] & 0xff; | $v[4] = $v[1] & 0xff; | |||
$v[1] = $v[2] = 0; | $v[1] = $v[2] = 0; | |||
return "@v"; | return "@v"; | |||
}, | }, | |||
PrintConv => \%pentaxLensTypes, | PrintConv => \%pentaxLensTypes, | |||
SeparateTable => 1, | SeparateTable => 1, | |||
PrintInt => 1, | ||||
}, | }, | |||
15 => { | 15 => { | |||
Name => 'LensData', | Name => 'LensData', | |||
Format => 'undef[17]', | Format => 'undef[17]', | |||
SubDirectory => { TagTable => 'Image::ExifTool::Pentax::LensData' }, | SubDirectory => { TagTable => 'Image::ExifTool::Pentax::LensData' }, | |||
}, | }, | |||
); | ); | |||
# lens data information, including lens codes (ref PH) | # lens data information, including lens codes (ref PH) | |||
%Image::ExifTool::Pentax::LensData = ( | %Image::ExifTool::Pentax::LensData = ( | |||
End of changes. 8 change blocks. | ||||
6 lines changed or deleted | 8 lines changed or added |