On 19.01.2018 18:48, Teemu Suikki wrote:
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; } Should it really return osContinue all the time?
As long as a cPlayer (or a cReceiver, for that matter) is attached to a cDevice, VDR will not perform its housekeeping tasks. This is to avoid any problems during replay or recording, possibly caused by heavy disk access. Klaus _______________________________________________ vdr mailing list vdr@xxxxxxxxxxx https://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr