From 2eed0b9e6f4501df4fb015f5525a7a1de03db112 Mon Sep 17 00:00:00 2001 From: Josh Coalson Date: Thu, 27 Nov 2003 18:15:17 +0000 Subject: [PATCH] fix bug in sample_number calculation from frame header --- src/libFLAC/stream_decoder.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/libFLAC/stream_decoder.c b/src/libFLAC/stream_decoder.c index ad1adae0..7674fa77 100644 --- a/src/libFLAC/stream_decoder.c +++ b/src/libFLAC/stream_decoder.c @@ -1662,13 +1662,15 @@ FLAC__bool read_frame_header_(FLAC__StreamDecoder *decoder) return true; } decoder->private_->last_frame_number = x; - if(decoder->private_->has_stream_info) { - decoder->private_->frame.header.number_type = FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER; - decoder->private_->frame.header.number.sample_number = (FLAC__int64)decoder->private_->stream_info.data.stream_info.min_blocksize * (FLAC__int64)x; - } - else { - is_unparseable = true; + decoder->private_->frame.header.number_type = FLAC__FRAME_NUMBER_TYPE_SAMPLE_NUMBER; + if(blocksize_hint) { + if(decoder->private_->has_stream_info) + decoder->private_->frame.header.number.sample_number = (FLAC__int64)decoder->private_->stream_info.data.stream_info.min_blocksize * (FLAC__int64)x; + else + is_unparseable = true; } + else + decoder->private_->frame.header.number.sample_number = (FLAC__int64)decoder->private_->frame.header.blocksize * (FLAC__int64)x; } if(blocksize_hint) {