mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-11-09 13:12:37 -05:00
songdb.pl now calculates the checksum for Ogg Vorbis files by starting at the first page of audio data
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7124 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
b3437ecbfe
commit
40a8401cd3
2 changed files with 59 additions and 3 deletions
|
|
@ -106,6 +106,16 @@ sub get_oggtag {
|
|||
return \%hash;
|
||||
}
|
||||
|
||||
sub get_ogginfo {
|
||||
my $fn = shift;
|
||||
my %hash;
|
||||
|
||||
my $ogg = vorbiscomm->new($fn);
|
||||
|
||||
my $h= $ogg->load;
|
||||
|
||||
return $ogg->{'INFO'};
|
||||
}
|
||||
|
||||
# return ALL directory entries in the given dir
|
||||
sub getdir {
|
||||
|
|
@ -231,17 +241,19 @@ sub crc32 {
|
|||
sub singlefile {
|
||||
my ($file) = @_;
|
||||
my $hash;
|
||||
my $info;
|
||||
|
||||
if($file =~ /\.ogg$/i) {
|
||||
$hash = get_oggtag($file);
|
||||
|
||||
# CRC from 0 until we figure out exactly where the audio data starts!
|
||||
$hash->{FILECRC} = crc32($file, 0);
|
||||
$info = get_ogginfo($file);
|
||||
|
||||
$hash->{FILECRC} = crc32($file, $info->{audio_offset});
|
||||
}
|
||||
else {
|
||||
$hash = get_mp3tag($file);
|
||||
|
||||
my $info = get_mp3info($file);
|
||||
$info = get_mp3info($file);
|
||||
|
||||
$hash->{FILECRC} = crc32($file, $info->{headersize});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue