diff options
-rw-r--r-- | CONTRIBUTORS | 2 | ||||
-rw-r--r-- | HISTORY | 2 | ||||
-rw-r--r-- | pat.c | 4 |
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 @@ -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). @@ -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; |