VPS Timer stop too early

Message ID 42EB60C9.1070500@cadsoft.de
State New
Headers

Commit Message

Klaus Schmidinger July 30, 2005, 11:13 a.m. UTC
  Klaus Schmidinger wrote:
> Oliver Holler wrote:
> 
>> Hi,
>>
>> I'm a great fan of the VPS function.
>> It was one of the main reason to use VDR.
>> Unfortunatelly the VPS timers do not work for me, as expected.
>> In general they stop too early.
>> They should stop recording when Running Status=1 (not running).
>> Ist that right?
>> ...

Ok, I found it.
It only happens with repeating timers, that's why my explicit
tests (with one time recordings) didn't show this error.

It is caused by a change I made in VDR 1.3.37:



Simply remove these two lines and it should work again.
I'll need to look for a different way to make sure a VPS timer
only records a programme with exactly that VPS time.

Klaus
  

Comments

Oliver Holler July 30, 2005, 7:23 p.m. UTC | #1
> --- Urspr√ľngliche Nachricht ---
> Von: Klaus Schmidinger <Klaus.Schmidinger@cadsoft.de>
> An: vdr@linuxtv.org
> Betreff: Re: [vdr] VPS Timer stop too early
> Datum: Sat, 30 Jul 2005 13:13:13 +0200
> 
> Klaus Schmidinger wrote:
> > Oliver Holler wrote:
> > 
> >> Hi,
> >>
> >> I'm a great fan of the VPS function.
> >> It was one of the main reason to use VDR.
> >> Unfortunatelly the VPS timers do not work for me, as expected.
> >> In general they stop too early.
> >> They should stop recording when Running Status=1 (not running).
> >> Ist that right?
> >> ...
> 
> Ok, I found it.
> It only happens with repeating timers, that's why my explicit
> tests (with one time recordings) didn't show this error.
> 
> It is caused by a change I made in VDR 1.3.37:
> 
> --- timers.c    2005/06/11 14:19:58     1.32
> +++ timers.c    2005/06/18 12:49:55     1.33
> @@ -363,6 +363,8 @@
> 
>     if (HasFlags(tfActive)) {
>        if (HasFlags(tfVps) && !Directly && event && event->Vps() &&
> schedule && schedule->PresentSeenWithin(30)) {
> +        if (startTime != event->Vps())
> +           return false;
>           startTime = event->StartTime();
>           stopTime = event->EndTime();
>           return event->IsRunning(true);
> 
> 
> Simply remove these two lines and it should work again.
> I'll need to look for a different way to make sure a VPS timer
> only records a programme with exactly that VPS time.
> 
> Klaus
> 
> _______________________________________________
> vdr mailing list
> vdr@linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
> 

I tried the patch and yes now it works perfectly. :-)
Thank you very much for the quick help!
  
Dominique Simon July 31, 2005, 8:32 a.m. UTC | #2
Klaus Schmidinger schrieb:

> Ok, I found it.

Hi Klaus! Maybe it's time for a new Dev Release of VDR? There are so 
many patches for .27 now...

Ciao, Dominique
  
Johannes Schoeller July 31, 2005, 9:31 a.m. UTC | #3
Oliver Holler wrote:

> I tried the patch and yes now it works perfectly. :-)
> Thank you very much for the quick help!

i think of using VPS as well. but i'm not sure with which channels to 
use it.

could you pls give a short summary of the channels it works with, and 
which channels better to avoid?

thanks

servus hannes
  
Klaus Schmidinger July 31, 2005, 9:38 a.m. UTC | #4
Dominique Simon wrote:
> Klaus Schmidinger schrieb:
> 
>> Ok, I found it.
> 
> 
> Hi Klaus! Maybe it's time for a new Dev Release of VDR? There are so 
> many patches for .27 now...

I'm working on it - but I'm not sure whether there will be one today.
There's an F1 race... ;-)

Klaus
  
Wolfgang Rohdewald July 31, 2005, 11:27 a.m. UTC | #5
On Sonntag 31 Juli 2005 11:38, Klaus Schmidinger wrote:
> I'm working on it - but I'm not sure whether there will be one today.
> There's an F1 race... ;-)

well I could recommend a very nice piece of software for such conflicts <g>
  

Patch

--- timers.c    2005/06/11 14:19:58     1.32
+++ timers.c    2005/06/18 12:49:55     1.33
@@ -363,6 +363,8 @@ 

    if (HasFlags(tfActive)) {
       if (HasFlags(tfVps) && !Directly && event && event->Vps() && schedule && schedule->PresentSeenWithin(30)) {
+        if (startTime != event->Vps())
+           return false;
          startTime = event->StartTime();
          stopTime = event->EndTime();
          return event->IsRunning(true);