From 353233a27e57c6f1b5ac13bac95b191a2b5f556b Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 6 May 2012 11:04:07 +0200 Subject: [PATCH] Fixed a possible high CPU load when pausing replay --- CONTRIBUTORS | 1 + HISTORY | 3 ++- dvbplayer.c | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 68530161..19573528 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1310,6 +1310,7 @@ Reinhard Nissl for making cEITScanner process new transponders before old ones, to make sure transponder changes are recognized for helping to debug switching into time shift mode when pausing live video + for fixing a possible high CPU load when pausing replay Richard Robson for reporting freezing replay if a timer starts while in Transfer Mode from the diff --git a/HISTORY b/HISTORY index ad22d611..b494fd05 100644 --- a/HISTORY +++ b/HISTORY @@ -7052,7 +7052,7 @@ Video Disk Recorder Revision History - Fixed handling IDLEPRIORITY in cDvbDevice::ProvidesChannel() (thanks to Frank Schmirler). -2012-04-28: Version 1.7.28 +2012-05-06: Version 1.7.28 - Fixed cPixmapMemory::DrawEllipse() for quadrants -1 and -4. - Fixed getting the maximum short channel name length in case there are no short names @@ -7093,3 +7093,4 @@ Video Disk Recorder Revision History true to get the current player control even if it is hidden. - The new functions cControl::GetRecording() and cControl::GetHeader() can be used to retrieve information about what the current player is playing. +- Fixed a possible high CPU load when pausing replay (thanks to Reinhard Nissl). diff --git a/dvbplayer.c b/dvbplayer.c index 2bf27a36..b325c989 100644 --- a/dvbplayer.c +++ b/dvbplayer.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbplayer.c 2.26 2012/03/12 14:36:55 kls Exp $ + * $Id: dvbplayer.c 2.27 2012/05/06 11:02:35 kls Exp $ */ #include "dvbplayer.h" @@ -408,7 +408,7 @@ void cDvbPlayer::Action(void) Goto(0, true); while (Running()) { if (WaitingForData) - nonBlockingFileReader->WaitForDataMs(3); // this keeps the CPU load low, but reacts immediately on new data + WaitingForData = !nonBlockingFileReader->WaitForDataMs(3); // this keeps the CPU load low, but reacts immediately on new data else if (Sleep) { cPoller Poller; DevicePoll(Poller, 10);