<div dir="ltr"><div class="gmail_quote">On Sat, Feb 7, 2009 at 3:57 AM, Josef Wolf <span dir="ltr">&lt;<a href="mailto:jw@raven.inka.de">jw@raven.inka.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello,<br>
<br>
sometimes, I experience non-deterministic problems with tuning on some<br>
transponders with dvb-s. &nbsp;For example, on astra-H-11954, I have about<br>
50% chance to get a good tune. &nbsp;If I get a bad tune, I still receive<br>
TS packets from the chosen transponder, but about 10%..20% of the<br>
packets are lost. &nbsp;The (remaining) packets contain PAT/PMT/PES packets<br>
from the chosen transponder, so it is pretty safe to assume that<br>
actual tuning worked properly.<br>
<br>
What I do is pretty much straight forward:<br>
<br>
 &nbsp;1. open frontend/dmx/dvr devices<br>
 &nbsp;2. send diseqc command to switch to desired input<br>
 &nbsp;3. use FE_SET_FRONTEND ioctl to tune to desired transponder<br>
 &nbsp;4. wait for FE_HAS_LOCK<br>
 &nbsp;5. set dmx_pesfilter_params to:<br>
 &nbsp; &nbsp; &nbsp; &nbsp; pid: &nbsp; &nbsp; &nbsp;0x2000 &nbsp;/* yes, I want the whole transponder */<br>
 &nbsp; &nbsp; &nbsp; &nbsp; input: &nbsp; &nbsp;DMX_IN_FRONTEND<br>
 &nbsp; &nbsp; &nbsp; &nbsp; output: &nbsp; DMX_OUT_TS_TAP<br>
 &nbsp; &nbsp; &nbsp; &nbsp; pes_type: DMX_PES_OTHER<br>
 &nbsp; &nbsp; &nbsp; &nbsp; flags: &nbsp; &nbsp;DMX_IMMEDIATE_START<br>
<br>
With this sequence, I have about 50% chance to receive a proper TS<br>
stream. &nbsp;When the stream is not OK, I can see about 10%..20% loss<br>
of TS packets.<br>
<br>
I have checked signal quality, but there is no significant difference<br>
from working to non-working:<br>
<br>
 &nbsp; Status:1f sig:ac80 snr:d9e0 ber:00000000 unc:fffffffe FE_HAS_LOCK<br>
 &nbsp; Status:1f sig:adbe snr:dac4 ber:00000000 unc:fffffffe FE_HAS_LOCK<br>
<br>
So I have tried to narrow the problem, and I think I&#39;ve come pretty<br>
close (but still no cigar):<br>
<br>
Once the sequence (which is listed above) is completed, I can easily<br>
(but randomly, IOW: I have to try 1..3 times) switch from proper stream<br>
to broken stream and vice-versa simply by repeating step 3 with _exactly_<br>
the _same_ values.<br>
<br>
To be precise: on an already set-up transponder, re-executing this<br>
function:<br>
<br>
 &nbsp;static void tune_frequency (int ifreq, int sr)<br>
 &nbsp;{<br>
 &nbsp; &nbsp; &nbsp;struct dvb_frontend_parameters tuneto;<br>
<br>
 &nbsp; &nbsp; &nbsp;tuneto.frequency = ifreq*1000;<br>
 &nbsp; &nbsp; &nbsp;tuneto.inversion = INVERSION_AUTO;<br>
 &nbsp; &nbsp; &nbsp;tuneto.u.qpsk.symbol_rate = sr*1000;<br>
 &nbsp; &nbsp; &nbsp;tuneto.u.qpsk.fec_inner = FEC_AUTO;<br>
<br>
 &nbsp; &nbsp; &nbsp;if (ioctl(fefd, FE_SET_FRONTEND, &amp;tuneto) == -1) {<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fatal (&quot;FE_SET_FRONTEND failed: %s\n&quot;, strerror (errno));<br>
 &nbsp; &nbsp; &nbsp;}<br>
 &nbsp;}<br>
<br>
with _exactly_ the same values for ifreq and sr, is able to toggle from<br>
good TS stream to bad TS stream or vice-versa. &nbsp;As long as I avoid to<br>
call this function, the quality of the stream does _not_ change.</blockquote><div>I had exactly the same behavior of Twinhan SP-200 (1027) card until I totally gave up and bought Twinhan SP-400 (1041) card.<br>Interesting if those 2 cards have the same components.<br>
&nbsp;<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<br>
I have tried to use fixed values instead of *_AUTO for FEC and INVERSION,<br>
but that did not help either.<br>
<br>
Any ideas?</blockquote><div>What driver repository you use? And what driver is loaded for that card?<br></div><div>My guess was that the tuner is not properly reset/set before the tuning.<br>But (again) since I don&#39;t have any chip specification, I didn&#39;t have much progress with that.<br>
<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<br>
<br>
BTW:<br>
&nbsp;$ lspci -v<br>
&nbsp;[ ... ]<br>
&nbsp;03:07.0 Multimedia controller: Philips Semiconductors SAA7146 (rev 01)<br>
 &nbsp; &nbsp; &nbsp; &nbsp; Subsystem: Technotrend Systemtechnik GmbH Technotrend-Budget/Hauppauge WinTV-NOVA-CI DVB card<br>
 &nbsp; &nbsp; &nbsp; &nbsp; Flags: bus master, medium devsel, latency 32, IRQ 21<br>
 &nbsp; &nbsp; &nbsp; &nbsp; Memory at fdcfe000 (32-bit, non-prefetchable) [size=512]<br>
 &nbsp; &nbsp; &nbsp; &nbsp; Kernel driver in use: budget_ci dvb<br>
 &nbsp; &nbsp; &nbsp; &nbsp; Kernel modules: snd-aw2, budget-ci<br>
&nbsp;$ uname -a<br>
&nbsp;Linux raven 2.6.27.7-9-default #1 SMP 2008-12-04 18:10:04 +0100 x86_64 x86_64 x86_64 GNU/Linux<br>
<br>
_______________________________________________<br>
linux-dvb users mailing list<br>
For V4L/DVB development, please use instead <a href="mailto:linux-media@vger.kernel.org">linux-media@vger.kernel.org</a><br>
<a href="mailto:linux-dvb@linuxtv.org">linux-dvb@linuxtv.org</a><br>
<a href="http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb" target="_blank">http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb</a><br>
</blockquote></div><br></div>