[mythtv-users] Nexus-S + Newcamd

Koen Smeets koen at fotoloog.org
Mon Nov 21 02:38:50 EST 2005


Hi all,
 
Over the last couple of days, I have been able to get mythtv-stable to
compile and actually display live TV from satellite. The only thing I
that's keeping me from buying on of those big 24" Dell screens to watch
TV through mythv is that I cannot access my official Seca card. The card
is for Canal Digitaal, which is a Dutch satellite provider. The card
resides in my Dreambox 7000-S. And no, it is not an option to put the
card in the Nexus-S CI, for several reasons.
 
I have applied a patch to dvbcam.c to call newcamd (using newcamd 6.04)
on a channel change. Newcamd does respond when switching channels (see
below), but there's no image, no sound. It does recognize an unencrypted
channel, though.
 
Hopefully somebody can help me here: I'd really like to put MythTV into
my living room!
 
Cheers,
 
Koen
 
 
[root at linux ~]#
PAT - Sun Nov 20 23:05:52 CET 2005
----------------------------------
0000 : 00 b0 41 04 51 e1 00 00 00 00 e0 10 0f a5 e3 ed    A Q
0010 : 0f a6 e3 ee 0f a7 e3 ef 0f a9 e3 f1 0f ab e3 f3
0020 : 0f ac e3 f4 0f ad e3 f5 1c 1f e4 4c 05 dd e5 dc             L
0030 : 0f af e3 f7 0f b4 e3 fc 0f be e4 06 0f c3 e4 0b
0040 : 1b ff ec 21                                         !
 
[newcamd-v6.04 23:05:52] start decoding servid 0fac, pmt 03f4.
 
PMT 03f4 - Sun Nov 20 23:05:52 CET 2005
---------------------------------------
0000 : 02 b0 8f 0f ac f7 00 00 ff fe f0 06 09 04 06 22                 "
0010 : e5 68 c6 e1 98 f0 00 02 e2 06 f0 13 09 11 01 00   h
0020 : e6 44 00 6a ff 00 00 00 00 00 00 02 14 1f 74 04   D j          t
0030 : e0 5c f0 19 0a 04 64 75 74 00 09 11 01 00 e6 44   \    dut      D
0040 : 00 6a ff 00 00 00 00 00 00 02 14 1f 74 06 e0 23   j          t  #
0050 : f0 07 56 05 64 75 74 09 00 c0 e0 d0 f0 21 c6 05    V dut      !
0060 : 00 00 10 04 ff c2 18 4e 45 44 5f 5f 45 50 47 4e         NED__EPGN
0070 : 45 44 5f 5f 50 49 4c 4e 45 44 5f 5f 43 48 4c c1  ED__PILNED__CHL
0080 : e0 fa f0 0a c2 08 50 49 4c 4f 54 45 00 00 3a 83        PILOTE  :
0090 : 53 09                                            S
 
[newcamd-v6.04 23:05:52] channel using caid 0622, provid 000000, ecm
0568 ... no                                             t found
[newcamd-v6.04 23:05:52] channel using caid 0100, provid 00006a, ecm
0644 ... cw                                             s
[newcamd-v6.04 23:05:52] trying caid 0100, ecm 0644, provid 00006a, cws
10.0.0.2                                             :10001
 
