From: Jaroslav Kysela Date: Wed, 29 Nov 2017 09:29:03 +0000 (+0100) Subject: descrambler: fix multipid descrambling (non-scrambled TS packets) X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1db6a4c39fed19f3525ab97e77182797d23a8407;p=thirdparty%2Ftvheadend.git descrambler: fix multipid descrambling (non-scrambled TS packets) --- diff --git a/src/descrambler/descrambler.c b/src/descrambler/descrambler.c index 7ccadbe6f..2b42810ca 100644 --- a/src/descrambler/descrambler.c +++ b/src/descrambler/descrambler.c @@ -1095,14 +1095,20 @@ doit: service_reset_streaming_status_flags(t, TSS_NO_ACCESS); dd_destroy: descrambler_data_destroy(dr, dd, 0); + if (dr->dr_key_multipid) { + tk = key_find_struct(dr, tk, tsb, t); + if (tk == NULL) { + if ((tsb[3] & 0x80) == 0) { + ts_recv_packet0((mpegts_service_t *)t, st, tsb, len); + return 1; + } + goto next; + } + } } /* check for key change */ ki = tsb[3]; - if (dr->dr_key_multipid) { - tk = key_find_struct(dr, tk, tsb, t); - if (tk == NULL) goto next; - } if ((ki & 0x80) != 0x00) { if (key_valid(tk, ki) == 0) { if (!key_started(dr, ki) && tvhlog_limit(&dr->dr_loglimit_key, 10))