Mailing List archive

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

[vdr] Re: ASTON 1.05 Module and french pay tv (CanalSatellite),no decrypti on...



Le 12/21/2003 12:49 PM, Patrick Gueneau a joliment écrit :
Hello Heiko,

You should try to find an old post from Antonino Sergi who gave us a Patch for VDR 1.2.5 to have ASTON CAM working.

Everything is ok BUT second audio PID support.
Not everything ;-) there's no subtitles for canal+ and canalsatellite with a cam.

Here is the patch :




--
Powered .~.
by Linux /V\
------ // \\
solutions for /( )\
smart penguins ^`~'^
Here is a rough patch to make it work:
--- vdr-1.2.2/ci.c      2003-08-02 12:00:01.000000000 +0200
+++ vdr-1.2.2-mod/ci.c  2003-09-14 15:16:56.000000000 +0200
@@ -1253,10 +1253,10 @@
   capmt[length++] = 0x00; // program_info_length L
 }

-void cCiCaPmt::AddPid(int Pid)
+void cCiCaPmt::AddPid(int Pid, int StreamType)
 {
   //XXX buffer overflow check???
-  capmt[length++] = 0x00; //XXX stream_type (apparently doesn't matter)
+  capmt[length++] = StreamType; //XXX stream_type (apparently doesn't matter, except for Aston/SECA)
   capmt[length++] = (Pid >> 8) & 0xFF;
   capmt[length++] =  Pid       & 0xFF;
   esInfoLengthPos = length;

vdr-1.2.2-mod/ci.h
--- vdr-1.2.2/ci.h      2003-05-25 13:44:47.000000000 +0200
+++ vdr-1.2.2-mod/ci.h  2003-09-14 16:51:40.000000000 +0200
@@ -66,7 +66,7 @@
   uint8_t capmt[2048]; ///< XXX is there a specified maximum?
 public:
   cCiCaPmt(int ProgramNumber);
-  void AddPid(int Pid);
+  void AddPid(int Pid, int StreamType);
   void AddCaDescriptor(int Length, uint8_t *Data);
   };

vdr-1.2.2-mod/dvbdevice.c
--- vdr-1.2.2/dvbdevice.c       2003-05-24 15:23:51.000000000 +0200
+++ vdr-1.2.2-mod/dvbdevice.c   2003-09-14 16:52:25.000000000 +0200
@@ -276,13 +276,13 @@
                               cCiCaPmt CaPmt(channel.Sid());
                               CaPmt.AddCaDescriptor(length, buffer);
                               if (channel.Vpid())
-                                 CaPmt.AddPid(channel.Vpid());
+                                 CaPmt.AddPid(channel.Vpid(),0x02);
                               if (channel.Apid1())
-                                 CaPmt.AddPid(channel.Apid1());
+                                 CaPmt.AddPid(channel.Apid1(),0x04);
                               if (channel.Apid2())
-                                 CaPmt.AddPid(channel.Apid2());
+                                 CaPmt.AddPid(channel.Apid2(),0x04);
                               if (channel.Dpid1())
-                                 CaPmt.AddPid(channel.Dpid1());
+                                 CaPmt.AddPid(channel.Dpid1(),0x00);
                               if (ciHandler->SetCaPmt(CaPmt, Slot)) {
                                  tunerStatus = tsCam;
                                  startTime = 0; 

Home | Main Index | Thread Index