[vdr] NIT handling change in 1.4.3-4

Klaus Schmidinger Klaus.Schmidinger at cadsoft.de
Thu Jan 4 15:03:42 CET 2007


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



More information about the vdr mailing list