summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS2
-rw-r--r--HISTORY2
-rw-r--r--sections.c14
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
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();
}