descrambler: move the key change code to proper location
This commit is contained in:
parent
67938bc9d9
commit
b0e030b326
1 changed files with 10 additions and 9 deletions
|
@ -371,6 +371,16 @@ descrambler_descramble ( service_t *t,
|
|||
}
|
||||
if (td->td_keystate != DS_RESOLVED)
|
||||
continue;
|
||||
|
||||
if (dr->dr_key_changed) {
|
||||
dr->dr_csa.csa_flush(&dr->dr_csa, (mpegts_service_t *)td->td_service);
|
||||
if (dr->dr_key_changed & 1)
|
||||
tvhcsa_set_key_even(&dr->dr_csa, dr->dr_key_even);
|
||||
if (dr->dr_key_changed & 2)
|
||||
tvhcsa_set_key_odd(&dr->dr_csa, dr->dr_key_odd);
|
||||
dr->dr_key_changed = 0;
|
||||
}
|
||||
|
||||
if (dr->dr_buf.sb_ptr > 0) {
|
||||
for (off = 0, size = dr->dr_buf.sb_ptr; off < size; off += 188) {
|
||||
tsb2 = dr->dr_buf.sb_data + off;
|
||||
|
@ -404,15 +414,6 @@ descrambler_descramble ( service_t *t,
|
|||
sbuf_free(&dr->dr_buf);
|
||||
}
|
||||
|
||||
if (dr->dr_key_changed) {
|
||||
dr->dr_csa.csa_flush(&dr->dr_csa, (mpegts_service_t *)td->td_service);
|
||||
if (dr->dr_key_changed & 1)
|
||||
tvhcsa_set_key_even(&dr->dr_csa, dr->dr_key_even);
|
||||
if (dr->dr_key_changed & 2)
|
||||
tvhcsa_set_key_odd(&dr->dr_csa, dr->dr_key_odd);
|
||||
dr->dr_key_changed = 0;
|
||||
}
|
||||
|
||||
ki = tsb[3];
|
||||
if ((ki & 0x80) != 0x00) {
|
||||
if (key_valid(dr, ki) == 0) {
|
||||
|
|
Loading…
Add table
Reference in a new issue