if (sb->offset <= start && sb->offset + sb->length >= start + nbsamples)
return sb;
- newlength = sb->offset + sb->length - start;
+ newlength = (int)(sb->offset + sb->length) - start;
// If we need to skip some data before decompressing the rest, or if the stream has looped
if (newlength < 0 || sb->offset > start)
done += ret;
// Resample in the sfxbuffer
- newlength = ResampleSfx (resampling_buffer, (size_t)done / factor, &per_sfx->format, sb->data + sb->length * factor, sfx->name);
- sb->length += newlength;
+ newlength = ResampleSfx (resampling_buffer, (size_t)done / (size_t)factor, &per_sfx->format, sb->data + sb->length * factor, sfx->name);
+ sb->length += newlength;
return sb;
}