]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
tsdemux: remove ddci code, pass ECM PIDs to descrambler_descramble() unconditionally
authorJaroslav Kysela <perex@perex.cz>
Thu, 16 Nov 2017 10:06:12 +0000 (11:06 +0100)
committerJaroslav Kysela <perex@perex.cz>
Thu, 16 Nov 2017 12:30:07 +0000 (13:30 +0100)
src/input/mpegts/tsdemux.c

index 353a3baeada1b10a0b80624df0ad9945a5a5aa3a..eb75ed5608901c8d8ca7367225c5a2ed939f451d 100644 (file)
 #include "input.h"
 #include "parsers/parser_teletext.h"
 #include "tsdemux.h"
-#if ENABLE_DDCI
-#include "input/mpegts/linuxdvb/linuxdvb_private.h"
-#include "descrambler/dvbcam.h"
-#endif
 
 #define TS_REMUX_BUFSIZE (188 * 100)
 
@@ -209,10 +205,8 @@ ts_recv_packet0
 
   }
 
-#if ENABLE_DDCI
-  if (dvbcam_is_ddci((service_t*)t) && st->es_type == SCT_CA)
+  if (!t->s_scrambled_pass && st->es_type == SCT_CA)
     return;
-#endif
 
 skip_cc:
   if(streaming_pad_probe_type(&t->s_streaming_pad, SMT_MPEGTS))
@@ -296,10 +290,6 @@ ts_recv_packet1
   int_fast16_t pid;
   uint_fast8_t scrambled, error = 0;
   int r;
-#if ENABLE_DDCI
-  int ddci_required = 0;
-#endif
-
   
   /* Error */
   if (tsb[1] & 0x80)
@@ -337,23 +327,8 @@ ts_recv_packet1
   if(!error)
     service_set_streaming_status_flags((service_t*)t, TSS_INPUT_SERVICE);
 
-#if ENABLE_DDCI
-  /* FIXME: Maybe it is better to store the lddci pointer in service_t instead
-   *        of checking it with dvbcam_is_ddci, which requires a lot of pointer
-   *        access to be done for each ts_recv_packet1 execution.
-   */
-  if (dvbcam_is_ddci((service_t*)t))
-    ddci_required = linuxdvb_ddci_require_descramble((service_t*)t, pid, st );
-
-#define DDCI_REQUIRED  ddci_required
-#else
-#define DDCI_REQUIRED  0
-#endif
-
   scrambled = t->s_scrambled_seen;
-  if(!t->s_scrambled_pass &&
-     ((tsb[3] & 0xc0) || DDCI_REQUIRED ||
-      (scrambled && st && st->es_type != SCT_CA))) {
+  if(!t->s_scrambled_pass && ((tsb[3] & 0xc0) || scrambled)) {
 
     /**
      * Lock for descrambling, but only if packet was not in error