diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2006-08-14 09:56:28 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2006-08-14 09:56:28 +0200 |
commit | e68171626e0492593f82da76e5a63b36e4fa5f99 (patch) | |
tree | 2b3a64ccccb79598158ff554b3a826749d691177 /dvbdevice.c | |
parent | dc32738b27b2cce5a10398c96a1d78078b32a141 (diff) | |
download | vdr-e68171626e0492593f82da76e5a63b36e4fa5f99.tar.gz vdr-e68171626e0492593f82da76e5a63b36e4fa5f99.tar.bz2 |
Fixed setting additional audio PIDs in CAMs
Diffstat (limited to 'dvbdevice.c')
-rw-r--r-- | dvbdevice.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/dvbdevice.c b/dvbdevice.c index 9ae8dfaf..fb8ec938 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.159 2006/06/11 09:03:55 kls Exp $ + * $Id: dvbdevice.c 1.160 2006/08/14 09:38:32 kls Exp $ */ #include "dvbdevice.h" @@ -853,11 +853,6 @@ bool cDvbDevice::SetChannelDevice(const cChannel *Channel, bool LiveView) esyslog("ERROR: failed to set PIDs for channel %d on device %d", Channel->Number(), CardIndex() + 1); return false; } - //XXX quick workaround for additional live audio PIDs: - if (ciHandler) { - ciHandler->SetPid(Channel->Apid(1), true); - ciHandler->SetPid(Channel->Dpid(0), true); - } 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 <marco@lordzodiac.de> this works @@ -927,8 +922,14 @@ void cDvbDevice::SetAudioTrackDevice(eTrackType Type) if (IS_AUDIO_TRACK(Type) || (IS_DOLBY_TRACK(Type) && SetAudioBypass(true))) { if (pidHandles[ptAudio].pid && pidHandles[ptAudio].pid != TrackId->id) { DetachAll(pidHandles[ptAudio].pid); + if (ciHandler) + ciHandler->SetPid(pidHandles[ptAudio].pid, false); pidHandles[ptAudio].pid = TrackId->id; SetPid(&pidHandles[ptAudio], ptAudio, true); + if (ciHandler) { + ciHandler->SetPid(pidHandles[ptAudio].pid, true); + ciHandler->StartDecrypting(); + } } } else if (IS_DOLBY_TRACK(Type)) { |