Now checking whether the channel exists before setting the PMT filter in cPatFilter::Process()

This commit is contained in:
Klaus Schmidinger 2006-01-27 15:53:08 +01:00
parent 8ab2383e18
commit 7398125f31
3 changed files with 6 additions and 2 deletions

View File

@ -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

View File

@ -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
pat.c
View File

@ -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;