diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2014-01-24 11:55:40 +0100 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2014-01-24 11:55:40 +0100 |
commit | 5ac41bf09175b48cf09606c1cd16bf0615ced837 (patch) | |
tree | 447bdec3d28efdd89811ab5e5265cb13101dc03c /ci.c | |
parent | e158021a4d138fc1d59f0499b7b7df5108de5de3 (diff) | |
download | vdr-5ac41bf09175b48cf09606c1cd16bf0615ced837.tar.gz vdr-5ac41bf09175b48cf09606c1cd16bf0615ced837.tar.bz2 |
Revoked "Fixed sending CA descriptors to CAMs in case a cReceiver is not used for a recording or live view" - was unstable
Diffstat (limited to 'ci.c')
-rw-r--r-- | ci.c | 17 |
1 files changed, 4 insertions, 13 deletions
@@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: ci.c 3.9 2014/01/22 09:39:06 kls Exp $ + * $Id: ci.c 3.10 2014/01/24 11:53:53 kls Exp $ */ #include "ci.h" @@ -592,7 +592,6 @@ private: int transponder; int programNumber; int caSystemIds[MAXCASYSTEMIDS + 1]; // list is zero terminated! - bool gotCaDescriptors; void AddCaDescriptors(int Length, const uint8_t *Data); public: cCiCaPmt(uint8_t CmdId, int Source, int Transponder, int ProgramNumber, const int *CaSystemIds); @@ -600,12 +599,10 @@ public: void SetListManagement(uint8_t ListManagement); uint8_t ListManagement(void) { return capmt[0]; } void AddPid(int Pid, uint8_t StreamType); - bool GotCaDescriptors(void) { return gotCaDescriptors; } }; cCiCaPmt::cCiCaPmt(uint8_t CmdId, int Source, int Transponder, int ProgramNumber, const int *CaSystemIds) { - gotCaDescriptors = false; cmdId = CmdId; source = Source; transponder = Transponder; @@ -661,7 +658,6 @@ void cCiCaPmt::AddCaDescriptors(int Length, const uint8_t *Data) int l = length - esInfoLengthPos - 2; capmt[esInfoLengthPos] = (l >> 8) & 0xFF; capmt[esInfoLengthPos + 1] = l & 0xFF; - gotCaDescriptors = true; } } else @@ -1810,7 +1806,6 @@ cCiEnquiry *cCamSlot::GetEnquiry(void) void cCamSlot::SendCaPmt(uint8_t CmdId) { cMutexLock MutexLock(&mutex); - bool needResend = false; cCiConditionalAccessSupport *cas = (cCiConditionalAccessSupport *)GetSessionByResourceId(RI_CONDITIONAL_ACCESS_SUPPORT); if (cas) { const int *CaSystemIds = cas->GetCaSystemIds(); @@ -1843,12 +1838,8 @@ void cCamSlot::SendCaPmt(uint8_t CmdId) } if (cas->RepliesToQuery()) CaPmt.SetListManagement(Active ? CPLM_ADD : CPLM_UPDATE); - if (Active || cas->RepliesToQuery()) { - if ((CaPmt.ListManagement() == CPLM_ADD || CaPmt.ListManagement() == CPLM_ONLY) && !CaPmt.GotCaDescriptors()) - needResend = true; - else - cas->SendPMT(&CaPmt); - } + if (Active || cas->RepliesToQuery()) + cas->SendPMT(&CaPmt); p->modified = false; } } @@ -1858,7 +1849,7 @@ void cCamSlot::SendCaPmt(uint8_t CmdId) if (cDevice *d = Device()) d->AttachReceiver(caPidReceiver); } - resendPmt = needResend; + resendPmt = false; } else { cCiCaPmt CaPmt(CmdId, 0, 0, 0, NULL); |