diff --git a/src/descrambler/cwc.c b/src/descrambler/cwc.c index cf26c11a..bac4aa44 100755 --- a/src/descrambler/cwc.c +++ b/src/descrambler/cwc.c @@ -768,6 +768,9 @@ forbid: t->s_dvb_svcname, seq, delay, ct->td_nicename); ct->td_keystate = DS_FORBIDDEN; ct->ecm_state = ECM_RESET; + /* this pid is not valid, force full scan */ + if (t->s_dvb_prefcapid == ct->cs_channel && t->s_dvb_prefcapid_lock == 0) + t->s_dvb_prefcapid = 0; } return; @@ -875,9 +878,8 @@ cwc_running_reply(cwc_t *cwc, uint8_t msgtype, uint8_t *msg, int len) } } tvhlog(LOG_WARNING, "cwc", "Got unexpected ECM reply (seqno: %d)", seq); - LIST_FOREACH(ct, &cwc->cwc_services, cs_link) { + LIST_FOREACH(ct, &cwc->cwc_services, cs_link) ct->ecm_state = ECM_RESET; - } break; case 0xD3: