Commit b89b0197 authored by Max Kellermann's avatar Max Kellermann Committed by Eric Wong

moved the initial buffering code into the big loop

Eliminating some duplicated and. This also decreases the number of lines calling processDecodeInput(). git-svn-id: https://svn.musicpd.org/mpd/trunk@7260 09075e82-0dd4-0310-85a5-a0d7c8717e4f
parent aaebd9ef
sisyphus 0.23.15-alt1 0.23.14-alt1 0.23.13-alt1 0.23.12-alt1 0.23.11-alt1 0.23.8-alt3 0.23.8-alt2 0.23.8-alt1 0.21.24-alt1.1 0.21.24-alt1 0.20.23-alt3 0.20.23-alt2 0.20.23-alt1 0.20.21-alt1 0.20.15-alt1 0.18.14-alt1 0.18.11-alt1.1 0.18.11-alt1 0.18.10-alt1 0.17.0-alt0.3.git050212 0.17.0-alt0.2.git200911 0.17.0-alt0.2.M60P.1.git050212 0.17.0-alt0.1 0.16.2-alt2 0.16.2-alt1 0.15.13-alt1 0.15.13-alt0.M51.1 0.15.13-alt 0.15.8-alt2 0.15.8-alt1 0.15.3-alt1.1 0.15.3-alt1 0.15.0-alt2 0.15.0-alt1 0.14.2 0.14.2-alt1 0.14.2-alt 0.14.1 0.14.1-alt 0.14.0-alt 0.14-alt1 0.14-alt v0.18.14 v0.18.13 v0.18.12 v0.18.11 v0.18.10 v0.18.9 v0.18.8 v0.18.7 v0.18.6 v0.18.5 v0.18.4 v0.18.3 v0.18.2 v0.17.3 v0.17.2 v0.17.1 v0.17.0-git200911 v0.17.0-git200711 v0.17.0-git050212 v0.16.8 v0.16.5 v0.16.4 v0.16.3 v0.16.2 v0.16.1 v0.16 v0.16_alpha4 v0.16_alpha3 v0.16_alpha2 v0.15.16 v0.15.14 v0.15.13 v0.15.11 v0.15.10 v0.15.9 v0.15.7 v0.15.6 v0.15.5 release-0.16.5 release-0.16.4 release-0.16.3 release-0.16.1 release-0.16 release-0.16_alpha4 release-0.16_alpha3 release-0.16_alpha2 release-0.15.16 release-0.15.14 release-0.15.13 release-0.15.11 release-0.15.10 release-0.15.9 release-0.15.7 release-0.15.6 release-0.15.5 mpd/0.20.6-alt1 mpd/0.19.9-alt1 mpd/0.18.14-alt2 gb-sisyphus-task339776.6100 gb-sisyphus-task337393.100 gb-sisyphus-task337176.300 gb-sisyphus-task334590.100 gb-sisyphus-task333607.100 gb-sisyphus-task331543.2500 gb-sisyphus-task328663.4700 gb-sisyphus-task325064.100 gb-sisyphus-task319111.4000 gb-sisyphus-task313704.100 gb-sisyphus-task312885.100 gb-sisyphus-task308905.3200 gb-sisyphus-task305294.500 gb-sisyphus-task304007.100 gb-sisyphus-task303674.1700 gb-sisyphus-task298681.300 gb-sisyphus-task296051.1000 gb-sisyphus-task274827.100 gb-sisyphus-task269249.2000 gb-sisyphus-task266579.400 gb-sisyphus-task258132.600 gb-sisyphus-task254601.200 gb-sisyphus-task253310.100 gb-sisyphus-task252214.300 gb-sisyphus-task251539.6100 gb-sisyphus-task247988.7000 gb-sisyphus-task238768.6000 gb-sisyphus-task229151.100 gb-sisyphus-task227574.200 gb-sisyphus-task226762.6000 gb-sisyphus-task219546.1700 gb-sisyphus-task213491.100 gb-sisyphus-task198806.100 gb-sisyphus-task181400.100 gb-sisyphus-task141957.100 gb-sisyphus-task135039.100 gb-sisyphus-task130102.100 gb-sisyphus-task129023.100 gb-sisyphus-task127959.100 gb-sisyphus-task118591.100 gb-p9-task277538.2600 gb-c9f2-task327704.1100 fixed-0.17.0-git200911 alt-0.17.0-git200711 alt-0.17.0-git050212 alt-0.16.2
No related merge requests found
...@@ -365,6 +365,7 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer * ...@@ -365,6 +365,7 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer *
{ {
int pause = 0; int pause = 0;
int quit = 0; int quit = 0;
int buffering = 1;
unsigned int bbp = buffered_before_play; unsigned int bbp = buffered_before_play;
/** cross fading enabled for the current song? 0=must check; /** cross fading enabled for the current song? 0=must check;
1=enabled; -1=disabled */ 1=enabled; -1=disabled */
...@@ -390,8 +391,7 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer * ...@@ -390,8 +391,7 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer *
pc->play = 0; pc->play = 0;
wakeup_main_task(); wakeup_main_task();
while (availableOutputBuffer(cb) < bbp && while (!quit) {
dc->state != DECODE_STATE_STOP) {
processDecodeInput(pc, dc, cb, processDecodeInput(pc, dc, cb,
&pause, &bbp, &doCrossFade, &pause, &bbp, &doCrossFade,
&nextChunk, &decodeWaitedOn, &next); &nextChunk, &decodeWaitedOn, &next);
...@@ -401,17 +401,14 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer * ...@@ -401,17 +401,14 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer *
return; return;
} }
if (buffering) {
if (availableOutputBuffer(cb) < bbp) {
/* not enough decoded buffer space yet */
player_sleep(); player_sleep();
} continue;
} else
while (!quit) { /* buffering is complete */
processDecodeInput(pc, dc, cb, buffering = 0;
&pause, &bbp, &doCrossFade,
&nextChunk, &decodeWaitedOn, &next);
if (pc->stop) {
dropBufferedAudio();
quitDecode(pc,dc);
return;
} }
if (decodeWaitedOn) { if (decodeWaitedOn) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment