diff -Nup reelchannelscan-0.4.1/filter.c reelchannelscan-0.4.1-mod/filter.c --- reelchannelscan-0.4.1/filter.c 2006-11-25 04:55:56.000000000 +1000 +++ reelchannelscan-0.4.1-mod/filter.c 2008-01-05 00:40:42.000000000 +1000 @@ -383,12 +383,15 @@ void PatFilter::Process(u_short Pid, u_c int Ppid = pmt.getPCRPid(); int Apids[MAXAPIDS + 1] = { 0 }; int Dpids[MAXDPIDS + 1] = { 0 }; + int Spids[MAXDPIDS + 1] = { 0 }; #if VDRVERSNUM >= 10332 char ALangs[MAXAPIDS + 1][MAXLANGCODE2] = { "" }; char DLangs[MAXDPIDS + 1][MAXLANGCODE2] = { "" }; + char SLangs[MAXDPIDS + 1][MAXLANGCODE2] = { "" }; #else char ALangs[MAXAPIDS + 1][4] = { "" }; char DLangs[MAXDPIDS + 1][4] = { "" }; + char SLangs[MAXDPIDS + 1][4] = { "" }; #endif int Tpid = 0; int NumApids = 0; @@ -463,7 +466,8 @@ void PatFilter::Process(u_short Pid, u_c delete d; } } - Channel->SetPids(Vpid, Vpid ? Ppid : 0, Apids, ALangs, Dpids, DLangs, Tpid); +// Channel->SetPids(Vpid, Vpid ? Ppid : 0, Apids, ALangs, Dpids, DLangs, Tpid); + Channel->SetPids(Vpid, Vpid ? Ppid : 0, Apids, ALangs, Dpids, DLangs, Spids, SLangs, Tpid); printf("#### %i %s %i %i SID %i\n",num,Channel->Name(),Vpid, Apids[0], Channel->Sid()); Channel->SetCaIds(CaDescriptors->CaIds()); Channel->SetCaDescriptors(CaDescriptorHandler.AddCaDescriptors(CaDescriptors)); @@ -528,7 +532,7 @@ void SdtFilter::Process(u_short Pid, u_c return; SI::SDT::Service SiSdtService; for (SI::Loop::Iterator it; sdt.serviceLoop.getNext(SiSdtService, it); ) { - cChannel *channel = Channels.GetByChannelID(tChannelID(Source(), sdt.getOriginalNetworkId(), sdt.getTransportStreamId(), SiSdtService.getServiceId())); + cChannel *channel = Channels.GetByServiceID(Source(), Transponder(), SiSdtService.getServiceId()); if (!channel) channel = Channels.GetByChannelID(tChannelID(Source(), 0, Transponder(), SiSdtService.getServiceId())); cLinkChannels *LinkChannels = NULL;