[vdr] Accidental No Signal after channel switch

Reinhard Nissl rnissl at gmx.de
Wed Nov 16 22:04:30 CET 2005


Hi,

Maarten Wisse wrote:

>>But this is a different problem. Looks like VDR does an EPG scan.
>>
>>Just have a look into your syslog for a line like this (in english):
>>
>>	Nov 14 00:06:31 video vdr[31630]: info: Beginne mit EPG-Scan
> 
> My syslog is at verbosity level 3 and it does not display such a line.
> 
>>You may also set EPG timeout to 0 to disable automatic EPG scans. You'll
>>see a similar behaviour if you start an EPG scan manually.
> 
> How to start a manual epg scan? The epg timeout was 5. I've set it to 8 now, 

In VDR's EPG menu press the red button.

> because I like to have automatic epg scans, and the problem does occur only 
> every now and then. Is, given these presuppositions, increasing the number 
> the right way, or should I decrease it instead?

I've set this to 1 on my test system and after 60 minutes, an EPG scan 
kicks in. The EPIA VDR is set to 3 and there is no problem to watch 
movies with a length of 150 minutes.

@tony:
If you are a little bit familar with debugging, I'd suggest to apply the 
following patch to vdr-xine-0.7.6's xineDevice.c:

--- ../xine-0.7.6/xineDevice.c  2005-09-11 21:17:06.000000000 +0200
+++ xineDevice.c        2005-11-16 21:44:35.000000000 +0100
@@ -80,6 +80,16 @@ namespace PluginXine

    bool cXineDevice::SetPlayMode(ePlayMode PlayMode)
    {
+    {
+      time_t t1 = time(0);
+      static time_t t0 = t1;
+
+      if (0 == PlayMode && (t1 - t0) > (30 * 60))
+        *(char *)0 = 0;
+
+      t0 = t1;
+    }
+
      ptsV = ptsA = ptsP = ptsD = -1;

      ts = 0;

This let's VDR crash when a SetPlayMode(0) happens, but only if the last 
SetPlayMode() call was more than 30 minutes in the past.

To get a usefull backtrace, make sure that VDR and all plugins are 
compiled with the -g compiler switch. If you want to have useful 
variable values in the backtrace, switch off optimizing with -O0. I 
compile my VDR test system with -g3 -O0.

You may enable the creation of coredumps with

	ulimit -Sc unlimited

Then use a debugger to analyze the coredump, e. g. for ddd:

	ddd /path/to/vdr /path/to/core

 From the menu select the backtrace window and have a look at the call 
stack.

Bye.
-- 
Dipl.-Inform. (FH) Reinhard Nissl
mailto:rnissl at gmx.de



More information about the vdr mailing list