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