return VLC_SUCCESS;
error:
- for( i = 0; i < p_sys->i_track; i++ )
- {
- live_track_t *tk = p_sys->track[i];
-
- if( tk->b_muxed ) stream_Delete( tk->p_out_muxed );
- es_format_Clean( &tk->fmt );
- free( tk->p_buffer );
- free( tk );
- }
-
- if( p_sys->i_track ) free( p_sys->track );
- if( p_sys->p_out_asf ) stream_Delete( p_sys->p_out_asf );
- if( p_sys->rtsp && p_sys->ms ) p_sys->rtsp->teardownMediaSession( *p_sys->ms );
- if( p_sys->p_timeout )
- {
- vlc_cancel( p_sys->p_timeout->handle );
- vlc_join( p_sys->p_timeout->handle, NULL );
- free( p_sys->p_timeout );
- }
- if( p_sys->ms ) Medium::close( p_sys->ms );
- if( p_sys->rtsp ) RTSPClient::close( p_sys->rtsp );
- if( p_sys->env ) p_sys->env->reclaim();
- delete p_sys->scheduler;
- free( p_sys->p_sdp );
- free( p_sys->psz_path );
-
- vlc_UrlClean( &p_sys->url );
-
- free( p_sys );
+ Close( p_this );
return i_error;
}