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 | |
parent | 1f246351b1f3872edfaa73683fc6755dac1a6bf9 (diff) | |
download | vdr-7f5f26020bcedd5a1fd1ae73b8dcebafe2fb9b39.tar.gz vdr-7f5f26020bcedd5a1fd1ae73b8dcebafe2fb9b39.tar.bz2 |
Some rearrangements in cDvbPlayer::Action() to avoid lockups on NPTL systems
-rw-r--r-- | CONTRIBUTORS | 1 | ||||
-rw-r--r-- | HISTORY | 4 | ||||
-rw-r--r-- | dvbplayer.c | 20 |
3 files changed, 14 insertions, 11 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 14cf178d..a2149099 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -942,6 +942,7 @@ Reinhard Nissl <rnissl@gmx.de> function permanently returns 0 for fixing a typo in detecting UTF-8 for fixing handling fragments of less than 3 byte in cPesAssembler + for some rearrangements in cDvbPlayer::Action() to avoid lockups on NPTL systems Richard Robson <richard_robson@beeb.net> for reporting freezing replay if a timer starts while in Transfer Mode from the @@ -3474,7 +3474,7 @@ Video Disk Recorder Revision History - Added a missing cMutexLock to cRemote::HasKeys() (thanks to Wolfgang Rohdewald). - All log entries regarding timers now contain a short description of the timer. -2005-05-07: Version 1.3.24 +2005-05-08: Version 1.3.24 - Now including the optional user defined Make.config from the 'libsi' Makefile (thanks to Ville Skyttä). @@ -3508,3 +3508,5 @@ Video Disk Recorder Revision History audio or dolby PID changes. - Now preferring budget cards when selecting a DVB device for recording. - Recordings now avoid zero sized video data files (thanks to Wolfgang Fitz). +- Some rearrangements in cDvbPlayer::Action() to avoid lockups on NPTL systems + (thanks to Reinhard Nissl). 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: |