aboutsummaryrefslogtreecommitdiffstats
path: root/src/decode.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/decode.c')
-rw-r--r--src/decode.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/decode.c b/src/decode.c
index 59419ed1b..05e4c4a56 100644
--- a/src/decode.c
+++ b/src/decode.c
@@ -371,11 +371,9 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer *
1=enabled; -1=disabled */
int doCrossFade = 0;
unsigned int crossFadeChunks = 0;
- unsigned int fadePosition;
/** the position of the next cross-faded chunk in the next
song */
int nextChunk = -1;
- unsigned int test;
int decodeWaitedOn = 0;
static const char silence[CHUNK_SIZE];
double sizeToTime = 0.0;
@@ -496,6 +494,7 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer *
if (pause)
player_sleep();
else if (cb->begin != end && cb->begin != next) {
+ unsigned int fadePosition;
if (doCrossFade == 1 && next >= 0 &&
((next > cb->begin &&
(fadePosition = next - cb->begin)
@@ -504,6 +503,7 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer *
(fadePosition = next - cb->begin +
buffered_chunks) <= crossFadeChunks))) {
/* perform cross fade */
+ unsigned int test = end;
if (nextChunk < 0) {
/* beginning of the cross fade
- adjust crossFadeChunks
@@ -512,7 +512,6 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer *
chunks in the old song */
crossFadeChunks = fadePosition;
}
- test = end;
if (end < cb->begin)
test += buffered_chunks;
nextChunk = cb->begin + crossFadeChunks;
@@ -576,8 +575,8 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer *
/* the cross-fade is finished; skip
the section which was cross-faded
(and thus already played) */
+ unsigned int test = end;
nextChunk = cb->begin + crossFadeChunks;
- test = end;
if (end < cb->begin)
test += buffered_chunks;
if ((unsigned)nextChunk < test) {