Feature #4243 ยป SAT-IP-Multiple-freq-for-IPTV-inputs.patch
src/input/mpegts/iptv/iptv_mux.c | ||
---|---|---|
259 | 259 |
}, |
260 | 260 |
{ |
261 | 261 |
.type = PT_U32, |
262 |
.id = "iptv_satip_dvbc_freq", |
|
263 |
.name = N_("SAT>IP DVB-C frequency (Hz)"), |
|
264 |
.off = offsetof(iptv_mux_t, mm_iptv_satip_dvbc_freq), |
|
265 |
.opts = PO_ADVANCED |
|
266 |
}, |
|
267 |
{ |
|
268 |
.type = PT_U32, |
|
269 |
.id = "iptv_satip_dvbs_freq", |
|
270 |
.name = N_("SAT>IP DVB-S frequency (Hz)"), |
|
271 |
.off = offsetof(iptv_mux_t, mm_iptv_satip_dvbs_freq), |
|
272 |
.opts = PO_ADVANCED |
|
273 |
}, |
|
274 |
{ |
|
275 |
.type = PT_U32, |
|
262 | 276 |
.id = "iptv_buffer_limit", |
263 | 277 |
.name = N_("Buffering limit (ms)"), |
264 | 278 |
.desc = N_("Specifies the incoming buffering limit in " |
src/input/mpegts/iptv/iptv_private.h | ||
---|---|---|
132 | 132 |
char *mm_iptv_hdr; |
133 | 133 |
char *mm_iptv_tags; |
134 | 134 |
uint32_t mm_iptv_satip_dvbt_freq; |
135 |
uint32_t mm_iptv_satip_dvbc_freq; |
|
136 |
uint32_t mm_iptv_satip_dvbs_freq; |
|
135 | 137 | |
136 | 138 |
uint32_t mm_iptv_rtp_seq; |
137 | 139 |
src/input/mpegts/satip/satip.c | ||
---|---|---|
202 | 202 |
"DVBS2-2,DVB-C2", |
203 | 203 |
"DVBC-1,DVBS2-1", |
204 | 204 |
"DVBC-2,DVBS2-2", |
205 |
"DVBS2-4,DVBT-2", |
|
206 |
"DVBS2-4,DVBC-2", |
|
205 | 207 |
NULL |
206 | 208 |
}; |
207 | 209 |
src/satip/rtsp.c | ||
---|---|---|
553 | 553 |
} |
554 | 554 |
#if ENABLE_IPTV |
555 | 555 |
if (idnode_is_instance(&mn->mn_id, &iptv_network_class)) { |
556 |
LIST_FOREACH(mux, &mn->mn_muxes, mm_network_link) |
|
556 |
LIST_FOREACH(mux, &mn->mn_muxes, mm_network_link) {
|
|
557 | 557 |
if (deltaU32(rs->dmc.dmc_fe_freq, ((iptv_mux_t *)mux)->mm_iptv_satip_dvbt_freq) < 2000) |
558 | 558 |
break; |
559 |
if (deltaU32(rs->dmc.dmc_fe_freq, ((iptv_mux_t *)mux)->mm_iptv_satip_dvbc_freq) < 2000) |
|
560 |
break; |
|
561 |
if (deltaU32(rs->dmc.dmc_fe_freq, ((iptv_mux_t *)mux)->mm_iptv_satip_dvbs_freq) < 2000) |
|
562 |
break; |
|
563 |
} |
|
559 | 564 |
if (mux) { |
560 | 565 |
dmc = rs->dmc; |
561 | 566 |
rs->perm_lock = 1; |
src/satip/server.c | ||
---|---|---|
152 | 152 |
#if ENABLE_IPTV |
153 | 153 |
else if (idnode_is_instance(&mn->mn_id, &iptv_network_class)) { |
154 | 154 |
mpegts_mux_t *mm; |
155 |
LIST_FOREACH(mm, &mn->mn_muxes, mm_network_link) |
|
155 |
LIST_FOREACH(mm, &mn->mn_muxes, mm_network_link) {
|
|
156 | 156 |
if (((iptv_mux_t *)mm)->mm_iptv_satip_dvbt_freq) { |
157 | 157 |
dvbt++; |
158 |
break; |
|
159 | 158 |
} |
159 |
if (((iptv_mux_t *)mm)->mm_iptv_satip_dvbc_freq) { |
|
160 |
dvbc++; |
|
161 |
} |
|
162 |
if (((iptv_mux_t *)mm)->mm_iptv_satip_dvbs_freq) { |
|
163 |
dvbs++; |
|
164 |
} |
|
165 |
} |
|
160 | 166 |
} |
161 | 167 |
#endif |
162 | 168 |
} |
169 |
// The SAT>IP specification only supports 1-9 tuners (1 digit)! |
|
170 |
if (dvbt > 9) dvbt = 9; |
|
171 |
if (dvbc > 9) dvbc = 9; |
|
172 |
if (dvbs > 9) dvbs = 9; |
|
173 |
if (atsc > 9) atsc = 9; |
|
163 | 174 |
for (p = xtab; p->id; p++) { |
164 | 175 |
i = *p->cptr; |
165 | 176 |
if (i > 0) { |
166 | 177 |