Google
  Web www.spinics.net

[PATCH, RFC] STB0899 signal strength (pctv452e, others too?)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


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-signalstrength.patch?rev=1.2;content-type=text%2Fplain

--- 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)

_______________________________________________
vdr mailing list
vdr@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


[Linux Media]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Devices]     [Big List of Linux Books]     [Fedora Users]     [Webcams]     [Fedora Women]     [ALSA Devel]     [Linux USB]

Powered by Linux