vlc | branch: master | Edward Wang <[email protected]> | Sat May 26 20:24:22 2012 -0400| [fc5156cc00225de64eb9b8715809c6a84e48b35e] | committer: Jean-Baptiste Kempf
visual: remove depreciated vlc_object_alive Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=fc5156cc00225de64eb9b8715809c6a84e48b35e --- modules/visualization/visual/visual.c | 11 +++++++---- modules/visualization/visual/visual.h | 3 ++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/modules/visualization/visual/visual.c b/modules/visualization/visual/visual.c index a91faa7..4ec8ff9 100644 --- a/modules/visualization/visual/visual.c +++ b/modules/visualization/visual/visual.c @@ -198,6 +198,7 @@ static int Open( vlc_object_t *p_this ) if( (p_sys->i_height % 2 ) != 0 ) p_sys->i_height--; if( (p_sys->i_width % 2 ) != 0 ) p_sys->i_width--; + p_sys->b_close = false; p_sys->i_effect = 0; p_sys->effect = NULL; @@ -323,13 +324,13 @@ static block_t *DoWork( filter_t *p_filter, block_t *p_in_buf ) picture_t *p_outpic; /* First, get a new picture */ - while( ( p_outpic = vout_GetPicture( p_sys->p_vout ) ) == NULL) - { /* XXX: This looks like a bad idea. Don't run to me for sympathy if it - * dead locks... */ - if( !vlc_object_alive (p_sys->p_vout) ) + do + { + if( p_sys->b_close ) return NULL; msleep( VOUT_OUTMEM_SLEEP ); } + while( ( p_outpic = vout_GetPicture( p_sys->p_vout ) ) == NULL); /* Blank the picture */ for( int i = 0 ; i < p_outpic->i_planes ; i++ ) @@ -364,6 +365,8 @@ static void Close( vlc_object_t *p_this ) filter_t * p_filter = (filter_t *)p_this; filter_sys_t *p_sys = p_filter->p_sys; + p_sys->b_close = true; + if( p_filter->p_sys->p_vout ) { aout_filter_RequestVout( p_filter, p_filter->p_sys->p_vout, 0 ); diff --git a/modules/visualization/visual/visual.h b/modules/visualization/visual/visual.h index d065db0..50edbfc 100644 --- a/modules/visualization/visual/visual.h +++ b/modules/visualization/visual/visual.h @@ -63,7 +63,8 @@ typedef struct *****************************************************************************/ struct filter_sys_t { - vout_thread_t *p_vout; + vout_thread_t* p_vout; + bool b_close; int i_width; int i_height; _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
