summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS2
-rw-r--r--HISTORY2
-rw-r--r--pat.c4
3 files changed, 6 insertions, 2 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index d92bbf5f..97041b41 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -1167,6 +1167,8 @@ Thomas Bergwinkl <Thomas.Bergwinkl@vr-web.de>
for fixing detecting if there can be any useful further input when entering channel
numbers
for fixing handling the '0' key for switching between the last two channels
+ for making cPatFilter::Process() check whether the channel exists before setting
+ the PMT filter
Stéphane Esté-Gracias <sestegra@free.fr>
for fixing a typo in libsi/si.h
diff --git a/HISTORY b/HISTORY
index 90c76c52..24aeabcd 100644
--- a/HISTORY
+++ b/HISTORY
@@ -4241,3 +4241,5 @@ Video Disk Recorder Revision History
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Fixed handling the tfRecording flag when reading timers (bug reported by Andreas
Mair).
+- Now checking whether the channel exists before setting the PMT filter in
+ cPatFilter::Process() (thanks to Thomas Bergwinkl).
diff --git a/pat.c b/pat.c
index 83031db4..a7216b8c 100644
--- a/pat.c
+++ b/pat.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: pat.c 1.14 2005/09/04 14:32:39 kls Exp $
+ * $Id: pat.c 1.15 2006/01/27 15:48:29 kls Exp $
*/
#include "pat.h"
@@ -287,7 +287,7 @@ void cPatFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
int Index = 0;
for (SI::Loop::Iterator it; pat.associationLoop.getNext(assoc, it); ) {
if (!assoc.isNITPid()) {
- if (Index++ == pmtIndex) {
+ if (Index++ >= pmtIndex && Channels.GetByServiceID(Source(), Transponder(), assoc.getServiceId())) {
pmtPid = assoc.getPid();
Add(pmtPid, 0x02);
break;