From d7482c8fed54652a3150d78b35419dc8c832f074 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 16 Oct 2004 13:47:37 +0200 Subject: [PATCH] Avoiding unnecessary section filter start/stops --- CONTRIBUTORS | 1 + HISTORY | 1 + device.c | 3 +-- sections.c | 6 ++++-- 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 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 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();