[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