Merge remote-tracking branch 'origin/pr/208'

This commit is contained in:
Adam Sutton 2013-01-07 11:36:16 +00:00
commit aaa99eb986

View file

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