float x2[32][2];
float y2[32][128][2];
+ vlc_mutex_t lock;
};
static void DoWork( aout_instance_t *, aout_filter_t *,
if( !p_sys )
return VLC_ENOMEM;
+ vlc_mutex_init( &p_sys->lock );
if( EqzInit( p_filter, p_filter->input.i_rate ) != VLC_SUCCESS )
{
+ vlc_mutex_destroy( &p_sys->lock );
free( p_sys );
return VLC_EGENERIC;
}
aout_filter_sys_t *p_sys = p_filter->p_sys;
EqzClean( p_filter );
+ vlc_mutex_destroy( &p_sys->lock );
free( p_sys );
}
aout_filter_sys_t *p_sys = p_filter->p_sys;
int i, ch, j;
+ vlc_mutex_lock( &p_sys->lock );
for( i = 0; i < i_samples; i++ )
{
for( ch = 0; ch < i_channels; ch++ )
in += i_channels;
out += i_channels;
}
+ vlc_mutex_unlock( &p_sys->lock );
}
static void EqzClean( aout_filter_t *p_filter )
const char *psz_preset = newval.psz_string;
+ vlc_mutex_lock( &p_sys->lock );
if( !*psz_preset || p_sys->i_band != 10 )
+ {
+ vlc_mutex_unlock( &p_sys->lock );
return VLC_SUCCESS;
+ }
for( unsigned i = 0; eqz_preset_10b[i] != NULL; i++ )
{
d.quot, d.rem ) == -1 )
{
free( psz_newbands );
+ vlc_mutex_unlock( &p_sys->lock );
return VLC_ENOMEM;
}
free( psz_newbands );
}
if( p_sys->b_first == false )
{
+ vlc_mutex_unlock( &p_sys->lock );
var_SetString( p_aout, "equalizer-bands", psz_newbands );
var_SetFloat( p_aout, "equalizer-preamp",
eqz_preset_10b[i]->f_preamp );
{
p_sys->psz_newbands = psz_newbands;
p_sys->f_newpreamp = eqz_preset_10b[i]->f_preamp;
+ vlc_mutex_unlock( &p_sys->lock );
}
return VLC_SUCCESS;
}
newval.f_float = -20.0;
else if( newval.f_float > 20.0 )
newval.f_float = 20.0;
+
+ vlc_mutex_lock( &p_sys->lock );
p_sys->f_gamp = pow( 10, newval.f_float /20.0);
+ vlc_mutex_unlock( &p_sys->lock );
return VLC_SUCCESS;
}
char *psz_next;
/* Same thing for bands */
+ vlc_mutex_lock( &p_sys->lock );
for( int i = 0; i < p_sys->i_band; i++ )
{
float f;
break; /* end of line */
p = &psz_next[1];
}
+ vlc_mutex_unlock( &p_sys->lock );
return VLC_SUCCESS;
}
static int TwoPassCallback( vlc_object_t *p_this, char const *psz_cmd,
VLC_UNUSED(p_this); VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval);
aout_filter_sys_t *p_sys = (aout_filter_sys_t *)p_data;
- /* FIXME lock (same for all other callbacks) */
+ vlc_mutex_lock( &p_sys->lock );
p_sys->b_2eqz = newval.b_bool;
+ vlc_mutex_unlock( &p_sys->lock );
return VLC_SUCCESS;
}