better handling of FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM in read_callback_()

This commit is contained in:
Josh Coalson 2003-09-23 20:45:59 +00:00
parent 45f26d1018
commit 38e2927bd0

View File

@ -484,9 +484,13 @@ FLAC__StreamDecoderReadStatus read_callback_(const FLAC__StreamDecoder *unused,
}
ogg_bytes_read = ogg_bytes_to_read;
if(decoder->private_->read_callback(decoder, (FLAC__byte*)oggbuf, &ogg_bytes_read, decoder->private_->client_data) != FLAC__STREAM_DECODER_READ_STATUS_CONTINUE) {
decoder->protected_->state = OggFLAC__STREAM_DECODER_READ_ERROR;
return FLAC__STREAM_DECODER_READ_STATUS_ABORT;
{
FLAC__StreamDecoderReadStatus read_status = decoder->private_->read_callback(decoder, (FLAC__byte*)oggbuf, &ogg_bytes_read, decoder->private_->client_data);
if(read_status != FLAC__STREAM_DECODER_READ_STATUS_CONTINUE) {
if(read_status == FLAC__STREAM_DECODER_READ_STATUS_ABORT)
decoder->protected_->state = OggFLAC__STREAM_DECODER_READ_ERROR;
return read_status;
}
}
if(ogg_sync_wrote(&decoder->private_->ogg.sync_state, ogg_bytes_read) < 0) {