Merge remote-tracking branch 'origin/pr/208'
This commit is contained in:
commit
aaa99eb986
1 changed files with 14 additions and 5 deletions
19
src/cwc.c
19
src/cwc.c
|
@ -1635,11 +1635,20 @@ cwc_table_input(struct th_descrambler *td, struct service *t,
|
|||
tvhlog(LOG_DEBUG, "cwc", "Insert after unexpected reply");
|
||||
}
|
||||
|
||||
if (ct->cs_okchannel == -3 && t->s_prefcapid == st->es_pid) {
|
||||
ep = calloc(1, sizeof(ecm_pid_t));
|
||||
ep->ep_pid = t->s_prefcapid;
|
||||
LIST_INSERT_HEAD(&ct->cs_pids, ep, ep_link);
|
||||
tvhlog(LOG_DEBUG, "cwc", "Insert only one new ECM channel %d for service id %d", t->s_prefcapid, sid);
|
||||
if (ct->cs_okchannel == -3 && t->s_prefcapid != 0) {
|
||||
if (t->s_prefcapid == st->es_pid) {
|
||||
ep = calloc(1, sizeof(ecm_pid_t));
|
||||
ep->ep_pid = t->s_prefcapid;
|
||||
LIST_INSERT_HEAD(&ct->cs_pids, ep, ep_link);
|
||||
tvhlog(LOG_DEBUG, "cwc", "Insert only one new ECM channel %d for service id %d", t->s_prefcapid, sid);
|
||||
} else {
|
||||
// check if prefcapid wrong
|
||||
struct elementary_stream *prefca = service_stream_find(t, t->s_prefcapid);
|
||||
|
||||
if (!prefca || prefca->es_type != SCT_CA) {
|
||||
t->s_prefcapid = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (ct->cs_okchannel == -1 || (ct->cs_okchannel == -3 && t->s_prefcapid == 0)) {
|
||||
|
|
Loading…
Add table
Reference in a new issue