diff options
author | Martijn van Beurden <mvanb1@gmail.com> | 2023-05-19 12:13:58 +0200 |
---|---|---|
committer | Martijn van Beurden <mvanb1@gmail.com> | 2023-05-20 07:29:04 +0200 |
commit | 7761f5472cd68372227b3adabc49b2e0cad843ab (patch) | |
tree | 8204d5e21d46d4b3311bcc5890dd80549d8ccc3f | |
parent | 808efb328717af811d24a8d59fdcc73f5f328b01 (diff) | |
download | flac-7761f5472cd68372227b3adabc49b2e0cad843ab.tar.gz |
Check for FLAC__STREAM_DECODER_ABORTED on reencoding
This status was ignored, leading to an infinite loop
-rw-r--r-- | src/flac/encode.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/flac/encode.c b/src/flac/encode.c index b8f5207a..399956d9 100644 --- a/src/flac/encode.c +++ b/src/flac/encode.c @@ -1403,7 +1403,7 @@ int flac__encode_file(FILE *infile, FLAC__off_t infilesize, const char *infilena break; } - if(!FLAC__stream_decoder_process_single(encoder_session.fmt.flac.decoder)) { + if(decoder_state == FLAC__STREAM_DECODER_ABORTED || !FLAC__stream_decoder_process_single(encoder_session.fmt.flac.decoder)) { flac__utils_printf(stderr, 1, "%s: ERROR: while decoding FLAC input, state = %s\n", encoder_session.inbasefilename, FLAC__stream_decoder_get_resolved_state_string(encoder_session.fmt.flac.decoder)); return EncoderSession_finish_error(&encoder_session); } |