Ensure that quality monitoring is properly adhered to and also low quality services are not completely ignored. Fixes #1196.

This commit is contained in:
Adam Sutton 2012-09-03 15:25:46 +01:00
parent 77398b8726
commit 0999618cc9
2 changed files with 11 additions and 11 deletions

View file

@ -548,7 +548,7 @@ dvb_mux_save(th_dvb_mux_instance_t *tdmi)
htsmsg_t *m = htsmsg_create_map();
htsmsg_add_u32(m, "quality", tdmi->tdmi_quality);
htsmsg_add_u32(m, "quality", tdmi->tdmi_adapter->tda_qmon ? tdmi->tdmi_quality : 100);
htsmsg_add_u32(m, "enabled", tdmi->tdmi_enabled);
htsmsg_add_str(m, "status", dvb_mux_status(tdmi));
@ -777,7 +777,7 @@ tdmi_create_by_msg(th_dvb_adapter_t *tda, htsmsg_t *m, const char *identifier)
if((s = htsmsg_get_str(m, "status")) != NULL)
tdmi->tdmi_fe_status = str2val(s, muxfestatustab);
if(!htsmsg_get_u32(m, "quality", &u32))
if(tda->tda_qmon && !htsmsg_get_u32(m, "quality", &u32))
tdmi->tdmi_quality = u32;
}
return NULL;

View file

@ -336,15 +336,6 @@ service_find(channel_t *ch, unsigned int weight, const char *loginfo,
continue;
}
if(t->s_quality_index(t) < 10) {
if(loginfo != NULL) {
tvhlog(LOG_NOTICE, "Service",
"%s: Skipping \"%s\" -- Quality below 10%%",
loginfo, service_nicename(t));
err = SM_CODE_BAD_SIGNAL;
}
continue;
}
vec[cnt++] = t;
tvhlog(LOG_DEBUG, "Service",
"%s: Adding adapter \"%s\" for service \"%s\"",
@ -372,6 +363,15 @@ service_find(channel_t *ch, unsigned int weight, const char *loginfo,
/* First, try all services without stealing */
for(i = off; i < cnt; i++) {
t = vec[i];
if(t->s_quality_index(t) < 10) {
if(loginfo != NULL) {
tvhlog(LOG_NOTICE, "Service",
"%s: Skipping \"%s\" -- Quality below 10%%",
loginfo, service_nicename(t));
err = SM_CODE_BAD_SIGNAL;
}
continue;
}
tvhlog(LOG_DEBUG, "Service", "%s: Probing adapter \"%s\" without stealing for service \"%s\"",
loginfo, service_adapter_nicename(t), service_nicename(t));