Anssi Hannula wrote: > NIT handling was changed in 1.4.3-4 by adding an additional check if > we're actually receiving this transponder. See the current code: > >> for (cChannel *Channel = Channels.First(); Channel; Channel >> = Channels.Next(Channel)) { >> if (!Channel->GroupSep() && Channel->Source() == Source >> && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == >> ts.getTransportStreamId()) { >> if (Setup.UpdateChannels >= 5) { >> if (ISTRANSPONDER(Frequency / 1000, >> Transponder())) { // only modify channels if we're actually receiving this >> transponder > > The above check was added. However, the variable 'Frequency' may not > always be the current transponder frequency. The current transponder > could also be in the Frequencies[] array. This causes the channel update > to be always disabled. > > Below we search the array if the transponder of the 'Channel' is there: > >> if (!ISTRANSPONDER(Frequency / 1000, >> Channel->Transponder())) { >> for (int n = 0; n < NumFrequencies; n++) { >> if (ISTRANSPONDER(Frequencies[n] / >> 1000, Channel->Transponder())) { >> Frequency = Frequencies[n]; >> break; >> } >> } >> } > > Maybe the new check should be moved here, so that it uses the new > correct 'Frequency' that was found from Frequencies[] in the loop above? > >> Channel->SetCableTransponderData(Source, >> Frequency, Modulation, SymbolRate, CodeRate); >> } >> } >> found = true; >> } >> }
Can you please provide a (tested) patch? Klaus _______________________________________________ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr