Avoiding unnecessary section filter start/stops

This commit is contained in:
Klaus Schmidinger 2004-10-16 13:47:37 +02:00
parent b60120161a
commit d7482c8fed
4 changed files with 7 additions and 4 deletions

View File

@ -1046,6 +1046,7 @@ Marco Schl
for doing some testing regarding buffer performance and giving me some hints that 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 finally lead to finding out that the basic problem causing buffer overflows was in
EnableGet()/EnablePut() being called too often EnableGet()/EnablePut() being called too often
for avoiding unnecessary section filter start/stops
Jürgen Schmitz <j.schmitz@web.de> Jürgen Schmitz <j.schmitz@web.de>
for reporting a bug in displaying the current channel when switching via the SVDRP for reporting a bug in displaying the current channel when switching via the SVDRP

View File

@ -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 to have them set in case a patch references them (thanks to Wayne Keer for pointing
this out). this out).
- Completed the Russian OSD texts (thanks to Vyacheslav Dikonov). - Completed the Russian OSD texts (thanks to Vyacheslav Dikonov).
- Avoiding unnecessary section filter start/stops (thanks to Marco Schlüßler).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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" #include "device.h"
@ -314,7 +314,6 @@ void cDevice::StartSectionHandler(void)
AttachFilter(patFilter = new cPatFilter); AttachFilter(patFilter = new cPatFilter);
AttachFilter(sdtFilter = new cSdtFilter(patFilter)); AttachFilter(sdtFilter = new cSdtFilter(patFilter));
AttachFilter(nitFilter = new cNitFilter); AttachFilter(nitFilter = new cNitFilter);
sectionHandler->SetStatus(true);
} }
} }

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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" #include "sections.h"
@ -121,7 +121,8 @@ void cSectionHandler::Attach(cFilter *Filter)
statusCount++; statusCount++;
filters.Add(Filter); filters.Add(Filter);
Filter->sectionHandler = this; Filter->sectionHandler = this;
Filter->SetStatus(true); if (on)
Filter->SetStatus(true);
Unlock(); Unlock();
} }
@ -176,6 +177,7 @@ void cSectionHandler::Action(void)
int i = fh->Index(); int i = fh->Index();
pfd[i].fd = fh->handle; pfd[i].fd = fh->handle;
pfd[i].events = POLLIN; pfd[i].events = POLLIN;
pfd[i].revents = 0;
} }
int oldStatusCount = statusCount; int oldStatusCount = statusCount;
Unlock(); Unlock();