static void CloseFilter( vlc_object_t * );
static block_t *Resample( filter_t *, block_t * );
static void CloseFilter( vlc_object_t * );
static block_t *Resample( filter_t *, block_t * );
/*****************************************************************************
* Local structures
*****************************************************************************/
struct filter_sys_t
{
/*****************************************************************************
* Local structures
*****************************************************************************/
struct filter_sys_t
{
/* Check if we really need to run the resampler */
if( p_filter->fmt_out.audio.i_rate == p_filter->fmt_in.audio.i_rate )
{
if( !(p_in_buf->i_flags & BLOCK_FLAG_DISCONTINUITY) )
{
/* Check if we really need to run the resampler */
if( p_filter->fmt_out.audio.i_rate == p_filter->fmt_in.audio.i_rate )
{
if( !(p_in_buf->i_flags & BLOCK_FLAG_DISCONTINUITY) )
{
- p_in_buf = block_Realloc( p_in_buf, sizeof(float) * i_nb_channels,
+ p_in_buf = block_Realloc( p_in_buf,
+ sizeof(sample_t) * i_nb_channels,
/* Take care of the previous input sample (if any) */
if( p_in_buf->i_flags & BLOCK_FLAG_DISCONTINUITY )
/* Take care of the previous input sample (if any) */
if( p_in_buf->i_flags & BLOCK_FLAG_DISCONTINUITY )
- i_chan--;
- p_out[i_chan] = p_prev_sample[i_chan];
- p_out[i_chan] += ( ( p_in[i_chan] - p_prev_sample[i_chan] )
- * p_sys->i_remainder
- / p_filter->fmt_out.audio.i_rate );
+ p_out[i] = p_prev_sample[i];
+ p_out[i] += (p_in[i] - p_prev_sample[i])
+ * p_sys->i_remainder / p_filter->fmt_out.audio.i_rate;
- i_chan--;
- p_out[i_chan] = p_in[i_chan];
- p_out[i_chan] += ( ( p_in[i_chan + i_nb_channels]
- - p_in[i_chan] )
- * p_sys->i_remainder / p_filter->fmt_out.audio.i_rate );
+ p_out[i] = p_in[i];
+ p_out[i] += (p_in[i + i_nb_channels] - p_in[i])
+ * p_sys->i_remainder / p_filter->fmt_out.audio.i_rate;