Commit a5f3b250 authored by Rafaël Carré's avatar Rafaël Carré

Correctly release sout object when it has been kept

parent 42a0d047
...@@ -943,6 +943,7 @@ int libvlc_InternalCleanup( libvlc_int_t *p_libvlc ) ...@@ -943,6 +943,7 @@ int libvlc_InternalCleanup( libvlc_int_t *p_libvlc )
vout_thread_t * p_vout = NULL; vout_thread_t * p_vout = NULL;
aout_instance_t * p_aout = NULL; aout_instance_t * p_aout = NULL;
announce_handler_t * p_announce = NULL; announce_handler_t * p_announce = NULL;
sout_instance_t * p_sout = NULL;
/* Ask the interfaces to stop and destroy them */ /* Ask the interfaces to stop and destroy them */
msg_Dbg( p_libvlc, "removing all interfaces" ); msg_Dbg( p_libvlc, "removing all interfaces" );
...@@ -977,6 +978,15 @@ int libvlc_InternalCleanup( libvlc_int_t *p_libvlc ) ...@@ -977,6 +978,15 @@ int libvlc_InternalCleanup( libvlc_int_t *p_libvlc )
aout_Delete( p_aout ); aout_Delete( p_aout );
} }
p_sout = vlc_object_find( p_libvlc, VLC_OBJECT_SOUT, FIND_CHILD );
if( p_sout )
{
msg_Dbg( p_sout, "removing kept stream output" );
vlc_object_detach( (vlc_object_t*)p_sout );
vlc_object_release( (vlc_object_t*)p_sout );
sout_DeleteInstance( p_sout );
}
/* Destroy VLM if created in libvlc_InternalInit */ /* Destroy VLM if created in libvlc_InternalInit */
if( p_libvlc->p_vlm ) if( p_libvlc->p_vlm )
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment