Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: CAM Aston 1.05 workaround



Miguel Sanchez wrote:
> 
> Hi Klaus,
> 
> I've done some debugging on the Aston 1.05 CAM problem. As it works
> (decrypts successfully) with Hauppauge Windows software and DVBTV, I've
> included what I think it is the dialog between the CAM and the card
> software:
> 
> ...
> Klaus: If this is not useful, do you know any other test I could conduct
> to help you figure out what the problem could be?

I'm afraid this didn't give me any new insights.

I just posted this in an other thread regarding the SkyCrypt CAM, but maybe
you could do the same tests:

Please take VDR 1.2.5pre2, the latest CVS driver (both available
in ftp://ftp.cadsoft.de/vdr/Developer) and apply this patch
to VDR/dvbdevice.c:

--- dvbdevice.c 2003/09/06 13:19:33     1.64
+++ dvbdevice.c 2003/09/07 14:28:00
@@ -272,20 +272,29 @@
               if (ciHandler) {
                  if (ciHandler->Process() && useCa) {
                     if (tunerStatus != tsCam) {//XXX TODO update in case the CA descriptors have changed
+                       static bool CaMode = false;
                        for (int Slot = 0; Slot < ciHandler->NumSlots(); Slot++) {
                            uchar buffer[2048];
                            int length = cSIProcessor::GetCaDescriptors(channel.Source(), channel.Frequency(), channel.Sid(), ciHandler->GetCaSystemIds(Slot), sizeof(buffer), buffer);
                            if (length > 0) {
                               cCiCaPmt CaPmt(channel.Sid());
-                              CaPmt.AddCaDescriptor(length, buffer);
-                              if (channel.Vpid())
+                              if (!CaMode) CaPmt.AddCaDescriptor(length, buffer);
+                              if (channel.Vpid()) {
                                  CaPmt.AddPid(channel.Vpid());
-                              if (channel.Apid1())
+                                 if (CaMode) CaPmt.AddCaDescriptor(length, buffer);
+                                 }
+                              if (channel.Apid1()) {
                                  CaPmt.AddPid(channel.Apid1());
-                              if (channel.Apid2())
+                                 if (CaMode) CaPmt.AddCaDescriptor(length, buffer);
+                                 }
+                              if (channel.Apid2()) {
                                  CaPmt.AddPid(channel.Apid2());
-                              if (channel.Dpid1())
+                                 if (CaMode) CaPmt.AddCaDescriptor(length, buffer);
+                                 }
+                              if (channel.Dpid1()) {
                                  CaPmt.AddPid(channel.Dpid1());
+                                 if (CaMode) CaPmt.AddCaDescriptor(length, buffer);
+                                 }
                               if (ciHandler->SetCaPmt(CaPmt, Slot)) {
                                  tunerStatus = tsCam;
                                  startTime = 0;

With this version please try receiving encrypted channels, once leaving 'CaMode'
at the value 'false', then setting it to true.

Can you observe a different behaviour in the two cases?
Does it work in any of them?

NB: make sure you use the LL firmware (the logfile should list "...firmware supports
    CI link layer interface").

Klaus


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.



Home | Main Index | Thread Index