diff --git a/src/descrambler.h b/src/descrambler.h index fbf9b73c..c5ba14a1 100755 --- a/src/descrambler.h +++ b/src/descrambler.h @@ -65,7 +65,6 @@ typedef struct th_descrambler_runtime { uint32_t dr_key_first:1; uint8_t dr_key_index; uint8_t dr_key_valid; - uint8_t dr_ecm_valid; time_t dr_key_start; time_t dr_key_timestamp[2]; time_t dr_ecm_start; diff --git a/src/descrambler/descrambler.c b/src/descrambler/descrambler.c index 483c2378..c2c92b65 100755 --- a/src/descrambler/descrambler.c +++ b/src/descrambler/descrambler.c @@ -317,15 +317,13 @@ descrambler_descramble ( service_t *t, ((mpegts_service_t *)t)->s_dvb_svcname); kidx = KEY_IDX(ki); if (dr->dr_key_timestamp[kidx] < dr->dr_key_timestamp[kidx^1] || - dr->dr_ecm_key_time + - ((dr->dr_ecm_valid & KEY_MASK(ki)) ? 0 : 2) < dr->dr_key_start) { + dr->dr_ecm_key_time + 2 < dr->dr_key_start) { sbuf_cut(&dr->dr_buf, off); if (!td->td_ecm_reset(td)) { - dr->dr_key_valid = dr->dr_ecm_valid = 0; + dr->dr_key_valid = 0; goto next; } } - dr->dr_ecm_valid |= KEY_MASK(ki); key_update(dr, ki); } } @@ -352,17 +350,15 @@ descrambler_descramble ( service_t *t, ((mpegts_service_t *)t)->s_dvb_svcname); kidx = KEY_IDX(ki); if (dr->dr_key_timestamp[kidx] < dr->dr_key_timestamp[kidx^1] || - dr->dr_ecm_key_time + - ((dr->dr_ecm_valid & KEY_MASK(ki)) ? 0 : 2) < dr->dr_key_start) { + dr->dr_ecm_key_time + 2 < dr->dr_key_start) { tvhtrace("descrambler", "ECM late (%ld seconds) for service \"%s\"", dispatch_clock - dr->dr_ecm_key_time, ((mpegts_service_t *)t)->s_dvb_svcname); if (!td->td_ecm_reset(td)) { - dr->dr_key_valid = dr->dr_ecm_valid = 0; + dr->dr_key_valid = 0; goto next; } } - dr->dr_ecm_valid |= KEY_MASK(ki); key_update(dr, ki); } }