From 547e358796b9d82041b94f18f9ddcb972b8f1e7e Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Fri, 21 May 2004 22:31:07 +0000 Subject: do input buffering in while sleeping loop of sending stuff to output buffer git-svn-id: https://svn.musicpd.org/mpd/trunk@1125 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/outputBuffer.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/outputBuffer.c') diff --git a/src/outputBuffer.c b/src/outputBuffer.c index 2323ea97b..f1ea86925 100644 --- a/src/outputBuffer.c +++ b/src/outputBuffer.c @@ -43,8 +43,9 @@ void flushOutputBuffer(OutputBuffer * cb) { } } -int sendDataToOutputBuffer(OutputBuffer * cb, DecoderControl * dc, - char * dataIn, long dataInLen, float time, mpd_uint16 bitRate) +int sendDataToOutputBuffer(OutputBuffer * cb, InputStream * inStream, + DecoderControl * dc, char * dataIn, long dataInLen, float time, + mpd_uint16 bitRate) { mpd_uint16 dataToSend; mpd_uint16 chunkLeft; @@ -75,7 +76,11 @@ int sendDataToOutputBuffer(OutputBuffer * cb, DecoderControl * dc, if(currentChunk != cb->end) { while(cb->begin==cb->end && cb->wrap && !dc->stop) { - my_usleep(10000); + if(!inStream || + bufferInputStream(inStream) <= 0) + { + my_usleep(10000); + } } if(dc->stop) return OUTPUT_BUFFER_DC_STOP; -- cgit v1.2.3