1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Added random timeout to avoid SCR device interference

This commit is contained in:
Klaus Schmidinger 2011-09-17 12:53:46 +02:00
parent b228086355
commit b40cd95dcc

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: dvbdevice.c 2.46 2011/09/17 11:41:01 kls Exp $ * $Id: dvbdevice.c 2.47 2011/09/17 12:53:46 kls Exp $
*/ */
#include "dvbdevice.h" #include "dvbdevice.h"
@ -32,6 +32,8 @@
#define ATSC_TUNE_TIMEOUT 9000 //ms #define ATSC_TUNE_TIMEOUT 9000 //ms
#define ATSC_LOCK_TIMEOUT 2000 //ms #define ATSC_LOCK_TIMEOUT 2000 //ms
#define SCR_RANDOM_TIMEOUT 500 // ms (add random value up to this when tuning SCR device to avoid lockups)
// --- DVB Parameter Maps ---------------------------------------------------- // --- DVB Parameter Maps ----------------------------------------------------
const tDvbParameterMap InversionValues[] = { const tDvbParameterMap InversionValues[] = {
@ -663,7 +665,7 @@ void cDvbTuner::Action(void)
break; break;
case tsSet: case tsSet:
tunerStatus = SetFrontend() ? tsTuned : tsIdle; tunerStatus = SetFrontend() ? tsTuned : tsIdle;
Timer.Set(tuneTimeout); Timer.Set(tuneTimeout + (scr ? rand() % SCR_RANDOM_TIMEOUT : 0));
continue; continue;
case tsTuned: case tsTuned:
if (Timer.TimedOut()) { if (Timer.TimedOut()) {