diff --git a/CONTRIBUTORS b/CONTRIBUTORS index d7034f90..2a5245bd 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1027,6 +1027,8 @@ Marco Schl for fixing handling colors in cDvbSpuPalette::yuv2rgb() for fixing setting lnb voltage if the frontend is not DVB-S for fixing missing audio after replaying a DVD + for pointing out that it is unnecessary to add section filters to the list of + filters if they can't be opened Jürgen Schmitz for reporting a bug in displaying the current channel when switching via the SVDRP diff --git a/HISTORY b/HISTORY index f516497f..a3af1825 100644 --- a/HISTORY +++ b/HISTORY @@ -2947,3 +2947,5 @@ Video Disk Recorder Revision History Alfred Zastrow for reporting this one). - Fixed checking the last area for misalignment in cOsd::CanHandleAreas() (thanks to Reinhard Nissl for reporting this one). +- No longer adding section filters to the list of filters if they can't be opened + (thanks to Marco Schlüßler for pointing this out). diff --git a/sections.c b/sections.c index ead623d0..d3fc2b0d 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.5 2004/02/07 15:51:57 kls Exp $ + * $Id: sections.c 1.6 2004/07/17 14:17:07 kls Exp $ */ #include "sections.h" @@ -85,11 +85,15 @@ void cSectionHandler::Add(const cFilterData *FilterData) break; } if (!fh) { - fh = new cFilterHandle(*FilterData); - filterHandles.Add(fh); - fh->handle = device->OpenFilter(FilterData->pid, FilterData->tid, FilterData->mask); + int handle = device->OpenFilter(FilterData->pid, FilterData->tid, FilterData->mask); + if (handle >= 0) { + fh = new cFilterHandle(*FilterData); + fh->handle = handle; + filterHandles.Add(fh); + } } - fh->used++; + if (fh) + fh->used++; Unlock(); }