Anssi Hannula wrote: > On 5/27/06, Klaus Schmidinger <Klaus.Schmidinger@xxxxxxxxxx> wrote: >> Klaus Schmidinger wrote: >> > Anssi Hannula wrote: >> >> ... >> >> Okay, attached is a patch for nit.c that checks for all the >> frequencies >> >> in frequency_list_descriptor for the channel's frequency and if found, >> >> use it so that channel's frequency is not changed. >> >> >> >> Also in the detection of new transponders all frequencies are added >> for >> >> the EITscanner. >> >> >> >> I tested it by removing a transponder from channels.conf, and VDR >> found >> >> it again (though it took a while, as there are *many* frequencies >> in the >> >> frequency_list_descriptor). This too hasn't been working before on the >> >> DVB-T network of Finland. >> >> ... >> >> Please test whether the attached version of the patch still works. >> Since none of the satellites I can receive uses the >> FrequencyListDescriptor, >> and I don't have cable or terrestrial signals, I can't test it myself. >> >> If it's ok like this for you, I would include it in tomorrow's >> maintenance patch. >> >> Note that I had to make a small change to libsi/si.h in order to >> avoid a compiler warning. > > Okay, I'll be able to test in few hours. > > But I can see few issues in the patch: > >> + if (fld) { >> + int n = 1; >> + for (SI::Loop::Iterator it3; fld->frequencies.hasNext(it3); ) { >> + int f = fld->frequencies.getNext(it3); >> + int ct = fld->getCodingType(); > This can be moved above the loop, as the descriptor has a common > coding_type. > >> + if (ct < 3) >> + f = BCD2INT(f) / (ct == 1 ? 100 : 10); >> + Frequencies[n++] = f; > You miss two ct cases: > - when ct == 3, frequency should be multiplied with 10. > - when ct == 0, coding_type is undefined, so I guess we should > disregard the frequency_list_descriptor then. Ah, you're right. Attached is a new version. Klaus -------------- next part -------------- A non-text attachment was scrubbed... Name: vdr-1.4.0-frequency-list-descriptor-3.diff Type: text/x-patch Size: 13747 bytes Desc: not available Url : http://www.linuxtv.org/pipermail/vdr/attachments/20060527/f860b483/vdr-1.4.0-frequency-list-descriptor-3-0001.bin