Sony.pm (Image-ExifTool-12.57) | : | Sony.pm (Image-ExifTool-12.58) | ||
---|---|---|---|---|
skipping to change at line 37 | skipping to change at line 37 | |||
#------------------------------------------------------------------------------ | #------------------------------------------------------------------------------ | |||
package Image::ExifTool::Sony; | package Image::ExifTool::Sony; | |||
use strict; | use strict; | |||
use vars qw($VERSION %sonyLensTypes %sonyLensTypes2); | use vars qw($VERSION %sonyLensTypes %sonyLensTypes2); | |||
use Image::ExifTool qw(:DataAccess :Utils); | use Image::ExifTool qw(:DataAccess :Utils); | |||
use Image::ExifTool::Exif; | use Image::ExifTool::Exif; | |||
use Image::ExifTool::Minolta; | use Image::ExifTool::Minolta; | |||
$VERSION = '3.57'; | $VERSION = '3.58'; | |||
sub ProcessSRF($$$); | sub ProcessSRF($$$); | |||
sub ProcessSR2($$$); | sub ProcessSR2($$$); | |||
sub ProcessSonyPIC($$$); | sub ProcessSonyPIC($$$); | |||
sub ProcessMoreInfo($$$); | sub ProcessMoreInfo($$$); | |||
sub Process_rtmd($$$); | sub Process_rtmd($$$); | |||
sub Decipher($;$); | sub Decipher($;$); | |||
sub ProcessEnciphered($$$); | sub ProcessEnciphered($$$); | |||
sub WriteEnciphered($$$); | sub WriteEnciphered($$$); | |||
sub WriteSR2($$$); | sub WriteSR2($$$); | |||
skipping to change at line 2048 | skipping to change at line 2048 | |||
360 => 'ILCE-6500', #JR | 360 => 'ILCE-6500', #JR | |||
362 => 'ILCE-7RM3', #IB | 362 => 'ILCE-7RM3', #IB | |||
363 => 'ILCE-7M3', #JR/IB | 363 => 'ILCE-7M3', #JR/IB | |||
364 => 'DSC-RX0', #PH | 364 => 'DSC-RX0', #PH | |||
365 => 'DSC-RX10M4', #JR | 365 => 'DSC-RX10M4', #JR | |||
366 => 'DSC-RX100M6', #IB | 366 => 'DSC-RX100M6', #IB | |||
367 => 'DSC-HX99', #IB | 367 => 'DSC-HX99', #IB | |||
369 => 'DSC-RX100M5A', #JR | 369 => 'DSC-RX100M5A', #JR | |||
371 => 'ILCE-6400', #IB | 371 => 'ILCE-6400', #IB | |||
372 => 'DSC-RX0M2', #JR | 372 => 'DSC-RX0M2', #JR | |||
373 => 'DSC-HX95', #github191 | ||||
374 => 'DSC-RX100M7', #IB | 374 => 'DSC-RX100M7', #IB | |||
375 => 'ILCE-7RM4', #IB | 375 => 'ILCE-7RM4', #IB | |||
376 => 'ILCE-9M2', #JR | 376 => 'ILCE-9M2', #JR | |||
378 => 'ILCE-6600', #IB/JR | 378 => 'ILCE-6600', #IB/JR | |||
379 => 'ILCE-6100', #IB/JR | 379 => 'ILCE-6100', #IB/JR | |||
380 => 'ZV-1', #JR | 380 => 'ZV-1', #JR | |||
381 => 'ILCE-7C', #JR | 381 => 'ILCE-7C', #JR | |||
382 => 'ZV-E10', #JR | 382 => 'ZV-E10', #JR | |||
383 => 'ILCE-7SM3', | 383 => 'ILCE-7SM3', | |||
384 => 'ILCE-1', #PH | 384 => 'ILCE-1', #PH | |||
skipping to change at line 2164 | skipping to change at line 2165 | |||
0xffffffff => 'n/a', # (HX9V sweep panorama, ref JR) | 0xffffffff => 'n/a', # (HX9V sweep panorama, ref JR) | |||
}, | }, | |||
}, | }, | |||
0xb027 => { #2 | 0xb027 => { #2 | |||
Name => 'LensType', | Name => 'LensType', | |||
Writable => 'int32u', | Writable => 'int32u', | |||
SeparateTable => 1, | SeparateTable => 1, | |||
# set to 65535 for E-mount lenses (values 0x80xx) | # set to 65535 for E-mount lenses (values 0x80xx) | |||
ValueConvInv => '($val & 0xff00) == 0x8000 ? 65535 : int($val)', | ValueConvInv => '($val & 0xff00) == 0x8000 ? 65535 : int($val)', | |||
PrintConv => \%sonyLensTypes, | PrintConv => \%sonyLensTypes, | |||
PrintInt => 1, | ||||
}, | }, | |||
0xb028 => { #2 | 0xb028 => { #2 | |||
# (used by the DSLR-A100) | # (used by the DSLR-A100) | |||
Name => 'MinoltaMakerNote', | Name => 'MinoltaMakerNote', | |||
# must check for zero since apparently a value of zero indicates the IFD doesn't exist | # must check for zero since apparently a value of zero indicates the IFD doesn't exist | |||
# (dumb Sony -- they shouldn't write this tag if the IFD is missing!) | # (dumb Sony -- they shouldn't write this tag if the IFD is missing!) | |||
Condition => '$$valPt ne "\0\0\0\0"', | Condition => '$$valPt ne "\0\0\0\0"', | |||
Flags => 'SubIFD', | Flags => 'SubIFD', | |||
SubDirectory => { | SubDirectory => { | |||
TagTable => 'Image::ExifTool::Minolta::Main', | TagTable => 'Image::ExifTool::Minolta::Main', | |||
skipping to change at line 5573 | skipping to change at line 5575 | |||
Format => 'int16u', | Format => 'int16u', | |||
Condition => '($$self{Model} =~ /^NEX-/)', | Condition => '($$self{Model} =~ /^NEX-/)', | |||
PrintConv => 'sprintf("Ver.%.2x.%.3d",$val>>8,$val&0xff)', | PrintConv => 'sprintf("Ver.%.2x.%.3d",$val>>8,$val&0xff)', | |||
}, | }, | |||
0x3f7 => { #JR | 0x3f7 => { #JR | |||
Name => 'LensType2', | Name => 'LensType2', | |||
Condition => '($$self{Model} =~ /^NEX-/) and ($$self{LensMount} != 1)', | Condition => '($$self{Model} =~ /^NEX-/) and ($$self{LensMount} != 1)', | |||
Format => 'int16u', | Format => 'int16u', | |||
SeparateTable => 'LensType2', | SeparateTable => 'LensType2', | |||
PrintConv => \%sonyLensTypes2, | PrintConv => \%sonyLensTypes2, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x400 => { #JR | 0x400 => { #JR | |||
Name => 'ImageNumber', | Name => 'ImageNumber', | |||
Condition => '$$self{Model} =~ /^DSLR-(A450|A500|A550)$/', | Condition => '$$self{Model} =~ /^DSLR-(A450|A500|A550)$/', | |||
Format => 'int16u', | Format => 'int16u', | |||
Notes => 'A450, A500 and A550', | Notes => 'A450, A500 and A550', | |||
Mask => 0x3fff, #PH (not sure what the upper 2 bits are for) | Mask => 0x3fff, #PH (not sure what the upper 2 bits are for) | |||
PrintConv => 'sprintf("%.4d",$val)', | PrintConv => 'sprintf("%.4d",$val)', | |||
PrintConvInv => '$val', | PrintConvInv => '$val', | |||
}, | }, | |||
skipping to change at line 6606 | skipping to change at line 6609 | |||
1 => 'A-mount', | 1 => 'A-mount', | |||
2 => 'E-mount', | 2 => 'E-mount', | |||
}, | }, | |||
}, | }, | |||
0x1893 => { #JR | 0x1893 => { #JR | |||
Name => 'LensType2', | Name => 'LensType2', | |||
Condition => '$$self{LensMount} == 2', | Condition => '$$self{LensMount} == 2', | |||
Format => 'int16u', | Format => 'int16u', | |||
SeparateTable => 'LensType2', | SeparateTable => 'LensType2', | |||
PrintConv => \%sonyLensTypes2, | PrintConv => \%sonyLensTypes2, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x1896 => { | 0x1896 => { | |||
Name => 'LensType', | Name => 'LensType', | |||
Condition => '$$self{LensMount} == 1', | Condition => '$$self{LensMount} == 1', | |||
Priority => 0, #PH (just to be safe) | Priority => 0, #PH (just to be safe) | |||
Format => 'int16u', #PH | Format => 'int16u', #PH | |||
SeparateTable => 1, | SeparateTable => 1, | |||
ValueConvInv => '($val & 0xff00) == 0x8000 ? 0 : int($val)', | ValueConvInv => '($val & 0xff00) == 0x8000 ? 0 : int($val)', | |||
PrintConv => \%sonyLensTypes, | PrintConv => \%sonyLensTypes, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x1898 => { | 0x1898 => { | |||
Name => 'DistortionCorrParamsPresent', | Name => 'DistortionCorrParamsPresent', | |||
Condition => '$$self{Model} !~ /^(DSC-|Stellar)/', | Condition => '$$self{Model} !~ /^(DSC-|Stellar)/', | |||
PrintConv => { 0 => 'No', 1 => 'Yes'}, | PrintConv => { 0 => 'No', 1 => 'Yes'}, | |||
}, | }, | |||
0x1899 => { | 0x1899 => { | |||
Name => 'DistortionCorrParamsNumber', | Name => 'DistortionCorrParamsNumber', | |||
Condition => '$$self{Model} !~ /^DSC-/', | Condition => '$$self{Model} !~ /^DSC-/', | |||
PrintConv => { 11 => '11 (APS-C)', 16 => '16 (Full-frame)'}, | PrintConv => { 11 => '11 (APS-C)', 16 => '16 (Full-frame)'}, | |||
skipping to change at line 6812 | skipping to change at line 6817 | |||
1 => 'A-mount', | 1 => 'A-mount', | |||
2 => 'E-mount', | 2 => 'E-mount', | |||
}, | }, | |||
}, | }, | |||
0x18bf => { #JR | 0x18bf => { #JR | |||
Name => 'LensType2', | Name => 'LensType2', | |||
Condition => '$$self{LensMount} == 2', | Condition => '$$self{LensMount} == 2', | |||
Format => 'int16u', | Format => 'int16u', | |||
SeparateTable => 'LensType2', | SeparateTable => 'LensType2', | |||
PrintConv => \%sonyLensTypes2, | PrintConv => \%sonyLensTypes2, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x18c2 => { | 0x18c2 => { | |||
Name => 'LensType', | Name => 'LensType', | |||
Condition => '$$self{LensMount} == 1', | Condition => '$$self{LensMount} == 1', | |||
Priority => 0, #PH (just to be safe) | Priority => 0, #PH (just to be safe) | |||
Format => 'int16u', #PH | Format => 'int16u', #PH | |||
SeparateTable => 1, | SeparateTable => 1, | |||
ValueConvInv => '($val & 0xff00) == 0x8000 ? 0 : int($val)', | ValueConvInv => '($val & 0xff00) == 0x8000 ? 0 : int($val)', | |||
PrintConv => \%sonyLensTypes, | PrintConv => \%sonyLensTypes, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x18c4 => { | 0x18c4 => { | |||
Name => 'DistortionCorrParamsPresent', | Name => 'DistortionCorrParamsPresent', | |||
Condition => '$$self{Model} !~ /^DSC-/', | Condition => '$$self{Model} !~ /^DSC-/', | |||
PrintConv => { 0 => 'No', 1 => 'Yes'}, | PrintConv => { 0 => 'No', 1 => 'Yes'}, | |||
}, | }, | |||
0x18c5 => { | 0x18c5 => { | |||
Name => 'DistortionCorrParamsNumber', | Name => 'DistortionCorrParamsNumber', | |||
Condition => '$$self{Model} !~ /^DSC-/', | Condition => '$$self{Model} !~ /^DSC-/', | |||
PrintConv => { 11 => '11 (APS-C)', 16 => '16 (Full-frame)'}, | PrintConv => { 11 => '11 (APS-C)', 16 => '16 (Full-frame)'}, | |||
skipping to change at line 6949 | skipping to change at line 6956 | |||
1 => 'A-mount', | 1 => 'A-mount', | |||
2 => 'E-mount', | 2 => 'E-mount', | |||
}, | }, | |||
}, | }, | |||
0x18ef => { #JR | 0x18ef => { #JR | |||
Name => 'LensType2', | Name => 'LensType2', | |||
Condition => '$$self{LensMount} == 2', | Condition => '$$self{LensMount} == 2', | |||
Format => 'int16u', | Format => 'int16u', | |||
SeparateTable => 'LensType2', | SeparateTable => 'LensType2', | |||
PrintConv => \%sonyLensTypes2, | PrintConv => \%sonyLensTypes2, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x18f2 => { | 0x18f2 => { | |||
Name => 'LensType', | Name => 'LensType', | |||
Condition => '$$self{LensMount} == 1', | Condition => '$$self{LensMount} == 1', | |||
Priority => 0, #PH (just to be safe) | Priority => 0, #PH (just to be safe) | |||
Format => 'int16u', #PH | Format => 'int16u', #PH | |||
SeparateTable => 1, | SeparateTable => 1, | |||
ValueConvInv => '($val & 0xff00) == 0x8000 ? 0 : int($val)', | ValueConvInv => '($val & 0xff00) == 0x8000 ? 0 : int($val)', | |||
PrintConv => \%sonyLensTypes, | PrintConv => \%sonyLensTypes, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x18f4 => { | 0x18f4 => { | |||
Name => 'DistortionCorrParamsPresent', | Name => 'DistortionCorrParamsPresent', | |||
Condition => '$$self{Model} !~ /^DSC-/', | Condition => '$$self{Model} !~ /^DSC-/', | |||
PrintConv => { 0 => 'No', 1 => 'Yes'}, | PrintConv => { 0 => 'No', 1 => 'Yes'}, | |||
}, | }, | |||
0x18f5 => { | 0x18f5 => { | |||
Name => 'DistortionCorrParamsNumber', | Name => 'DistortionCorrParamsNumber', | |||
Condition => '$$self{Model} !~ /^DSC-/', | Condition => '$$self{Model} !~ /^DSC-/', | |||
PrintConv => { 11 => '11 (APS-C)', 16 => '16 (Full-frame)'}, | PrintConv => { 11 => '11 (APS-C)', 16 => '16 (Full-frame)'}, | |||
skipping to change at line 7078 | skipping to change at line 7087 | |||
1 => 'A-mount', | 1 => 'A-mount', | |||
2 => 'E-mount', | 2 => 'E-mount', | |||
}, | }, | |||
}, | }, | |||
0x17f3 => { #JR | 0x17f3 => { #JR | |||
Name => 'LensType2', | Name => 'LensType2', | |||
Condition => '$$self{LensMount} == 2', | Condition => '$$self{LensMount} == 2', | |||
Format => 'int16u', | Format => 'int16u', | |||
SeparateTable => 'LensType2', | SeparateTable => 'LensType2', | |||
PrintConv => \%sonyLensTypes2, | PrintConv => \%sonyLensTypes2, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x17f6 => { | 0x17f6 => { | |||
Name => 'LensType', | Name => 'LensType', | |||
Condition => '$$self{LensMount} == 1', | Condition => '$$self{LensMount} == 1', | |||
Priority => 0, #PH (just to be safe) | Priority => 0, #PH (just to be safe) | |||
Format => 'int16u', #PH | Format => 'int16u', #PH | |||
SeparateTable => 1, | SeparateTable => 1, | |||
ValueConvInv => '($val & 0xff00) == 0x8000 ? 0 : int($val)', | ValueConvInv => '($val & 0xff00) == 0x8000 ? 0 : int($val)', | |||
PrintConv => \%sonyLensTypes, | PrintConv => \%sonyLensTypes, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x17f8 => { | 0x17f8 => { | |||
Name => 'DistortionCorrParamsPresent', | Name => 'DistortionCorrParamsPresent', | |||
Condition => '$$self{Model} !~ /^DSC-/', | Condition => '$$self{Model} !~ /^DSC-/', | |||
PrintConv => { 0 => 'No', 1 => 'Yes'}, | PrintConv => { 0 => 'No', 1 => 'Yes'}, | |||
}, | }, | |||
0x17f9 => { | 0x17f9 => { | |||
Name => 'DistortionCorrParamsNumber', | Name => 'DistortionCorrParamsNumber', | |||
Condition => '$$self{Model} !~ /^DSC-/', | Condition => '$$self{Model} !~ /^DSC-/', | |||
PrintConv => { 11 => '11 (APS-C)', 16 => '16 (Full-frame)'}, | PrintConv => { 11 => '11 (APS-C)', 16 => '16 (Full-frame)'}, | |||
skipping to change at line 7442 | skipping to change at line 7453 | |||
1 => 'APS-C', | 1 => 'APS-C', | |||
2 => 'Full-frame', | 2 => 'Full-frame', | |||
}, | }, | |||
}, | }, | |||
0x0107 => { | 0x0107 => { | |||
Name => 'LensType2', | Name => 'LensType2', | |||
Condition => '$$self{LensMount} == 2', | Condition => '$$self{LensMount} == 2', | |||
Format => 'int16u', | Format => 'int16u', | |||
SeparateTable => 'LensType2', | SeparateTable => 'LensType2', | |||
PrintConv => \%sonyLensTypes2, | PrintConv => \%sonyLensTypes2, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x0109 => { | 0x0109 => { | |||
Name => 'LensType', | Name => 'LensType', | |||
Condition => '$$self{LensMount} == 1', | Condition => '$$self{LensMount} == 1', | |||
Priority => 0, #PH (just to be safe) | Priority => 0, #PH (just to be safe) | |||
Format => 'int16u', #PH | Format => 'int16u', #PH | |||
Notes => 'SLT models, and NEX with A-mount lenses', | Notes => 'SLT models, and NEX with A-mount lenses', | |||
SeparateTable => 1, | SeparateTable => 1, | |||
# has a value of 0 for E-mount lenses (values 0x80xx) | # has a value of 0 for E-mount lenses (values 0x80xx) | |||
ValueConvInv => '($val & 0xff00) == 0x8000 ? 0 : int($val)', | ValueConvInv => '($val & 0xff00) == 0x8000 ? 0 : int($val)', | |||
PrintConv => \%sonyLensTypes, | PrintConv => \%sonyLensTypes, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x010b => { | 0x010b => { | |||
Name => 'DistortionCorrParamsPresent', | Name => 'DistortionCorrParamsPresent', | |||
PrintConv => { 0 => 'No', 1 => 'Yes'}, | PrintConv => { 0 => 'No', 1 => 'Yes'}, | |||
}, | }, | |||
0x0114 => { | 0x0114 => { | |||
Name => 'APS-CSizeCapture', | Name => 'APS-CSizeCapture', | |||
Condition => '$$self{Model} =~ /^(SLT-A99|HV|ILCE-7)/', | Condition => '$$self{Model} =~ /^(SLT-A99|HV|ILCE-7)/', | |||
PrintConv => { | PrintConv => { | |||
0 => 'Off', | 0 => 'Off', | |||
skipping to change at line 7729 | skipping to change at line 7742 | |||
1 => 'APS-C', | 1 => 'APS-C', | |||
2 => 'Full-frame', | 2 => 'Full-frame', | |||
}, | }, | |||
}, | }, | |||
0x0107 => { | 0x0107 => { | |||
Name => 'LensType2', | Name => 'LensType2', | |||
Condition => '$$self{LensMount} == 2', | Condition => '$$self{LensMount} == 2', | |||
Format => 'int16u', | Format => 'int16u', | |||
SeparateTable => 'LensType2', | SeparateTable => 'LensType2', | |||
PrintConv => \%sonyLensTypes2, | PrintConv => \%sonyLensTypes2, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x0109 => { | 0x0109 => { | |||
Name => 'LensType', | Name => 'LensType', | |||
Condition => '$$self{LensMount} == 1', | Condition => '$$self{LensMount} == 1', | |||
Priority => 0, #PH (just to be safe) | Priority => 0, #PH (just to be safe) | |||
Format => 'int16u', #PH | Format => 'int16u', #PH | |||
Notes => 'SLT models, and NEX with A-mount lenses', | Notes => 'SLT models, and NEX with A-mount lenses', | |||
SeparateTable => 1, | SeparateTable => 1, | |||
# has a value of 0 for E-mount lenses (values 0x80xx) | # has a value of 0 for E-mount lenses (values 0x80xx) | |||
ValueConvInv => '($val & 0xff00) == 0x8000 ? 0 : int($val)', | ValueConvInv => '($val & 0xff00) == 0x8000 ? 0 : int($val)', | |||
PrintConv => \%sonyLensTypes, | PrintConv => \%sonyLensTypes, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x010b => { | 0x010b => { | |||
Name => 'DistortionCorrParamsPresent', | Name => 'DistortionCorrParamsPresent', | |||
PrintConv => { 0 => 'No', 1 => 'Yes'}, | PrintConv => { 0 => 'No', 1 => 'Yes'}, | |||
}, | }, | |||
0x0114 => { | 0x0114 => { | |||
Name => 'APS-CSizeCapture', | Name => 'APS-CSizeCapture', | |||
Condition => '$$self{Model} =~ /^(ILCE-7|ILCE-9|ILCA-99)/', | Condition => '$$self{Model} =~ /^(ILCE-7|ILCE-9|ILCA-99)/', | |||
PrintConv => { | PrintConv => { | |||
0 => 'Off', | 0 => 'Off', | |||
skipping to change at line 8538 | skipping to change at line 8553 | |||
# 6 - seen for A58 panorama image | # 6 - seen for A58 panorama image | |||
}, | }, | |||
}, | }, | |||
0x0605 => { | 0x0605 => { | |||
Name => 'LensType2', | Name => 'LensType2', | |||
Condition => '$$self{LensMount} == 2', | Condition => '$$self{LensMount} == 2', | |||
Format => 'int16u', | Format => 'int16u', | |||
Notes => 'E-mount lenses', | Notes => 'E-mount lenses', | |||
SeparateTable => 'LensType2', | SeparateTable => 'LensType2', | |||
PrintConv => \%sonyLensTypes2, | PrintConv => \%sonyLensTypes2, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x0608 => { | 0x0608 => { | |||
Name => 'LensType', | Name => 'LensType', | |||
Condition => '$$self{LensMount} == 1', | Condition => '$$self{LensMount} == 1', | |||
Format => 'int16u', | Format => 'int16u', | |||
Notes => 'A-mount lenses on SLT and NEX', | Notes => 'A-mount lenses on SLT and NEX', | |||
SeparateTable => 1, | SeparateTable => 1, | |||
PrintConv => \%sonyLensTypes, | PrintConv => \%sonyLensTypes, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x064a => { | 0x064a => { | |||
Name => 'VignettingCorrParams', | Name => 'VignettingCorrParams', | |||
Condition => '$$self{Model} !~ /^(DSC-|Stellar)/', | Condition => '$$self{Model} !~ /^(DSC-|Stellar)/', | |||
Format => 'int16s[16]', | Format => 'int16s[16]', | |||
}, | }, | |||
0x066a => { | 0x066a => { | |||
Name => 'ChromaticAberrationCorrParams', | Name => 'ChromaticAberrationCorrParams', | |||
Condition => '$$self{Model} !~ /^(DSC-|Stellar)/', | Condition => '$$self{Model} !~ /^(DSC-|Stellar)/', | |||
Format => 'int16s[32]', | Format => 'int16s[32]', | |||
skipping to change at line 8716 | skipping to change at line 8733 | |||
2 => 'E-mount', | 2 => 'E-mount', | |||
}, | }, | |||
}, | }, | |||
0x0060 => { | 0x0060 => { | |||
Name => 'LensType2', | Name => 'LensType2', | |||
Condition => '$$self{LensMount} == 2', | Condition => '$$self{LensMount} == 2', | |||
Format => 'int16u', | Format => 'int16u', | |||
Notes => 'E-mount lenses', | Notes => 'E-mount lenses', | |||
SeparateTable => 'LensType2', | SeparateTable => 'LensType2', | |||
PrintConv => \%sonyLensTypes2, | PrintConv => \%sonyLensTypes2, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x0062 => { | 0x0062 => { | |||
Name => 'LensType', | Name => 'LensType', | |||
Condition => '$$self{LensMount} == 1', | Condition => '$$self{LensMount} == 1', | |||
Format => 'int16u', | Format => 'int16u', | |||
Notes => 'A-mount lenses on SLT and NEX', | Notes => 'A-mount lenses on SLT and NEX', | |||
SeparateTable => 1, | SeparateTable => 1, | |||
PrintConv => \%sonyLensTypes, | PrintConv => \%sonyLensTypes, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x0064 => { | 0x0064 => { | |||
Name => 'DistortionCorrParams', | Name => 'DistortionCorrParams', | |||
Condition => '$$self{Model} !~ /^DSC-/', | Condition => '$$self{Model} !~ /^DSC-/', | |||
Format => 'int16s[16]', | Format => 'int16s[16]', | |||
}, | }, | |||
0x0342 => { | 0x0342 => { | |||
Name => 'LensZoomPosition', | Name => 'LensZoomPosition', | |||
Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7M3|7RM3A?|7RM4A?|7SM 2|6100|6300|6400|6500|6600|7C|9|9M2)|DSC-(HX80|HX90V|HX99|RX0|RX10M2|RX10M3|RX10 M4|RX100M4|RX100M5|RX100M5A|RX100M6|RX100M7|WX500)|ZV-)/', | Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7M3|7RM3A?|7RM4A?|7SM 2|6100|6300|6400|6500|6600|7C|9|9M2)|DSC-(HX80|HX90V|HX99|RX0|RX10M2|RX10M3|RX10 M4|RX100M4|RX100M5|RX100M5A|RX100M6|RX100M7|WX500)|ZV-)/', | |||
Format => 'int16u', | Format => 'int16u', | |||
skipping to change at line 8940 | skipping to change at line 8959 | |||
# (Tag9405-0x0605 and Tag9050-0x0107 LensType2 always give '0' for adapters/ A-mount lenses.) | # (Tag9405-0x0605 and Tag9050-0x0107 LensType2 always give '0' for adapters/ A-mount lenses.) | |||
# - seen a few instances of 0x0009 indicating an E-mount lens, but 0xb027 Le nsType indicating an A-mount lens: | # - seen a few instances of 0x0009 indicating an E-mount lens, but 0xb027 Le nsType indicating an A-mount lens: | |||
# possibly due to adapter info not being read/reset correctly ? | # possibly due to adapter info not being read/reset correctly ? | |||
# August 2015: renamed from LensType2 into Lenstype3 because too often info here relates to previously-mounted-lens | # August 2015: renamed from LensType2 into Lenstype3 because too often info here relates to previously-mounted-lens | |||
0x0009 => { | 0x0009 => { | |||
Name => 'LensType3', | Name => 'LensType3', | |||
RawConv => '(($$self{LensMount} != 0) or ($val > 0 and $val < 32784)) ? $val : undef', | RawConv => '(($$self{LensMount} != 0) or ($val > 0 and $val < 32784)) ? $val : undef', | |||
Format => 'int16u', | Format => 'int16u', | |||
SeparateTable => 'LensType2', | SeparateTable => 'LensType2', | |||
PrintConv => \%sonyLensTypes2, | PrintConv => \%sonyLensTypes2, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x000b => { | 0x000b => { | |||
Name => 'CameraE-mountVersion', | Name => 'CameraE-mountVersion', | |||
Format => 'int16u', | Format => 'int16u', | |||
PrintConv => 'sprintf("%x.%.2x",$val>>8,$val&0xff)', | PrintConv => 'sprintf("%x.%.2x",$val>>8,$val&0xff)', | |||
PrintConvInv => 'my @a=split(/\./,$val);(hex($a[0])<<8)|hex($a[1])', | PrintConvInv => 'my @a=split(/\./,$val);(hex($a[0])<<8)|hex($a[1])', | |||
# E-mount versions seen for various cameras / camera-firmware versions: | # E-mount versions seen for various cameras / camera-firmware versions: | |||
# - : info not present in CameraSettings3 for NEX-3/5/5C/C3/VG10E | # - : info not present in CameraSettings3 for NEX-3/5/5C/C3/VG10E | |||
# 1.14: NEX-5N/5R/6/7/F3/VG20E/VG30E/VG900 v1.00, NEX-5N v1.01, NEX-3N v 0.90 | # 1.14: NEX-5N/5R/6/7/F3/VG20E/VG30E/VG900 v1.00, NEX-5N v1.01, NEX-3N v 0.90 | |||
# 1.20: NEX-3N v1.00, NEX-6 v1.01, NEX-7 v1.02, ILCE-3000 v1.00, ILCE-35 00 v1.01 | # 1.20: NEX-3N v1.00, NEX-6 v1.01, NEX-7 v1.02, ILCE-3000 v1.00, ILCE-35 00 v1.01 | |||
skipping to change at line 9624 | skipping to change at line 9644 | |||
1 => 'A-mount', | 1 => 'A-mount', | |||
2 => 'E-mount', | 2 => 'E-mount', | |||
}, | }, | |||
}, | }, | |||
0x004b => { | 0x004b => { | |||
Name => 'LensType2', | Name => 'LensType2', | |||
Condition => '$$self{LensMount} == 2', | Condition => '$$self{LensMount} == 2', | |||
Format => 'int16u', | Format => 'int16u', | |||
SeparateTable => 'LensType2', | SeparateTable => 'LensType2', | |||
PrintConv => \%sonyLensTypes2, | PrintConv => \%sonyLensTypes2, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x004d => { | 0x004d => { | |||
Name => 'LensType', | Name => 'LensType', | |||
Condition => '$$self{LensMount} == 1', | Condition => '$$self{LensMount} == 1', | |||
Priority => 0, #PH (just to be safe) | Priority => 0, #PH (just to be safe) | |||
Format => 'int16u', #PH | Format => 'int16u', #PH | |||
SeparateTable => 1, | SeparateTable => 1, | |||
ValueConvInv => '($val & 0xff00) == 0x8000 ? 0 : int($val)', | ValueConvInv => '($val & 0xff00) == 0x8000 ? 0 : int($val)', | |||
PrintConv => \%sonyLensTypes, | PrintConv => \%sonyLensTypes, | |||
PrintInt => 1, | ||||
}, | }, | |||
0x004f => { | 0x004f => { | |||
Name => 'DistortionCorrParams', | Name => 'DistortionCorrParams', | |||
Format => 'int16s[16]', | Format => 'int16s[16]', | |||
}, | }, | |||
0x0070 => { %pictureProfile2010 }, #IB | 0x0070 => { %pictureProfile2010 }, #IB | |||
0x0071 => { | 0x0071 => { | |||
Name => 'FocalLength', | Name => 'FocalLength', | |||
Format => 'int16u', | Format => 'int16u', | |||
ValueConv => '$val / 10', | ValueConv => '$val / 10', | |||
End of changes. 23 change blocks. | ||||
1 lines changed or deleted | 23 lines changed or added |