[softhddevice git] Wie softhddevice starten/beenden, damit VDR nach Timeraufnahme runterfährt

  • Hi,


    verwende jetzt seit ca. 2 wochen softhddevice und bin schwer davon begeistert!


    Das einzige was mich stört, ist dass der VDR nach einer Timeraufnahme nicht mehr runterfährt.


    Suchfunktion hab ich benutzt, einige Threads gefunden aber die Lösung habe ich immer noch nicht durchschaut. Ich denke in YaVDR wurden eigene workarounds eingebaut.


    Egal was ich mache, softhddevice fährt nach einer Timeraufnahme nicht herunter. Mit xine und xineliboutput funktionierts, es liegt definitiv am plugin. Manuell ausgeführter shutdown funktioniert immer,


    Vielleicht könntet Ihr mir die Parameter nennen, mit denen ich softhddevice starte muss. zB funktioniert bei mir -s auch nicht


    Danke

    Mein VDR: Software: vdr 1.7.30 vdr-xine, xine-lib-1.2, Ubuntu 10.04, 2.6.35 Hardware: GT 220, TT-PCI S2-1600 + Mystique SaTiX-S2 V2

    2 Mal editiert, zuletzt von sgp01 () aus folgendem Grund: Tags hinzugefügt

  • Ich denke in YaVDR wurden eigene workarounds eingebaut.


    Ja, wir haben da was "eigenes" :unsch (https://github.com/yavdr/yavdr…softhddevice-02-script.py)


    Vielleicht könntet Ihr mir die Parameter nennen, mit denen ich softhddevice starte muss. zB funktioniert bei mir -s auch nicht


    Also aus dem normalen Suspend-Modus kann der VDR nicht herunterfahren, das hatte ich hier von johns erfragt: [softhddevice] automatischer Shutdown aus Suspend bzw. Detached mode möglich?


    Du könntest das Plugin also z.B. mit -D (Detached) starten und wenn der VDR für einen Timer gestartet wurde das Frontend einfach detached lassen (das Attachen erzeugt die Benutzeraktivität, die den VDR erst nach dem Ablauf des UserInactivityTimeout herunterfahren lassen würde).
    Oder du legst einen Recording-Hook an (das hat IIRC Murry gemacht), der nach einer Aufnahme einfach per SVDRP ein HITK POWER zum VDR sendet...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Kann es sein, dass das detachen auch eine Benutzeraktivität triggert? Hab im Code gesucht und nichts gefunden.


    Mir ist es egal ob ich softhddevice detache oder suspende. Probiere jetzt eine Woche damit herum, beides fährt den VDR nicht herunter ... Auch nicht die -D Option.


    Ich hab mir aktuell ein Script gebaut, dass das softhddevice nach 10 min detached, sofern nicht eine spezielle Taste auf der FB gedrückt wurde (lässt sich leicht mit der Harmony realisieren). Aber selbst das war erfolglos....

    Mein VDR: Software: vdr 1.7.30 vdr-xine, xine-lib-1.2, Ubuntu 10.04, 2.6.35 Hardware: GT 220, TT-PCI S2-1600 + Mystique SaTiX-S2 V2

  • Kann es sein, dass das detachen auch eine Benutzeraktivität triggert? Hab im Code gesucht und nichts gefunden.


    Soweit ich es beim Testen gesehen habe, triggert es zumindest keine Benutzer-Inaktivität, die den VDR unmittelbar abschalten lässt, wenn der Benutzer zuvor aktiv war. Ich mache es daher so, dass ich immer den User inaktiv setze, indem ich die Power-Taste an den VDR sende (man kann alternativ auch den entsprechenden dbus2vdr-Befehl absetzen, um dem VDR zu signalisieren, dass der User inaktiv ist).

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Einmal editiert, zuletzt von seahawk1986 ()

  • Ich habe softhddevice mit xineliboutput verglichen.


    Xineliboutput ruft den ShutdownHandler im vdr eigentlich nur für den Emergency Exit auf.


    Code
    find -exec grep -H "ShutdownHandler." \{\} \;
    ./frontend_local.c:  	ShutdownHandler.RequestEmergencyExit();


    Softhddevice hingegen ruft den ShutdownHandler mehrfach auf:

    Code
    find -exec grep -H "ShutdownHandler." \{\} \;    	
    ./softhddevice.cpp:         	if (ShutdownHandler.GetUserInactiveTime()) {
    ./softhddevice.cpp:             	ShutdownHandler.SetUserInactive();
    ./softhddevice.cpp:	if (0 && SuspendMode == NOT_SUSPENDED && ShutdownHandler.IsUserInactive()) {
    ./softhddevice.cpp: 	if (ShutdownHandler.GetUserInactiveTime()) {
    ./softhddevice.cpp:     	ShutdownHandler.SetUserInactiveTimeout();
    ./softhddevice.cpp: 	if (ShutdownHandler.GetUserInactiveTime()) {
    ./softhddevice.cpp:     	ShutdownHandler.SetUserInactiveTimeout();


    Warum? Was ist der tiefere Grund dahinter? Was passiert wenn ich den ShutdownHandler auskommentiere?

    Mein VDR: Software: vdr 1.7.30 vdr-xine, xine-lib-1.2, Ubuntu 10.04, 2.6.35 Hardware: GT 220, TT-PCI S2-1600 + Mystique SaTiX-S2 V2

  • Schau dir den Code an den entsprechenden Zeilen doch einfach an, damit du weißt aus welchem Kontext sie heraus aufgerufen werden, da gibt es für die verschiedenen möglichen Konstellationen halt entsprechende Abfragen (inklusive der FIXIT-Stelle für den SUSPEND):

    Code
    $ find -exec grep -H -n "ShutdownHandler." \{\} \;
    ./softhddevice.cpp:1403:		if (ShutdownHandler.GetUserInactiveTime()) {
    ./softhddevice.cpp:1406:		    ShutdownHandler.SetUserInactive();
    ./softhddevice.cpp:2035:    if (0 && SuspendMode == NOT_SUSPENDED && ShutdownHandler.IsUserInactive()) {
    ./softhddevice.cpp:2452:	if (ShutdownHandler.GetUserInactiveTime()) {
    ./softhddevice.cpp:2453:	    ShutdownHandler.SetUserInactiveTimeout();
    ./softhddevice.cpp:2486:	if (ShutdownHandler.GetUserInactiveTime()) {
    ./softhddevice.cpp:2487:	    ShutdownHandler.SetUserInactiveTimeout();

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Moin,


    Bei SVDRP Attach und Resume wird Useraktivität getriggert, damit der VDR nicht sofort wieder ausgeht.
    Das Problem ist wenn der Dummyplayer läuft, das dieser das Runterfahren unterdrückt.
    Deshalb kein Suspend machen, wenn der VDR runterfahren soll.


    Vielleicht sollte ich bei "DETA" den Dummy Player herausnehmen.


    Wenn das Plugin aber im Detached Modus startet gibts keinen Dummy Player und damit funktioniert auch das Runterfahren.


    Wenn man umbedingt Suspend will und runterfahren, dann mit "svdrpsend plug softhddevice prim xx" Primary umschalten.
    Ist auch Suspend/Dettach aber ohne Dummy Player.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Danke für die Erklärung. Ich werde es heute Nacht nochmals detached mit

    Code
    -P'softhddevice -D -f' \


    testen und berichten.


    Was ist eigentlich der Sinn des Dummyplayers?

    Mein VDR: Software: vdr 1.7.30 vdr-xine, xine-lib-1.2, Ubuntu 10.04, 2.6.35 Hardware: GT 220, TT-PCI S2-1600 + Mystique SaTiX-S2 V2

  • Der Dummyplayer soll die DVB-Karte freimachen und die Fernbedienung abfangen,
    damit über die Fernbedienung der Suspend Modus beendet werden kann.
    Ohne Dummyplayer bekommt das Plugin weiter den DVB Stream.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Servus,


    also mit -D als Starparameter hat es erfolgreich funktioniert! Der VDR ist erfolgreich in den Standby nach der Aufnahme zurückgekehrt.


    Was mich noch interessieren würde. Wenn ich das primary device wechsle, welche "Nummer" muss ich angeben?

    Code
    svdrpsend plug softhddevice prim xx


    Bei drei DVB devices, kann ich zB 3 angeben? Wir dadurch der Dummyplayer beendet?
    Hat der Parameter MakePrimaryDevice: 1 einen Einfluss?


    Danke Danke für die Antworten 8)

    Mein VDR: Software: vdr 1.7.30 vdr-xine, xine-lib-1.2, Ubuntu 10.04, 2.6.35 Hardware: GT 220, TT-PCI S2-1600 + Mystique SaTiX-S2 V2

  • Das Primary Device ist egal. Sollte nur nicht wieder das SoftHdDevice Plugin sein.

    Code
    softhddevice.MakePrimary = 1


    erzwingt daß das SoftHdDevice beim Starten das Primary Device wird, ohne wird
    das von VDR Eingestellte genommen.


    Beim PrimaryDevice umschalten, wird kein Dummy Player gestartet.
    Der DummyPlayer ist auch weg, wenn man mit svdrpsend den Kanal umstellt,
    damit verarsche ich mich regelmässig, weil dann geht über Fernbedienung kein
    Resume mehr. (Live Plugin Kanal umstellen).


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Hallo,


    ich starte softhddevice mit der Option -D und mache dann ein 'ATTA'.


    Wenn ich es richtig verstanden habe darf ich kein 'ATTA' machen, wenn der VDR aufgrund eines Timers gestartet wurde und er nach der Aufnahme wieder herunter fahren soll.
    Wie erkenne ich denn, ob der VDR automatisch durch einen Timer gestartet wurde oder ob der Anwender den VDR gestartet hat.

    HW: Gigabyte EP41-UD3L | Core2Duo 7400 | 2GB Kingston | MSI N220GT-MD1GZ (passiv) | L4M-Twin S2 ver 6.5 mit Flex S2 | Silverstone LC16M mit iMON VFD | Samsung LE46B750
    SW: Xubuntu 14.04 3.13.0-24 | NVIDIA 304.117 | vdr 2.1.6 | softhddevice | inputlirc | lcdproc

  • Wie erkenne ich denn, ob der VDR automatisch durch einen Timer gestartet wurde oder ob der Anwender den VDR gestartet hat.


    Du kannst ihn mit dem dbus2vdr-Plugin einfach fragen (oder du schaust ins Log, da schreibt er auch soetwas wie "assuming manual start" hin, wenn er nicht für einen Timer gestartet wurde - oder in der setup.conf selber nach der NextWakeUpTime suchen und mit der aktuellen Zeit vergleichen):

    Zitat

    - ask if vdr was started manually
    vdr-dbus-send.sh /Shutdown shutdown.ManualStart
    Actually it compares the startup time of vdr with the current set NextWakeupTime.
    If the startup time is around the NextWakeupTime (600 seconds) "true" will be returned.
    Remember that NextWakeupTime may change while vdr is running.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo Seahawk,


    ich mache jetzt folgendes

    Code
    vdr-dbus-send.sh /Shutdown shutdown.ManualStart
    method return sender=:1.283 -> dest=:1.288 reply_serial=2
       boolean true


    Wie komme ich an das 'true' dran, wenn ich es in einem Skript nutzen will?

    HW: Gigabyte EP41-UD3L | Core2Duo 7400 | 2GB Kingston | MSI N220GT-MD1GZ (passiv) | L4M-Twin S2 ver 6.5 mit Flex S2 | Silverstone LC16M mit iMON VFD | Samsung LE46B750
    SW: Xubuntu 14.04 3.13.0-24 | NVIDIA 304.117 | vdr 2.1.6 | softhddevice | inputlirc | lcdproc

  • Du könntest z.B. danach greppen:

    Code
    if [ $(vdr-dbus-send.sh /Shutdown shutdown.ManualStart | grep -c "boolean true") > 0 ]; then
    vdr-dbus-send.sh /Plugins/softhddevice plugin.SVDRPCommand string:atta # ggf. noch den Wert für den gewünschten Bildschirm übergeben string:"-d :<DISPLAY>"
    fi

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hatte es so gemacht

    Code
    vdr-dbus-send.sh /Shutdown shutdown.ManualStart | grep boolean | cut -d ' ' -f5


    schien mir aber zu umständlich.

    HW: Gigabyte EP41-UD3L | Core2Duo 7400 | 2GB Kingston | MSI N220GT-MD1GZ (passiv) | L4M-Twin S2 ver 6.5 mit Flex S2 | Silverstone LC16M mit iMON VFD | Samsung LE46B750
    SW: Xubuntu 14.04 3.13.0-24 | NVIDIA 304.117 | vdr 2.1.6 | softhddevice | inputlirc | lcdproc

  • Hatte es so gemacht

    Code
    vdr-dbus-send.sh /Shutdown shutdown.ManualStart | grep boolean | cut -d ' ' -f5


    schien mir aber zu umständlich.


    Ich frage mich, warum das mit dem softhddevice überhaupt so umständlich ist. Zumindest hört sich das für mich umständlich an, wenn ich das hier so lese. Allerdings habe ich selber keinerlei Erfahrung mit softhddevice und sollte vielleicht hier auch eher ruhig sein, aber die Idee hinter den Plugins bei VDR ist doch eigentlich, daß man ein Plugin lädt und das war's. Das Plugin kümmert sich um alles, was es braucht. Warum das softhddevice auch noch mit dem Shutdown-Handler so involviert ist, erscheint mir auch rätselhaft.
    Sind aber wie gesagt nur die Gedanken eines "Außenstehenden", der sich wundert.
    Soll keine Kritik sein.


    Klaus

  • Das liegt an der "unüblichen" Nutzung, wenn man das Plugin mit detachtem Frontend (Option -D) startet. Softhddevice kann selbst den Start des X-Server initiieren (oder einen bereits laufenden nutzen) und läuft dann ganz normal ohne besonderen Aufwand als VDR-Frontend. Wenn man das Frontend aber nur bei Bedarf aktivieren will (z.B. weil auf dem Rechner noch andere Programme laufen sollen und man nicht immer das TV-Bild haben will), muss man sich halt auch um das ganze Drumherum kümmern.


    Beim nachträglichen Attachen des Frontends wird der UserInactiveTimeout gesetzt (http://projects.vdr-developer.…ee/softhddevice.cpp#n2476) und
    der die Anfrage an den Shutdown-Handler ist hier nur ein Weg herauszufinden, ob es wahrscheinlich ist, dass jemand vor dem TV sitzt und im Falle eines Timers erst mal auch das nachträgliche Attachen zu verzichten.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Klaus, du sprichst mir aus der Seele.

    vdr-2.6.4

    softhddevice, dbus2vdr, dvd, epgsearch, femon, graphtftng, hbbtv, menuorg,
    osdteletext, radio, recsearch, satip, tvguide, vnsiserver

    ubuntu focal, yavdr-ansible, linux-5.15 ,AsRock J4105, CIne CT-V7 DVB-C

  • Der Dummyplayer soll die DVB-Karte freimachen und die Fernbedienung abfangen,
    damit über die Fernbedienung der Suspend Modus beendet werden kann.
    Ohne Dummyplayer bekommt das Plugin weiter den DVB Stream.


    Johns


    Mich würde jetzt auch mal interessieren warum suspenden oder detachen.


    mfg Thomas

    VDR:
    Hardware: Thermaltake DH102, Zotac ION ITX-F-E, 2Gig Ram, TechnoTrend
    dual DVB-S2 6400, TechnoTrend Connect CT-3650,


    Software: EasyVDR 1.0

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!