diff --git a/CONTRIBUTORS b/CONTRIBUTORS index f0db96cd..3beb408b 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -123,6 +123,8 @@ Stefan Huelswitt for fixing a crash when selecting the "Jump" function directly after setting an editing mark for reporting a possible endless loop in shifting recordings between DVB cards + for making it no longer setting PIDs 0x1FFF, which apparently fixes problems + with CAMs and AC3 sound only working the first time Ulrich Röder for pointing out that there are channels that have a symbol rate higher than diff --git a/HISTORY b/HISTORY index d4d9078c..0fb22049 100644 --- a/HISTORY +++ b/HISTORY @@ -1214,3 +1214,5 @@ Video Disk Recorder Revision History to Stefan Huelswitt for reporting this one). - Updated the Premiere World Formula 1 channels in 'channels.conf' (thanks to Mel Schächner). +- No longer setting PIDs 0x1FFF, which apparently fixes problems with CAMs and + AC3 sound only working the first time (thanks to Stefan Huelswitt). diff --git a/dvbapi.c b/dvbapi.c index 786aff99..0006e436 100644 --- a/dvbapi.c +++ b/dvbapi.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbapi.c 1.172 2002/04/21 09:54:40 kls Exp $ + * $Id: dvbapi.c 1.173 2002/04/21 11:55:48 kls Exp $ */ #include "dvbapi.h" @@ -2306,16 +2306,17 @@ bool cDvbApi::SetPid(int fd, dmxPesType_t PesType, int Pid, dmxOutput_t Output) { if (Pid) { CHECK(ioctl(fd, DMX_STOP)); - dmxPesFilterParams pesFilterParams; - pesFilterParams.pid = Pid; - pesFilterParams.input = DMX_IN_FRONTEND; - pesFilterParams.output = Output; - pesFilterParams.pesType = PesType; - pesFilterParams.flags = DMX_IMMEDIATE_START; - if (ioctl(fd, DMX_SET_PES_FILTER, &pesFilterParams) < 0) { - if (Pid != 0x1FFF) + if (Pid != 0x1FFF) { + dmxPesFilterParams pesFilterParams; + pesFilterParams.pid = Pid; + pesFilterParams.input = DMX_IN_FRONTEND; + pesFilterParams.output = Output; + pesFilterParams.pesType = PesType; + pesFilterParams.flags = DMX_IMMEDIATE_START; + if (ioctl(fd, DMX_SET_PES_FILTER, &pesFilterParams) < 0) { LOG_ERROR; - return false; + return false; + } } } return true;