/**
*
*/
-void elementary_set_clean(elementary_set_t *set, service_t *t)
+void elementary_set_clean(elementary_set_t *set, service_t *t, int keep_nicename)
{
elementary_stream_t *st;
TAILQ_INIT(&set->set_filter);
while ((st = TAILQ_FIRST(&set->set_all)) != NULL)
elementary_set_stream_destroy(set, st);
- free(set->set_nicename);
- set->set_nicename = NULL;
+ if (!keep_nicename) {
+ free(set->set_nicename);
+ set->set_nicename = NULL;
+ }
set->set_service = t;
}
*/
void elementary_set_init
(elementary_set_t *set, int subsys, const char *nicename, service_t *t);
-void elementary_set_clean(elementary_set_t *set, service_t *t);
+void elementary_set_clean(elementary_set_t *set, service_t *t, int keep_nicename);
void elementary_set_update_nicename(elementary_set_t *set, const char *nicename);
void elementary_set_clean_streams(elementary_set_t *set);
void elementary_set_stream_destroy(elementary_set_t *set, elementary_stream_t *es);
TAILQ_FOREACH(es, &set->set_all, es_link)
parser_clean_es((parser_es_t *)es);
- elementary_set_clean(set, prs->prs_service);
+ elementary_set_clean(set, prs->prs_service, 1);
elementary_stream_create_from_start(set, ss, sizeof(parser_es_t));
TAILQ_FOREACH(es, &set->set_all, es_link) {
if (pes->es_psi.mt_name)
dvb_table_parse_done(&pes->es_psi);
}
- elementary_set_clean(&prs->prs_components, NULL);
+ elementary_set_clean(&prs->prs_components, NULL, 0);
free(prs);
}
t->s_status = SERVICE_ZOMBIE;
- elementary_set_clean(&t->s_components, NULL);
+ elementary_set_clean(&t->s_components, NULL, 0);
if (t->s_hbbtv) {
htsmsg_destroy(t->s_hbbtv);