On Sat, May 19, 2012 at 11:57:35PM +0200, Klaus Schmidinger wrote:
On 19.05.2012 22:32, Juergen Lock wrote:
Hi!
(I guess the forums are not the best place to post this, hence reposted here...)
By accident I stumbled across the special case for TT-budget S2-3200 (DVB-S/DVB-S2) in vdr's dvbdevice.c, and since both my tuners using the pctv452e driver have the same issue (which are STB0899 too, issue is the red/yellow/green bars in femon/osd didn't appear) I added an OPTION to the FreeBSD port (STB0899_SIGNAL in the port's make config menu) to enable the patch below. Optional since I don't know if there are STB0899-based tuners that don't have the problem, does anyone here know? (see log, if vdr logs like
vdr: [29376960] frontend 0/0 provides DVB-S,DVB-S2,DSS with QPSK ("STB0899 Multistandard")
and the bars appear without the patch please let us know, noting pci ids for the cards especially if different from 0x13c2:0x1019 or if it's usb, thanx!)
Cheers, Juergen
And here comes the patch, also at:
http://www.freebsd.org/cgi/cvsweb.cgi/ports/multimedia/vdr/files/stb0899-sig...
--- dvbdevice.c.orig +++ dvbdevice.c @@ -560,6 +560,12 @@ int cDvbTuner::GetSignalStrength(void) c switch (subsystemId) { case 0x13C21019: MaxSignal = 670; break; // TT-budget S2-3200 (DVB-S/DVB-S2) } +#if 1
- // XXX This is likely not correct for all cards using stb0899
- // but pctv452e usb ones seem to be affected too...
- if (!strcmp(device->DeviceName(), "STB0899 Multistandard"))
- MaxSignal = 670;
+#endif int s = int(Signal) * 100 / MaxSignal; if (s> 100) s = 100; @@ -632,6 +638,12 @@ int cDvbTuner::GetSignalQuality(void) co switch (subsystemId) { case 0x13C21019: MaxSnr = 200; break; // TT-budget S2-3200 (DVB-S/DVB-S2) } +#if 1
// XXX This is likely not correct for all cards using stb0899
// but pctv452e usb ones seem to be affected too...
if (!strcmp(device->DeviceName(), "STB0899 Multistandard"))
MaxSnr = 200;
+#endif int a = int(Snr) * 100 / MaxSnr; int b = 100 - (Unc * 10 + (Ber / 256) * 5); if (b< 0)
Maybe I'm missing something here, but why don't you just add the subsystem id of your card to the switch statements?
Heh.
Because a) it's usb, b) I'm on FreeBSD which doesn't emulate Linux' /sys/class/dvb nodes and finding out which /dev/dvb node belongs to which usbid isn't as straightforward there, and c) I was wondering if the bug maybe affects all STB0899 frontends not just some.
Cheers, Juergen