[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