diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 8066a4d2..66aae300 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -880,3 +880,6 @@ Alessio Sangalli Pedro Miguel Sequeira de Justo Teixeira for reporting a problem with crc32 in SI handling on 64bit systems for reporting an alignment problem in CAM access on 64bit systems + +Antonino Sergi + for adding 'StreamType' setting to CAM communication diff --git a/HISTORY b/HISTORY index af645997..43fa1b4d 100644 --- a/HISTORY +++ b/HISTORY @@ -2470,7 +2470,7 @@ Video Disk Recorder Revision History - Final release of version 1.2.6. -2003-12-22: Version 1.3.0 +2003-12-23: Version 1.3.0 - Changed thread handling to make it work with NPTL ("Native Posix Thread Library"). Thanks to Jon Burgess, Andreas Schultz, Werner Fink and Stefan Huelswitt. @@ -2506,3 +2506,5 @@ Video Disk Recorder Revision History Miguel Sequeira de Justo Teixeira for reporting this one). - Fixed an alignment problem in CAM access on 64bit systems (thanks to Pedro Miguel Sequeira de Justo Teixeira for reporting this one). +- Added 'StreamType' setting to CAM communication, which is important for + Aston/SECA CAMs (thanks to Antonino Sergi). diff --git a/ci.c b/ci.c index 6ddd4768..d4477d55 100644 --- a/ci.c +++ b/ci.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: ci.c 1.18 2003/12/22 15:52:31 kls Exp $ + * $Id: ci.c 1.19 2003/12/23 10:19:56 kls Exp $ */ /* XXX TODO @@ -1278,10 +1278,10 @@ cCiCaPmt::cCiCaPmt(int ProgramNumber) capmt[length++] = 0x00; // program_info_length L } -void cCiCaPmt::AddPid(int Pid) +void cCiCaPmt::AddPid(int Pid, uint8_t StreamType) { //XXX buffer overflow check??? - capmt[length++] = 0x00; //XXX stream_type (apparently doesn't matter) + capmt[length++] = StreamType; capmt[length++] = (Pid >> 8) & 0xFF; capmt[length++] = Pid & 0xFF; esInfoLengthPos = length; diff --git a/ci.h b/ci.h index 6b81a18c..e83deea0 100644 --- a/ci.h +++ b/ci.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: ci.h 1.9 2003/10/26 12:22:09 kls Exp $ + * $Id: ci.h 1.10 2003/12/23 10:20:59 kls Exp $ */ #ifndef __CI_H @@ -68,7 +68,7 @@ private: uint8_t capmt[2048]; ///< XXX is there a specified maximum? public: cCiCaPmt(int ProgramNumber); - void AddPid(int Pid); + void AddPid(int Pid, uint8_t StreamType); void AddCaDescriptor(int Length, uint8_t *Data); }; diff --git a/dvbdevice.c b/dvbdevice.c index e456a916..25c5fd96 100644 --- a/dvbdevice.c +++ b/dvbdevice.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbdevice.c 1.73 2003/12/22 10:52:24 kls Exp $ + * $Id: dvbdevice.c 1.74 2003/12/23 10:23:16 kls Exp $ */ #include "dvbdevice.h" @@ -279,13 +279,13 @@ void cDvbTuner::Action(void) cCiCaPmt CaPmt(channel.Sid()); CaPmt.AddCaDescriptor(length, buffer); if (channel.Vpid()) - CaPmt.AddPid(channel.Vpid()); + CaPmt.AddPid(channel.Vpid(), 2); if (channel.Apid1()) - CaPmt.AddPid(channel.Apid1()); + CaPmt.AddPid(channel.Apid1(), 4); if (channel.Apid2()) - CaPmt.AddPid(channel.Apid2()); + CaPmt.AddPid(channel.Apid2(), 4); if (channel.Dpid1()) - CaPmt.AddPid(channel.Dpid1()); + CaPmt.AddPid(channel.Dpid1(), 0); if (ciHandler->SetCaPmt(CaPmt, Slot)) { tunerStatus = tsCam; startTime = 0;