diff --git a/src/input/mpegts/mpegts_service.c b/src/input/mpegts/mpegts_service.c index 1322cd2d..f916dd7c 100644 --- a/src/input/mpegts/mpegts_service.c +++ b/src/input/mpegts/mpegts_service.c @@ -135,6 +135,7 @@ mpegts_service_config_save(service_t *t) static void mpegts_service_enlist(service_t *t, struct service_instance_list *sil) { + int p = 0, w; // TODO: priority mpegts_service_t *s = (mpegts_service_t*)t; mpegts_mux_t *m = s->s_dvb_mux; mpegts_mux_instance_t *mmi; @@ -151,9 +152,12 @@ mpegts_service_enlist(service_t *t, struct service_instance_list *sil) if (!mmi->mmi_input->mi_is_enabled(mmi->mmi_input)) continue; - service_instance_add(sil, t, mmi->mmi_input->mi_instance, - 0 /* TODO: priority */, - mmi->mmi_input->mi_current_weight(mmi->mmi_input)); + /* Set weight to 0 for already active mux */ + if (mmi->mmi_mux->mm_active == mmi) + w = 0; + else + w = mmi->mmi_input->mi_current_weight(mmi->mmi_input); + service_instance_add(sil, t, mmi->mmi_input->mi_instance, p, w); } }