diff --git a/src/input/mpegts/dvb_psi.c b/src/input/mpegts/dvb_psi.c index 5b65f3a..f3296be 100644 --- a/src/input/mpegts/dvb_psi.c +++ b/src/input/mpegts/dvb_psi.c @@ -953,10 +953,12 @@ dvb_sdt_callback } /* Update scrambled state */ +#if 0 if (s->s_scrambled != free_ca_mode) { s->s_scrambled = free_ca_mode; tvhtrace("sdt", " scrambled changed"); } +#endif /* Check if this is master * Some networks appear to provide diff service names on diff transponders diff --git a/src/input/mpegts/tsdemux.c b/src/input/mpegts/tsdemux.c index fea2045..a9277f2 100644 --- a/src/input/mpegts/tsdemux.c +++ b/src/input/mpegts/tsdemux.c @@ -239,7 +239,7 @@ ts_recv_packet1 * Lock for descrambling, but only if packet was not in error */ if(!error) - t->s_scrambled_seen = t->s_scrambled; + t->s_scrambled_seen |= service_is_encrypted((service_t*)t); /* scrambled stream */ n = m = 0; @@ -257,7 +257,7 @@ ts_recv_packet1 m++; } - if(!error && t->s_scrambled != 0) { + if(!error && service_is_encrypted((service_t*)t) != 0) { if(n == 0) { service_set_streaming_status_flags((service_t*)t, TSS_NO_DESCRAMBLER); } else if(m == n) { diff --git a/src/service.h b/src/service.h index f572a21..f321a45 100644 --- a/src/service.h +++ b/src/service.h @@ -397,7 +397,6 @@ typedef struct service { */ struct th_descrambler_list s_descramblers; - int s_scrambled; int s_scrambled_seen; int s_caid; uint16_t s_prefcapid;