Posts by gnapheus


    gnapheus
    "Mich würde interesieren warum "rm" mit einer Liste funktioniert und "unlink" bei den symlinks nicht. Laut Dokumentation funktioniert "unlink" auch mit Symlink."
    Das kann ich dir auch nicht beantworten, mit "unlink" hatte ich keinen Erfolg. Muss aber auch dazu sagen das ich kein Programmierer bin sondern nur Autodidakt (habe mir das alles mühsam erarbeitet).


    Gruß Gerald


    Das selbe trifft mehr oder weniger leider auch auf mich zu. Dann müssen wir wohl warten bis sich ein echter Programmierer unsereiner annimmt ;).


    Lg


    Joachim

    Hi @all
    Ich habe die Änderungen mit den symlinks gemacht :D


    @]gnapheus
    bei deiner Variante sollte es in livebuffer.c so aussehen damit die symlinks bei mehreren video.xx gelöscht werden

    Code
    1. [...]
    2. + system(cString::sprintf("ls -l %s/d.ts | grep -- '->' | sed -e's/.*-> //' | xargs rm -rf", (const char *)bufferBaseName, lastFileNumber)); // for symlink video.xx
    3. unlink(cString::sprintf("%s/d.ts", (const char *)bufferBaseName, lastFileNumber));
    4. [...]



    So ganz glücklich bin ich mit dieser Lösung nicht, da unlink im Gegensatz zu rm wartet bis kein Prozess mehr auf die Datei zugreift und dann löscht.
    Mich würde interesieren warum "rm" mit einer Liste funktioniert und "unlink" bei den symlinks nicht. Laut Dokumentation funktioniert "unlink" auch mit Symlink.

    Quote

    @Torsten7
    Ich denke das Problem beim Vorspulen kommt vom xine Plugin mit xineliboutput funktioniert es.


    Also ich habe einähnliches Verhalten wit Thorsten auch mit xineliboutput bei HD-Sendern. Bei SD-Sendern ist bei mir alles in Ordnung.

    Quote


    Im Anhang Aktueller dpatch fur yavdr. mit meinen Änderungen und den letzten von rmm

    Code
    1. r16605 | dirk | 2011-05-26 17:46:27 +0200 (Thu, 26 May 2011)
    2. vdr1.7: call empty() if changing from backward trickmode to play in livebuffer mode


    Ich werde demnächst auch eine aktualisierte Version mit den aktuellen Ändernungen hier einstellen.


    LG


    Joachim

    Torsten73 kannst testen.
    läuft ohne neubau


    Also der livebuffer-Patch veraendert die API von Timers.h. Insofern sollte man vielleicht doch die Plugins neu bauen. Deshalb gibt es extra eine make.global, damit die plugins auch mit den richtigen headern kompiliert werden.


    Ich fände es auch gut, wenn oben genannte Änderungen auch hier gepostet würde, damit alle etwas davon haben.


    LG


    Joachim

    Es hat sich wieder etwas getan im reel svn bezüglich Livebuffer:


    vdr1.7: fix crash in livebuffer
    vdr1.7: fix switching channel while copying livebuffer data to recording
    vdr1.7: corrected syslog output
    vdr-1.7: livebuffer: switch to play if reached start/end of recording


    Deshalb gibt es hier einen neuen Satz Patches:
    vdr-1.7.18-livebuffer12-rmm: nur Änderung damit es mit einem vanilla vdr kompiliert
    vdr-1.7.18-livebuffer12-yavdr: + Menu-Handling
    vdr-1.7.18-livebuffer12-gnapheus: + Menu + fix für text2skin


    LG


    Joachim


    PS:
    In den Patches sind noch ein Paar Zeilen aus dem rmm-vdr drin für ReplayControll::ShowMode , die nicht mit #ifdef USE_LIVEBUFFER abgesetzt sind. Ich dachte diese Zeilen helfen vielleicht, bei der seltsamen OSD Darstellung. Tun sie aber nicht. Da ich die Patches aber schon fertig hatte, sind sie noch enthalten. Ich nehme sie im nächsten Release wieder raus.

    Hallo,


    zumindest für Kabeldeutschland gibt es schon eine Datenbank. Unter http://helpdesk.kdgforum.de/sendb/belegung.htmlwählt man das Netz aus und die Sender aus, die man angezeigt haben möchste. Unten rechts gibt es dann die Exportfunktion für den vdr (channels.conf). Man kann die channels.conf auch direkt abfragen über http://helpdesk.kdgforum.de/export.php?mode=vdr&netz=??? . Die ??? müssen mit der entsprechenden Netznummer vom KDG-Helpdesk ersetzt werde (kann 2 und 3 stellig sein, ohne führende 0). Mit einen kleinem Script kann man sicher alle direkt runterladen. Oder man setzt sich mit den Machern von KDG-Helpdesk in Verbindung, ob man die API direkt nutzen kann ohne alles wieder in die Channelpedia zu kopieren..


    LG


    Joachim

    Zitat von »gda«
    Stimmt, habe ich tatsächlich, sorry. Das müssen sich andere im Team ansehen, ob es hier zu Problemen mit Avahi, automounter, ... kommen könnte.


    Gerald


    Ich habe gelesen, dass der livebuffer auf eurer Agenda für yavdr 0.4 steht. Wenn ihr noch etwas an der Codebasis ändert, wäre es nett dieses hier zu posten, so dass auch nicht yavdr'ler davon profitieren können. Ich freue mich auch schon auf die 0.4 :) .


    Lg
    Joachim


    gnapheus ,
    das sieht leider nicht gut aus, wenn man den -b Parameter mitgibt. es passiert folgendes:

    • Es werden Symlinks im -b Pfad (hier /media/tmpfs mit richtigen Rechten) erzeugt, die auf /srv/vdr/video.01Buffer/xxxxx.ts verweisen (man beachte den Pfadnamen!)
    • Ich bin nicht in der Lage den Livebuffer ausschließlich im -b Pfad speichern zu lassen
    • wenn ich den srv/vdr/video.01 als -b angebe, geht der LB gar nicht, die Files werden nicht erzeugt (beide Ordner video.00 und video.01 beinhalten Symlinks auf video.01/LiveBuffer

    Hast Du mal mit mehreren Video Verzeichnissen die Funktion von -b getestet? Ich kann Dich auch gerne mal auf den VDR lassen, wenn Du Dir das ansehen möchtest.


    Also bei mir funktioniert der -b Parameter tadellos. Aber ich benutze nicht yavdr, sondern einen Vanilla-vdr, der nur mit dem Livebuffer gepatched ist. Außerdem enthält die Version des Patches, wie ich sie verwende auch eine Änderung beim Erstellen des Dateinamens (wegen text2skin-Kompatibilität). Soweit wie ich das überblicke dürfte es also entweder an der yavdr-Version des Livebuffer-Patches oder an der Verzeichnisstruktur mit video.00 video.01 liegen. Ich tippe auf ersteres. Bei yavdr kann ich dir leider nicht helfen. Man müsste testweise vielleicht doch mal meine Version mit der geänderten Dateierstellung versuchen.


    LG


    Joachim

    Noch etwas zum tmpfs:
    Der tmpfs kann gar nicht in den Swap gelangen, da eine Plattenspeicher Voll Funktion vom VDR bei weniger als 512MB greift (siehe mein letztes Log). D.h. der tmpfs kann immer nur auf Memsize-512MB genutzt werden, selbst wenn ich size=100% definiere, denn der swap wird ja erst genutzt, wenn der Speicher nicht mehr reicht, aber es bleiben immer 512MB übrig. Ich hoffe ich habe das verständlich vormuliert?
    Nun könnte ich daraus ableiten, dass man immer den tmpfs auf 100% setzten kann, denn der VDR selbst braucht immer irgendwas zwischen ca 350-800MB (nur geschätzt, wenn noch Firefox läuft) womit es also bei genügend Speicher durchaus auch mit 4GB schon für ca. 25min. reicht und bei 8GB locker 45 min.
    Unter 64 Bit/4GB kann ich zumindest fast eine 3/4h puffern bei ARDHD und ca. 10-12Mbit. Dies ergebe rechnerisch bei 20 Mbit die maximal existieren immer noch die besagten 25min und das reicht eigentlich schon aus. Trotzdem bekommt meine SandyBridge Plattform 8GB verpasst :D


    Ich bin mir nicht sicher ob das 100% richtig ist. Du kannst über die size option beim mounten angeben wieviel Speicher die tmpfs-partition haben soll. Dieser Wert kann durchaus größer sein als der physikalische Ram. Meinem Verständnis nach wird zunächst der RAM bis zu 50% vollgeschrieben, dann geht es ab auf den swap Bereich. Ich habe bei meinem Test mit einer 5 GB tmpfs partition allerdings nicht gewartet bis 2 GB=50% meines RAMs voll waren. Vielleicht kannst du das ja nachholen.
    Also mit

    Code
    1. mount -t tmpfs -o size=5G tmpfs /var/livebuffer

    und den vdr mit

    Code
    1. vdr -b /var/livebuffer

    aufrufen. Dabei muss swap+50%ram >> 5 GB sein und vdr zugriff auf /var/livebuffer haben.


    LG


    Joachim

    Nochmal zu Thorsten's Test

    Folgende Funktionen sind merkwürdig:
    - Pause auf ARD HD und AnixeHD ergibt bei erster Betätigung "kein Signal Infobild" beim 2. pausieren während der Bufferwiedergabe wid das Bild gezeigt wie erwartet


    Kann ich nicht bestätigen. Bei mir wird richtigerweise das Standbild angezeigt und beim Abspielen geht es an der entsprechenden stelle weiter, sowohl bei SD als auch bei HD.

    Quote


    - im LB-Mode funktioniert die Info Taste nicht (keine Reaktion)


    Das wird doch einiges mehr an Arbeit als gedacht. Man müsste ja immer die EPG Information abrufen, die zur aktuellen Stelle im livebuffer passt. Momentan würde ich das aber noch nicht einprogrammieren, um nicht zu weit weg von rmm Original zu kommen. Obwohl bei rmm schon lange nichts mehr in Richtung livebuffer gemacht wurde, mal sehen ...

    Quote


    Fehler:
    - Pause auf ZDFHD, kurz nach der Pause (ca 15s) sofort Wiedergabe gestartet, ergibt massive Klötzchen und Zwitscherton, der sich nicht behebt, erst nach erneuter Pause oder springen synct sich die Wiedergabe. Gilt nur kurz nach Beginn der ersten Pause, jede weitere Pause geht sogar ohne jegliche Klötzchen bei der Wiedergabe.


    Kann ich jetzt auch für HD bestätigen. Bei SD Sender verhält sich der livebuffer aber normal. Ich habe aber keine Ahnung wie man das ändern könnte.

    Quote


    - ein schnelles Spulen über die Liveposition hinaus beendet nicht das Spulen und wechselt in die Wiedergabe, da fehlt noch eine Erkennung


    Wie weiter oben schon beschrieben, soll der vdr aus dem livebuffer gehen, wenn zur aktuellen Zeit vorgespult wurde. Das klappt bei mir bei SD Sendern auch ganz gut. Bei HD Sendern wird aber gar nicht gespult. Ist das nicht ein allgemein bekanntes xine Problem ?


    LG


    Joachim


    Ich habe jetzt auch etwas mit tmpfs rumgespielt. Also, so wie ich das sehe, nimmt sich tmpfs immer nur die Hälfte des physikalischen RAMs. Wenn die Größe des tmpfs-Laufwerk größer ist als die Hälfte des physikalischen RAMs, wird der Rest auf die Swap-Partion geschrieben. Solange die Swap-Partition groß genug für Livebuffer und das Linuxsystem ist, sollte alles in Ordnung gehen. Deine Konstruktion mit video.00 und video.01 verstehe ich nicht ganz. Du brauchst einfach nur ein tmpfs auf irgendeinen mount point erstellen z.B /var/livebuffer und vdr diesen mount point mitgeben mit -b mitgeben. Der vdr muss natürlich Schreibberechtigung auf das Verzeichnis haben.


    LG
    Jolly

    Zitat von »gnapheus«
    Bleibt der vdr also einfach stehen an Ende des livebuffers? Ich dachte, dass das bei mir der livebuffer wieder in das Livebild geht, wenn man bis zum Ende gespult hat. Vielleicht irre ich mich auch. Gibt es dort einen Unterschied zwischen HD und SD?


    Genau er wechselt in den Livemodus und verwirft den LB. Ich hätte erwartet, dass er statt dessen auf Pause LB wechselt.


    It's not a bug, it's ... . Die Idee dahinter ist wohl, dass man von der Vergangenheit direkt in die Gegenwart spulen kann. Wenn man etwas verpasst hat, kann man ja wieder zurückspulen. Deswegen sind bzw. sollten auch alle Tasten so bedienbar sein wie im livetv.


    LG


    Joachim

    IMHO weiß tmpfs nicht ob es in den RAM oder den Swap schreibt, da einfach nur Cache Speicher von Kernel anfordert . Hier steht einiges dazu geschrieben http://www.ibm.com/developerworks/library/l-fs3.html . Wenn das tmpfs volläuft, passiert wahrscheinlich etwas ähnliches wie wenn die video platte vollläuft. Was genau passiert weiß ich nicht. Aber Linux wird das sicherlich nicht mögen. Meine Systemplatte ist einmal vollgelaufen -> System friert ein. Das der livebufffer weiter aufnimmt, wenn man auf Pause drückt, ist bestimmt gewollt und macht auch Sinn. Mit dieser Funktion kann aber natürlich immer eine Ramdisk oder auch die Festplatte volllaufen.


    Quote


    Folgende Funktionen sind merkwürdig:
    - Pause auf ARD HD und AnixeHD ergibt bei erster Betätigung "kein Signal Infobild" beim 2. pausieren während der Bufferwiedergabe wid das Bild gezeigt wie erwartet


    Zu den Problemen mit den HD Sendern kann ich nichts sagen. Hast du das gleiche Verhalten auch auf den SD Sendern?

    Quote


    - Channel+/- funktioniert nicht während des Livebuffers, mit Cursor up/down hingegen schon


    Das lässt sich sicherlich einfach ändern.

    Quote


    - Im Livebuffermode sind die Zahlentasten nicht für den Livebuffer sondern Kanalwahl. Das dürfte gewollt sein?


    Ja, ist gewollt. Das wurde sogar extra dazuprogrammiert.

    Quote


    - im LB-Mode funktioniert die Info Taste nicht (keine Reaktion)


    Das lässt sich auch ändern.

    Quote


    - ein schnelles Spulen über die Liveposition hinaus beendet nicht das Spulen und wechselt in die Wiedergabe, da fehlt noch eine Erkennung


    Bleibt der vdr also einfach stehen an Ende des livebuffers? Ich dachte, dass das bei mir der livebuffer wieder in das Livebild geht, wenn man bis zum Ende gespult hat. Vielleicht irre ich mich auch. Gibt es dort einen Unterschied zwischen HD und SD?


    LG


    Joachim

    - Beautifier drueber gejagt
    - LiveBuffer Setup Value und zusaetzliches PauseKey Handling entfernt (LiveBuffer wird abgeschaltet indem man LiveBufferSize auf 0 setzt)


    Ich verstehe nicht wozu das dienen soll? Das PauseKey Handling hat keinen Einfluss auf die Stabilität und macht die Sache sehr viel komfortabler.
    Der Beautifier macht es schwieriger den Code mit eventuellen Änderungen von rmm zu vergleichen. Ich habe deshalb versucht soviel wie möglich von rmm zu übernehmen. Kannst du vielleicht etwas mehr zu den Kleinigkeiten sagen ?


    LG


    Joachim

    wie wäre es erstmal ohne Menü und z.B. 15 min und 50MB Dateigröße? 5 min sind arg kurz zum Testen. Ohne Menü und text2skin dürfte doch der Patch ohne Änderungen übernommen werden können. dann text2skin und die Menüs als nächstes. Nur so ne idee. ich komme erst gleich dazu zu testen, System ist schonmal aufgesetzt, aber noch auf stable. Bis nachher ...


    Also beim Patch für den yavdr habe ich die Dateigröße auf 100 MB eingestellt, da dies die minimale Dateigröße des vdr ist. Der Wert kann aber auch von Hand in der setup.conf des vdr geändert werden unter "LiveBufferMaxFileSize = xxx". Die Einstellung des livebuffers im Setupmenu kann eigentlich keine Auswirkung auf die Funktion haben, da die Variable livebuffer einfach nur durch pauseKeyHandling ausgetauscht wird. Im Patch selber wird schon einiges an der Methode ProcessKey() geändert. Da kann ich mir gut vorstellen, dass es zu Inkompatibilität mit anderen Patches kommt. Ich habe den Patch nur mir einem vanilla-vdr ausprobiert.


    LG


    Joachim

    Im Anhang habe ich eine Version ohne die Änderung für Text2skin. Sprich die Datei wird wie im RMM-Code benannt (nicht vdr konform!). Es übrigens sehr wichtig, dass die Änderungen an der vdr Makefile und Makefile.global übernommen werden, wenn man mit den #ifdef USE_LIVEBUFFER arbeitet. Sonst werden die Plugins gegen die falschen Header (timer.h) kompiliert. Der Patch ist allerdings ungetestet. Überhaupt bräuchte der Patch noch mehr ausgiebiges Testen, um die Stabilität einschätzen zu können. Ich selber nutze den Patch momentan nicht auf meinen Produktivsystem.


    LG


    Joachim


    Ich fänd es übrigens intuitiver und cleverer die Minuten und nicht die MB einzustellen.
    Meine Mutter weiß nicht, was ein MB ist :-)


    Und das funktioniert dann für SDUnd HD gleichermaßen.


    Äh, zur Zeit (jetzt wieder) ist ja nur die Länge in Minuten im Setup einstellbar. Aber die Dateigröße muss zur Länge des livebuffers passen, da immer mindestens eine Datei mit der eingestellten MB-Größe erzeugt wird, egal wie klein die Bufferzeit eingestellt ist. Deshalb halte ich es für sinnvoll die Buffergröße in MB so einzustellen, dass mit einen Live mit x Minuten Länge gerade 2 Dateien voll schreibt. Beim Spätestens beim Anlegen der vierten Datei wird die erste dann gelöscht. Das ist deiner Mutter wahrscheinlich egal ;), aber der Patch ist ja noch in der Entwicklung (s.u.).


    Torsten73


    2 min und 50 MB sind nur meine Testeinstellungen. Ich bin ein ungeduldiger Mensch. Im original Code ist die Größe auf LiveBufferMaxFileSize = MAXVIDEOFILESIZEDEFAULT/2 gesetzt. Das entspricht 1000 MB. Das heißt der Livebuffer würde immer mindesten 1 GB verschlingen egal wie kurz man ihn einstellt. Ich denke die Größe sollte sich adaptiv auf die Livebufer Länge in Minuten einstellen. Ramdisk habe ich noch nicht ausprobiert


    LG


    Joachim

    So, hier ist eine neue Version des Livebuffer-Patches. Das Problem mit Text2skin ist behoben. Das Problem war, dass text2skin die timers.h einbindet, aber das USE_LIVEBUFFER nicht übernommen hat. Außerdem funktioniert bei mir jetzt auch das löschen der alten Dateien. Im Patch ist dafür die Dateigröße fest auf 50 MB eingestellt. Das passt für einen 2min livebuffer SD ganz gut. Für andere liverbuffer Längen muss die Größe wahrscheinlich sinnvoll angepasst werden.
    Den Patch gibt es nun für die neue Developerversion 1.7.17 in zwei Versionen:
    - vdr-1.7.17-livebuffer10-rmm.diff enthält den code von rmm und drei Änderungen, um dne code mit einen normalen vdr zu kompilieren
    - vdr-1.7.17-livebuffer10-gnapheus.diff enthält den code von rmm und meine Änderungen, damit der patch mit text2skin läuft


    Viel Spass beim Testen


    Joachim


    PS:
    Der Code um die Einstellungen im VDR-Menu zu machen, ist noch nicht enthalten. Kommt aber noch ...
    Hab's gerade geändert. Ein- und Ausschalten über über PauseKeyHandling und Einstellen der Minuten über Setup gehen.

    Hi,
    ich bin kein Experte aber auch gerade auf der Suche. Also bei computer universe finde folgende Boards mit geforce 8200 onboard und 2 x pci slots :
    ASUS M4N78-AM V2 AM2+ mATX
    ASRock K10N78M Pro AM2+ mATX


    Allerdings haben diese Boards keine HDMI Buchse. Es sollte aber ein DVI2HDMI Adapter dabei sein.


    LG


    Joachim

    Ich musste mir gerade von meiner besseren Hälfte erklären lassen, dass grau das neue blau ist ;). Ich glaube wir brauchen einen neuen vdr-portal-smilie (siehe Anhang). Aber ich höre ab jetzt das Trollen in diesem Thread auf.

    Images

    • vdr-portal-smilie.png