service: log the instance source

This commit is contained in:
Jaroslav Kysela 2014-10-28 10:26:30 +01:00
parent 6b5c0cde45
commit a4cfbb99b0
3 changed files with 16 additions and 8 deletions

View file

@ -225,6 +225,7 @@ mpegts_service_enlist(service_t *t, struct service_instance_list *sil, int flags
{
int p = 0, w;
mpegts_service_t *s = (mpegts_service_t*)t;
mpegts_input_t *mi;
mpegts_mux_t *m = s->s_dvb_mux;
mpegts_mux_instance_t *mmi;
@ -238,18 +239,20 @@ mpegts_service_enlist(service_t *t, struct service_instance_list *sil, int flags
if (mmi->mmi_tune_failed)
continue;
if (!mmi->mmi_input->mi_is_enabled(mmi->mmi_input, mmi->mmi_mux, "service")) continue;
mi = mmi->mmi_input;
if (!mi->mi_is_enabled(mi, mmi->mmi_mux, "service")) continue;
/* Set weight to -1 (forced) for already active mux */
if (mmi->mmi_mux->mm_active == mmi) {
w = -1;
p = -1;
} else {
w = mmi->mmi_input->mi_get_weight(mmi->mmi_input, flags);
p = mmi->mmi_input->mi_get_priority(mmi->mmi_input, mmi->mmi_mux, flags);
w = mi->mi_get_weight(mi, flags);
p = mi->mi_get_priority(mi, mmi->mmi_mux, flags);
}
service_instance_add(sil, t, mmi->mmi_input->mi_instance, p, w);
service_instance_add(sil, t, mi->mi_instance, mi->mi_name, p, w);
}
}

View file

@ -685,8 +685,9 @@ service_find_instance
TAILQ_FOREACH(si, sil, si_link) {
const char *name = ch ? channel_get_name(ch) : NULL;
if (!name && s) name = s->s_nicename;
tvhdebug("service", "%s si %p weight %d prio %d error %d",
name, si, si->si_weight, si->si_prio, si->si_error);
tvhdebug("service", "%s si %p %s weight %d prio %d error %d",
name, si, si->si_source, si->si_weight, si->si_prio,
si->si_error);
}
/* Already running? */
@ -1470,8 +1471,8 @@ si_cmp(const service_instance_t *a, const service_instance_t *b)
*/
service_instance_t *
service_instance_add(service_instance_list_t *sil,
struct service *s, int instance, int prio,
int weight)
struct service *s, int instance,
const char *source, int prio, int weight)
{
service_instance_t *si;
@ -1493,6 +1494,7 @@ service_instance_add(service_instance_list_t *sil,
}
si->si_weight = weight;
si->si_prio = prio;
strncpy(si->si_source, source ?: "<unknown>", sizeof(si->si_source));
TAILQ_INSERT_SORTED(sil, si, si_link, si_cmp);
return si;
}

View file

@ -160,6 +160,8 @@ typedef struct service_instance {
int si_mark; // For mark & sweep
char si_source[128];
} service_instance_t;
@ -169,6 +171,7 @@ typedef struct service_instance {
service_instance_t *service_instance_add(service_instance_list_t *sil,
struct service *s,
int instance,
const char *source,
int prio,
int weight);