audiofile_plugin: fix for playing mono .au files with 8000Hz sample rate
Use the 'Virtual' variants of afGetSampleFormat, afGetChannels, afGetVirtualFrameSize in the audiofile library, since it already does the necessary abstraction for us. Of course, I've regression tested these changes against my standard 44100Hz/2ch/16bit wave files and they continue to play fine. Files tested: english.au (Linus Torvalds pronouncing 'Linux' in English) B01.Red_Bright_Heart.au (Chinese opera, sounds correct to me even though I don't actually understand the words) git-svn-id: https://svn.musicpd.org/mpd/trunk@4681 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
parent
c81f4e2c04
commit
b8fe818ae7
@ -70,10 +70,10 @@ static int audiofile_decode(OutputBuffer * cb, DecoderControl * dc, char *path)
|
||||
return -1;
|
||||
}
|
||||
|
||||
afGetSampleFormat(af_fp, AF_DEFAULT_TRACK, &fs, &bits);
|
||||
afGetVirtualSampleFormat(af_fp, AF_DEFAULT_TRACK, &fs, &bits);
|
||||
dc->audioFormat.bits = bits;
|
||||
dc->audioFormat.sampleRate = afGetRate(af_fp, AF_DEFAULT_TRACK);
|
||||
dc->audioFormat.channels = afGetChannels(af_fp, AF_DEFAULT_TRACK);
|
||||
dc->audioFormat.channels = afGetVirtualChannels(af_fp, AF_DEFAULT_TRACK);
|
||||
getOutputAudioFormat(&(dc->audioFormat), &(cb->audioFormat));
|
||||
|
||||
frame_count = afGetFrameCount(af_fp, AF_DEFAULT_TRACK);
|
||||
@ -90,7 +90,7 @@ static int audiofile_decode(OutputBuffer * cb, DecoderControl * dc, char *path)
|
||||
return -1;
|
||||
}
|
||||
|
||||
fs = (int)afGetFrameSize(af_fp, AF_DEFAULT_TRACK, 1);
|
||||
fs = (int)afGetVirtualFrameSize(af_fp, AF_DEFAULT_TRACK, 1);
|
||||
|
||||
dc->state = DECODE_STATE_DECODE;
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user