"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "lib/Image/ExifTool/Canon.pm" between
Image-ExifTool-12.57.tar.gz and Image-ExifTool-12.58.tar.gz

About: ExifTool is a platform-independent Perl library plus a command-line application for reading, writing and editing meta information in a wide variety of files.

Canon.pm  (Image-ExifTool-12.57):Canon.pm  (Image-ExifTool-12.58)
skipping to change at line 91 skipping to change at line 91
use Image::ExifTool qw(:DataAccess :Utils); use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::Exif; use Image::ExifTool::Exif;
sub WriteCanon($$$); sub WriteCanon($$$);
sub ProcessSerialData($$$); sub ProcessSerialData($$$);
sub ProcessFilters($$$); sub ProcessFilters($$$);
sub ProcessCTMD($$$); sub ProcessCTMD($$$);
sub ProcessExifInfo($$$); sub ProcessExifInfo($$$);
sub SwapWords($); sub SwapWords($);
$VERSION = '4.65'; $VERSION = '4.66';
# Note: Removed 'USM' from 'L' lenses since it is redundant - PH # Note: Removed 'USM' from 'L' lenses since it is redundant - PH
# (or is it? Ref 32 shows 5 non-USM L-type lenses) # (or is it? Ref 32 shows 5 non-USM L-type lenses)
# --> have relaxed this for new lenses because Canon has been # --> have relaxed this for new lenses because Canon has been
# consistent about keeping "USM" in the model name # consistent about keeping "USM" in the model name
%canonLensTypes = ( #4 %canonLensTypes = ( #4
Notes => q{
Decimal values have been added to differentiate lenses which would other
wise
have the same LensType, and are used by the Composite LensID tag when
attempting to identify the specific lens model.
},
-1 => 'n/a', -1 => 'n/a',
1 => 'Canon EF 50mm f/1.8', 1 => 'Canon EF 50mm f/1.8',
2 => 'Canon EF 28mm f/2.8 or Sigma Lens', 2 => 'Canon EF 28mm f/2.8 or Sigma Lens',
2.1 => 'Sigma 24mm f/2.8 Super Wide II', #ClaudeJolicoeur 2.1 => 'Sigma 24mm f/2.8 Super Wide II', #ClaudeJolicoeur
# (3 removed in current Kamisaka list) # (3 removed in current Kamisaka list)
3 => 'Canon EF 135mm f/2.8 Soft', #15/32 3 => 'Canon EF 135mm f/2.8 Soft', #15/32
4 => 'Canon EF 35-105mm f/3.5-4.5 or Sigma Lens', #28 4 => 'Canon EF 35-105mm f/3.5-4.5 or Sigma Lens', #28
4.1 => 'Sigma UC Zoom 35-135mm f/4-5.6', 4.1 => 'Sigma UC Zoom 35-135mm f/4-5.6',
5 => 'Canon EF 35-70mm f/3.5-4.5', #32 5 => 'Canon EF 35-70mm f/3.5-4.5', #32
6 => 'Canon EF 28-70mm f/3.5-4.5 or Sigma or Tokina Lens', #32 6 => 'Canon EF 28-70mm f/3.5-4.5 or Sigma or Tokina Lens', #32
skipping to change at line 2405 skipping to change at line 2400
}, },
22 => { #4 22 => { #4
Name => 'LensType', Name => 'LensType',
Format => 'int16u', Format => 'int16u',
RawConv => '$val ? $$self{LensType}=$val : undef', # don't use if value is zero RawConv => '$val ? $$self{LensType}=$val : undef', # don't use if value is zero
Notes => 'this value is incorrect for EOS 7D images with lenses of type 256 or greater', Notes => 'this value is incorrect for EOS 7D images with lenses of type 256 or greater',
SeparateTable => 1, SeparateTable => 1,
DataMember => 'LensType', DataMember => 'LensType',
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
23 => { 23 => {
Name => 'MaxFocalLength', Name => 'MaxFocalLength',
Format => 'int16u', Format => 'int16u',
# this is a bit tricky, but we need the FocalUnits to convert this to mm # this is a bit tricky, but we need the FocalUnits to convert this to mm
RawConvInv => '$val * ($$self{FocalUnits} || 1)', RawConvInv => '$val * ($$self{FocalUnits} || 1)',
ValueConv => '$val / ($$self{FocalUnits} || 1)', ValueConv => '$val / ($$self{FocalUnits} || 1)',
ValueConvInv => '$val', ValueConvInv => '$val',
PrintConv => '"$val mm"', PrintConv => '"$val mm"',
PrintConvInv => '$val=~s/\s*mm//;$val', PrintConvInv => '$val=~s/\s*mm//;$val',
skipping to change at line 3063 skipping to change at line 3059
PrintConv => '"$val mm"', PrintConv => '"$val mm"',
PrintConvInv => '$val=~s/\s*mm//;$val', PrintConvInv => '$val=~s/\s*mm//;$val',
}, },
0x0d => { #9 0x0d => { #9
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is little-endian Format => 'int16uRev', # value is little-endian
SeparateTable => 1, SeparateTable => 1,
RawConv => '$val ? $val : undef', # don't use if value is zero RawConv => '$val ? $val : undef', # don't use if value is zero
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0x0e => { 0x0e => {
Name => 'MinFocalLength', Name => 'MinFocalLength',
Format => 'int16u', Format => 'int16u',
PrintConv => '"$val mm"', PrintConv => '"$val mm"',
PrintConvInv => '$val=~s/\s*mm//;$val', PrintConvInv => '$val=~s/\s*mm//;$val',
}, },
0x10 => { 0x10 => {
Name => 'MaxFocalLength', Name => 'MaxFocalLength',
Format => 'int16u', Format => 'int16u',
skipping to change at line 3178 skipping to change at line 3175
NOTES => 'CameraInfo tags for the 1DmkII and 1DSmkII.', NOTES => 'CameraInfo tags for the 1DmkII and 1DSmkII.',
0x04 => { %ciExposureTime }, #9 0x04 => { %ciExposureTime }, #9
0x09 => { %ciFocalLength }, #9 0x09 => { %ciFocalLength }, #9
0x0c => { #9 0x0c => { #9
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
RawConv => '$val ? $val : undef', # don't use if value is zero RawConv => '$val ? $val : undef', # don't use if value is zero
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0x11 => { %ciMinFocal }, #9 0x11 => { %ciMinFocal }, #9
0x13 => { %ciMaxFocal }, #9 0x13 => { %ciMaxFocal }, #9
0x2d => { #9 0x2d => { #9
Name => 'FocalType', Name => 'FocalType',
PrintConv => { PrintConv => {
0 => 'Fixed', 0 => 'Fixed',
2 => 'Zoom', 2 => 'Zoom',
}, },
}, },
skipping to change at line 3255 skipping to change at line 3253
NOTES => 'CameraInfo tags for the 1DmkIIN.', NOTES => 'CameraInfo tags for the 1DmkIIN.',
0x04 => { %ciExposureTime }, 0x04 => { %ciExposureTime },
0x09 => { %ciFocalLength }, 0x09 => { %ciFocalLength },
0x0c => { 0x0c => {
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
RawConv => '$val ? $val : undef', # don't use if value is zero RawConv => '$val ? $val : undef', # don't use if value is zero
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0x11 => { %ciMinFocal }, 0x11 => { %ciMinFocal },
0x13 => { %ciMaxFocal }, 0x13 => { %ciMaxFocal },
0x36 => { #15 0x36 => { #15
Name => 'WhiteBalance', Name => 'WhiteBalance',
SeparateTable => 1, SeparateTable => 1,
PrintConv => \%canonWhiteBalance, PrintConv => \%canonWhiteBalance,
}, },
0x37 => { #15 0x37 => { #15
Name => 'ColorTemperature', Name => 'ColorTemperature',
skipping to change at line 3350 skipping to change at line 3349
Name => 'PictureStyle', Name => 'PictureStyle',
Flags => ['PrintHex','SeparateTable'], Flags => ['PrintHex','SeparateTable'],
PrintConv => \%pictureStyles, PrintConv => \%pictureStyles,
}, },
0x111 => { #15 0x111 => { #15
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0x113 => { %ciMinFocal }, 0x113 => { %ciMinFocal },
0x115 => { %ciMaxFocal }, 0x115 => { %ciMaxFocal },
0x136 => { #15 0x136 => { #15
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Format => 'string[6]', Format => 'string[6]',
}, },
0x172 => { 0x172 => {
Name => 'FileIndex', Name => 'FileIndex',
Groups => { 2 => 'Image' }, Groups => { 2 => 'Image' },
skipping to change at line 3505 skipping to change at line 3505
0x7c => { 0x7c => {
Name => 'ColorTemperature', Name => 'ColorTemperature',
Format => 'int16u', Format => 'int16u',
}, },
0x14f => { 0x14f => {
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0x151 => { %ciMinFocal }, 0x151 => { %ciMinFocal },
0x153 => { %ciMaxFocal, 0x153 => { %ciMaxFocal,
Hook => '$varSize -= 4 if $$self{CanonFirm} < 2', Hook => '$varSize -= 4 if $$self{CanonFirm} < 2',
}, },
0x1ed => { 0x1ed => {
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Format => 'string[6]', Format => 'string[6]',
Writable => 0, Writable => 0,
}, },
skipping to change at line 3613 skipping to change at line 3614
Format => 'int8u', Format => 'int8u',
Flags => ['PrintHex','SeparateTable'], Flags => ['PrintHex','SeparateTable'],
PrintConv => \%pictureStyles, PrintConv => \%pictureStyles,
}, },
0x1a7 => { 0x1a7 => {
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0x1a9 => { %ciMinFocal }, 0x1a9 => { %ciMinFocal },
0x1ab => { %ciMaxFocal, 0x1ab => { %ciMaxFocal,
# add another offset of -8 for firmware 5.7.1, and a large offset # add another offset of -8 for firmware 5.7.1, and a large offset
# to effectively abort processing for unknown firmware # to effectively abort processing for unknown firmware
Hook => '$varSize += ($$self{CanonFirm} ? -8 : 0x10000) if $$self{CanonF irm} < 2', Hook => '$varSize += ($$self{CanonFirm} ? -8 : 0x10000) if $$self{CanonF irm} < 2',
}, },
0x280 => { 0x280 => {
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Format => 'string[6]', Format => 'string[6]',
skipping to change at line 3664 skipping to change at line 3666
0x03 => { %ciFNumber }, #PH 0x03 => { %ciFNumber }, #PH
0x04 => { %ciExposureTime }, #9 0x04 => { %ciExposureTime }, #9
0x06 => { %ciISO }, #PH 0x06 => { %ciISO }, #PH
0x0c => { #9 0x0c => { #9
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
RawConv => '$val ? $val : undef', # don't use if value is zero RawConv => '$val ? $val : undef', # don't use if value is zero
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0x17 => { %ciCameraTemperature }, #PH 0x17 => { %ciCameraTemperature }, #PH
0x1b => { %ciMacroMagnification }, #PH 0x1b => { %ciMacroMagnification }, #PH
0x27 => { #PH 0x27 => { #PH
Name => 'CameraOrientation', Name => 'CameraOrientation',
PrintConv => { PrintConv => {
0 => 'Horizontal (normal)', 0 => 'Horizontal (normal)',
1 => 'Rotate 90 CW', 1 => 'Rotate 90 CW',
2 => 'Rotate 270 CW', 2 => 'Rotate 270 CW',
}, },
skipping to change at line 3724 skipping to change at line 3727
PrintConv => \%pictureStyles, PrintConv => \%pictureStyles,
}, },
0x93 => { %ciMinFocal }, #15 0x93 => { %ciMinFocal }, #15
0x95 => { %ciMaxFocal }, #15 0x95 => { %ciMaxFocal }, #15
0x97 => { #15 0x97 => { #15
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0xa4 => { #PH 0xa4 => { #PH
Name => 'FirmwareRevision', Name => 'FirmwareRevision',
Format => 'string[8]', Format => 'string[8]',
}, },
0xac => { #PH 0xac => { #PH
Name => 'ShortOwnerName', Name => 'ShortOwnerName',
Format => 'string[16]', Format => 'string[16]',
}, },
0xcc => { #PH (NC) 0xcc => { #PH (NC)
skipping to change at line 3939 skipping to change at line 3943
2 => 'Strong', 2 => 'Strong',
3 => 'Off', 3 => 'Off',
}, },
}, },
0xe6 => { 0xe6 => {
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0xe8 => { %ciMinFocal }, 0xe8 => { %ciMinFocal },
0xea => { %ciMaxFocal, 0xea => { %ciMaxFocal,
# offset changes after this for different firmware versions # offset changes after this for different firmware versions
Hook => '$varSize += ($$self{CanonFirm} ? -36 : 0x10000) if $$self{Canon Firm} < 2', Hook => '$varSize += ($$self{CanonFirm} ? -36 : 0x10000) if $$self{Canon Firm} < 2',
}, },
0x17e => { 0x17e => {
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Format => 'string[6]', Format => 'string[6]',
Writable => 0, # not writable for logic reasons Writable => 0, # not writable for logic reasons
skipping to change at line 4063 skipping to change at line 4068
Format => 'int8u', Format => 'int8u',
Flags => ['PrintHex','SeparateTable'], Flags => ['PrintHex','SeparateTable'],
PrintConv => \%pictureStyles, PrintConv => \%pictureStyles,
}, },
0x153 => { 0x153 => {
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0x155 => { %ciMinFocal }, 0x155 => { %ciMinFocal },
0x157 => { %ciMaxFocal, 0x157 => { %ciMaxFocal,
Hook => '$varSize -= 8 if $$self{CanonFirm} < 3', Hook => '$varSize -= 8 if $$self{CanonFirm} < 3',
}, },
0x164 => { 0x164 => {
Name => 'LensSerialNumber', Name => 'LensSerialNumber',
Format => 'undef[5]', Format => 'undef[5]',
Priority => 0, Priority => 0,
ValueConv => 'unpack("H*",$val)', ValueConv => 'unpack("H*",$val)',
skipping to change at line 4172 skipping to change at line 4178
Format => 'int8u', Format => 'int8u',
Flags => ['PrintHex','SeparateTable'], Flags => ['PrintHex','SeparateTable'],
PrintConv => \%pictureStyles, PrintConv => \%pictureStyles,
}, },
0x161 => { # (5DmkIII + 0x0e) 0x161 => { # (5DmkIII + 0x0e)
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0x163 => { %ciMinFocal }, # (5DmkIII + 0x0e) 0x163 => { %ciMinFocal }, # (5DmkIII + 0x0e)
0x165 => { %ciMaxFocal }, # (5DmkIII + 0x0e) 0x165 => { %ciMaxFocal }, # (5DmkIII + 0x0e)
0x256 => { # (5DmkIII + 0x1a) 0x256 => { # (5DmkIII + 0x1a)
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Format => 'string[6]', Format => 'string[6]',
Writable => 0, Writable => 0,
}, },
0x2aa => { # (5DmkIII + 0x16 or 0x1e) 0x2aa => { # (5DmkIII + 0x16 or 0x1e)
Name => 'FileIndex', Name => 'FileIndex',
skipping to change at line 4319 skipping to change at line 4326
2 => 'Strong', 2 => 'Strong',
3 => 'Off', 3 => 'Off',
}, },
}, },
0x112 => { 0x112 => {
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0x114 => { %ciMinFocal }, 0x114 => { %ciMinFocal },
0x116 => { %ciMaxFocal }, 0x116 => { %ciMaxFocal },
0x1ac => { 0x1ac => {
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Format => 'string[6]', Format => 'string[6]',
Writable => 0, # not writable for logic reasons Writable => 0, # not writable for logic reasons
# some firmwares have a null instead of a space after the version number # some firmwares have a null instead of a space after the version number
RawConv => '$val=~/^\d+\.\d+\.\d+\s*$/ ? $val : undef', RawConv => '$val=~/^\d+\.\d+\.\d+\s*$/ ? $val : undef',
}, },
skipping to change at line 4408 skipping to change at line 4416
0x73 => { #15 0x73 => { #15
Name => 'ColorTemperature', Name => 'ColorTemperature',
Format => 'int16u', Format => 'int16u',
}, },
0xd6 => { #15 0xd6 => { #15
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0xd8 => { %ciMinFocal }, #15 0xd8 => { %ciMinFocal }, #15
0xda => { %ciMaxFocal }, #15 0xda => { %ciMaxFocal }, #15
0xff => { #15 0xff => { #15
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Format => 'string[6]', Format => 'string[6]',
}, },
0x133 => { #27 0x133 => { #27
Name => 'FileIndex', Name => 'FileIndex',
Groups => { 2 => 'Image' }, Groups => { 2 => 'Image' },
skipping to change at line 4543 skipping to change at line 4552
2 => 'Strong', 2 => 'Strong',
3 => 'Off', 3 => 'Off',
}, },
}, },
0xea => { #33 0xea => { #33
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0xec => { %ciMinFocal }, 0xec => { %ciMinFocal },
0xee => { %ciMaxFocal, 0xee => { %ciMaxFocal,
Hook => '$varSize += ($$self{CanonFirm} ? -4 : 0x10000) if $$self{CanonF irm} < 2', Hook => '$varSize += ($$self{CanonFirm} ? -4 : 0x10000) if $$self{CanonF irm} < 2',
}, },
0x15e => { #33 0x15e => { #33
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Format => 'string[6]', Format => 'string[6]',
Writable => 0, Writable => 0,
}, },
skipping to change at line 4632 skipping to change at line 4642
Condition => '$$self{Model} =~ /EOS 60D$/', Condition => '$$self{Model} =~ /EOS 60D$/',
Notes => '60D only', Notes => '60D only',
Format => 'int16u', Format => 'int16u',
}, },
0xe8 => { 0xe8 => {
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0xea => { %ciMinFocal }, 0xea => { %ciMinFocal },
0xec => { %ciMaxFocal }, 0xec => { %ciMaxFocal },
0x199 => { # (at this location for 60D firmware 2.8.1/1.0.5, and 1200D 3.3. 1/1.0.0) 0x199 => { # (at this location for 60D firmware 2.8.1/1.0.5, and 1200D 3.3. 1/1.0.0)
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Format => 'string[6]', Format => 'string[6]',
Writable => 0, Writable => 0,
}, },
0x1d9 => { 0x1d9 => {
Name => 'FileIndex', Name => 'FileIndex',
skipping to change at line 4713 skipping to change at line 4724
0xc7 => { 0xc7 => {
Name => 'ColorTemperature', Name => 'ColorTemperature',
Format => 'int16u', Format => 'int16u',
}, },
0x166 => { 0x166 => {
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0x168 => { %ciMinFocal }, 0x168 => { %ciMinFocal },
0x16a => { %ciMaxFocal }, 0x16a => { %ciMaxFocal },
0x25e => { # (at this location for firmware 6.1.2, 1.0.4 and 1.1.1) 0x25e => { # (at this location for firmware 6.1.2, 1.0.4 and 1.1.1)
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Format => 'string[6]', Format => 'string[6]',
Writable => 0, Writable => 0,
}, },
0x2b3 => { 0x2b3 => {
Name => 'FileIndex', Name => 'FileIndex',
skipping to change at line 4780 skipping to change at line 4792
0x13a => { 0x13a => {
Name => 'ColorTemperature', Name => 'ColorTemperature',
Format => 'int16u', Format => 'int16u',
}, },
0x189 => { 0x189 => {
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0x18b => { %ciMinFocal }, 0x18b => { %ciMinFocal },
0x18d => { %ciMaxFocal }, 0x18d => { %ciMaxFocal },
0x45a => { # (at this location for firmware 1.0.1) 0x45a => { # (at this location for firmware 1.0.1)
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Format => 'string[6]', Format => 'string[6]',
Writable => 0, Writable => 0,
}, },
0x4ae => { 0x4ae => {
Name => 'FileIndex', Name => 'FileIndex',
skipping to change at line 4863 skipping to change at line 4876
0x73 => { #PH 0x73 => { #PH
Name => 'ColorTemperature', Name => 'ColorTemperature',
Format => 'int16u', Format => 'int16u',
}, },
0xde => { #33 0xde => { #33
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0x107 => { #PH 0x107 => { #PH
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Format => 'string[6]', Format => 'string[6]',
}, },
0x10f => { #20 0x10f => { #20
Name => 'OwnerName', Name => 'OwnerName',
Format => 'string[32]', Format => 'string[32]',
}, },
0x133 => { #20 0x133 => { #20
skipping to change at line 4978 skipping to change at line 4992
2 => 'Strong', 2 => 'Strong',
3 => 'Off', 3 => 'Off',
}, },
}, },
0xf6 => { 0xf6 => {
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0xf8 => { %ciMinFocal }, 0xf8 => { %ciMinFocal },
0xfa => { %ciMaxFocal }, 0xfa => { %ciMaxFocal },
0x190 => { 0x190 => {
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Format => 'string[6]', Format => 'string[6]',
Writable => 0, Writable => 0,
RawConv => '$val=~/^\d+\.\d+\.\d+\s*$/ ? $val : undef', RawConv => '$val=~/^\d+\.\d+\.\d+\s*$/ ? $val : undef',
}, },
0x1d3 => { 0x1d3 => {
skipping to change at line 5073 skipping to change at line 5088
Format => 'int8u', Format => 'int8u',
Flags => ['PrintHex','SeparateTable'], Flags => ['PrintHex','SeparateTable'],
PrintConv => \%pictureStyles, PrintConv => \%pictureStyles,
}, },
0xff => { # (500D + 9) 0xff => { # (500D + 9)
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0x101 => { %ciMinFocal }, # (500D + 9) 0x101 => { %ciMinFocal }, # (500D + 9)
0x103 => { %ciMaxFocal }, # (500D + 9) 0x103 => { %ciMaxFocal }, # (500D + 9)
0x1a4 => { # (500D + 0x11) 0x1a4 => { # (500D + 0x11)
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Format => 'string[6]', Format => 'string[6]',
Writable => 0, Writable => 0,
RawConv => '$val=~/^\d+\.\d+\.\d+\s*$/ ? $val : undef', RawConv => '$val=~/^\d+\.\d+\.\d+\s*$/ ? $val : undef',
}, },
0x1e4 => { # (500D + 0x11) 0x1e4 => { # (500D + 0x11)
skipping to change at line 5168 skipping to change at line 5184
Format => 'int8u', Format => 'int8u',
Flags => ['PrintHex','SeparateTable'], Flags => ['PrintHex','SeparateTable'],
PrintConv => \%pictureStyles, PrintConv => \%pictureStyles,
}, },
0xea => { # (60D + 2, 550D + 3) 0xea => { # (60D + 2, 550D + 3)
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0xec => { %ciMinFocal }, # (60D + 2) 0xec => { %ciMinFocal }, # (60D + 2)
0xee => { %ciMaxFocal }, # (60D + 2) 0xee => { %ciMaxFocal }, # (60D + 2)
0x19b => { # (60D + 2) 0x19b => { # (60D + 2)
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Format => 'string[6]', Format => 'string[6]',
Writable => 0, Writable => 0,
RawConv => '$val=~/^\d+\.\d+\.\d+\s*$/ ? $val : undef', RawConv => '$val=~/^\d+\.\d+\.\d+\s*$/ ? $val : undef',
}, },
0x1db => { # (60D + 2) (NC) 0x1db => { # (60D + 2) (NC)
skipping to change at line 5250 skipping to change at line 5267
Format => 'int8u', Format => 'int8u',
Flags => ['PrintHex','SeparateTable'], Flags => ['PrintHex','SeparateTable'],
PrintConv => \%pictureStyles, PrintConv => \%pictureStyles,
}, },
0x127 => { 0x127 => {
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0x129 => { %ciMinFocal }, 0x129 => { %ciMinFocal },
0x12b => { %ciMaxFocal }, 0x12b => { %ciMaxFocal },
0x21b => { # (650D version 1.0.1) 0x21b => { # (650D version 1.0.1)
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Condition => '$$self{Model} =~ /(650D|REBEL T4i|Kiss X6i)\b/', Condition => '$$self{Model} =~ /(650D|REBEL T4i|Kiss X6i)\b/',
Notes => '650D', Notes => '650D',
Format => 'string[6]', Format => 'string[6]',
Writable => 0, Writable => 0,
RawConv => '$val=~/^\d+\.\d+\.\d+\s*$/ ? $val : undef', RawConv => '$val=~/^\d+\.\d+\.\d+\s*$/ ? $val : undef',
skipping to change at line 5362 skipping to change at line 5380
Format => 'int8u', Format => 'int8u',
Flags => ['PrintHex','SeparateTable'], Flags => ['PrintHex','SeparateTable'],
PrintConv => \%pictureStyles, PrintConv => \%pictureStyles,
}, },
0x184 => { 0x184 => {
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0x186 => { %ciMinFocal }, 0x186 => { %ciMinFocal },
0x188 => { %ciMaxFocal }, 0x188 => { %ciMaxFocal },
0x43d => { # (750D/760D firmware 6.7.2) 0x43d => { # (750D/760D firmware 6.7.2)
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Format => 'string[6]', Format => 'string[6]',
Writable => 0, Writable => 0,
RawConv => '$val=~/^\d+\.\d+\.\d+\s*$/ ? $val : undef', RawConv => '$val=~/^\d+\.\d+\.\d+\s*$/ ? $val : undef',
}, },
0x449 => { # (750D/760D firmware 1.0.0) 0x449 => { # (750D/760D firmware 1.0.0)
skipping to change at line 5436 skipping to change at line 5455
0x73 => { #PH 0x73 => { #PH
Name => 'ColorTemperature', Name => 'ColorTemperature',
Format => 'int16u', Format => 'int16u',
}, },
0xe2 => { #PH 0xe2 => { #PH
Name => 'LensType', Name => 'LensType',
Format => 'int16uRev', # value is big-endian Format => 'int16uRev', # value is big-endian
SeparateTable => 1, SeparateTable => 1,
ValueConvInv => 'int($val)', # (must truncate decimal part) ValueConvInv => 'int($val)', # (must truncate decimal part)
PrintConv => \%canonLensTypes, PrintConv => \%canonLensTypes,
PrintInt => 1,
}, },
0xe4 => { %ciMinFocal }, #PH 0xe4 => { %ciMinFocal }, #PH
0xe6 => { %ciMaxFocal }, #PH 0xe6 => { %ciMaxFocal }, #PH
0x10b => { #PH 0x10b => { #PH
Name => 'FirmwareVersion', Name => 'FirmwareVersion',
Format => 'string[6]', Format => 'string[6]',
}, },
0x137 => { #PH (NC) 0x137 => { #PH (NC)
Name => 'DirectoryIndex', Name => 'DirectoryIndex',
Groups => { 2 => 'Image' }, Groups => { 2 => 'Image' },
 End of changes. 27 change blocks. 
7 lines changed or deleted 26 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)