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) {
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;