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

Added logging the supported system ids of a CAM

This commit is contained in:
Klaus Schmidinger 2014-01-15 10:21:48 +01:00
parent 1d869c4b36
commit ac44e6f2ae
2 changed files with 6 additions and 2 deletions

View File

@ -8132,7 +8132,7 @@ Video Disk Recorder Revision History
and also to use the correct directory with --edit (the latter reported by Marko and also to use the correct directory with --edit (the latter reported by Marko
Mäkelä). Mäkelä).
2014-01-14: Version 2.1.4 2014-01-15: Version 2.1.4
- Updated 'sources.conf' (thanks to Antti Hartikainen). - Updated 'sources.conf' (thanks to Antti Hartikainen).
- cFont::CreateFont() now returns a dummy font in case there are no fonts installed. - cFont::CreateFont() now returns a dummy font in case there are no fonts installed.
@ -8142,3 +8142,4 @@ Video Disk Recorder Revision History
that are implemented in a plugin. that are implemented in a plugin.
- Fixed sending CA descriptors to CAMs in case a cReceiver is not used for a - Fixed sending CA descriptors to CAMs in case a cReceiver is not used for a
recording or live view, like e.g. streaming clients (thanks to Mariusz Bialonczyk). recording or live view, like e.g. streaming clients (thanks to Mariusz Bialonczyk).
- Added logging the supported system ids of a CAM.

5
ci.c
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: ci.c 3.6 2014/01/14 14:36:29 kls Exp $ * $Id: ci.c 3.7 2014/01/15 10:20:48 kls Exp $
*/ */
#include "ci.h" #include "ci.h"
@ -723,11 +723,13 @@ void cCiConditionalAccessSupport::Process(int Length, const uint8_t *Data)
switch (Tag) { switch (Tag) {
case AOT_CA_INFO: { case AOT_CA_INFO: {
dbgprotocol("Slot %d: <== Ca Info (%d)", Tc()->CamSlot()->SlotNumber(), SessionId()); dbgprotocol("Slot %d: <== Ca Info (%d)", Tc()->CamSlot()->SlotNumber(), SessionId());
cString Ids;
numCaSystemIds = 0; numCaSystemIds = 0;
int l = 0; int l = 0;
const uint8_t *d = GetData(Data, l); const uint8_t *d = GetData(Data, l);
while (l > 1) { while (l > 1) {
uint16_t id = ((uint16_t)(*d) << 8) | *(d + 1); uint16_t id = ((uint16_t)(*d) << 8) | *(d + 1);
Ids = cString::sprintf("%s %04X", *Ids ? *Ids : "", id);
dbgprotocol(" %04X", id); dbgprotocol(" %04X", id);
d += 2; d += 2;
l -= 2; l -= 2;
@ -744,6 +746,7 @@ void cCiConditionalAccessSupport::Process(int Length, const uint8_t *Data)
timer.Set(QUERY_WAIT_TIME); // WORKAROUND: Alphacrypt 3.09 doesn't reply to QUERY immediately after reset timer.Set(QUERY_WAIT_TIME); // WORKAROUND: Alphacrypt 3.09 doesn't reply to QUERY immediately after reset
state = 2; // got ca info state = 2; // got ca info
} }
dsyslog("CAM %d: system ids:%s", Tc()->CamSlot()->SlotNumber(), *Ids ? *Ids : " none");
} }
break; break;
case AOT_CA_PMT_REPLY: { case AOT_CA_PMT_REPLY: {