while( p_chain->filters.i_count )
filter_chain_DeleteFilter( p_chain,
(filter_t*)p_chain->filters.pp_elems[0] );
- es_format_Clean( &p_chain->fmt_in );
- es_format_Clean( &p_chain->fmt_out );
- es_format_Copy( &p_chain->fmt_in, p_fmt_in );
- es_format_Copy( &p_chain->fmt_out, p_fmt_out );
+ if( p_fmt_in )
+ {
+ es_format_Clean( &p_chain->fmt_in );
+ es_format_Copy( &p_chain->fmt_in, p_fmt_in );
+ }
+ if( p_fmt_out )
+ {
+ es_format_Clean( &p_chain->fmt_out );
+ es_format_Copy( &p_chain->fmt_out, p_fmt_out );
+ }
}
static void spu_del_video_buffer( filter_t *, picture_t * );
static int spu_ParseChain( spu_t * );
-static void spu_DeleteChain( spu_t * );
static int SubFilterCallback( vlc_object_t *, char const *,
vlc_value_t, vlc_value_t, void * );
vlc_object_release( p_spu->p_scale );
}
- spu_DeleteChain( p_spu );
+ filter_chain_Delete( p_spu->p_chain );
vlc_mutex_destroy( &p_spu->subpicture_lock );
vlc_object_release( p_spu );
}
-static void spu_DeleteChain( spu_t *p_spu )
-{
- filter_chain_Delete( p_spu->p_chain );
-}
-
/**
* Attach/Detach the SPU from any input
*
spu_t *p_spu = (spu_t *)p_data;
vlc_mutex_lock( &p_spu->subpicture_lock );
- spu_DeleteChain( p_spu );
+ filter_chain_Reset( p_spu->p_chain, NULL, NULL );
spu_ParseChain( p_spu );
vlc_mutex_unlock( &p_spu->subpicture_lock );
return VLC_SUCCESS;