diff --git a/src/input/mpegts/iptv/iptv.c b/src/input/mpegts/iptv/iptv.c index 094de3ad..986187bb 100644 --- a/src/input/mpegts/iptv/iptv.c +++ b/src/input/mpegts/iptv/iptv.c @@ -564,6 +564,7 @@ void iptv_done ( void ) tvhpoll_destroy(iptv_poll); pthread_mutex_lock(&global_lock); mpegts_network_unregister_builder(&iptv_network_class); + mpegts_network_class_delete(&iptv_network_class, 0); mpegts_input_stop_all((mpegts_input_t*)iptv_input); mpegts_input_delete((mpegts_input_t *)iptv_input, 0); pthread_mutex_unlock(&global_lock); diff --git a/src/input/mpegts/iptv/iptv_mux.c b/src/input/mpegts/iptv/iptv_mux.c index 6edda549..6732012d 100644 --- a/src/input/mpegts/iptv/iptv_mux.c +++ b/src/input/mpegts/iptv/iptv_mux.c @@ -74,10 +74,16 @@ iptv_mux_config_save ( mpegts_mux_t *mm ) static void iptv_mux_delete ( mpegts_mux_t *mm, int delconf ) { + iptv_mux_t *im = (iptv_mux_t*)mm; + if (delconf) hts_settings_remove("input/iptv/muxes/%s/config", idnode_uuid_as_str(&mm->mm_id)); + free(im->mm_iptv_url); + free(im->mm_iptv_interface); + free(im->mm_iptv_svcname); + mpegts_mux_delete(mm, delconf); } @@ -125,7 +131,7 @@ iptv_mux_create0 ( iptv_network_t *in, const char *uuid, htsmsg_t *conf ) (void)iptv_service_create0(im, 0, 0, f->hmf_name, e); } } - + htsmsg_destroy(c); return im; }