GraphLCD-Plugin lässt VDR neustarten

  • Hallo,


    bei mir lässt das GraphLCD-Plugin den VDR häufig neustarten, speziell wenn ich die Wiedergabe von z. b. MP3-Plugin, Mplayer-Plugin oder DVD´s stoppe oder die Titel am Ende sind und sich das Plugin beendet.
    Inzwischen lasse ich VDR ohne GraphLCD laufen da mir der Fehler schon laufende Aufnahmen zerschossen hat. Es liegt sicher an dem Plugin, denn ohne läuft VDR auch länger ohne Probleme, mal abgesehen vom Einschlafen der Skystar2.


    Ich habe auch unterschiedliche VDR- und GraphLCD-Versionen probiert, immer das gleiche, leider. Es erscheint auch nirgends eine Fehlermeldung die mir weiterhelfen könnte.


    Derzeitige Konfiguration:


    System: Gentoo-Linux
    VDR-1.3.27
    GraphLCD Base und Plugin 0.1.2-pre6
    SED1330 Display 320x240 Pixel
    Kernel DVB-Treiber 2.6.12.3
    Weiter Plugins:
    DVD
    VCD
    text2skin
    femon
    weatherng
    cdda
    image
    osdpip
    osdteletext
    pim
    remote
    streamdev-server
    sysinfo


    Ich glaube ja nicht das mir wirklich jemand kurzfristig helfen kann, möglicherweise haben ja andere auch das Problem und man kann dem Problem gemeinsam auf den Grund gehen. Mir fehlen leider die tieferen Linux- und kompletten Programmierkentnisse dafür.


    Mal schaun, vielleicht schaffe ich es mir ein Script zu schreiben damit ich mir mit schowtext so etwas wie Statusinfos und Systeminfos auf dem Display anzeigen lassen kann, in GROßER Schrift, unabhängig vom VDR. ;)

  • Das gleiche Problem habe ich auch. Bei mir saust die Kiste auch immer beim Beenden des Mplayer oder MP3 Plugins ab. Soweit ich das mitbekommen habe scheint es wohl grundsätzlich am Plugin selbst zu liegen, da dieses wohl Funktionen des VDR's aufruft, die es nicht aufrufen dürfte (multithreading)
    Dies scheint aber wohl niemanden zu stören, oder niemand setzt mp3/mplayer Plugin mit dem graphlcd Plugin ein. Ja ich weiß, jetzt heißt es dann mach es selbst. Ich hatte aber bisher noch keine Zeit mich in den Code des Plugins einzulesen.
    Sorry, den Frust mußte ich jetzt abladen.

    VDR: Gentoo 2.6.27 VDR 1.6.0-1 Plugins: VOMP, music, mplayer, dvd, epgsearch, extrecord, femon, arghdirector, premiereepg, mailbox, mediad, osdpip, skinenigmang, image, burn
    VOMP: 0.3.0 mit shutdown patch

  • Hallo,


    ich habe mich mal des Problems angenommen. In der angehangenen Version ist ein Patch für VDR dabei. Mit diesem Patch wird eine neue Funktion hinzugefügt, die einmal pro Sekunde vom Hauptthread aus aufgerufen wird. In dieser wird dann der Replay-Status abgefragt.


    Leider kann ich den Fehler hier nicht nachvollziehen, deshalb müsst ihr mir sagen ob es was bringt.


    Andreas

  • Hi,


    Zitat

    Original von powarman
    hats denn nun mal jemand gestestet, der die Probleme hatte? Ich hätte da gern eine Rückmeldung.


    ich habe es zwar die SVN(r21) Version getestet, die dürfte aber identisch sein.
    Und keine Probleme bei der Wiedergabe (VDR/mplayer/muggle/mp3/image) bezüglich abstürzen feststellen können. Ich hatte aber vorher auch keine Stabilitätsprobleme.



    BTW und OT : Allerdings, ich weiss noch nicht warum, gibt es seit 1.3.28/29 & r14 hier das Problem das während der Wiedergabe das Playback-Logo zurück auf den aktive Senderlogo wechselt, obwohl die Wiedergabe (egal welche) noch läuft. Aktuell tippe ich auf eine Timeranfang/-ende als Ursache, ich habe aber noch nicht genau gesucht, da es nur ein optisches Problem ist.


    Andreas

  • Hallo,


    Zitat

    Original von no_expert
    Ich habe die neue Version und Patch gerade mit vdr-1.3.27 getestet, das Problem besteht immer noch.


    komisch, der Fehler kann eigentlich nicht mehr auftreten, wenn ich mir so die Abläufe im VDR anschaue. Bist du sicher, dass du alles richtig gemacht hast:


    - VDR Patch angewandt?
    - VDR neu kompiliert?
    - VDR binary auch nach /usr/local/bin o.ä. kopiert?
    - alle Plugins neu kompiliert?


    Andreas

  • Ja, ich bin mir sicher.


    VDR beendet.
    make clean
    make plugins-clean
    altes graphlcd gelöscht, neues nach PLUGINS/src kopiert
    VDR gepatcht
    make
    make plugins


    Ich probiere das demnächst mit der 1.3.29, mal schaun was da passiert. Ich wollte sowieso die neue Version installieren.

  • Ich habe das Plugin inzwischen unter 1.3.30 probiert, es besteht immer noch das gleiche Problem. Wenn ich z. B. die Wiedergabe von MP3 stoppe, reagiert VDR nicht mehr und startet sofort neu. Auf dem LCD-Display bleibt noch die Anzeige stehen die vor dem Stoppen aktuell war und ändert sich erst wieder nach dem Neustart wenn das Plugin geladen wird. Mich erstaunt das nicht viel mehr Leute das Problem haben. Den Patch habe ich natürlich angewendet.

  • Seltsamerweise geht es wieder los, mit VDR-1.3.31 und auch der 1.3.32.


    VDR wurde inzwischen mit allen Plugins mit den Debugflags kompiliert.


    Jetzt habe ich folgendes Phänomen: VDR im Debugger gdb gestartet läuft anstandslos. VDR von der konsole mit runvdr und den gleiche Optionen und Plugins macht die Probleme. Deswegen kann ich keine Infos liefern.

  • du musst vdr nicht über gdb starten, wenn du einen backtrace haben willst.


    einfach vor dem vdr Start folgendes eingeben:

    Code
    ulimit -c unlimited


    Dann vdr zum Absturz bringen. Es wird eine Datei core.xxxx erstellt, wobei das xxxx eine Zahl ist.


    Dann folgendes eingeben:

    Code
    gdb /usr/local/bin/vdr core.xxxx


    und einen backtrace machen.


    Andreas

  • Hi,


    ich weiss nicht ob es die selbe Ursache hat.


    Folgendes zum Reproduzieren,


    VDR startet normal (Poweron/Neustart),
    es wird kein Senderlogo angezeigt, die Initalisierung von SetChannel hat nie stattgefunden. (Warum auch immer das von cStatus nicht aufgerufen wird)
    ohne weiteren Kanalwechsel wird eine Wiedergabe gestartet ( Playbacklogo wird angezeigt )
    Wiedergabe stoppt -> Segfault


    Backtrace

    Code
    #0  0x08091e0b in cChannel::GetChannelID (this=0x0) at channels.h:190
    #1  0xb6d2a4c3 in cGraphLCDState::SetChannel (this=0x8eb19f0, ChannelNumber=0)
        at state.c:594
    #2  0xb6d293df in cGraphLCDState::Replaying (this=0x8eb19f0,
        Control=0x9069ec0, Name=0x0) at state.c:286
    #3  0x0811310f in cStatus::MsgReplaying (Control=0x9069ec0, Name=0x0)
        at status.c:41
    #4  0x080d6bd9 in ~cReplayControl (this=0x9069ec0) at menu.c:3330
    #5  0x080e7fb3 in cControl::Shutdown () at player.c:84
    #6  0x081284a0 in main (argc=28, argv=0xbffffaf4) at vdr.c:844



    state.c


    Denkbare (ungeteste )Lösung channel.number bei Starten mit aktiven Kanal der Primären Karte initialisieren ...


    state.c / 23

    Code
    cGraphLCDState::cGraphLCDState()
    :	first(true),
    	tickUsed(false)
    {
    -	channel.number = 0;
    +	channel.number = cDevice::CurrentChannel();
    	channel.str = "";
    	channel.strTmp = "";


    Ein schneller Workaround wäre einfach vor dem Playback den Kanalzuwechsel das mit das GLCD auf den neuen Kanal aufmerksam wird ...


    Andreas

  • Zitat

    powarman
    hm, eigentlich sollte das nicht mehr passieren, dafür wird in cPluginGraphLCD::Start() ja auf den Thread gewartet, damit dass nicht mehr passiert. Komisch...


    So ganz durchschaue ich den Mechanismus noch nicht, aber eine Verlängerung der 5 Sek. Timeout Zeit in Start() auf 30 Sek. hilft mir.



    BTW : Folgendes scheint das selbe Problem zu behandelt ...
    http://www.vdr-portal.de/board…?postid=361000#post361000
    http://www.vdrportal.de/board/…?postid=359218#post359218

  • Hi,


    Zitat

    Original von Hulk
    Denkbare (ungeteste )Lösung channel.number bei Starten mit aktiven Kanal der Primären Karte initialisieren ...


    state.c / 23

    Code
    cGraphLCDState::cGraphLCDState()
    :	first(true),
    	tickUsed(false)
    {
    -	channel.number = 0;
    +	channel.number = cDevice::CurrentChannel();
    	channel.str = "";
    	channel.strTmp = "";


    Auf diese Änderung kam ich letzte Woche auch und die funktioniert auch so weit, also keine Abstürze mehr. Aber ich glaube mich entsinnen zu können, dass trotzdem beim VDR-Start der initiale GraphLCD-Inhalt falsch ist (leer).


    Gruß,
    Andreas

Jetzt mitmachen!

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