diff options
author | Max Kellermann <max@duempel.org> | 2012-02-11 12:47:43 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2012-02-11 12:57:18 +0100 |
commit | d95db286953d9a678b88c3539bec382a57082ee4 (patch) | |
tree | 72e3cb6a388278c94744eda91584a985020e4783 /src/decoder/flac_decoder_plugin.c | |
parent | 851fb16e7cc355e0b3b9c115b4fd12f866f28203 (diff) | |
download | mpd-d95db286953d9a678b88c3539bec382a57082ee4.tar.gz mpd-d95db286953d9a678b88c3539bec382a57082ee4.tar.xz mpd-d95db286953d9a678b88c3539bec382a57082ee4.zip |
decoder/flac: check for errors only after _process_single()
The only other libFLAC call (seek) does not produce fatal errors.
Diffstat (limited to 'src/decoder/flac_decoder_plugin.c')
-rw-r--r-- | src/decoder/flac_decoder_plugin.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/decoder/flac_decoder_plugin.c b/src/decoder/flac_decoder_plugin.c index e8e93ff37..9dc1898d5 100644 --- a/src/decoder/flac_decoder_plugin.c +++ b/src/decoder/flac_decoder_plugin.c @@ -286,16 +286,14 @@ flac_decoder_loop(struct flac_data *data, FLAC__StreamDecoder *flac_dec, /* end of this sub track */ break; - if (!FLAC__stream_decoder_process_single(flac_dec)) { - cmd = decoder_get_command(decoder); - if (cmd != DECODE_COMMAND_SEEK) - break; + if (!FLAC__stream_decoder_process_single(flac_dec) && + decoder_get_command(decoder) == DECODE_COMMAND_NONE) { + /* a failure that was not triggered by a + decoder command */ + flacPrintErroredState(FLAC__stream_decoder_get_state(flac_dec)); + break; } } - - if (cmd != DECODE_COMMAND_STOP) { - flacPrintErroredState(FLAC__stream_decoder_get_state(flac_dec)); - } } static FLAC__StreamDecoderInitStatus |