aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/decode.c4
-rw-r--r--src/decode.h1
-rw-r--r--src/mp3_decode.c2
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;