summaryrefslogtreecommitdiff
path: root/dvbapi.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2001-07-28 11:26:45 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2001-07-28 11:26:45 +0200
commit780cd3d52f1ca4654d62ec7a30902bd6fc83e597 (patch)
tree78b727ab0be050c1c22481100fea393cd03c2dd7 /dvbapi.c
parent47b859c15677e73e2e0a0fef8f244a6b3fd6b3df (diff)
downloadvdr-780cd3d52f1ca4654d62ec7a30902bd6fc83e597.tar.gz
vdr-780cd3d52f1ca4654d62ec7a30902bd6fc83e597.tar.bz2
Avoiding audio/video distortions in 'Transfer Mode'
Diffstat (limited to 'dvbapi.c')
-rw-r--r--dvbapi.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/dvbapi.c b/dvbapi.c
index 4fa5589d..fbb8b62d 100644
--- a/dvbapi.c
+++ b/dvbapi.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: dvbapi.c 1.90 2001/07/27 13:33:56 kls Exp $
+ * $Id: dvbapi.c 1.91 2001/07/28 11:23:59 kls Exp $
*/
#include "dvbapi.h"
@@ -1163,8 +1163,10 @@ void cTransferBuffer::Output(void)
uchar b[MINVIDEODATA];
while (Busy()) {
if (!gotBufferReserve) {
- if (Available() < MAXFRAMESIZE)
+ if (Available() < MAXFRAMESIZE) {
usleep(100000); // allow the buffer to collect some reserve
+ continue;
+ }
else
gotBufferReserve = true;
}
@@ -2256,6 +2258,7 @@ bool cDvbApi::SetChannel(int ChannelNumber, int FrequencyMHz, char Polarization,
if (CaDvbApi) {
if (!CaDvbApi->Recording()) {
if (CaDvbApi->SetChannel(ChannelNumber, FrequencyMHz, Polarization, Diseqc, Srate, Vpid, Apid1, Apid2, Dpid1, Dpid2, Tpid, Ca, Pnr)) {
+ usleep(500000); // avoids distortions (apparently switching into replay mode immediately after tuning causes problems)
SetModeReplay();
transferringFromDvbApi = CaDvbApi->StartTransfer(fd_video);
}