aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeelkamal Semwal <neelkamal.semwal@ittiam.com>2020-12-18 22:28:36 +0530
committerRay Essick <essick@google.com>2021-02-15 20:00:20 -0800
commit1351bffff83cfaad86d3ea777fa39f895caca897 (patch)
tree58871086e392ac3b612ba73100663f700df26ad9
parent8e7e0faa920ce620d4e054e189b1f2f434911439 (diff)
downloadflac-1351bffff83cfaad86d3ea777fa39f895caca897.tar.gz
libFlac: Exit at EOS in verify mode
When verify mode is enabled, once decoder flags end of stream, encode processing is considered complete Bug: 174302683 Test: poc in bug description Change-Id: I6d02103f58b86c303b05b312568382ce88e6b73c Merged-In: I6d02103f58b86c303b05b312568382ce88e6b73c
-rw-r--r--libFLAC/stream_encoder.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libFLAC/stream_encoder.c b/libFLAC/stream_encoder.c
index 037b8cb5..b0b26501 100644
--- a/libFLAC/stream_encoder.c
+++ b/libFLAC/stream_encoder.c
@@ -2578,7 +2578,9 @@ FLAC__bool write_bitbuffer_(FLAC__StreamEncoder *encoder, unsigned samples, FLAC
encoder->private_->verify.needs_magic_hack = true;
}
else {
- if(!FLAC__stream_decoder_process_single(encoder->private_->verify.decoder)) {
+ if(!FLAC__stream_decoder_process_single(encoder->private_->verify.decoder)
+ || (!is_last_block
+ && (FLAC__stream_encoder_get_verify_decoder_state(encoder) == FLAC__STREAM_DECODER_END_OF_STREAM))) {
FLAC__bitwriter_release_buffer(encoder->private_->frame);
FLAC__bitwriter_clear(encoder->private_->frame);
if(encoder->protected_->state != FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA)