Mailing List archive

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

[linux-dvb] Re: Problems when switching between Channels



Bernd Hoose wrote:
> 
> I've got some Problems wenn i or the EPG Scanners zap betwenn the Channels.
> After a few switches i only get errors "VDR 140 Error channel xx not synced
> front.sync=0! Retry"
> If this happens at timerrecording the timer is benn deleted by system.
> Nothing helps unless of new Booting.

I am seeing exactly the same thing.

I have implemented the following workaround which greatly
reduces the propability of this problem:

*  I have modified vdr to exit normally after it has
   been idle for a while.

*  I am calling vdr in a loop that reloads the driver
   after vdr exits.



Here is the vdr patch (for 0.71):

--- VDR/vdr.c   Sat Feb 24 17:18:43 2001
+++ /wald/home/cko/linux/VDR/vdr.c      Mon Feb 26 09:54:10 2001
@@ -247,6 +247,7 @@
   int LastChannel = -1;
   int PreviousChannel = cDvbApi::CurrentChannel();
   time_t LastActivity = time(NULL);
+  time_t busy_time = LastActivity;
   int MaxLatencyTime = 0;
 
   if (WatchdogTimeout > 0) {
@@ -274,6 +275,7 @@
         if (!Menu) {
            cTimer *Timer = cTimer::GetMatch();
            if (Timer) {
+              busy_time = time(NULL);
               if (!cRecordControls::Start(Timer)) {
                  //TODO need to do something to prevent the timer from hitting over and over again...
                  }
@@ -374,7 +376,8 @@
               }
            }
         else
-           LastActivity = time(NULL);
+           busy_time = LastActivity = time(NULL);
+        if (time(NULL) > busy_time + 1800) Interrupted = -1;
         }
   isyslog(LOG_INFO, "caught signal %d", Interrupted);
   Setup.CurrentChannel = cDvbApi::CurrentChannel();



Here is the shell script:

#! /bin/sh
cd /usr/local/DVB/driver
make insmod
while(true)
do
   date
   cd /usr/local/VDR
   su cko -c "/usr/local/VDR/vdr -v /video -c ."
   killproc -TERM /usr/local/VDR/vdr
   cd /usr/local/DVB/driver
   sleep 10
   make reload
done


With the above modification, most of my recordings now work again.

It was suggested on this list that the problem might go
away when I make sure that all my channels in my channels.conf
file actually exist and have proper parameters. I checked.
Right after reloading the driver and vdr, I can tune into all 
defined channels and I have both proper video and audio.

Klaus reported that he is seeing the same problem, but far
less frequently. As you can see above, I have set the "reload time"
to half an hour. Even with frequent driver reloads like this,
the problem still hits me every few days.

Also see my posting
   http://linuxtv.org/mailinglists/linux-dvb/msg03294.html
about this problem.


> Second Problem, Timerrecord starts an i get Error " VDR 292 Error Buffer
> size xxxxx" and nothing recorded.
> After reboot recording recording start at once system is up.

I guess that wil go away, too, when you implement the
above workaround.




Carsten.


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



Home | Main Index | Thread Index