if( (p_sys->i_height % 2 ) != 0 ) p_sys->i_height--;
if( (p_sys->i_width % 2 ) != 0 ) p_sys->i_width--;
+ vlc_mutex_init( &p_sys->lock );
p_sys->b_close = false;
p_sys->i_effect = 0;
p_sys->effect = NULL;
/* First, get a new picture */
do
{
- if( p_sys->b_close )
+ vlc_mutex_lock( &p_sys->lock );
+ bool close = p_sys->b_close;
+ vlc_mutex_unlock( &p_sys->lock );
+ if( close )
return NULL;
msleep( VOUT_OUTMEM_SLEEP );
}
filter_t * p_filter = (filter_t *)p_this;
filter_sys_t *p_sys = p_filter->p_sys;
+ vlc_mutex_lock( &p_sys->lock );
p_sys->b_close = true;
+ vlc_mutex_unlock( &p_sys->lock );
if( p_filter->p_sys->p_vout )
{
free( p_sys->effect );
free( p_filter->p_sys );
+
+ vlc_mutex_destroy( &p_sys->lock );
}