diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/decode.c | 9 | ||||
-rw-r--r-- | src/outputBuffer.c | 6 | ||||
-rw-r--r-- | src/outputBuffer.h | 2 |
3 files changed, 9 insertions, 8 deletions
diff --git a/src/decode.c b/src/decode.c index 6e04a12e9..0dae5a1de 100644 --- a/src/decode.c +++ b/src/decode.c @@ -361,11 +361,6 @@ void decoderInit(void) FATAL("Failed to spawn decoder task: %s\n", strerror(errno)); } -static void advanceOutputBufferTo(OutputBuffer * cb, int to) -{ - cb->begin = to; -} - static void crossFade(OutputBufferChunk * a, OutputBufferChunk * b, AudioFormat * format, unsigned int fadePosition, unsigned int crossFadeChunks) @@ -576,9 +571,7 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer * /* the cross-fade is finished; skip the section which was cross-faded (and thus already played) */ - nextChunk = outputBufferAbsolute(cb, crossFadeChunks); - if (nextChunk >= 0) - advanceOutputBufferTo(cb, nextChunk); + output_buffer_skip(cb, crossFadeChunks); } doCrossFade = 0; diff --git a/src/outputBuffer.c b/src/outputBuffer.c index 0d114a1a6..4995fa9a5 100644 --- a/src/outputBuffer.c +++ b/src/outputBuffer.c @@ -218,3 +218,9 @@ int sendDataToOutputBuffer(OutputBuffer * cb, InputStream * inStream, return 0; } +void output_buffer_skip(OutputBuffer * cb, unsigned num) +{ + int i = outputBufferAbsolute(cb, num); + if (i >= 0) + cb->begin = i; +} diff --git a/src/outputBuffer.h b/src/outputBuffer.h index ac2ffac3f..28bb743b3 100644 --- a/src/outputBuffer.h +++ b/src/outputBuffer.h @@ -99,4 +99,6 @@ int sendDataToOutputBuffer(OutputBuffer * cb, float data_time, mpd_uint16 bitRate, ReplayGainInfo * replayGainInfo); +void output_buffer_skip(OutputBuffer * cb, unsigned num); + #endif |