summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2004-10-16 13:47:37 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2004-10-16 13:47:37 +0200
commitd7482c8fed54652a3150d78b35419dc8c832f074 (patch)
tree2a07a2095a18cf4a32b158f8108ee0e89133a4df
parentb60120161a69e689a39d89c608265faa52785285 (diff)
downloadvdr-d7482c8fed54652a3150d78b35419dc8c832f074.tar.gz
vdr-d7482c8fed54652a3150d78b35419dc8c832f074.tar.bz2
Avoiding unnecessary section filter start/stops
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY1
-rw-r--r--device.c3
-rw-r--r--sections.c6
4 files changed, 7 insertions, 4 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 904851d3..8426add8 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -1046,6 +1046,7 @@ Marco Schlüßler <marco@lordzodiac.de>
for doing some testing regarding buffer performance and giving me some hints that
finally lead to finding out that the basic problem causing buffer overflows was in
EnableGet()/EnablePut() being called too often
+ for avoiding unnecessary section filter start/stops
Jürgen Schmitz <j.schmitz@web.de>
for reporting a bug in displaying the current channel when switching via the SVDRP
diff --git a/HISTORY b/HISTORY
index 36ad5fa9..23095b46 100644
--- a/HISTORY
+++ b/HISTORY
@@ -3019,3 +3019,4 @@ Video Disk Recorder Revision History
to have them set in case a patch references them (thanks to Wayne Keer for pointing
this out).
- Completed the Russian OSD texts (thanks to Vyacheslav Dikonov).
+- Avoiding unnecessary section filter start/stops (thanks to Marco Schlüßler).
diff --git a/device.c b/device.c
index 1813df8a..0e6de7c4 100644
--- a/device.c
+++ b/device.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: device.c 1.57 2004/10/09 12:53:02 kls Exp $
+ * $Id: device.c 1.58 2004/10/16 13:41:23 kls Exp $
*/
#include "device.h"
@@ -314,7 +314,6 @@ void cDevice::StartSectionHandler(void)
AttachFilter(patFilter = new cPatFilter);
AttachFilter(sdtFilter = new cSdtFilter(patFilter));
AttachFilter(nitFilter = new cNitFilter);
- sectionHandler->SetStatus(true);
}
}
diff --git a/sections.c b/sections.c
index 8b6d3e5c..64923367 100644
--- a/sections.c
+++ b/sections.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: sections.c 1.8 2004/08/08 13:59:08 kls Exp $
+ * $Id: sections.c 1.9 2004/10/16 13:45:02 kls Exp $
*/
#include "sections.h"
@@ -121,7 +121,8 @@ void cSectionHandler::Attach(cFilter *Filter)
statusCount++;
filters.Add(Filter);
Filter->sectionHandler = this;
- Filter->SetStatus(true);
+ if (on)
+ Filter->SetStatus(true);
Unlock();
}
@@ -176,6 +177,7 @@ void cSectionHandler::Action(void)
int i = fh->Index();
pfd[i].fd = fh->handle;
pfd[i].events = POLLIN;
+ pfd[i].revents = 0;
}
int oldStatusCount = statusCount;
Unlock();