From: Jaroslav Kysela Date: Mon, 8 Oct 2018 13:08:46 +0000 (+0200) Subject: descrambler: try to improve late-key detection, issue #5036 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4b3b0aab4ea669f612d3db29b79e016252c939fb;p=thirdparty%2Ftvheadend.git descrambler: try to improve late-key detection, issue #5036 --- diff --git a/src/descrambler/descrambler.c b/src/descrambler/descrambler.c index ddbd1f573..39360bb35 100644 --- a/src/descrambler/descrambler.c +++ b/src/descrambler/descrambler.c @@ -730,7 +730,9 @@ cont: memcpy(tk->key_data[0], even, tk->key_csa.csa_keylen); tk->key_pid = pid; changed |= 1; - if (tk->key_timestamp[0] == 0) insert |= 1; + if (tk->key_timestamp[0] == 0 || + descrambler_data_key_check(dr, 0x80, dr->dr_queue_total)) + insert |= 1; tk->key_timestamp[0] = mclk(); if (dr->dr_ecm_start[0] < dr->dr_ecm_start[1]) { dr->dr_ecm_start[0] = dr->dr_ecm_start[1]; @@ -746,7 +748,9 @@ cont: memcpy(tk->key_data[1], odd, tk->key_csa.csa_keylen); tk->key_pid = pid; changed |= 2; - if (tk->key_timestamp[1] == 0) insert |= 2; + if (tk->key_timestamp[1] == 0 || + descrambler_data_key_check(dr, 0xc0, dr->dr_queue_total)) + insert |= 2; tk->key_timestamp[1] = mclk(); if (dr->dr_ecm_start[1] < dr->dr_ecm_start[0]) { dr->dr_ecm_start[1] = dr->dr_ecm_start[0];