Properly calculate the number of remaining samples in the MP3 frame, even

though in practice it should never matter.

git-svn-id: https://svn.musicpd.org/mpd/trunk@5147 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
J. Alexander Treuman 2006-12-23 15:10:21 +00:00
parent 469ff63093
commit 5da19e5f78

View File

@ -835,14 +835,16 @@ static int mp3Read(mp3DecodeData * data, OutputBuffer * cb, DecoderControl * dc,
for (i = 0; i < (data->synth).pcm.length; i++) { for (i = 0; i < (data->synth).pcm.length; i++) {
mpd_sint16 *sample; mpd_sint16 *sample;
samplesLeft--;
if (!data->decodedFirstFrame && if (!data->decodedFirstFrame &&
(i < data->dropSamplesAtStart)) { (i < data->dropSamplesAtStart)) {
continue; continue;
} else if (data->dropSamplesAtEnd && } else if (data->dropSamplesAtEnd &&
(data->currentFrame == (data->maxFrames - data->dropFramesAtEnd))) { (data->currentFrame == (data->maxFrames - data->dropFramesAtEnd)) &&
samplesLeft--; (samplesLeft < data->dropSamplesAtEnd)) {
/* stop decoding, since samples were dropped */ /* stop decoding, effectively dropping
if (samplesLeft < data->dropSamplesAtEnd) * all remaining samples */
return DECODE_BREAK; return DECODE_BREAK;
} }