- aout_filter_t * p_filter = (aout_filter_t *)p_this;
- double d_factor;
- int i_filter_wing;
-
- if ( p_filter->input.i_rate == p_filter->output.i_rate
- || p_filter->input.i_format != p_filter->output.i_format
- || p_filter->input.i_physical_channels
- != p_filter->output.i_physical_channels
- || p_filter->input.i_original_channels
- != p_filter->output.i_original_channels
- || p_filter->input.i_format != VLC_FOURCC('f','l','3','2') )
- {
- return VLC_EGENERIC;
- }
-
- /* Allocate the memory needed to store the module's structure */
- p_filter->p_sys = malloc( sizeof(struct aout_filter_sys_t) );
- if( p_filter->p_sys == NULL )
- {
- msg_Err( p_filter, "out of memory" );
- return VLC_ENOMEM;
- }
-
- /* Calculate worst case for the length of the filter wing */
- d_factor = (double)p_filter->output.i_rate
- / p_filter->input.i_rate;
- i_filter_wing = ((SMALL_FILTER_NMULT + 1)/2.0)
- * __MAX(1.0, 1.0/d_factor) + 10;
- p_filter->p_sys->i_buf_size = aout_FormatNbChannels( &p_filter->input ) *
- sizeof(int32_t) * 2 * i_filter_wing;
-
- /* Allocate enough memory to buffer previous samples */
- p_filter->p_sys->p_buf = malloc( p_filter->p_sys->i_buf_size );
- if( p_filter->p_sys->p_buf == NULL )