summaryrefslogtreecommitdiff
path: root/eit.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2003-04-13 14:06:25 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2003-04-13 14:06:25 +0200
commited5027b5d5a331b44d16b5c41f267f17c6efebf6 (patch)
treeac77603e87421a822d2120db1d961315409a6f12 /eit.c
parentda22081330ecd810ef2bb34445ae35b9e297778b (diff)
downloadvdr-ed5027b5d5a331b44d16b5c41f267f17c6efebf6.tar.gz
vdr-ed5027b5d5a331b44d16b5c41f267f17c6efebf6.tar.bz2
Using masks in EIT filtering to reduce the number of filters
Diffstat (limited to 'eit.c')
-rw-r--r--eit.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/eit.c b/eit.c
index ff5dd42f..7dd77108 100644
--- a/eit.c
+++ b/eit.c
@@ -16,7 +16,7 @@
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
- * $Id: eit.c 1.68 2003/04/12 11:27:31 kls Exp $
+ * $Id: eit.c 1.69 2003/04/13 14:06:25 kls Exp $
***************************************************************************/
#include "eit.h"
@@ -1176,12 +1176,9 @@ void cSIProcessor::SetStatus(bool On)
AddFilter(0x00, 0x00); // PAT
AddFilter(0x14, 0x70); // TDT
AddFilter(0x14, 0x73); // TOT
- AddFilter(0x12, 0x4e); // event info, actual TS, present/following
- AddFilter(0x12, 0x4f); // event info, other TS, present/following
- AddFilter(0x12, 0x50); // event info, actual TS, schedule
- AddFilter(0x12, 0x60); // event info, other TS, schedule
- AddFilter(0x12, 0x51); // event info, actual TS, schedule for another 4 days
- AddFilter(0x12, 0x61); // event info, other TS, schedule for another 4 days
+ AddFilter(0x12, 0x4e, 0xfe); // event info, actual(0x4e)/other(0x4f) TS, present/following
+ AddFilter(0x12, 0x50, 0xfe); // event info, actual TS, schedule(0x50)/schedule for another 4 days(0x51)
+ AddFilter(0x12, 0x60, 0xfe); // event info, other TS, schedule(0x60)/schedule for another 4 days(0x61)
}
}
@@ -1351,7 +1348,7 @@ void cSIProcessor::Action()
/** Add a filter with packet identifier pid and
table identifer tid */
-bool cSIProcessor::AddFilter(unsigned short pid, u_char tid)
+bool cSIProcessor::AddFilter(unsigned short pid, u_char tid, u_char mask)
{
dmx_sct_filter_params sctFilterParams;
memset(&sctFilterParams, 0, sizeof(sctFilterParams));
@@ -1359,7 +1356,7 @@ bool cSIProcessor::AddFilter(unsigned short pid, u_char tid)
sctFilterParams.timeout = 0;
sctFilterParams.flags = DMX_IMMEDIATE_START;
sctFilterParams.filter.filter[0] = tid;
- sctFilterParams.filter.mask[0] = 0xFF;
+ sctFilterParams.filter.mask[0] = mask;
for (int a = 0; a < MAX_FILTERS; a++)
{