Avoiding audio/video distortions in 'Transfer Mode'

This commit is contained in:
Klaus Schmidinger 2001-07-28 11:26:45 +02:00
parent 47b859c156
commit 780cd3d52f
2 changed files with 7 additions and 3 deletions

View File

@ -570,7 +570,7 @@ Video Disk Recorder Revision History
- Fixed handling a channel group separator at the very beginning of the
'channels.conf' file.
2001-07-27: Version 0.85
2001-07-29: Version 0.85
- Added Norwegian language texts (thanks to Jørgen Tvedt).
- Increased the usleep value in cDvbOsd::Cmd() to 5000 in order to work on
@ -586,3 +586,4 @@ Video Disk Recorder Revision History
- DiSEqC support can now be generally enabled/disabled in the Setup menu. This
may be necessary if your multiswitch gets irritated by the default DiSEqC
codes '0' (thanks to Markus Lang).
- Avoiding audio/video distortions in 'Transfer Mode'.

View File

@ -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);
}