From 1db6a4c39fed19f3525ab97e77182797d23a8407 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Wed, 29 Nov 2017 10:29:03 +0100 Subject: [PATCH] descrambler: fix multipid descrambling (non-scrambled TS packets) --- src/descrambler/descrambler.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) 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)) -- 2.47.3