Mailing List archive

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

[linux-dvb] Re: Channel switching



Andreas Peter wrote:
> 
> Klaus Schmidinger schrieb:
> > I have given my 'ctest.c' test program another try today and was able
> > to demonstrate the "channel not sync'ed" error with a small set of
> > channels.
> >
> > What puzzles me is that for a while everything works fine, then suddenly
> > a channel can't be switched to. In such a case, sometimes it succeeds when
> > retrying, but most of the time all three attempts to switch to the
> > channel fail. It is also not always the same channel that fails.
> > A channel that was tuned to just fine in the previous loop can fail
> > in the next one.
> 
> I've ,like everyone else, this problem. Most of the time it's not possible
> for me to tune to SAT1, RTL2, Pro7, Kabel1 (12.480 GHz or 12.188GHz, Astra)
> if the system runs for couple of time.
> Often, after tuning to these channels, other channels doesn't work anymore.
> Now the interesting thing is, that tuning to DCTV (Hotbird 12.235. SR 13399
> (!!) ) works always. After tunig to this channel, everything is ok, and SAT1
> works again, without driver reload.
> Does anyone know the reason for this strange behavior?

I was also told by Andre' Draszik <ad@convergence.de> that he was able to
reproduce the problem with my ctest.c program, and that, when tuning fails,
switching to a different transponder and then back to the originally desired
channel would always work.

So I looked into the driver again and saw that in the mon_tune() function of
dvb.c actions are only taken if the new settings (like 'srate', 'fec' etc.)
differ from the old ones. That could explain why VDR's two retries almost never
worked, but tuning to a different transponder helped (sometimes).

I therefore commented out the checks whether the settings have actually changed,
so that the tuning commands would always be sent to the DVB card. The result was
that still sometimes channels don't sync at the first attempt, but (as far as I
have seen in my tests) they always sync when VDR retries tuning to the same channel.

So, if those of you who can reproduce the problem with my ctest.c program (or with
VDR itself) could please apply the following patch to the driver and try again
with this patched version, I would appreciate learning about your results.
What you should see that either tuning always works at the first attempt (that would
be the best case), or that it succeeds after the first retry. There should never be
more than one retry (if there is, then this is probably not the solution to the
problem).

Klaus

--- dvb.c.001   Fri Sep  7 08:21:43 2001
+++ dvb.c       Sat Sep  8 11:28:02 2001
@@ -2771,16 +2772,20 @@
 {
         switch (dvb->dvbtype) {
         case DVB_S:
+/*
                 if (dvb->front.srate!=dvb->new_srate || 
                     dvb->front.fec!=dvb->new_fec) {
+*/
                         dvb->front.srate=dvb->new_srate;
                         dvb->front.fec=dvb->new_fec;
                         demod_command(dvb, DVB_SET_FRONTEND, &dvb->front); 
                         //if (dvb->demod_type==DVB_DEMOD_STV0299) 
                                 demod_command(dvb, DVB_RESET, 0); 
+/*
                 } 
                 if (dvb->front.freq==dvb->new_freq && fe_lock(dvb))
                         return mon_complete(dvb);
+*/
 
                 dvb->front.freq=dvb->new_freq;
                 tuner_command(dvb, TUNER_SET_TVFREQ, &dvb->front.freq); 

-- 
_______________________________________________________________

Klaus Schmidinger                       Phone: +49-8635-6989-10
CadSoft Computer GmbH                   Fax:   +49-8635-6989-40
Hofmark 2                               Email:   kls@cadsoft.de
D-84568 Pleiskirchen, Germany           URL:     www.cadsoft.de
_______________________________________________________________


-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.


Home | Main Index | Thread Index