From 9b0070a420a47dfcced1e480d85c9f455aa6e416 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 12 Jun 2004 14:42:55 +0200 Subject: Revisited the "Fixed missing audio after replaying a DVD" change --- HISTORY | 4 ++-- dvbdevice.c | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/HISTORY b/HISTORY index 80c48b09..2a5379b5 100644 --- a/HISTORY +++ b/HISTORY @@ -2898,9 +2898,9 @@ Video Disk Recorder Revision History - In order to avoid problems on NPTL systems, VDR now checks for the presence of NPTL at program start, and if it is, exists and tells the user to do 'export LD_ASSUME_KERNEL=2.4.1' before starting VDR. -- Revoked the "Fixed missing audio after replaying a DVD" change because it +- Revisited the "Fixed missing audio after replaying a DVD" change because it introduced a sound disturbance when switching between channels on the same - transponder. + transponder (thanks to Marco Schlüßler). - In order to avoid problems on UTF-8 systems, VDR now checks for the presence of UTF-8 at program start, and if it is, exists and tells the user to turn off UTF-8 before starting VDR. diff --git a/dvbdevice.c b/dvbdevice.c index e5b777dc..2d23d27c 100644 --- a/dvbdevice.c +++ b/dvbdevice.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbdevice.c 1.89 2004/06/06 11:28:28 kls Exp $ + * $Id: dvbdevice.c 1.90 2004/06/12 14:42:19 kls Exp $ */ #include "dvbdevice.h" @@ -766,9 +766,10 @@ bool cDvbDevice::SetChannelDevice(const cChannel *Channel, bool LiveView) } if (IsPrimaryDevice()) AddPid(Channel->Tpid(), ptTeletext); + CHECK(ioctl(fd_audio, AUDIO_SET_MUTE, true)); // actually one would expect 'false' here, but according to Marco Schlüßler this works + // to avoid missing audio after replaying a DVD; with 'false' there is an audio disturbance when switching + // between two channels on the same transponder on DVB-S CHECK(ioctl(fd_audio, AUDIO_SET_AV_SYNC, true)); - CHECK(ioctl(fd_audio, AUDIO_SET_MUTE, false)); - CHECK(ioctl(fd_video, VIDEO_SET_BLANK, false)); } else if (StartTransferMode) cControl::Launch(new cTransferControl(this, Channel->Vpid(), Channel->Apid1(), Channel->Apid2(), Channel->Dpid1(), Channel->Dpid2())); -- cgit v1.2.3