[Permashift] Tester für (fast) permanenten Timeshift gesucht

  • Hallo!


    Wie vor ein paar Tagen angekündigt habe ich etwas gebastelt, mit dem man im Liveprogramm zurückspulen oder gerade Gesehenes in eine Sofortaufnahme integriert bekommen kann. Ich hatte vor einer (ziemlich langen) Weile gefragt, ob es für VDR permanenten Timeshift gebe. Mir wurde gesagt, dass es zwei Gruppen gibt: die, die's nicht haben wollen, und die, die's nicht programmieren können. Das war mir ehrlich gesagt ein zusätzlicher Ansporn. ;)


    An die, die's nicht haben wollen: Das Plugin ist auf kleine Veränderungen am VDR selbst angewiesen. Ich habe die so minimal-invasiv wie irgendmöglich gehalten. Ich freue mich über jeden, der sich den Patch daraufhin anschaut, ob er für Anwender, die permanenten Timeshift nicht haben wollen, etwas verschlechtern könnte.


    An die, die's haben wollen: Probiert's aus, und meldet euch, wenn's funktioniert oder wenn's nicht funktioniert. Für Verbesserungs- und Erweiterungsvorschläge bin ich offen (kann aber nichts versprechen).


    Noch viel mehr Vorrede und den Patch für VDR und die Quellen des Plugins gibt es hier:
    http://ein-eike.de/vdr-plugin-permashift/


    Viel Spaß,
    Eike

  • Danke für das geniale Plugin/Patch .
    Finde ich echt Super, dass sich mal jemand Gedanken gemacht hat bzw. wieder ein Plugin/Patch anbietet .
    Für die meisten kam es ja nicht in Frage, weil kein Live Tv geschaut wird.


    Es kommt so oft mal vor, dass mal etwas nicht verstanden wird oder gestört wurde.
    Zudem finde ich es auch sehr gut das im nachhinein eine Aufnahme gestartet werden kann.
    (Wenn das Pogramm vorher auch eingeschaltet war)


    Gruß Santos

    VDR1
    - Yavdr 0.5 - Zotac D2700 Atom 2X2.13GHZ - GT520 Onboard- 4GB Speicher - 32GB CF- Technotrend TT S2-4100 - Alphacool Display - YaUsbIr 2- Technotrend Fernbedienung - Gehäse Plexiglas (Stable)


    VDR2
    - Yavdr 0.5- AsRock 77 mit i3-3220T 2X2.8GHZ- 4GB Speicher- GT 440 Passiv - 64GB SSD 2,5"- DigitalDevices Cine S2- LG Bluray - 10" Monitor - YaUsbIr 2 - T Home Fernbedienung - uMouse Cardreader - Gehäse Bitfenix Prodigy M (Unstable)

  • yeahr!!!!!!!!! war gerade am mal wieder am suchen, ob sich irgendwas in richtung livebuffer getan hat. und wollte genau deine idee als vorschlag anbringen, wenn sich noch nichts getan hätte. gleich mal testen. muss sowieso mal von vdr 1.7.21 nen "paar" stufen updaten :)

    VDRHD-System: Intel Celeron E3200 Dualcore 2,4GHZ; MB GIGABYTE GA-P31-ES3G; G-Skill PC-800 DDR Ram 2GB; VGA Gainward Bliss Geforce GT 9500 1024MB; Technotrend Budget S2-1600; Technotrend Skystar 2; Ausgabe über HDMI

  • Moin!


    Ein paar kleine Anmerkungen zum Patch:
    Klaus benutzt ein etwas anderes Einrücken, der eingerückte Block fängt immer unter der Klammer von if/while/for usw. an.
    z.B.


    Da gewöhnt man sich mit der Zeit dran... :)


    Außerdem finde ich es schöner, wenn die Parameter im Header und C-File gleich heißen, das passt z.B. nicht bei der oben zitierten Funktion. Ist aber nur rein kosmetisch.


    Eine Stelle, zu der ich eine Frage habe:

    Code
    1. - if (pauseLive)
    2. - Goto(0, true);
    3. + if (pauseLive) {
    4. + int Current, Total;
    5. + GetIndex(Current, Total, false);
    6. + readIndex = max(Total - 1, 0);
    7. + Goto(readIndex, true);
    8. + playMode = pmStill;
    9. + }


    Hast du bei nicht geladenem Plugin getestet, ob readIndex dann wirklich auf 0 ist? Hast du bestimmt, ich frage nur sicherheitshalber.


    Zu PausePriority:
    Der vdr-default ist 10, d.h. mit deinem Patch wird ein vdr als inaktiv angesehen, wenn eine Aufnahme unterhalb dieser Priorität ausgeführt wird. Das ist schlecht. Wenn ich z.B. spontan etwas im EPG sehe, dass ich gerne aufnehmen möchte, es aber nicht so wichtig ist wie meine Suchtimer, dann vegebe ich der Einfachheit halber eine 1 als Priorität, weil ich dann weiß, dass nichts wichtiges blockiert wird. Solche Aufnahmen kriege ich dann wohl nicht mehr zu Gesicht... :(
    Dies ist also eine Abweichung vom Standardverhalten des vdr und müsste korrigiert werden. Vermutlich wäre es besser, wenn du das recording-control deiner PermaShift-Aufnahme irgendwie markierst und sie bei der Prüfung cRecordControls::Active explizit ausnimmst. Die Priorität ist kein guter Ansatz dafür.


    Ansonsten sieht's schon gut aus, hab aber noch keinerlei Tests durchgeführt, sondern mir nur den Patch angesehen. Wenn ich mich also irre, dann korrigiere mich bitte. :)


    Lars.

  • Hallo!


    Danke für alle Freuden-Bekundungen! :)

    Ein Eike auch wenn ich im moment nicht zum testen komme
    besten dank dafür !


    ich werde dann selbstverständlich ein paket für yavdr bauen incl. vdr patch sobald es mit vdr-1.7.36 weitergeht.

    Das wär natürlich prima!
    (Aber bitte nicht, bevor ein paar Leute erfolgreich getestet haben...)


    Ich kuck mal, vielleicht komm ich auch dazu, selbst schon mal ein Deb-Paket zu bauen.


    Ciao,
    Eike

  • Hallo!

    Klaus benutzt ein etwas anderes Einrücken, der eingerückte Block fängt immer unter der Klammer von if/while/for usw. an.

    Ich hatte extra versucht, mich im VDR an Klaus' Gewohnheiten zu halten:
    Beim if steht die öffnende Klammer in derselben Zeile, ab da wird eingerückt,
    und zwar inklusive der schließenden Klammer. Die englische Wikipedia nennt
    das "Ratliff style".
    Leider krieg ich den Beispiel-Code hier nicht so reingepastet, wie er bei mir aussieht,
    aber auf meinem Bildschirm passt's zusammen.
    (Beim Plugin hab ich mich dann aber an meine eigenen Vorlieben gehalten,
    da stehen zusammengehörige Klammern in derselben Zeile oder in derselben Spalte.)

    Außerdem finde ich es schöner, wenn die Parameter im Header und C-File gleich heißen, das passt z.B. nicht bei der oben zitierten Funktion. Ist aber nur rein kosmetisch.

    Du hast völlig Recht - wird geändert.

    Quote

    Eine Stelle, zu der ich eine Frage habe:

    Code
    1. - if (pauseLive)
    2. - Goto(0, true);
    3. + if (pauseLive) {
    4. + int Current, Total;
    5. + GetIndex(Current, Total, false);
    6. + readIndex = max(Total - 1, 0);
    7. + Goto(readIndex, true);
    8. + playMode = pmStill;
    9. + }


    Hast
    du bei nicht geladenem Plugin getestet, ob readIndex dann wirklich auf 0
    ist? Hast du bestimmt, ich frage nur sicherheitshalber.

    Nein, das hab ich so leider nicht getestet. Ich hatte ausprobiert,
    ob der Eindruck ohne Plugin passt. Wenn man sich die Zahlen ankuckt,
    ist der Index aber etwas größer als 0.
    Ursprünglich hab ich zusammen mit dem Pause-Flag übergeben, ob es
    eine normale oder eine "Recycling"-Pause ist. Um möglichst wenig
    Interface-Änderung zu haben, hatte ich das wieder rausgeschmissen.
    Da brauche ich wohl doch ein "bool pauseRecycling" oder so.

    Das was verlorengeht, soll natürlich nicht sein!


    Ich würde aber trotzdem die Aufnahme-Priorität benutzen wollen,
    nur halt mit einem kleineren Wert.


    @Klaus:
    Was sagt du? Kann man beim auomatischen Runterfahren Aufnahmen ignorieren,
    wenn der, der sie erstellt hat, eine besonders geringe Priorität eingestellt hat?
    Also zum Beispiel, negative Priorität behindert das Herunterfahren nicht?

    Quote

    Ansonsten sieht's schon
    gut aus, hab aber noch keinerlei Tests durchgeführt, sondern mir nur den
    Patch angesehen. Wenn ich mich also irre, dann korrigiere mich bitte.
    :)

    Danke für's Code-Review!
    Wie immer sehen mehr Augen mehr...


    Ciao,
    Eike


  • @Klaus:
    Was sagt du? Kann man beim auomatischen Runterfahren Aufnahmen ignorieren,
    wenn der, der sie erstellt hat, eine besonders geringe Priorität eingestellt hat?
    Also zum Beispiel, negative Priorität behindert das Herunterfahren nicht?


    Dazu möchte ich mich weder in der einen noch in der anderen Richtung äußern ;-).
    Für die Version 2.0 wird sich da auf jeden Fall nichts mehr ändern.


    Klaus

  • Hallo!

    Dazu möchte ich mich weder in der einen noch in der anderen Richtung äußern ;-).

    Na gut, dann muss ich mir wohl vorerst selbst was aus den Fingern saugen...


    mini73 :
    Wie wär's mit < TRANSFERPRIORITY (-1), oder, ganz defensiv, <= MINPRIORITY (-99)?

    Quote

    Für die Version 2.0 wird sich da auf jeden Fall nichts mehr ändern.

    Hast du dir schon eine Meinung gebildet, ob der Patch danach reinkommen könnte?


    Ciao,
    Eike

  • Hi Ein Eike,
    habe das Plugin und den Patch auf meinem VDR 1.7.33 mal gebaut.
    Die Aufnahme startet sofort, ohne Probleme.
    Spulen funktioniert bei mir nicht bei LIVE TV.


    Sollte das Spulen funktionieren ?


    Das Record Symbol in meinem Display leuchtet.
    Könnte man das abändern, dass es nur leuchtet wenn ich selbst eine Aufnahme starte ?


    Gruß Santos

    VDR1
    - Yavdr 0.5 - Zotac D2700 Atom 2X2.13GHZ - GT520 Onboard- 4GB Speicher - 32GB CF- Technotrend TT S2-4100 - Alphacool Display - YaUsbIr 2- Technotrend Fernbedienung - Gehäse Plexiglas (Stable)


    VDR2
    - Yavdr 0.5- AsRock 77 mit i3-3220T 2X2.8GHZ- 4GB Speicher- GT 440 Passiv - 64GB SSD 2,5"- DigitalDevices Cine S2- LG Bluray - 10" Monitor - YaUsbIr 2 - T Home Fernbedienung - uMouse Cardreader - Gehäse Bitfenix Prodigy M (Unstable)

  • Nach der 2.0 wird permanentes Timeshift voraussichtlich ein Core-VDR-Feature werden, und wie das dann genau funktioniert werde ich mir dann überlegen.


    Was genau heißt das: 2.0 wird Stable und dann Timeshift oder 2.0 mit Timeshift, aber doch nicht Stable, bzw. beides?


    Albert

  • Hallo!

    Für's Spulen musst du erst in Pause, dann Play drücken, und dann sollte es gehen.
    Klappt das bei dir?
    Ich wollte den Patch so minimal wie möglich halten, damit er ohne Probleme für andere
    eingebaut werden könnte. Aber da Klaus das derzeit nicht vorhat, kann ich mir auch das
    direkte Spulen mal ankucken. Wird aber dauern, mit dem Code zur Steuerung hab ich
    mich noch nicht beschäftigt.


    Das mit dem Record-Symbol könnte man vermutlich auch hinkriegen, aber ich hab ein
    bisschen die Befürchtung, das wird ein Fass ohne Boden: Letztlich ist es ja eine Aufnahme,
    und man müsste dann jeder Ecke, die auf Aufnahmen reagiert, einzeln beibringen,
    bei zu geringer Priorität nicht anzuschlagen...


    Ciao,
    Eike

  • Spulen funktioniert bei mir nicht bei LIVE TV.


    Sollte das Spulen funktionieren ?


    Hat er doch geschieben: wenn du an die Wiedergabentasten willst musst du erst einmal Play drücken...


    Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5




  • Dazu möchte ich mich weder in der einen noch in der anderen Richtung äußern ;-).
    Für die Version 2.0 wird sich da auf jeden Fall nichts mehr ändern.


    Klaus


    Ist es in plugins nicht möglich die userInaktivität abzufragen?
    Dann könnte man ja die Aufnahme beenden und der VDR schaltet aus.


    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

  • Moin!


    Ist es in plugins nicht möglich die userInaktivität abzufragen?


    Das ist möglich: ShutdownHandler.IsUserInactive()


    Lars.

  • Moin!



    Das ist möglich: ShutdownHandler.IsUserInactive()


    Lars.


    Das ist sicher eine gute Lösung weil auch bei starten wegen Timer Aufnahme müsste der User inaktiv sein.
    Und wer braucht schon den Livebuffer wenn er nicht vor der glotze sitzt ;D

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


    Software: EasyVDR 1.0


  • Das ist sicher eine gute Lösung weil auch bei starten wegen Timer Aufnahme müsste der User inaktiv sein.
    Und wer braucht schon den Livebuffer wenn er nicht vor der glotze sitzt ;D

    Das klingt gut; das schau ich mir an!


    Ciao,
    Eike

  • Also...


    Man könnte im "Houskeeping" bei Benutzer-Inaktivität die Aufnahme abschalten.
    Das klappt soweit, der VDR fährt sich dann auch runter.


    Damit wäre der VDR-Patch die Stellen los, in denen er nur Aufnahmen ab einer gewissen Priorität
    als "Aktivität" rechnet. Bis auf eine Stelle, nämlich die, die das Housekeeping erlaubt. Aber bei
    schwacher Hardware möchte man ja auch das nicht während einer Aufnahme machen, unabhängig
    von ihrer Priorität.


    Hat da jemand eine Idee?
    Könnte das Plugin mit einem Timer oder in einem anderen Thread (zwischen langen Sleeps) die
    Aktivität abfragen - und vor allem, könnte/dürfte er von da aus (ggf. also aus einem anderen
    Thread) seine Aufnahme stoppen?


    Ciao,
    Eike