From f16c29559e56abed23a51e5dd398e11dcf0e5ebe Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Fri, 6 Sep 2013 22:54:08 +0100 Subject: [PATCH] mpegts: ensure that services on already tuned muxes will start Previously it was setting the weight for already tuned muxes which made it appear as if the service couldn't be started! --- src/input/mpegts/mpegts_service.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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); } }