ECM 0100 - Sun Nov 20 23:05:52 CET 2005
---------------------------------------
0000 : 80 00 61 00 6a 00 00 fd 10 01 1d ec 94 e5 c9 43    a j          C
0010 : 1d 67 ff 2b 1c 7a 8d b4 0e 4e d1 43 34 fa fa ed   g + z   N C4
0020 : c2 b7 6b 8b bf 9f 65 72 35 38 2d 5e 10 c2 9f fb    k   er58-^
0030 : 1c 3f db c3 42 d7 b2 9e 54 08 d4 7b 7e 99 96 48   ?  B   T  {   H
0040 : 4f 46 51 b9 a8 24 5a fa 2b bc 27 ed f5 d7 26 d1  OFQ  $Z + '   &
0050 : 7c b0 8b b7 c9 78 0a 14 8f 2b 25 8e 89 6a 83 58       x   +%  j X
0060 : 0e 0b df 86
 

ECM -> Card 0100 - Sun Nov 20 23:05:52 CET 2005
-----------------------------------------------
00: 80 00 61 00 6a 00 00 fd 10 01 1d ec 94 e5 c9 43     a j          C
10: 1d 67 ff 2b 1c 7a 8d b4 0e 4e d1 43 34 fa fa ed    g + z   N C4
20: c2 b7 6b 8b bf 9f 65 72 35 38 2d 5e 10 c2 9f fb     k   er58-^
30: 1c 3f db c3 42 d7 b2 9e 54 08 d4 7b 7e 99 96 48    ?  B   T  {   H
40: 4f 46 51 b9 a8 24 5a fa 2b bc 27 ed f5 d7 26 d1   OFQ  $Z + '   &
50: 7c b0 8b b7 c9 78 0a 14 8f 2b 25 8e 89 6a 83 58        x   +%  j X
60: 0e 0b df 86
 
ECM <- Card 0100 - Sun Nov 20 23:05:53 CET 2005
-----------------------------------------------
00: 80 10 10 24 f9 96 b3 02 b6 66 1e 5e 06 9f 03 86      $     f ^
10: 91 a2 b9
[newcamd-v6.04 23:05:53] using  caid 0100, ecm 0644, provid 00006a, key
00000d,                                              cws 10.0.0.2:10001
 
CAT - Sun Nov 20 23:05:53 CET 2005
----------------------------------
0000 : 01 b0 2f ff ff c5 00 00 09 04 06 02 e1 2c 09 0d    /          ,
0010 : 01 00 e0 b6 02 e0 b7 00 6a e0 b8 00 76 09 09 01          j   v
0020 : 01 e0 c9 01 e0 c8 00 12 09 04 06 22 e1 36 97 fc             " 6
0030 : 5a 84                                            Z
 

ECM 0100 - Sun Nov 20 23:05:56 CET 2005
---------------------------------------
0000 : 81 00 61 00 6a 00 00 fd 10 01 08 64 a2 b3 f5 15    a j      d
0010 : 88 31 d7 a7 f0 01 0b cd ec 8a 37 be 43 5a be 90   1        7 CZ
0020 : d2 bb 86 eb 97 1f d8 3a 04 d1 73 22 d8 70 3a d6         :  s" p:
0030 : 37 41 59 69 d8 71 9a 53 11 37 7d 2b a9 9c b3 be  7AYi q S 7 +
0040 : cc e9 bf 16 29 29 2b 93 69 f1 68 81 0d c4 5c db      ))+ i h   \
0050 : 7a b6 e2 df 6d 52 5a 8d 7e e4 f7 b1 2d 92 eb cb  z   mRZ     -
0060 : d0 b6 50 86                                        P
 

ECM -> Card 0100 - Sun Nov 20 23:05:56 CET 2005
-----------------------------------------------
00: 81 00 61 00 6a 00 00 fd 10 01 08 64 a2 b3 f5 15     a j      d
10: 88 31 d7 a7 f0 01 0b cd ec 8a 37 be 43 5a be 90    1        7 CZ
20: d2 bb 86 eb 97 1f d8 3a 04 d1 73 22 d8 70 3a d6          :  s" p:
30: 37 41 59 69 d8 71 9a 53 11 37 7d 2b a9 9c b3 be   7AYi q S 7 +
40: cc e9 bf 16 29 29 2b 93 69 f1 68 81 0d c4 5c db       ))+ i h   \
50: 7a b6 e2 df 6d 52 5a 8d 7e e4 f7 b1 2d 92 eb cb   z   mRZ     -
60: d0 b6 50 86                                         P
 
