[Beta-Test] Permashift Episode II - Die Rückkehr der Ringspeicher

  • ich finde da sollte man differenzieren: wenn ich nur mal kurz zurückspulen will, um etwas das ich verpasst habe nochmal anzuschauen, dann sehe ich keinen Grund darin, den Puffer direkt auf Platte zu schreiben. Wenn ich allerdings Pause drücke, dann sollte schon eine Direktaufnahme inklusive des bisherigen Puffers erzeugt werden.

    Ich finde da das Verhalten vom alten Livebuffer am logischten: Solange man mit dem Buffer im RAM auskommt bleibt er im RAM (egal ob man schon mal pausiert oder zurückgespult hat). Wenn der Buffer im RAM nicht mehr reicht (z.B. wenn lang Pausiert wird) wird der Buffer auf der Festplatte fortgesetzt.


    Und nur mal ein paar Gedanken wegen dem Problem mit dem Schreiben des Buffers auf die Platte:
    - Gibt es eine Möglichkeit hinter einem File den RAM Inhalt zu verstecken (also das Gegenteil von mmap)?
    - Eventuell kann man sowas mit FUSE basteln. (Wahrscheinlich wär es aber einfacher gleich dem VDR das lesen aus dem RAM beizubringen)
    - Oder 'ramfs'?
    - Wenns mit 'tmpfs' funktioniert könnte man sich die Erweiterung des Buffers auf die reale Festplatte sparen, da das dann vom OS durch Swapping übernommen wird?


    MfG

    mein VDR:
    hardware: ASUS C8HM70-I, Zotac Zone Edition GeForce GT 630 Rev. 2, Mystique SaTiX-S2 Sky V2 USB, MSI DVB-T Stick
    vdr: yavdr 0.5, softhddevice


  • Mal noch ne andere Frag: was mich an der Vanilla VDR Pause Funktion immer ziemlich nervt, dass die Aufnahme dann ewig läuft und man die eigentlich manuell abbrechen muss. Könnte man das nicht smarter regeln und z.B. das EPG zur Hilfe ziehen? Wenn die Sendung, während der die Sofortaufnahme erzeugt worden ist, laut EPG 10 Minuten vorbei ist, dann kann auch die Sofortaufnahme beendet werden. Sollte doch eigentlich alle Fälle abdecken...


    Aus MANUAL:

    Code
    1. Instant rec. time = 180
    2. Defines the duration of an instant recording in minutes.
    3. Default is 180 minutes (3 hours). The stop time of an
    4. instant recording can be modified at any time by editing
    5. the respective timer in the "Timers" menu.
    6. If this parameter is set to 0 ("present event"), only the
    7. currently running event will be recorded, using the stop
    8. margin and VPS setting as configured.
    9. Note that this parameter is also used when pausing live
    10. video!


    Aus HISTORY:

    Code
    1. 2012-09-30: Version 1.7.31
    2. ...
    3. - The setup parameter "Recording/Instant rec. time (min)" can now be set to '0',
    4. which means to record only the currently running event (based on a patch from Matti
    5. Lehtimäki).


    Wer lesen kann ist klar im Vorteil ;-).


    Klaus

  • Hallo Klaus,


    wo du gerade hier vorbeiliest...


    Ich möchte dir diesen VDR-Patch zur Aufnahme in die Entwicklerversion vorschlagen.
    Nach bestem Wissen und Gewissen sollte das den Betrieb für keinen Anwender stören,
    aber es würde halt permanentes Timeshift ermöglichen.


    Von den 26 Downloadern haben sich zwar nicht viele zurückgemeldet, aber nach meinen
    Erfahrungen heißt das wahrscheinlich, dass beim Rest alles gutgegangen ist. Der, der
    Probleme hatte, wollte nochmal testen, aber meine Vermutung ist, dass er seinen Speicher
    überlastet hat. (Da sollte ich in der Anleitung und vielleicht sogar auf dem Bildschirm fett
    vor warnen...)


    Was noch an Änderungen nötig ist (zeitnahes Zurückspulen), sollte sich im Plugin bewerk-
    stelligen lassen. Für Änderungsvorschläge bin ich natürlich offen.


    Ciao,
    Eike

  • Hi Klaus,


    Wer lesen kann ist klar im Vorteil ;-).


    Peinlich ;) Danke für den Hinweis, dass man das schon auf den aktuellen Event einschränken kann...


    Ciao Louis

  • Ich biete auch gerne den kompletten Code für den Core an, aber ein Plugin
    wäre wohl eine Baustelle weniger, um die sich Klaus selbst kümmern muss.
    Und eine Möglichkeit, die Funktionalität abzuklemmen, wenn's bei jemandem nicht rund läuft.

  • Nix  
    voraussichtlich != definitiv ;-)


  • Note to self: nie wieder Aussagen über künftige Pläne machen!


    Quote


    Ich biete auch gerne den kompletten Code für den Core an, aber ein Plugin
    wäre wohl eine Baustelle weniger, um die sich Klaus selbst kümmern muss.
    Und eine Möglichkeit, die Funktionalität abzuklemmen, wenn's bei jemandem nicht rund läuft.


    Ich hab mal kurz drübergeschaut, aber der Patch greift mir an viel zu vielen Stellen viel zu sehr ein, um ihn "einfach so" zu übernehmen. Und um mich näher damit zu beschäftigen fehlt mir momentan die Zeit.
    Außerdem bin ich nach wie vor kein Freund dieses ständigen Pufferns und des damit verbundenen zusätzlichen Aufwands, Codes (mögliche Fehlerquellen) und der ganzen Philosophiererei. Wenn einem was wirklich wichtig ist, dann nimmt man es halt auf. Und wenn man mal was übersehen hat, mein Gott, dann it das halt so...


    Klaus

  • Hi Eike.


    Habe versucht dein Plugin unter vdr-2.1.6 zu bauen. Leider bekomme ich folgende Fehler:


    Kannst du mir da weiterhelfen. Bin leider nicht fit in C/C++


    Danke Dir

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;-) *


    vectra --- glasslike ---

  • Hallo!

    Habe versucht dein Plugin unter vdr-2.1.6 zu bauen. Leider bekomme ich folgende Fehler:


    Kannst du mir da weiterhelfen. Bin leider nicht fit in C/C++

    Das sieht aus, als hättest du den VDR vorher nicht gepatcht.
    Das wird schon zum Compilieren gebraucht.


    Gutes Nächte,
    Eike

  • Hi.
    Doch, Patchen hat ohne Probleme funktioniert.


    Ich seh es mir aber nochmal genauer an.

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;-) *


    vectra --- glasslike ---

  • Moin,
    ich habe mittlerweile eine Weile mit 500MB getestet und da kommt es beim Live-TV nicht zu Problemen. Bei 1GB ebenfalls nicht. Mir ist schon klar, dass das "der Plan" ist (siehe weiter oben) ;), aber ich denke auch, dass ein VDR mit 4GB RAM zur Zeit ein recht verbreiteter Standard ist. Daher teste ich eben einfach mal mit allen Optionen und poste Auffälligkeiten.


    Wenn ich aber auch bei 500MB oder 1GB zurückspule kommt es bei HD zu einem Versatz zwischen Bild und Ton, bei SD ist alles in Ordnung.


    Hier bei 1GB:

    EDIT: habe das "top" mal korrigiert. das war etwas hoch, weil da eben noch ein noad parallel lief. Auch bei einer Auslastung von ~1.78 und nur 5min HD im RAM stockt die Wiedergabe nach dem Spulen.


    Außerdem wird bei mir die Sendung ganz sicher nicht rückwirkend aufgenommen, wenn ich sie per EPG (grüne Taste --> rote Taste) ganz "normal" programmiere, sondern die Aufnahme startet an der Stelle an der ich die Aufnahme programmiere. Ich habe Dich doch richtig verstanden, dass das aber doch funktionieren soll? Beim Zurückspulen wird sie rückwirkend als Direktaufnahme (@..) markiert im Aufzeichnungsmenü dargestellt.




    Wie gesagt; alles keine Kritik, sondern "fleissiges Testen" wie gewünscht ;)


    Regards
    Globber

    Gen2VDR (V5.3 Update 6)


    - Scaleo Evi - 2x DD Cine S2 v6.5 und v5.4 - 4GB RAM
    - Reycom REC100-S2
    - OctopusNet/SAT>IP

  • Doch, Patchen hat ohne Probleme funktioniert.


    Ich seh es mir aber nochmal genauer an.

    Dann vermute ich, dass andere VDR-Quellen zum Kompilieren verwendet werden, nicht die gepatchten.
    Also, du musst in jedem Fall das Permashift im gepatchten VDR-Verzeichnis unter PLUGINS/src haben.
    Ich erinnere mich dunkel, dass man auch per Umgebungsvariable o. ä. einstellen kann, welche Header
    verwendet werden, aber hier kann bestimmt ein Mitleser einspringen.

  • Ok. Hab den Fehler wohl gefunden. Hattest recht, lag am include Verzeichnis. Hab das Verzeichnis bei einem früheren Test durch einen Link ersetzt. Somit hat er sich original Dateien zum kompilieren geholt. Jetzt läuft es erst mal weiter ;/)
    Danke Dir

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;-) *


    vectra --- glasslike ---

  • So,
    Kompilieren hat geklappt. Hab jetzt aktuell keine Zeit, werde aber später mal berichten ob man Permashift auf nem RaspberryPi verwenden kann ;-)
    Mir würde es nur um so ca. 1min Timeshift gehen, gerade so das man kurz zurückspringen kann wenn man beispielsweise bei ner Doku was verpasst hat.
    Denke da sollte der geringe Arbeitsspeicher doch wohl ausreichen, oder?


    Gruß Patrick

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;-) *


    vectra --- glasslike ---

  • Hallo!

    Quote

    ich habe mittlerweile eine Weile mit 500MB getestet und da kommt es beim
    Live-TV nicht zu Problemen. Bei 1GB ebenfalls nicht. Mir ist schon
    klar, dass das "der Plan" ist (siehe weiter oben) ;), aber ich denke
    auch, dass ein VDR mit 4GB RAM zur Zeit ein recht verbreiteter Standard
    ist. Daher teste ich eben einfach mal mit allen Optionen und poste
    Auffälligkeiten.

    2 GB Buffer gehört schon auch zu "dem Plan", ich hab's halt nur selbst noch nicht ausführlich getestet.
    Bei 4 GB installiertem Speicher (und nicht vielen weiteren laufenden Programmen) sollte das auch gehen.

    Wenn ich aber auch bei 500MB oder 1GB zurückspule kommt es bei HD zu einem Versatz zwischen Bild und Ton, bei SD ist alles in Ordnung.


    Außerdem wird bei mir die Sendung ganz sicher nicht rückwirkend aufgenommen, wenn ich sie per EPG (grüne Taste --> rote Taste) ganz "normal" programmiere, sondern die Aufnahme startet an der Stelle an der ich die Aufnahme programmiere. Ich habe Dich doch richtig verstanden, dass das aber doch funktionieren soll? Beim Zurückspulen wird sie rückwirkend als Direktaufnahme (@..) markiert im Aufzeichnungsmenü dargestellt.

    Verdammt...


    Also, für das Problem bei der Direktaufnahme hab ich eine Erklärung, das dürfte an deinen wild zusammengepatchten Sourcen liegen.
    Für die Probleme beim Abspielen hab ich erstmal nur ein vage Hoffnung, nämlich dass es an der Frame-Erkennung liegt,
    in der ich Probleme gefunden habe. Die sind in den aktuellen VDR-Version 2.0.6 behoben.
    Bevor du also wieder rumpatchst (altes Permashift raus, neues Permashift rein, Frame-Erkennung-Patch rein)...
    Könntest du es nochmal mit einem vanilla VDR 2.0.6 und meinem Patch drauf probieren?


    Wenn das deine Probleme beim Abspielen nicht behebt, hab ich ein Problem: Ich hab selbst gar kein HD zum Ausprobieren.
    Ich vermute aber mal, dass der eine oder andere hier das neue Permashift schon mit HD erfolgreich probiert hat...?

    Quote

    Wie gesagt; alles keine Kritik, sondern "fleissiges Testen" wie gewünscht ;)

    Du musst dich doch für's Testen und Fehler Finden nicht entschuldigen...!



    Ciao,
    Eike

  • Hallo!

    Kompilieren hat geklappt. Hab jetzt aktuell keine Zeit, werde aber später mal berichten ob man Permashift auf nem RaspberryPi verwenden kann ;-)
    Mir würde es nur um so ca. 1min Timeshift gehen, gerade so das man kurz zurückspringen kann wenn man beispielsweise bei ner Doku was verpasst hat.
    Denke da sollte der geringe Arbeitsspeicher doch wohl ausreichen, oder?

    Das kommt ganz auf die "geringe Menge" an! ;)
    Permashift nimmt sich so viel Speicher, wie du ihm einstellst, das geht im Moment bis 10 MB runter,
    plus ca. 1 MB für Zwischenspeicherung. Aber wenn du eine Minute haben willst, brauchst du ja eh eher
    50 oder 100 MB (bei HD).


    Ich bin aber gespannt darauf, wie's bei so einem kleinen Gerät klappt!


    Ciao,
    Eike

  • Ich auch ;-)
    Aber wäre cool wenns klappen würde.


    Danke schonmal im Vorraus für die Klasse Arbeit :-)

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;-) *


    vectra --- glasslike ---

  • Mache ich gerne, habe aber zur Zeit wenig Zeit zur Verfügung. kann also etwas dauern.


    Regards
    Globber


    BTW Zur Zeit habe ich wieder auf 2GB heraufgesetzt und bisher läuft auch Live-TV Noch ohne Probleme. Die 2GB RAM wurden komplett (bis auf ein paar MB) genutzt und keine Auffälligkeiten.
    Eventuell kam da auch noch etwas anderes dazu.

    Gen2VDR (V5.3 Update 6)


    - Scaleo Evi - 2x DD Cine S2 v6.5 und v5.4 - 4GB RAM
    - Reycom REC100-S2
    - OctopusNet/SAT>IP