LIST_FOREACH(mm, &mn->mn_muxes, mm_network_link) {
if (hide && !mm->mm_is_enabled(mm)) continue;
LIST_FOREACH(ms, &mm->mm_services, s_dvb_mux_link) {
+ if (hide && !ms->s_verified) continue;
if (hide == 2 && !ms->s_is_enabled((service_t*)ms, 0)) continue;
idnode_set_add(ins, (idnode_t*)ms, &conf->filter, perm->aa_lang_ui);
}
}
}
- if (service_has_audio_or_video((service_t *)t))
+ if (service_has_audio_or_video((service_t *)t)) {
dvb_service_autoenable(t, "PAT and PMT");
+ t->s_verified = 1;
+ }
/* FIXME: Move pending_restart handling to another place? */
if (atomic_set(&t->s_pending_restart, 0) && !ret)
{
mpegts_service_t *s = (mpegts_service_t*)t;
mpegts_mux_t *mm = s->s_dvb_mux;
+ if (!s->s_verified) return 0;
return mm->mm_is_enabled(mm) ? s->s_enabled : 0;
}
idnode_save(&t->s_id, m);
+ htsmsg_add_s32(m, "verified", t->s_verified);
htsmsg_add_u32(m, "pcr", t->s_pcr_pid);
htsmsg_add_u32(m, "pmt", t->s_pmt_pid);
{
htsmsg_t *m, *hbbtv;
htsmsg_field_t *f;
+ int32_t s32;
uint32_t u32, pid;
elementary_stream_t *st;
streaming_component_type_t type;
idnode_load(&t->s_id, c);
+ if(!htsmsg_get_s32(c, "verified", &s32))
+ t->s_verified = s32;
+ else
+ t->s_verified = 1;
if(!htsmsg_get_u32(c, "pcr", &u32))
t->s_pcr_pid = u32;
if(!htsmsg_get_u32(c, "pmt", &u32))
* subscription scheduling.
*/
int s_enabled;
+ int s_verified; // In PMT and valid streams
int s_auto;
int s_prio;
int s_type_user;