Hello Alexander!
> On my setup your MCD implementation looks good! I was able to decode two Sky channels at the same time (on the same transponder).
Perfect! THX for testing this. I will change the commits on the branch and then do the PR.
> I didn't find any settings in the ACL to configure the "announcement" of supported CAIDs...
First of all, I have an AlphaCrypt 3.27 from Mascom and not the ACL. So maybe the ACL doesn't support such a setting.
My CAM reports:
CAM INFO: AlphaCrypt, 01, 4A20, 4A20
On my CAM it is in the Expert Menue:
CA-Systems: Single
dbox Compatibility: on
> My previous problem using OSCam and DDCI at the same time, still exists...
As I wrote already I don't understand why. When the HW CAM is used completely (limit set to 1), TVH should select automatically the next descrambler which can decode the stream. And this can be a SW CAM also.
My CAM is also announcing all CAIDs:
CAM supported CAIDs: 0D95 (CryptoWorks ICE) 0648 (Irdeto) 1702 (BetaCrypt) 1722 (BetaCrypt)
CAM supported CAIDs: 1762 (BetaCrypt) 4A20 (0x4a20) 0500 (Viaccess) 0B00 (Conax)
CAM supported CAIDs: 0100 (Seca) 1833 (NagraVision) 1834 (NagraVision) 0D05 (CryptoWorks)
CAM supported CAIDs: 0D22 (CryptoWorks)
caids_count 13
I do now select only the correct CAID (0D95) in the list on the WEB UI.
Then I get this:
dvbcam: dvbca0-0/0x7fcdc528e300: match CAID 0D95 PID 0 (0000)
dvbcam: dvbca0-0/0x7fcdc528e300: add CAID 0D95 to selection
ddci: CAM ci2 assigned to 0x7fcdc528e300
When I tune now to a channel on the same transponder and the limit is set to 1, TVH will not find a CAM.
Then TVH should execute the start function of all other registered CA clients. This is done in "caclient_start" (caclient.c):
TAILQ_FOREACH(cac, &caclients, cac_link)
if (cac->cac_enabled)
cac->cac_start(cac, t);
To prove that, you can add a debug line to "cclient.c" (I think this is used for OsCAM) after this line (1055):
"extern const idclass_t mpegts_service_class;"
The debug line:
tvhtrace(LS_DVBCAM, "Card Client");
Start TVH with this parameters or enable the tracing in the GUI.
-l tvh.log --trace linuxdvb,ddci,dvbcam
In fact the code in "cc_service_start" should then select the SW CAM.
If you see the added debug line, you need to add more debug code to "cc_service_start" to find why your SW CAM is not selected.
If you don't see the debug line, then add debug lines to "caclient_start" and find why it does not execute the start functions of all registered CAM class types. In "caclient_create"(caclient.c) all the CAM class create functions are executed.
Sorry, but I can't do more for you then explaining you how you can debug that.
BR,
Jasmin