From 7398125f317987197b653638517f98f877511513 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Fri, 27 Jan 2006 15:53:08 +0100 Subject: Now checking whether the channel exists before setting the PMT filter in cPatFilter::Process() --- CONTRIBUTORS | 2 ++ HISTORY | 2 ++ 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 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 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; -- cgit v1.2.3