diff --git a/src/input/mpegts/linuxdvb/linuxdvb_mux.c b/src/input/mpegts/linuxdvb/linuxdvb_mux.c index 37eb4cbb..300465fc 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_mux.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_mux.c @@ -214,7 +214,6 @@ linuxdvb_mux_create0 if (c) { HTSMSG_FOREACH(f, c) { if (!(e = htsmsg_get_map_by_field(f))) continue; - if (!(e = htsmsg_get_map(e, "config"))) continue; (void)linuxdvb_service_create0(lm, 0, 0, f->hmf_name, e); } htsmsg_destroy(c); diff --git a/src/input/mpegts/mpegts_service.c b/src/input/mpegts/mpegts_service.c index 617235a1..fa494a2a 100644 --- a/src/input/mpegts/mpegts_service.c +++ b/src/input/mpegts/mpegts_service.c @@ -234,8 +234,10 @@ mpegts_service_create0 sbuf_init(&s->s_tsbuf); - s->s_dvb_service_id = sid; - s->s_pmt_pid = pmt_pid; + if (!conf) { + if (sid) s->s_dvb_service_id = sid; + if (pmt_pid) s->s_pmt_pid = pmt_pid; + } s->s_dvb_mux = mm; LIST_INSERT_HEAD(&mm->mm_services, s, s_dvb_mux_link); diff --git a/src/prop.c b/src/prop.c index 61880b9d..8b0b9b1f 100644 --- a/src/prop.c +++ b/src/prop.c @@ -101,6 +101,7 @@ prop_read_value(void *obj, const property_t *p, htsmsg_t *m, const char *name) break; case PT_INT: htsmsg_add_s64(m, name, *(int *)val); + break; case PT_U32: htsmsg_add_u32(m, name, *(uint32_t *)val); break;