mpegts: ensure muxes are properly stopped when unsubscribing svcs
This commit is contained in:
parent
997ccee895
commit
831990453e
1 changed files with 11 additions and 4 deletions
|
@ -145,6 +145,7 @@ mpegts_input_close_service ( mpegts_input_t *mi, mpegts_service_t *s )
|
||||||
s->s_dvb_active_input = NULL;
|
s->s_dvb_active_input = NULL;
|
||||||
}
|
}
|
||||||
pthread_mutex_unlock(&mi->mi_delivery_mutex);
|
pthread_mutex_unlock(&mi->mi_delivery_mutex);
|
||||||
|
s->s_dvb_mux->mm_stop(s->s_dvb_mux, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -189,11 +190,17 @@ mpegts_input_stopped_mux
|
||||||
static int
|
static int
|
||||||
mpegts_input_has_subscription ( mpegts_input_t *mi, mpegts_mux_t *mm )
|
mpegts_input_has_subscription ( mpegts_input_t *mi, mpegts_mux_t *mm )
|
||||||
{
|
{
|
||||||
|
int ret = 0;
|
||||||
service_t *t;
|
service_t *t;
|
||||||
LIST_FOREACH(t, &mi->mi_transports, s_active_link)
|
pthread_mutex_lock(&mi->mi_delivery_mutex);
|
||||||
if (((mpegts_service_t*)t)->s_dvb_mux == mm)
|
LIST_FOREACH(t, &mi->mi_transports, s_active_link) {
|
||||||
return 1;
|
if (((mpegts_service_t*)t)->s_dvb_mux == mm) {
|
||||||
return 0;
|
ret = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pthread_mutex_unlock(&mi->mi_delivery_mutex);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* **************************************************************************
|
/* **************************************************************************
|
||||||
|
|
Loading…
Add table
Reference in a new issue