diff --git a/src/switch_core_file.c b/src/switch_core_file.c index 0c6ddaedb0..974df9c6a3 100644 --- a/src/switch_core_file.c +++ b/src/switch_core_file.c @@ -204,13 +204,13 @@ SWITCH_DECLARE(switch_status_t) switch_core_file_read(switch_file_handle_t *fh, switch_resample_process(fh->resampler, fh->resampler->from, fh->resampler->from_len, fh->resampler->to, fh->resampler->to_size, 0); if (fh->resampler->to_len < want || fh->resampler->to_len > orig_len) { - int factor = fh->resampler->to_len * fh->samplerate / 1000; if (!fh->buffer) { + int factor = fh->resampler->to_len * fh->samplerate / 1000; switch_buffer_create_dynamic(&fh->buffer, factor, factor, 0); switch_assert(fh->buffer); } if (!fh->dbuf) { - fh->dbuflen = want * factor; + fh->dbuflen = want * 4; fh->dbuf = switch_core_alloc(fh->memory_pool, fh->dbuflen); } switch_assert(fh->resampler->to_len <= fh->dbuflen);