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; > } > } -- Anssi Hannula _______________________________________________ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr