diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2003-08-31 18:00:00 +0200 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2003-08-31 18:00:00 +0200 |
commit | e4b016980bb7c2f0bb369f64b2ac411500865b32 (patch) | |
tree | 082942243f4eb3fd14f4f271eb3a7cc637110aea /transfer.c | |
parent | fc9c149eb96f7a949c2f183693e4df15abe8dc4b (diff) | |
download | vdr-patch-lnbsharing-e4b016980bb7c2f0bb369f64b2ac411500865b32.tar.gz vdr-patch-lnbsharing-e4b016980bb7c2f0bb369f64b2ac411500865b32.tar.bz2 |
Version 1.2.5pre1vdr-1.2.5pre1
- Now explicitly handling exit value 0 and 2 in 'runvdr'.
- Added a missing 'w' to the allowed characters for Finnish and Swedish (thanks
to Lauri Tischler and Ragnar Sundblad).
- Added channels for DVB-T Hannover (Germany) to channels.cont.terr (thanks to
Peter Waechtler).
- Fixed a hangup in SVDRP when the client disappears without sending QUIT (thanks
to Robert Bartl for reporting this one). The problem was introduced in version
1.2.2 through the fix for an occasional "Broken pipe" error in SVDRP connections.
- Updated 'channels.conf.terr' for Berlin.
- Fixed displaying still pictures, now using the driver's VIDEO_STILLPICTURE call
directly (thanks to Oliver Endriss). This also improves navigating through DVD
menus with the DVD plugin. If this causes problems with your particular system
(maybe because you are using the 'analogtv' plugin) you can reactivate the
previous behaviour by commenting out the line
#define VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES
in VDR/dvbdevice.c.
Note that you need driver version 2003-08-23 or later for this to work!
- Fixed handling extra blanks in plugin command lines.
- Actually implemented the SVDRP command DELC.
- Now clearing the player device if there are too many poll timeouts in 'Transfer
Mode', which avoids buffer overflows and black screens in such cases.
Diffstat (limited to 'transfer.c')
-rw-r--r-- | transfer.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: transfer.c 1.13 2003/05/18 15:22:09 kls Exp $ + * $Id: transfer.c 1.14 2003/08/31 12:19:16 kls Exp $ */ #include "transfer.h" @@ -13,6 +13,7 @@ // The size of the array used to buffer video data: // (must be larger than MINVIDEODATA - see remux.h) #define VIDEOBUFSIZE MEGABYTE(1) +#define POLLTIMEOUTS_BEFORE_DEVICECLEAR 3 // --- cTransfer ------------------------------------------------------------- @@ -67,6 +68,7 @@ void cTransfer::Action(void) { dsyslog("transfer thread started (pid=%d)", getpid()); + int PollTimeouts = 0; active = true; while (active) { @@ -99,6 +101,7 @@ void cTransfer::Action(void) while (Result > 0 && active) { cPoller Poller; if (DevicePoll(Poller, 100)) { + PollTimeouts = 0; int w = PlayVideo(p, Result); if (w > 0) { p += w; @@ -109,6 +112,13 @@ void cTransfer::Action(void) break; } } + else { + PollTimeouts++; + if (PollTimeouts == POLLTIMEOUTS_BEFORE_DEVICECLEAR) { + dsyslog("clearing device because of consecutive poll timeouts"); + DeviceClear(); + } + } } } } |