Anssi Hannula wrote:
On 5/27/06, Klaus Schmidinger Klaus.Schmidinger@cadsoft.de 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