]> git.sesse.net Git - vlc/commitdiff
Fixed bandlimited resampler invalid access when used as an audio filter2 module.
authorLaurent Aimar <fenrir@videolan.org>
Sun, 29 Mar 2009 11:26:40 +0000 (13:26 +0200)
committerLaurent Aimar <fenrir@videolan.org>
Sun, 29 Mar 2009 12:11:31 +0000 (14:11 +0200)
 This modules seems to not resample the first samples (which is not good
at all for an audio filter2 btw). This has to be taken into account when
calculating the output buffer size.
Fixes #1862 and #1962(duplicate).

modules/audio_filter/resampler/bandlimited.c

index 8b5d1b045c41c46b1fc3f5b5b0feca8469081e7f..419fa443a8922ede38f6ac551969cd35c38157ca 100644 (file)
@@ -570,8 +570,10 @@ static block_t *Resample( filter_t *p_filter, block_t *p_block )
     i_bytes_per_frame = p_filter->fmt_out.audio.i_channels *
                   p_filter->fmt_out.audio.i_bitspersample / 8;
 
-    i_out_size = i_bytes_per_frame * ( 1 + (p_block->i_samples *
-        p_filter->fmt_out.audio.i_rate / p_filter->fmt_in.audio.i_rate));
+    i_out_size = i_bytes_per_frame * ( 1 + ( p_block->i_samples *
+                                             p_filter->fmt_out.audio.i_rate /
+                                             p_filter->fmt_in.audio.i_rate) ) +
+                 p_filter->p_sys->i_buf_size;
 
     p_out = p_filter->pf_audio_buffer_new( p_filter, i_out_size );
     if( !p_out )