mirror of
https://github.com/claunia/flac.git
synced 2025-12-16 18:54:26 +00:00
don't flush the input on delete unless encoder state is OK
This commit is contained in:
@@ -587,14 +587,22 @@ FLAC__StreamEncoderState FLAC__stream_encoder_init(FLAC__StreamEncoder *encoder)
|
|||||||
void FLAC__stream_encoder_finish(FLAC__StreamEncoder *encoder)
|
void FLAC__stream_encoder_finish(FLAC__StreamEncoder *encoder)
|
||||||
{
|
{
|
||||||
FLAC__ASSERT(0 != encoder);
|
FLAC__ASSERT(0 != encoder);
|
||||||
|
|
||||||
if(encoder->protected_->state == FLAC__STREAM_ENCODER_UNINITIALIZED)
|
if(encoder->protected_->state == FLAC__STREAM_ENCODER_UNINITIALIZED)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if(encoder->protected_->state == FLAC__STREAM_ENCODER_OK) {
|
||||||
if(encoder->private_->current_sample_number != 0) {
|
if(encoder->private_->current_sample_number != 0) {
|
||||||
encoder->protected_->blocksize = encoder->private_->current_sample_number;
|
encoder->protected_->blocksize = encoder->private_->current_sample_number;
|
||||||
process_frame_(encoder, true); /* true => is last frame */
|
process_frame_(encoder, true); /* true => is last frame */
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
MD5Final(encoder->private_->metadata.data.stream_info.md5sum, &encoder->private_->md5context);
|
MD5Final(encoder->private_->metadata.data.stream_info.md5sum, &encoder->private_->md5context);
|
||||||
|
|
||||||
|
if(encoder->protected_->state == FLAC__STREAM_ENCODER_OK) {
|
||||||
encoder->private_->metadata_callback(encoder, &encoder->private_->metadata, encoder->private_->client_data);
|
encoder->private_->metadata_callback(encoder, &encoder->private_->metadata, encoder->private_->client_data);
|
||||||
|
}
|
||||||
|
|
||||||
if(encoder->protected_->verify && 0 != encoder->private_->verify.decoder)
|
if(encoder->protected_->verify && 0 != encoder->private_->verify.decoder)
|
||||||
FLAC__stream_decoder_finish(encoder->private_->verify.decoder);
|
FLAC__stream_decoder_finish(encoder->private_->verify.decoder);
|
||||||
|
|||||||
Reference in New Issue
Block a user