aac, mod: moved decoder command check into loop condition

Avoid while(true) loops, and convert them to a loop with a proper
condition.
This commit is contained in:
Max Kellermann 2008-11-02 17:02:23 +01:00
parent 3f6fcfd38e
commit 5b13f067cd
2 changed files with 9 additions and 18 deletions

View File

@ -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)

View File

@ -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);