Ticket #2908: mythtv-noredundantids.patch
File mythtv-noredundantids.patch, 1.8 KB (added by , 17 years ago) |
---|
-
trunk/libs/libmythtv/dvbdev/dvbci.cpp
980 980 { 981 981 dbgprotocol("New Conditional Access Support (session id %d)\n", SessionId); 982 982 state = 0; 983 caSystemIds[numCaSystemIds = 0] = 0; 983 numCaSystemIds = 0; 984 memset(caSystemIds, 0, sizeof(caSystemIds)); 984 985 needCaPmt = false; 985 986 } 986 987 … … 992 993 case AOT_CA_INFO: { 993 994 dbgprotocol("%d: <== Ca Info", SessionId()); 994 995 int l = 0; 996 int i; 995 997 const uint8_t *d = GetData(Data, l); 996 998 while (l > 1) { 997 999 unsigned short id = ((unsigned short)(*d) << 8) | *(d + 1); 998 1000 dbgprotocol(" %04X", id); 999 1001 d += 2; 1000 1002 l -= 2; 1001 fprintf(stderr, "XXX YYY ZZZ - Got ca system id %hu\n", id); 1002 if (numCaSystemIds < MAXCASYSTEMIDS) { 1003 caSystemIds[numCaSystemIds++] = id; 1004 caSystemIds[numCaSystemIds] = 0; 1005 } 1006 else 1007 esyslog("ERROR: too many CA system IDs!"); 1008 } 1003 1004 if (numCaSystemIds >= MAXCASYSTEMIDS) { 1005 esyslog("ERROR: too many CA system IDs!"); 1006 break; 1007 } 1008 1009 // Make sure the id is not already present 1010 for (i = 0; i < numCaSystemIds; i++) 1011 if (caSystemIds[i] == id) 1012 break; 1013 1014 if (i < numCaSystemIds) 1015 continue; 1016 1017 caSystemIds[numCaSystemIds++] = id; 1018 } 1009 1019 dbgprotocol("\n"); 1010 1020 } 1011 1021 state = 2;