From 4b8968f7e1f91f88e51a5014aa17f07484040f72 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Thu, 14 Jun 2001 08:22:30 +0200 Subject: Increased 'broken data stream' timeout; modified turning off PIDs --- HISTORY | 5 +++++ config.h | 4 ++-- dvbapi.c | 20 ++++++++++---------- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/HISTORY b/HISTORY index e1497977..855b3011 100644 --- a/HISTORY +++ b/HISTORY @@ -505,3 +505,8 @@ Video Disk Recorder Revision History Holtschneider). - Fixed removing recordings with Lifetime = 99. - Improved channel switching. + +2001-06-14: Version 0.82 + +- Increased timeout until reporting "broken video data stream" when recording. +- Modified method of turning off PIDs when switching channel. diff --git a/config.h b/config.h index 4da45fa4..b532cb63 100644 --- a/config.h +++ b/config.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: config.h 1.47 2001/06/12 21:40:28 kls Exp $ + * $Id: config.h 1.48 2001/06/14 08:20:34 kls Exp $ */ #ifndef __CONFIG_H @@ -19,7 +19,7 @@ #include "eit.h" #include "tools.h" -#define VDRVERSION "0.81" +#define VDRVERSION "0.82" #define MaxBuffer 10000 diff --git a/dvbapi.c b/dvbapi.c index b1464423..a9e52b8f 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.71 2001/06/12 21:48:48 kls Exp $ + * $Id: dvbapi.c 1.72 2001/06/14 08:19:43 kls Exp $ */ #include "dvbapi.h" @@ -534,9 +534,10 @@ void cRecordBuffer::Input(void) break; } } - if (time(NULL) - t > 5) { + if (time(NULL) - t > 10) { esyslog(LOG_ERR, "ERROR: video data stream broken"); cThread::EmergencyExit(true); + t = time(NULL); } cFile::FileReady(videoDev, 100); if (!recording) @@ -2007,17 +2008,16 @@ void cDvbApi::SetModeNormal(bool FromRecording) bool cDvbApi::SetPid(int fd, dmxPesType_t PesType, dvb_pid_t Pid, dmxOutput_t Output) { dmxPesFilterParams pesFilterParams; - if (Pid == 0 || Pid == 0xFFFF) { - CHECK(ioctl(fd, DMX_STOP, Pid)); - return true; - } + if (Pid == 0 || Pid == 0xFFFF) + CHECK(ioctl(fd, DMX_STOP)); 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; + if (Pid != 0) + LOG_ERROR; return false; } return true; @@ -2048,9 +2048,9 @@ bool cDvbApi::SetChannel(int ChannelNumber, int FrequencyMHz, char Polarization, // Turn off current PIDs: - CHECK(ioctl(fd_demuxv, DMX_STOP)); - CHECK(ioctl(fd_demuxa, DMX_STOP)); - CHECK(ioctl(fd_demuxt, DMX_STOP)); + SetVpid(0, DMX_OUT_DECODER); + SetApid(0, DMX_OUT_DECODER); + SetTpid(0, DMX_OUT_DECODER); bool ChannelSynced = false; -- cgit v1.2.3