diff --git a/media/libspeex_resampler/src/resample.c b/media/libspeex_resampler/src/resample.c --- a/media/libspeex_resampler/src/resample.c +++ b/media/libspeex_resampler/src/resample.c @@ -1145,12 +1145,13 @@ if (old_den > 0) { for (i=0;inb_channels;i++) { - if (multiply_frac(&st->samp_frac_num[i],st->samp_frac_num[i],st->den_rate,old_den) != RESAMPLER_ERR_SUCCESS) - return RESAMPLER_ERR_OVERFLOW; + if (multiply_frac(&st->samp_frac_num[i],st->samp_frac_num[i],st->den_rate,old_den) != RESAMPLER_ERR_SUCCESS) { + st->samp_frac_num[i] = st->den_rate-1; + } /* Safety net */ if (st->samp_frac_num[i] >= st->den_rate) st->samp_frac_num[i] = st->den_rate-1; } }