Re: VDR not cleaning .del directories

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

 



Hello,

pe, 2018-01-19 kello 19:48 +0200, Teemu Suikki kirjoitti:
> I'm starting to think that maybe my problem IS caused entirely by
> this
> softhddevice bug. Because my softhddevice keep freezing quite
> frequently, I have added a shutdown command that detaches
> softhddevice
> and leaves vdr running. And then when I watch something, I'm pressing
> buttons and using menus and there might be timers recording etc, so
> vdr never becomes idle enough to do the housekeeping?
> 
> I tried to understand the code, but I'm having difficulties. :) in
> vdr.c, only place that sets LastInteract is this:
> 
>         Interact = Menu ? Menu : cControl::Control(); // might have
> been closed in the mean time
>         if (Interact) {
>            LastInteract = Now;
>            eOSState state = Interact->ProcessKey(key);
>            if (state == osUnknown && Interact != cControl::Control())
> {
> 
> So.. Does this mean that softhddevice's dummy player has menu open
> all
> the time? softhddevice.cpp doesn't have really anything menu-related
> in the dummy player, all those methods must be inherited from main
> vdr class.
> 
> Only thing that looks suspicious is this, dummy player's ProcessKey:
> 
> eOSState cSoftHdControl::ProcessKey(eKeys key)
> {
>     if (SuspendMode == SUSPEND_NORMAL && (!ISMODELESSKEY(key)
>             || key == kMenu || key == kBack || key == kStop)) {
>         delete Player;
> 
>         Player = NULL;
>         Resume();
>         SuspendMode = NOT_SUSPENDED;
>         return osEnd;
>     }
>     return osContinue;
> }

Looks like the plugin has some kind of dummy player open. If I remember
right, housekeeping tasks are not handled (by design) when you have a
player open.

I think I had to work around similar issues when I wrote suspendoutput
plugin. It was quite a while ago (2005-09-20: Added vdr idle actions)
so I don't remember all the details anymore ...

Anyway, the plugin is relatively simple:
http://phivdr.dyndns.org/vdr/vdr-suspendoutput/suspendoutput-2.1.0/susp
endoutput.c

Housekeeping tasks are handled in MainThreadHook() and
CheckInactivityTimer().

> Should it really return osContinue all the time?
>
> 
> 2018-01-18 23:37 GMT+02:00 Klaus Schmidinger <Klaus.Schmidinger@tvdr.
> de>:
> > On 18.01.2018 21:26, Teemu Suikki wrote:
> > > 
> > > Ok, I did some debugging.
> > > 
> > > First of all, I noticed something weird that perhaps is not even
> > > related to this problem. In vdr.c there is a check:
> > > 
> > >   if ((Now - LastInteract) > ACTIVITYTIMEOUT
> > > 
> > > if softhhddevice is detached or suspended, "Now - LastInteract"
> > > is
> > > always zero, and vdr can never enter housekeeping tasks. This
> > > must be
> > > a bug in softhddevice?
> > 
> > 
> > I guess so.
> > 
> > 
> > Klaus
> > 
> > 
> > _______________________________________________
> > vdr mailing list
> > vdr@xxxxxxxxxxx
> > https://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
> 
> 
> 

_______________________________________________
vdr mailing list
vdr@xxxxxxxxxxx
https://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr




[Index of Archives]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Big List of Linux Books]     [Fedora Users]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux