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!
This commit is contained in:
Adam Sutton 2013-09-06 22:54:08 +01:00
parent 21b16e5687
commit f16c29559e

View file

@ -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);
}
}