ECM <- Card 0100 - Sun Nov 20 23:05:56 CET 2005
-----------------------------------------------
00: 81 10 10 05 cf c8 9c 7c b4 d0 00 5e 06 9f 03 86              ^
10: 91 a2 b9
[newcamd-v6.04 23:05:58] pmt update filter set

 
The patch I applied is pasted below (plz don't mind the line-numbers, I
did put this patch in the correct place (it's for a 17.1 mythtv
version).
 
@@ -84,6 +84,9 @@ 
  
 bool DVBCam::Start() 
 { 
+    ciThreadRunning = true;   // newcamd patch 20050217 
+    return true;      // newcamd patch 20050217 
+ 
     if (numslots == 0) 
         return false; 
  
@@ -109,6 +112,9 @@ 
  
 bool DVBCam::Stop() 
 {    
+    ciThreadRunning = false;   // newcamd patch 20050217 
+    return true;      // newcamd patch 20050217 
+ 
     if (ciThreadRunning) 
     { 
         exitCiThread = true; 
@@ -250,9 +256,103 @@ 
     GENERAL(QString("CA: CiHandler thread stopped")); 
 } 
  
+ 
+void camd_stop(unsigned int adapter)   // newcamd patch 20050217 
+{ 
+        struct sockaddr_un servaddr; 
+        int camdSocket; 
+        unsigned char camdBuffer[6]; 
+ 
+        servaddr.sun_family = AF_UNIX; 
+        sprintf(servaddr.sun_path, "/tmp/camd.socket%d", adapter); 
+        if ((camdSocket = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) 
+        { 
+                perror("[camdConnect] socket"); 
+                return; 
+        } 
+ 
+        if (connect(camdSocket, (struct sockaddr*) &servaddr,
sizeof(servaddr)) < 0) 
+        { 
+                perror("[camdConnect] connect"); 
+                close(camdSocket); 
+                return; 
+        } 
+ 
+        memset (camdBuffer+1, 0, 5); 
+        camdBuffer[0] = 0xff; 
+ 
+        if (write(camdSocket, camdBuffer, 6) < 0) 
+        { 
+                perror("[camdConnect] write"); 
+        } 
+ 
+        if (read(camdSocket, camdBuffer, 2) < 0) 
+        { 
+                perror("[camdConnect] read reply"); 
+        } 
+ 
+        close(camdSocket); 
+} 
+ 
+void camd_start(unsigned short servid, unsigned short pmtpid, unsigned
short apid, unsigned int adapter)   // newcamd patch 20050217 
+{ 
+        struct sockaddr_un servaddr; 
+        int camdSocket; 
+        unsigned char camdBuffer[6]; 
+        unsigned short pid; 
+ 
+        servaddr.sun_family = AF_UNIX; 
+        sprintf(servaddr.sun_path, "/tmp/camd.socket%d", adapter); 
+        if ((camdSocket = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) 
+        { 
+                perror("[camdConnect] socket"); 
+                return; 
+        } 
+ 
+        if (connect(camdSocket, (struct sockaddr*) &servaddr,
sizeof(servaddr)) < 0) 
+        { 
+                perror("[camdConnect] connect"); 
+                close(camdSocket); 
+                return; 
+        } 
+ 
+        pid = apid; 
+ 
+/* Use the following line, if you want newcamd to demux and watch the
pmt, * 
+ * because zapit, enigma or vdr don't do it
*/ 
+        camdBuffer[4] = (pid >> 8) & 0x1f; 
+ 
+/* Use the following line, if newcamd isn't allowed to demux/watch the
pmt, * 
+ * because zapit, enigma or vdr do it themself, this needs
/tmp/pmt.tmp,    * 
+ * when starting newcamd
*/ 
+//      camdBuffer[4] = ((pid >> 8) & 0x1f) | 0x80; 
+ 
+        camdBuffer[5] = pid & 0xff; 
+        pid = pmtpid; 
+        camdBuffer[0] = (pid >> 8) & 0x1f; 
+        camdBuffer[1] = pid & 0xff; 
+        pid = servid; 
+        camdBuffer[2] = pid >> 8; 
+        camdBuffer[3] = pid & 0xff; 
+ 
+        if (write(camdSocket, camdBuffer, 6) < 0) 
+        { 
+                perror("[camdConnect] write"); 
+        } 
+ 
+        if (read(camdSocket, camdBuffer, 2) < 0) 
+        { 
+                perror("[camdConnect] read reply"); 
+        } 
+ 
+        close(camdSocket); 
+} 
+ 
 void DVBCam::SetPMT(PMTObject &pmt) 
 { 
     GENERAL(QString("CA: SetPMT for ServiceID=%1").arg(pmt.ServiceID));

+    camd_stop(cardnum);            // newcamd patch 20050217 
+    camd_start(pmt.ServiceID,0,0,cardnum);      // newcamd patch
20050217 
     pthread_mutex_lock(&pmt_lock); 
     PMTList.clear(); 
     PMTList += pmt; 


-- 
Dit bericht is gescanned op virussen en andere gevaarlijke
inhoud door MailScanner en lijkt schoon te zijn.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mythtv.org/pipermail/mythtv-users/attachments/20051121/1f530fc0/attachment.htm


More information about the mythtv-users mailing list