]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Fix the adapter_mask handling for linuxdvb
authorJaroslav Kysela <perex@perex.cz>
Fri, 24 Jan 2014 08:58:39 +0000 (09:58 +0100)
committerJaroslav Kysela <perex@perex.cz>
Mon, 17 Feb 2014 11:03:46 +0000 (12:03 +0100)
src/input/mpegts/linuxdvb/linuxdvb.c
src/input/mpegts/linuxdvb/linuxdvb_adapter.c

index 4c4d5a3a1e4d00d833989a0f6bc0db33689d0b52..94f8c77e3e95cad666cf9e425dd0cff66117a82c 100644 (file)
 #include "scanfile.h"
 #include "../dvb_charset.h"
 
+int linuxdvb_adapter_mask;
+
 void linuxdvb_init ( int adapter_mask )
 {
+  linuxdvb_adapter_mask = adapter_mask;
+
   /* Load scan files */
   scanfile_init();
 
index 4ac2f6162c0839a98df0cfd844a6424055a1753f..8c0ca8fa2d46bb517195cbaee1d8b108b4f9af3c 100644 (file)
@@ -160,6 +160,7 @@ linuxdvb_adapter_create
 static void
 linuxdvb_adapter_add ( const char *path )
 {
+  extern int linuxdvb_adapter_mask;
   int a, i, j, r, fd;
   char fe_path[512], dmx_path[512], dvr_path[512], uuid[UUID_STR_LEN];
   linuxdvb_adapter_t *la = NULL;
@@ -182,6 +183,9 @@ linuxdvb_adapter_add ( const char *path )
   if (sscanf(path, "/dev/dvb/adapter%d", &a) != 1)
     return;
 
+  if (a >= 0 && a < 32 && (linuxdvb_adapter_mask & (1 << a)) == 0)
+    return;
+
   /* Note: some of the below can take a while, so we relinquish the lock
    *       to stop us blocking everyhing else
    */