From 240529710db31cd5a96ad2fdb7f9fd486ec7939f Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Fri, 2 May 2003 09:24:31 +0200 Subject: Fixed setting the PCR-PID in case it is equal to one of the other PIDs --- dvbdevice.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'dvbdevice.c') diff --git a/dvbdevice.c b/dvbdevice.c index d66cd767..f80f4d17 100644 --- a/dvbdevice.c +++ b/dvbdevice.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbdevice.c 1.56 2003/04/27 09:44:17 kls Exp $ + * $Id: dvbdevice.c 1.57 2003/05/02 09:12:20 kls Exp $ */ #include "dvbdevice.h" @@ -662,7 +662,7 @@ bool cDvbDevice::SetChannelDevice(const cChannel *Channel, bool LiveView) DelPid(pidHandles[ptAudio].pid); DelPid(pidHandles[ptVideo].pid); - DelPid(pidHandles[ptPcr].pid); + DelPid(pidHandles[ptPcr].pid, ptPcr); DelPid(pidHandles[ptTeletext].pid); DelPid(pidHandles[ptDolby].pid); } @@ -684,7 +684,8 @@ bool cDvbDevice::SetChannelDevice(const cChannel *Channel, bool LiveView) if (TurnOnLivePIDs) { aPid1 = Channel->Apid1(); aPid2 = Channel->Apid2(); - if (!(AddPid(Channel->Ppid(), ptPcr) && AddPid(Channel->Apid1(), ptAudio) && AddPid(Channel->Vpid(), ptVideo))) {//XXX+ dolby dpid1!!! (if audio plugins are attached) + int pPid = Channel->Ppid() ? Channel->Ppid() : Channel->Vpid(); + if (!(AddPid(pPid, ptPcr) && AddPid(Channel->Apid1(), ptAudio) && AddPid(Channel->Vpid(), ptVideo))) {//XXX+ dolby dpid1!!! (if audio plugins are attached) esyslog("ERROR: failed to set PIDs for channel %d on device %d", Channel->Number(), CardIndex() + 1); return false; } -- cgit v1.2.3