APE.pm (Image-ExifTool-12.57) | : | APE.pm (Image-ExifTool-12.58) | ||
---|---|---|---|---|
skipping to change at line 18 | skipping to change at line 18 | |||
# References: 1) http://www.monkeysaudio.com/ | # References: 1) http://www.monkeysaudio.com/ | |||
# 2) http://www.personal.uni-jena.de/~pfk/mpp/sv8/apetag.html | # 2) http://www.personal.uni-jena.de/~pfk/mpp/sv8/apetag.html | |||
#------------------------------------------------------------------------------ | #------------------------------------------------------------------------------ | |||
package Image::ExifTool::APE; | package Image::ExifTool::APE; | |||
use strict; | use strict; | |||
use vars qw($VERSION); | use vars qw($VERSION); | |||
use Image::ExifTool qw(:DataAccess :Utils); | use Image::ExifTool qw(:DataAccess :Utils); | |||
$VERSION = '1.06'; | $VERSION = '1.07'; | |||
# APE metadata blocks | # APE metadata blocks | |||
%Image::ExifTool::APE::Main = ( | %Image::ExifTool::APE::Main = ( | |||
GROUPS => { 2 => 'Audio' }, | GROUPS => { 2 => 'Audio' }, | |||
NOTES => q{ | NOTES => q{ | |||
Tags found in Monkey's Audio (APE) information. Only a few common tags are | Tags found in Monkey's Audio (APE) information. Only a few common tags are | |||
listed below, but ExifTool will extract any tag found. ExifTool support s | listed below, but ExifTool will extract any tag found. ExifTool support s | |||
APEv1 and APEv2 tags, as well as ID3 information in APE files, and will also | APEv1 and APEv2 tags, as well as ID3 information in APE files, and will also | |||
read APE metadata from MP3 and MPC files. | read APE metadata from MP3 and MPC files. | |||
}, | }, | |||
skipping to change at line 136 | skipping to change at line 136 | |||
Image::ExifTool::ID3::ProcessID3($et, $dirInfo) and return 1; | Image::ExifTool::ID3::ProcessID3($et, $dirInfo) and return 1; | |||
} | } | |||
my $raf = $$dirInfo{RAF}; | my $raf = $$dirInfo{RAF}; | |||
my $verbose = $et->Options('Verbose'); | my $verbose = $et->Options('Verbose'); | |||
my ($buff, $i, $header, $tagTablePtr, $dataPos, $oldIndent); | my ($buff, $i, $header, $tagTablePtr, $dataPos, $oldIndent); | |||
$$et{DoneAPE} = 1; | $$et{DoneAPE} = 1; | |||
# check APE signature and process audio information | # check APE signature and process audio information | |||
# unless this is some other type of file | # unless this is some other type of file | |||
unless ($$et{VALUE}{FileType}) { | unless ($$et{FileType}) { | |||
$raf->Read($buff, 32) == 32 or return 0; | $raf->Read($buff, 32) == 32 or return 0; | |||
$buff =~ /^(MAC |APETAGEX)/ or return 0; | $buff =~ /^(MAC |APETAGEX)/ or return 0; | |||
$et->SetFileType(); | $et->SetFileType(); | |||
SetByteOrder('II'); | SetByteOrder('II'); | |||
if ($buff =~ /^APETAGEX/) { | if ($buff =~ /^APETAGEX/) { | |||
# we already read the APE header | # we already read the APE header | |||
$header = 1; | $header = 1; | |||
} else { | } else { | |||
# process the MAC header | # process the MAC header | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added |