Commit 5b13f067 authored by Max Kellermann's avatar Max Kellermann

aac, mod: moved decoder command check into loop condition

Avoid while(true) loops, and convert them to a loop with a proper condition.
parent 3f6fcfd3
......@@ -363,7 +363,7 @@ aac_stream_decode(struct decoder *mpd_decoder, struct input_stream *inStream)
advanceAacBuffer(&b, bread);
while (true) {
do {
fillAacBuffer(&b);
adts_find_frame(&b);
fillAacBuffer(&b);
......@@ -414,9 +414,7 @@ aac_stream_decode(struct decoder *mpd_decoder, struct input_stream *inStream)
decoder_data(mpd_decoder, NULL, sampleBuffer,
sampleBufferLen, file_time,
bitRate, NULL);
if (decoder_get_command(mpd_decoder) == DECODE_COMMAND_STOP)
break;
}
} while (decoder_get_command(mpd_decoder) == DECODE_COMMAND_NONE);
faacDecClose(decoder);
if (b.buffer)
......@@ -495,7 +493,7 @@ aac_decode(struct decoder *mpd_decoder, const char *path)
advanceAacBuffer(&b, bread);
while (true) {
do {
fillAacBuffer(&b);
if (b.bytesIntoBuffer == 0)
......@@ -544,9 +542,7 @@ aac_decode(struct decoder *mpd_decoder, const char *path)
decoder_data(mpd_decoder, NULL, sampleBuffer,
sampleBufferLen, file_time,
bitRate, NULL);
if (decoder_get_command(mpd_decoder) == DECODE_COMMAND_STOP)
break;
}
} while (decoder_get_command(mpd_decoder) == DECODE_COMMAND_NONE);
faacDecClose(decoder);
if (b.buffer)
......
......@@ -179,6 +179,7 @@ mod_decode(struct decoder *decoder, const char *path)
float total_time = 0.0;
int ret;
float secPerByte;
enum decoder_command cmd = DECODE_COMMAND_NONE;
if (!mod_initMikMod())
return false;
......@@ -199,18 +200,12 @@ mod_decode(struct decoder *decoder, const char *path)
decoder_initialized(decoder, &audio_format, false, 0);
while (true) {
if (decoder_get_command(decoder) == DECODE_COMMAND_STOP)
break;
if (!Player_Active())
break;
while (cmd == DECODE_COMMAND_NONE && Player_Active()) {
ret = VC_WriteBytes(data->audio_buffer, MIKMOD_FRAME_SIZE);
total_time += ret * secPerByte;
decoder_data(decoder, NULL,
(char *)data->audio_buffer, ret,
total_time, 0, NULL);
cmd = decoder_data(decoder, NULL,
data->audio_buffer, ret,
total_time, 0, NULL);
}
mod_close(data);
......
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