Mailing List archive

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

[vdr] Re: Fixed tuner lock detection



Dominique Simon wrote:
> 
> Am Samstag, 23. Oktober 2004 19:05 schrieb Klaus Schmidinger:
> > Well, that still doesn't answer the question what exactly your patch
> > does that is _not_ in VDR 1.3.13. I'm afraid you'll need to isolate that.
> 
> OK, after some HEAVY testing with your patch and portions of the other
> dvbdevice.c patch i finally found the solution :-)
> 
> I applied your tunerlock patch to my vdr 1.3.13 but i needed to change the
> dvbdevice.c file like this to get rid of "fw_cmd_idle" and "picture from
> previous channel and sound distortions from actual channel" bug
> 
> --- beisskante ---
> 
> #define WAIT_FOR_LOCK_AFTER_TUNING 1
> 
> ....
> ....
> ....
> ....
> 
> // Set the tuner and wait for a lock:
> 
>   dvbTuner->Set(Channel, DoTune, !EITScanner.UsesDevice(this));
> 
> #ifdef WAIT_FOR_LOCK_AFTER_TUNING
>   //XXX TODO preliminary fix for the "Unknown picture type" error
>   time_t t0 = time(NULL);
>   while (!dvbTuner->Locked() && time(NULL) - t0 < 5)
>      usleep(100);
> #endif
> 
>   if (!dvbTuner->Locked(TUNER_LOCK_TIMEOUT)) {
>      //XXX esyslog("ERROR: no lock for channel %s on device %d",
> Channel->ToText(), CardIndex() + 1);
>      return false;
>      }
> 
> --- beisskante ---
> 
> It seems the WAIT_FOR_LOCK_AFTER_TUNING simply is needed!

Well, the 'if (!dvbTuner->Locked(TUNER_LOCK_TIMEOUT))' is supposed to
do exactly that - just without the 'usleep(100)', it uses a cCondVar
instead.

So sorry, I don't see what difference this would make.

Klaus




Home | Main Index | Thread Index