From ff3323334aa3e140584d2a8aecf4f092dfb13bb2 Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Fri, 7 May 2004 19:35:39 +0000 Subject: implement new outputBuffering stuff for rest of decoders git-svn-id: https://svn.musicpd.org/mpd/trunk@942 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/audiofile_decode.c | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) (limited to 'src/audiofile_decode.c') diff --git a/src/audiofile_decode.c b/src/audiofile_decode.c index 9a5103716..f3e88395b 100644 --- a/src/audiofile_decode.c +++ b/src/audiofile_decode.c @@ -109,30 +109,18 @@ int audiofile_decode(OutputBuffer * cb, AudioFormat * af, DecoderControl * dc) ret = afReadFrames(af_fp, AF_DEFAULT_TRACK, chunk, CHUNK_SIZE/fs); if(ret<=0) eof = 1; else { - while(cb->begin==cb->end && cb->wrap && - !dc->stop && !dc->seek){ - my_usleep(10000); - } + current += ret; + sendDataToOutputBuffer(cb,dc,chunk,ret*fs, + (float)current / + (float)af->sampleRate, + bitRate); if(dc->stop) break; else if(dc->seek) continue; - - memcpy(cb->chunks+cb->end*CHUNK_SIZE,chunk, - CHUNK_SIZE); - cb->chunkSize[cb->end] = CHUNK_SIZE; - - current += ret; - cb->times[cb->end] = (float)current/(float)af->sampleRate; - cb->bitRate[cb->end] = bitRate; - - ++cb->end; - - if(cb->end>=buffered_chunks) { - cb->end = 0; - cb->wrap = 1; - } } } + flushOutputBuffer(cb); + if(dc->seek) dc->seek = 0; if(dc->stop) { -- cgit v1.2.3