]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Fix the sp_reject_filter logic 354/head
authorJaroslav Kysela <perex@perex.cz>
Tue, 18 Mar 2014 16:50:54 +0000 (17:50 +0100)
committerJaroslav Kysela <perex@perex.cz>
Tue, 18 Mar 2014 16:50:54 +0000 (17:50 +0100)
This patch fixes the optimization from the commit
"PID lookup, streaming pad filter and sbuf alloc optimizations".

src/streaming.c

index 4bfd507353f2a7d3d45e030a75e63b19ce799bbe..0c63c6a3e055af0e2396153200b4edc22d28766d 100644 (file)
@@ -31,7 +31,7 @@ streaming_pad_init(streaming_pad_t *sp)
 {
   LIST_INIT(&sp->sp_targets);
   sp->sp_ntargets = 0;
-  sp->sp_reject_filter = 0;
+  sp->sp_reject_filter = ~0;
 }
 
 /**
@@ -117,7 +117,7 @@ streaming_target_connect(streaming_pad_t *sp, streaming_target_t *st)
   sp->sp_ntargets++;
   st->st_pad = sp;
   LIST_INSERT_HEAD(&sp->sp_targets, st, st_link);
-  sp->sp_reject_filter |= st->st_reject_filter;
+  sp->sp_reject_filter &= st->st_reject_filter;
 }
 
 
@@ -134,9 +134,9 @@ streaming_target_disconnect(streaming_pad_t *sp, streaming_target_t *st)
 
   LIST_REMOVE(st, st_link);
 
-  filter = 0;
+  filter = ~0;
   LIST_FOREACH(st, &sp->sp_targets, st_link)
-    filter |= st->st_reject_filter;
+    filter &= st->st_reject_filter;
   sp->sp_reject_filter = filter;
 }