diff --git a/mythtv/programs/mythbackend/scheduler.cpp b/mythtv/programs/mythbackend/scheduler.cpp index d6676b3..c7b9677 100644 --- a/mythtv/programs/mythbackend/scheduler.cpp +++ b/mythtv/programs/mythbackend/scheduler.cpp @@ -1785,7 +1785,7 @@ void Scheduler::run(void) QMutexLocker lockit(&schedLock); - int prerollseconds = 0; + int prerollseconds = gCoreContext->GetNumSetting("RecordPreRoll", 0); int wakeThreshold = 300; int idleTimeoutSecs = 0; int idleWaitForRecordingTime = 15; // in minutes @@ -1806,7 +1806,10 @@ void Scheduler::run(void) QDateTime curtime = MythDate::current(); int secs_to_next = (startIter != reclist.end()) ? - curtime.secsTo((*startIter)->GetRecordingStartTime()) : 60*60; + curtime.secsTo((*startIter)->GetRecordingStartTime()) - prerollseconds : 60*60; + + if (secs_to_next < 1) + secs_to_next = 1; // If we're about to start a recording don't do any reschedules... // instead sleep for a bit @@ -1975,7 +1978,7 @@ int Scheduler::CalcTimeToNextHandleRecordingEvent( if ((*i)->GetRecordingStatus() == (*i)->oldrecstatus) continue; - int secs_to_next = curtime.secsTo((*i)->GetRecordingStartTime()); + int secs_to_next = curtime.secsTo((*i)->GetRecordingStartTime()) - prerollseconds; if ((*i)->GetRecordingStatus() == rsWillRecord && !recPendingList[(*i)->MakeUniqueSchedulerKey()])