1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

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 - Fixed handling a channel group separator at the very beginning of the
'channels.conf' file. 'channels.conf' file.
2001-07-27: Version 0.85 2001-07-29: Version 0.85
- Added Norwegian language texts (thanks to Jørgen Tvedt). - Added Norwegian language texts (thanks to Jørgen Tvedt).
- Increased the usleep value in cDvbOsd::Cmd() to 5000 in order to work on - 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 - 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 may be necessary if your multiswitch gets irritated by the default DiSEqC
codes '0' (thanks to Markus Lang). 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 * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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" #include "dvbapi.h"
@ -1163,8 +1163,10 @@ void cTransferBuffer::Output(void)
uchar b[MINVIDEODATA]; uchar b[MINVIDEODATA];
while (Busy()) { while (Busy()) {
if (!gotBufferReserve) { if (!gotBufferReserve) {
if (Available() < MAXFRAMESIZE) if (Available() < MAXFRAMESIZE) {
usleep(100000); // allow the buffer to collect some reserve usleep(100000); // allow the buffer to collect some reserve
continue;
}
else else
gotBufferReserve = true; gotBufferReserve = true;
} }
@ -2256,6 +2258,7 @@ bool cDvbApi::SetChannel(int ChannelNumber, int FrequencyMHz, char Polarization,
if (CaDvbApi) { if (CaDvbApi) {
if (!CaDvbApi->Recording()) { if (!CaDvbApi->Recording()) {
if (CaDvbApi->SetChannel(ChannelNumber, FrequencyMHz, Polarization, Diseqc, Srate, Vpid, Apid1, Apid2, Dpid1, Dpid2, Tpid, Ca, Pnr)) { 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(); SetModeReplay();
transferringFromDvbApi = CaDvbApi->StartTransfer(fd_video); transferringFromDvbApi = CaDvbApi->StartTransfer(fd_video);
} }