diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2005-05-08 14:06:21 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2005-05-08 14:06:21 +0200 |
commit | 7f5f26020bcedd5a1fd1ae73b8dcebafe2fb9b39 (patch) | |
tree | f17f0870a3c3a4db74def994602e73bd4f697488 /dvbplayer.c | |
parent | 1f246351b1f3872edfaa73683fc6755dac1a6bf9 (diff) | |
download | vdr-7f5f26020bcedd5a1fd1ae73b8dcebafe2fb9b39.tar.gz vdr-7f5f26020bcedd5a1fd1ae73b8dcebafe2fb9b39.tar.bz2 |
Some rearrangements in cDvbPlayer::Action() to avoid lockups on NPTL systems
Diffstat (limited to 'dvbplayer.c')
-rw-r--r-- | dvbplayer.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/dvbplayer.c b/dvbplayer.c index ad5ccf2d..5d2370cb 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 1.31 2005/05/05 12:52:40 kls Exp $ + * $Id: dvbplayer.c 1.32 2005/05/08 13:51:00 kls Exp $ */ #include "dvbplayer.h" @@ -382,8 +382,8 @@ void cDvbPlayer::Action(void) // Read the next frame from the file: - if (!readFrame && (replayFile >= 0 || readIndex >= 0)) { - if (playMode != pmStill) { + if (playMode != pmStill && playMode != pmPause) { + if (!readFrame && (replayFile >= 0 || readIndex >= 0)) { if (!nonBlockingFileReader->Reading()) { if (playMode == pmFast || (playMode == pmSlow && playDir == pdBackward)) { uchar FileNumber; @@ -440,16 +440,16 @@ void cDvbPlayer::Action(void) break; } } - else - cCondWait::SleepMs(3); // this keeps the CPU load low - } - // Store the frame in the buffer: + // Store the frame in the buffer: - if (readFrame) { - if (ringBuffer->Put(readFrame)) - readFrame = NULL; + if (readFrame) { + if (ringBuffer->Put(readFrame)) + readFrame = NULL; + } } + else + cCondWait::SleepMs(3); // this keeps the CPU load low // Get the next frame from the buffer: |