diff --git a/modules/visualization/goom.c b/modules/visualization/goom.c index 1fa1878ecf56fcd7dd57884761444096bb338513..d499d84721e11ffbc49bba9dd3796e4aae8d394f 100644 --- a/modules/visualization/goom.c +++ b/modules/visualization/goom.c @@ -327,17 +327,9 @@ static void *Thread( void *p_thread_data ) plane = goom_update( p_plugin_info, p_data, 0, 0.0, NULL, NULL ); - while( !( p_pic = vout_GetPicture( p_thread->p_vout ) ) ) - { - vlc_mutex_lock( &p_thread->lock ); - bool b_exit = p_thread->b_exit; - vlc_mutex_unlock( &p_thread->lock ); - if( b_exit ) - break; - msleep( VOUT_OUTMEM_SLEEP ); - } - - if( p_pic == NULL ) break; + p_pic = vout_GetPicture( p_thread->p_vout ); + if( unlikely(p_pic == NULL) ) + continue; memcpy( p_pic->p[0].p_pixels, plane, p_thread->i_width * p_thread->i_height * 4 );