diff options
-rw-r--r-- | CONTRIBUTORS | 2 | ||||
-rw-r--r-- | HISTORY | 2 | ||||
-rw-r--r-- | sections.c | 14 |
3 files changed, 13 insertions, 5 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index d7034f90..2a5245bd 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1027,6 +1027,8 @@ Marco Schlüßler <marco@lordzodiac.de> 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 <j.schmitz@web.de> for reporting a bug in displaying the current channel when switching via the SVDRP @@ -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). @@ -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(); } |