diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/decode.c | 4 | ||||
-rw-r--r-- | src/decode.h | 1 | ||||
-rw-r--r-- | src/mp3_decode.c | 2 |
3 files changed, 4 insertions, 3 deletions
diff --git a/src/decode.c b/src/decode.c index f77a9b999..69037d007 100644 --- a/src/decode.c +++ b/src/decode.c @@ -114,7 +114,7 @@ int calculateCrossFadeChunks(PlayerControl * pc, AudioFormat * af) { #define handleDecodeStart() \ if(decodeWaitedOn && dc->state==DECODE_STATE_DECODE) { \ - decodeWaitedOn = 1; \ + decodeWaitedOn = 0; \ if(openAudioDevice(&(cb->audioFormat))<0) { \ strncpy(pc->erroredFile,pc->file,MAXPATHLEN); \ pc->erroredFile[MAXPATHLEN] = '\0'; \ @@ -127,7 +127,7 @@ int calculateCrossFadeChunks(PlayerControl * pc, AudioFormat * af) { pc->bits = dc->audioFormat.bits; \ pc->channels = dc->audioFormat.channels; \ } \ - else { \ + else if(decodeWaitedOn) { \ my_usleep(10); \ continue; \ } diff --git a/src/decode.h b/src/decode.h index 8b36fe7ca..d73cb587c 100644 --- a/src/decode.h +++ b/src/decode.h @@ -46,6 +46,7 @@ #define DECODE_SUFFIX_WAVE 6 typedef struct _DecoderControl { + volatile mpd_sint8 seekable; volatile mpd_sint8 state; volatile mpd_sint8 stop; volatile mpd_sint8 start; diff --git a/src/mp3_decode.c b/src/mp3_decode.c index 7ff63b536..23bed6bac 100644 --- a/src/mp3_decode.c +++ b/src/mp3_decode.c @@ -189,7 +189,7 @@ int fillMp3InputBuffer(mp3DecodeData * data) { readSize); if(readed <= 0 && inputStreamAtEOF(data->inStream)) return -1; /* sleep for a fraction of a second! */ - else if(readed == 0) my_usleep(10); + else if(readed <= 0) my_usleep(10000); mad_stream_buffer(&data->stream,data->readBuffer,readed+remaining); (data->stream).error = 0; |