diff --git a/src/dvb/dvb_service.c b/src/dvb/dvb_service.c index 31f1b9e7..6717f5c5 100644 --- a/src/dvb/dvb_service.c +++ b/src/dvb/dvb_service.c @@ -351,9 +351,10 @@ dvb_service_find3 service_t *svc; if (tdmi) { LIST_FOREACH(svc, &tdmi->tdmi_transports, s_group_link) { + if (sid != svc->s_dvb_service_id) continue; if (enabled && !svc->s_enabled) continue; if (epgprimary && !service_is_primary_epg(svc)) continue; - if (sid == svc->s_dvb_service_id) return svc; + return svc; } } else if (tda) { LIST_FOREACH(tdmi, &tda->tda_muxes, tdmi_adapter_link) { diff --git a/src/service.c b/src/service.c index b0ad8fc2..67353021 100644 --- a/src/service.c +++ b/src/service.c @@ -1180,6 +1180,9 @@ service_is_primary_epg(service_t *svc) if (!svc || !svc->s_ch) return 0; LIST_FOREACH(t, &svc->s_ch->ch_services, s_ch_link) { if (!t->s_dvb_mux_instance) continue; + if (!t->s_dvb_mux_instance->tdmi_enabled) continue; + if (!t->s_dvb_mux_instance->tdmi_adapter->tda_enabled) continue; + if (!t->s_dvb_mux_instance->tdmi_adapter->tda_rootpath) continue; if (!t->s_enabled || !t->s_dvb_eit_enable) continue; if (!ret || service_get_prio(t) < service_get_prio(ret)) ret = t;