[Wunschkonzert] Livebuffer-plugin

  • Und da fangen die Probleme in etwa an: Bei einer FF-Karte oder einer FFHD-Karte kommen die Daten gar nicht bis in den PC. Die Karte selbst transportiert die Daten vom Empfänger zum Ausgabedevice. Das hat den Vorteil, dass jegliche Verzögerung beim Umschalten vermieden wird, da die Daten nicht 2x über den Bus müssen, und auch das Puffern im VDR entfällt.
    Bei anderen Ausgabedevices kommt das transfer control (transfer.c) zum Einsatz, um die Daten vom Empfänger zum Ausgabedevice zu transportieren.


    Danke für den Hinweis, solche Dinge sind exakt der Grund, weswegen ich mir wünsche, jemand möge mir den Datenfluss des Streams im Programm skizzieren :)

    Um die schnelle und schlanke Direktverbindung bei FF-Karten zu erhalten, müsste ein livebuffer zunächst nur im Hintergrund aufzeichnen, und erst bei Pause oder Rückspulen in den gepufferten Modus wechseln. Vergleichbar mit dem bisherigen Pause-Modus, nur dass halt nicht bei 0 angefangen wird, sondern in die buffer-Aufzeichnung gesprungen wird


    Das wäre in diesem Fall die sinnvollste Methode, ich würde nur in jedem Fall gerne vermeiden in einem - aus Benutzersicht - gesonderten Replay-Modus zu gelangen. Im reinen Softwaremodus dürfte das auf jeden Fall klappen, aber wie sieht das bei den FF-Karten aus? Kann man überhaupt ohne Verzögerung umswitchen? Mangels FF-Karte würde ich einen Patch auf jedenfall zunächst für den reinen Softwaremodus entwickeln, aber so kann ich das zumindest im Auge behalten.

  • Kurzer Zwischenstand: Ich habe den VDR mit xineliboutput-Plugin und DVB-T-Stick nun in der Entwicklungsumgebung ans Laufen gebracht. Als nächstes versuche ich nun, den Datenfluss herauszufinden. Sagte ich schon, dass es schön wäre, wenn sich ein Entwickler, der den Code schon so einigermaßen kennt, für Fragen zur Verfügung stellen würde ;-)?

  • Moin!


    Sagte ich schon, dass es schön wäre, wenn sich ein Entwickler, der den Code schon so einigermaßen kennt, für Fragen zur Verfügung stellen würde ;-)?


    Wenn du einen gefunden hast, sag bescheid, ich lerne auch immer wieder gerne... :]
    Aber nach einiger Zeit findet man sich im vdr-Quelltext relativ gut zurecht. Man gewöhnt sich dran.
    Es ist immer gut, ein konkretes Beispiel zu nehmen und dann quer durch den Quelltext zu springen und sich als Fährtenleser zu üben.
    Vielleicht kann man ja mal irgendwo zusammen (z.B. im Wiki) ein paar lustige Fluss- und Blockdiagramme erstellen. Wenn erst mal was da ist, ist es für die Wissenden leichter, an der einen oder anderen Stelle korrigierend einzugreifen.
    Der Startaufwand ist immer die größte Hürde.


    Lars.

  • Cybso,
    habe ich Dich richtig verstanden, dass Du eher über einen Patch als ein Plugin nachdenkst? Nur als Hinweis, das Hauptargument zur Zeit warum der LB Patch sich unbeliebt gemacht hat ist u.a. dass es trotz Deaktivierung immer noch Nebeneffekte geben soll, wie z.B. dass bei fehlerhaften zero bits Aufnahmen der VDR mit LB crasht und ohne nicht. Ein Patch scheint im übrigen von keinem der Distri Entwickler gern gesehen zu werden und kls hat klar gestellt, dass er einen Patch in egal welcher Form dahingehend nicht einbauen wird. Daher hier die Topic Definition PLUGIN ...


    Wenn ich das richtig sehe ist wohl für Deine VDR Infos KLS als Entwickler des VDR´s am ehesten der Wissende über die Stream Prozessabläufe.
    Des weiteren dürfte es bei RMM auch jemand geben, denn die haben den aktuellen LB Patch Stand ausgetüftelt. Wer das dort ist und ob derjenige hier mit liest, weiß ich nicht.


    Ich vermute mal unabhängig davon wie letzten Endes die Bedienung und welcher Funktionsumfang realisiert wird, zuerst braucht es einen Ringpuffer auf den man jederzeit switchen kann.
    Die Integration in den bestehenden Live Stream ohne den VDR Core anzutasten scheint ja die Herausforderung zu sein, denn nur so kann sichergestellt sein, dass man ohne dem Plugin wieder einen plain vdr hat und somit auch die "Gegner" dieser Funktion zufrieden sind.
    So wie ich das verstanden ist es nicht ganz klar, ob es überhaupt eine nutzbare Schnittstelle ohne patchen gibt um den Stream dafür abzugreifen und weiterzubearbeiten, unabhängig vom verwendeten Ausgabedevice.


    Und egal was dabei herauskommt ich danke schon mal für Deinen Einsatz :tup

    Proxmox VE, Tyan Xeon Server, OMV, MLD-Server 5.1
    MLD 5.1 64bit: Asus AT5iont-t, ION2, 4GB Ram, SSHD 2,5" 1Tb, HEX TFX 300W 82+, Cine S2 V6.2 , 38W max.
    Yavdr 0.5:
    Zotac D2550ITXS-A-E mit GT610 OB, TT S2-4100 PCI-e ,Joujye NU-0568I-B
    Yavdr 0.5:
    Sandy Bridge G840, Tests und Energieverbrauch , CoHaus CIR, Cine S2 V6.2
    MLD 5.1 Beebox N3150
    , DVBSky S960 und 1Tb WD Blue

  • Die Integration in den bestehenden Live Stream ohne den VDR Core anzutasten scheint ja die Herausforderung zu sein, denn nur so kann sichergestellt sein, dass man ohne dem Plugin wieder einen plain vdr hat und somit auch die "Gegner" dieser Funktion zufrieden sind.
    So wie ich das verstanden ist es nicht ganz klar, ob es überhaupt eine nutzbare Schnittstelle ohne patchen gibt um den Stream dafür abzugreifen und weiterzubearbeiten, unabhängig vom verwendeten Ausgabedevice.


    Nach allem was ich bisher gesehen habe geht es nicht, ohne den Core zu verändern (also: Patch), erst recht nicht wenn man wie hier gewünscht so Späßchen machen will wie den Buffer auch für Aufnahmen nutzen oder gar bei einer FF-Karte live umschalten will (da ich nur Budgetkarten habe werde ich das eh nicht machen können). Ich habe aber gesehen, was der alte Patch mit dem Core angestellt habe, und versuche auf jeden Fall geschickter und mit weniger Änderungen am Core hinzukriegen.


    Doch wie schon angedeutet, Familie und Arbeit gehen vor, daher erwartet nicht kurzfristig produktive Ergebnisse. Aber da ich das Dinge ja selbst haben will... ;)

  • Hallo Cybso,
    das Problem mit den Zero Recordings wurde hier erörtert. Nur der Vollständigkeit halber. Wobei man sich meiner Ansicht nach darüber streiten kann, ob das nicht eher ein Fehler vom VDR Core ist, denn zero recordings dürften erst gar nicht entstehen und somit fehlt hier eine Fehlerbehandlung.


    Vielleicht möchte sich KLS dazu äußern, ob es von Ihm eine mögliche "Schnittstelle" geben könnte, wodurch es doch als Plugin realisierbar wäre. Denn wie man hier im Thread gesehen hat schlagen die Wellen bei der "will ich nicht haben" Fraktion recht hoch, deshalb der Plugin Ansatz.


    Edit: Hast Du die Umfrage schon online? Ich finde sie noch nicht. Ich habe hier im Thread mal eine Zusammenstellung der marktüblichen permanenten Timeshiftfunktionen gemacht. Die kann ich Dir auch noch mal gerne verlinken.

    Proxmox VE, Tyan Xeon Server, OMV, MLD-Server 5.1
    MLD 5.1 64bit: Asus AT5iont-t, ION2, 4GB Ram, SSHD 2,5" 1Tb, HEX TFX 300W 82+, Cine S2 V6.2 , 38W max.
    Yavdr 0.5:
    Zotac D2550ITXS-A-E mit GT610 OB, TT S2-4100 PCI-e ,Joujye NU-0568I-B
    Yavdr 0.5:
    Sandy Bridge G840, Tests und Energieverbrauch , CoHaus CIR, Cine S2 V6.2
    MLD 5.1 Beebox N3150
    , DVBSky S960 und 1Tb WD Blue

    Einmal editiert, zuletzt von Torsten73 ()

  • Hallo Cybso,
    das Problem mit den Zero Recordings wurde hier erörtert. Nur der Vollständigkeit halber. Wobei man sich meiner Ansicht nach darüber streiten kann, ob das nicht eher ein Fehler vom VDR Core ist, denn zero recordings dürften erst gar nicht entstehen und somit fehlt hier eine Fehlerbehandlung.


    "Zero recordings" können nunmal entstehen, wenn aus irgendwelchen Gründen bei einer Aufnahme keine Daten kommen.
    Wenn es dann doch weitergeht, versucht VDR erstmal solche Dateien zu löschen.
    Da es im ungepatchten VDR offenbar keine Problem gibt gehe ich davon aus, daß der Fehler durch irgend einen Patch reinkommt.


    Zitat


    Vielleicht möchte sich KLS dazu äußern, ob es von Ihm eine mögliche "Schnittstelle" geben könnte, wodurch es doch als Plugin realisierbar wäre. Denn wie man hier im Thread gesehen hat schlagen die Wellen bei der "will ich nicht haben" Fraktion recht hoch, deshalb der Plugin Ansatz.


    "Live buffer" ist für mich momentan überhaupt kein Thema. Ich befasse mich derzeit ausschließlich mit den restlichen Arbeiten für Version 2.0.
    Erst nach Version 2.0 werde ich mir darüber Gedanken machen...


    Klaus

  • Vielleicht möchte sich KLS dazu äußern, ob es von Ihm eine mögliche "Schnittstelle" geben könnte, wodurch es doch als Plugin realisierbar wäre. Denn wie man hier im Thread gesehen hat schlagen die Wellen bei der "will ich nicht haben" Fraktion recht hoch, deshalb der Plugin Ansatz.


    Wenn ich den Proof-of-Concept fertig habe, dann kann ich vielleicht besser einschätzen, ob eine Pluginschnittstelle sinnvoll wäre und wie die Aussehen müsste. In jedem Fall müsste sie aber wohl mehrere Interfaces beinhalten, die speziell für dieses Problem sind, so dass ich weiterhin einen (sauberen) Patch für eine bessere Möglichkeit halte. Eine Möglichkeit, das von Kern zu trennen und dennoch zu verhindern, dass der Patch jede Version angepasst werden müsste, wäre vielleicht ein CPP-Makro an den entsprechenden Stellen, hinter denen sich dann in der gepatchten Version die entsprechende Funktionalität verbirgt. Oder einfach leere Methodenrümpfe, die der Compiler dann wegoptimieren würde, wenn der Patch nicht drin ist. Aber wie gesagt, alles der Reihe nach!


    Die Umfrage habe ich nicht eingebunden, weil ich nach den letzten Reaktionen nicht sicher war, ob ein Konsens über die Fragestellung vorhanden ist. Wenn du meinst, das passt so (und niemand spontan noch "stop!" schreit) mache ich sie heute abend fertig...

  • Moin!


    Ich denke auch, dass es nicht ganz ohne einen Patch möglich ist. Aber vielleicht etwas weniger invasiv. Und die Steuerung dann in ein Plugin.
    So mache ich das mit dynamite. Wenn das Plugin nicht geladen ist, verhält sich der vdr wie ungepatcht.


    Mach man einfach weiter, die Erkenntnisse kommen dann im Laufe der Arbeit.


    Lars.

  • Nur mal interessehalber: Arbeit an dem Plugin jetzt eigentlich jemand?

    Mein VDR: OrigenAE/Amisos X15e, ASUS A68HM-K A68H FM2+ mATX, AMD A4 5300, 4 GB DDR3, WD Green 1 TB, Nvidia GT 430 PCIe, KNC One DVB-C Karte, 7" TFT (GraphTFT, ohne Touch), irtrans-Empfänger + Harmony 300i, yaVDR 0.6.2, 32" Toshiba 32XV635D, 2.1 Boxen-Set Edifier C2 rev2, Kabelprovider Wilhelm Tell (ohne Grundverschlüsselung), 10 TB extern (USB) für Serien und Filme.
    Hinweis für Allergiker: Dieser Beitrag kann Spuren von Nüssen enthalten.

  • Ja, aber Job- und Familienbedingt leider nicht mit so großer Effizienz wie ich mir gehofft hatte. Die letzten 5 Wochenenden, die ich mir dafür vorgenommen habe, sind allesamt ins Wasser gefallen.

  • Wie gesagt, ich wollte das nur mal wissen. War keine Forderung, ein Wunsch zugegebenermaßen schon. ;)
    Möchte ja nicht ewig bei yaVDR 0.4 bleiben.
    Wenn's irgendwann mal kommt, würde mich das riesig freuen. Ich übe mich in Geduld.


    Danke, sicher auch im Namen mancher anderer, dass Du es überhaupt in Erwägung ziehst,
    daran zu arbeiten.

    Mein VDR: OrigenAE/Amisos X15e, ASUS A68HM-K A68H FM2+ mATX, AMD A4 5300, 4 GB DDR3, WD Green 1 TB, Nvidia GT 430 PCIe, KNC One DVB-C Karte, 7" TFT (GraphTFT, ohne Touch), irtrans-Empfänger + Harmony 300i, yaVDR 0.6.2, 32" Toshiba 32XV635D, 2.1 Boxen-Set Edifier C2 rev2, Kabelprovider Wilhelm Tell (ohne Grundverschlüsselung), 10 TB extern (USB) für Serien und Filme.
    Hinweis für Allergiker: Dieser Beitrag kann Spuren von Nüssen enthalten.

  • Habe mir den kompletten Thread durchgelesen, interessante Diskussion für mich als Endanwender, der eigentlich so keinen Einblick in die softwareinternen Routinen hatte. Aus meinen bisherigen Nutzungsgewohnheiten (Vorher: Sky Festplattenreceiver mit Livebuffering/Timeshift; jetzt: Umstieg auf XBMC, mit VDR TV Backend) heraus würde ich mich auch riesig über so eine Implementierung freuen. Also ich muss hier anmerken, im Gegensatz zu manch anderen, dass ich das Feature in aller Regelmäßigkeit genutzt habe. Im Wesentlichen für Sportveranstaltungen, wenn einem 5 Wiederholungen aus 10 Kameraperspektiven einer interessanten Szene immer noch nicht genug waren... :) ... oder meine Freundin den alles entscheidenen Satz der alltäglichen GZSZ, Verbotene Liebe, Berlin Tag und Nacht Folge oder diverser anderer verpasst hat und ihn sich nochmal kurz anhören muss, um dem komplexen Geschehen in der Kiste folgen zu können ;)


    Kurzum: Wenn ich`s drauf hätte, würd` ich es selber schreiben. Aber wäre natürlich klasse, wenn sich Cybso drüber hermachen würde.

  • jetzt: Umstieg auf XBMC, mit VDR TV Backend


    Tja...da die XBMC Jungs aber die Strategie eines "unified frontend" für alle möglichen backends fahren, wird dir ein Livebuffer im VDR herzlich wenig nutzen. Das müsste dann schon die XBMC Fraktion unabhängig vom backend implementieren :)


    Alternativ kannst du natürlich auf ein anderes frontend umsteigen, z.B. softhddevice...ich kann eh nicht verstehen, wie man es sich freiwillig antuen kann, bei dem aktuellen Stand von XBMC bezüglich PVR den VDR mit einem solchen frontend zu "vergewaltigen".


    Ciao Louis

  • Kurzum: Wenn ich`s drauf hätte, würd` ich es selber schreiben. Aber wäre natürlich klasse, wenn sich Cybso drüber hermachen würde.


    Ich bin nicht tot. Allerdings sehe ich derzeit auch nicht, wann ich mich mal länger als ein bis zwei einzelne Tage daran setzen kann - und dann geht die meiste Zeit für die Wiedereinarbeitung drauf. Falls sich hier noch ein C++-Programmierer dafür interessiert, könnten wir allerdings mal versuchen, Ideen und Aufgaben aufzuteilen.

  • Tja...da die XBMC Jungs aber die Strategie eines "unified frontend" für alle möglichen backends fahren, wird dir ein Livebuffer im VDR herzlich wenig nutzen. Das müsste dann schon die XBMC Fraktion unabhängig vom backend implementieren :)


    Alternativ kannst du natürlich auf ein anderes frontend umsteigen, z.B. softhddevice...ich kann eh nicht verstehen, wie man es sich freiwillig antuen kann, bei dem aktuellen Stand von XBMC bezüglich PVR den VDR mit einem solchen frontend zu "vergewaltigen".


    Ciao Louis


    Das tolle an XBMC ist die Aufmachung - es sieht einfach wunderbar aus, so wie es ist. Das war ein Grund - neben der Funktionalität natürlich - warum ich XBMC installiert habe. Da es meine erste Erfahrung mit Ubuntu-basierten HTPCs, bzw. generell mit HTPCs sind, nehme ich im Moment den Weg, den mir der Tenor der vielen Internetforen vorgibt. Nämlich XBMC mit einem vdr-Plugin. Mit Sicherheit gibt es andere Lösungen, die möglicherweise sauberer sind - aber wie gesagt ich arbeite mich erst seit 2 Wochen in das Thema ein und irgendwo muss man halt mal anfangen. :D


    Sagen wir es mal so, es würde - nach meinem Verständnis - auf die Implementierung ankommen, d.h. xvdr, bzw. vnsi geben ja die Befehle, die ich in der XBMC-remote.xml definiere an den VDR weiter. In sofern der Livebuffer per "Zurückspulen" oder durch die Pause-Taste in Anspruch genommen wird, sollte es ja keinen Einfluss auf mein Frontend haben. Da "Pause" ja so oder so schon definiert ist. Anders wäre es natürlich, wenn ein zusätzlicher Button ins Spiel kommen würde, auf welchen die xbmc-Plugins noch nicht eingestellt sind, dann müsste Entwicklungsarbeit geleistet werden. Sehe ich das richtig?


    Cybso, das wollte ich damit auch nicht sagen! :wow

  • Das Problem mit XBMC als Frontend ist das man da wieder auf die Funktionalität eines 20 EUR Baumarktreceivers zurückgeht (mehr bietet xbmc bei den TV Funktionen nämlich nicht) und einem die super praktischen Funktionen des VDR entgehen (gerade die Features die epgsearch da rein bringt). Dann kann man auch gleich auf den VDR als Backend verzichten und stattdessen tvheadend nehmen.


    cu

  • Das Problem mit XBMC als Frontend ist das man da wieder auf die Funktionalität eines 20 EUR Baumarktreceivers zurückgeht (mehr bietet xbmc bei den TV Funktionen nämlich nicht) und einem die super praktischen Funktionen des VDR entgehen (gerade die Features die epgsearch da rein bringt). Dann kann man auch gleich auf den VDR als Backend verzichten und stattdessen tvheadend nehmen.


    BTW: Man kann ein "echtes" VDR-Frontend auch als externen Player aus XBMC heraus starten http://www.youtube.com/watch?v=9xMXRHsXnuU&feature=relmfu :mua
    Ist halt immer die Frage was man häufiger nutzt... Ich finde die Idee aber schöner, dass es einen globalen Hotkey für das VDR-Menü gibt (egal in welcher Anwendung man sich gerade befindet)....

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

Jetzt mitmachen!

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