[vlc-commits] speex resampler: add 10% slack output space

Rémi Denis-Courmont git at videolan.org
Wed Dec 7 20:26:57 CET 2011


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Wed Dec  7 21:23:27 2011 +0200| [86d9aabfe7e62477b6f6bb15a61c47df159c813f] | committer: Rémi Denis-Courmont

speex resampler: add 10% slack output space

This should fix buffer underflows when changing the playback rate.
We probably should instead reallocate the buffer and resume resampling
when the situation occurs, but that would be a lot more complicated.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=86d9aabfe7e62477b6f6bb15a61c47df159c813f
---

 modules/audio_filter/resampler/speex.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/modules/audio_filter/resampler/speex.c b/modules/audio_filter/resampler/speex.c
index f472b71..561261a 100644
--- a/modules/audio_filter/resampler/speex.c
+++ b/modules/audio_filter/resampler/speex.c
@@ -111,7 +111,7 @@ static block_t *Resample (filter_t *filter, block_t *in)
     const unsigned orate = filter->fmt_out.audio.i_rate;
 
     spx_uint32_t ilen = in->i_nb_samples;
-    spx_uint32_t olen = ((ilen + 2) * orate) / irate;
+    spx_uint32_t olen = ((ilen + 2) * orate * 11) / (irate * 10);
 
     block_t *out = block_Alloc (olen * framesize);
     if (unlikely(out == NULL))



More information about the vlc-commits mailing list