Streamdev suspend. Gibts sowas - Plugin compiliert nicht unter 2.1.6

  • Hallo


    Klingt evtl ein wenig verrückt aber gibt es eine Art suspend für einen streamdev client.


    Hintergrund ist die Nutzung mehrerer rpi in einem Haus und es muss ja nicht sein dass die 24/7 durchstreamen....


    Evtl mit nem timeout oder so...


    Cu
    GTR

  • http://www.vdr-wiki.de/wiki/index.php/Suspendoutput-plugin
    Zusätzlich solltest du dann noch den EPG-Scan des VDR deaktivieren.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hallo


    hat jemand das Plugin unter 2.1.6 laufen ?


    Ich bekomme hier:


    Code
    *** Plugin suspend:
    g++ -g -O3 -Wall -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE6 4_SOURCE -c -DPLUGIN_NAME_I18N='"suspendoutput"' -I/vdr/VDR216/include  -o suspendoutput.o suspendoutput.c
    suspendoutput.c: In member function ‘void cPluginSuspendoutput::CheckInactivityTimer()’:
    suspendoutput.c:315:20: error: cannot call member function ‘bool cCutter::Active()’ without object
    make[1]: *** [suspendoutput.o] Fehler 1


    CU

  • Hallo Copperhead


    ich nehme das jetzt mal nicht persönlich .. - denn - ich habe jetzt seit 15.07.2000 den VDR am laufen und da gab es noch keine Distris für jedermann - also absoluter Linux - Neuling war das damals echt hart aber dank der damaligen Mailingliste und KLS kann ich mich jetzt seit 14 Jahren am VDR erfreuen.


    Korrekt - ich bin kein Programmierer - aber dennoch inzwischen auf Linux realtiv fit - dennoch bin ich nicht in der Lage solche Probleme zu beheben - oft findet man im Protal oder bei Google "Fetzen" mit Lösungsansätzen - nier nicht - daher bitte ich die Frage zu verstehen.


    Warum 2.1.6 - weil die Version auf dem RPI bisher am besten läuft !


    Währe toll wenn du das Diff hier anhängst.


    CU
    GTR

  • Hallo


    das Plugin läuft - soweit ist das klar...


    Was mich irritiert: - Laut Anleitung soll der Kommandozeilen Parameter "--logo"
    während des Suspend ein VDR logo kommen.


    Das funktioniert aber nicht...
    Ist das was spezielles beim RPI oder ist da ein Fehler im Plugin ?


    CU
    GTR

  • Hallo



    wie ich es in einem anderen Beitrag hier geschireben habe (sorry für den Doppel-Post) führt das Plugin (mit dem Patch) bei VDR 2.1.6 zu einem Speicherzugriffsfehler sobald der VDR in den Suspend geht


    Hat irgendwer eine Idee was ich hier machen kann ?


    (VDR+Streamdev+RPIHDDEVICE+RPI)
    Auf dem RPI hat´s aber schon mal funktioniert (2.1.5er VDR+#ltere Version des RPIHDPlugin



    CU
    GTR


  • Was heisst denn "schon mal funktioniert" genau ? Konnte man da tatsaechlich das vdr-logo standbild sehen ?
    Habe jetzt keine aelteren versionen runtergeladen/compiliert zum vergleich, aber bei der 2.0.0 suspend sind bloss zwei .mpg files dabei (black und vdr logo), die der omxplayer beide nur als schwarz widergibt, und der StillPicture code im omxplayer des vdr-plugin-rpihddevice mag auch bloss PES Bilder abspielen, und die beiden Dateien sind nicht PES Bilder. Ist zwar nicht weiter schwer, das so zu patchen, das es nicht mehr abschmiert, aber so richtig Standbild abspielen braucht wohl PES .mpg files oder so.

  • Hi


    nein - ein Standbild ging bei mir noch nie - aber unter 2.1.5 wurde das Plugin erfolgreich übersetzt und funktionierte auch problemlos.
    Unter 2.1.6 compiliert es auch durch - aber sobald das Plgin Aktiv wird (Suspend)stürzt VDR komplett ab.


    CU
    GTR

  • [...] und der StillPicture code im omxplayer des vdr-plugin-rpihddevice mag auch bloss PES Bilder abspielen, und die beiden Dateien sind nicht PES Bilder. Ist zwar nicht weiter schwer, das so zu patchen, das es nicht mehr abschmiert, aber so richtig Standbild abspielen braucht wohl PES .mpg files oder so.


    Suspendoutput funktioniert bei mir auf der Himbeere wunderbar, um das Plugin zu kompillieren, habe ich Zeile 315 in suspendoutput.c auskommentiert:

    Code
    if ( !cRecordControls::Active() &&
    //   	!cCutter::Active() &&
         	!Interface->HasSVDRPConnection()) {


    Und cOmxDevice::StillPicture() benötigt PES- oder TS-Pakete, weil das im API so definiert ist:

    Code
    virtual void StillPicture(const uchar *Data, int Length);
       	///< Displays the given I-frame as a still picture.
       	///< Data points either to a series of TS (first byte is 0x47) or PES (first byte
       	///< is 0x00) data of the given Length. The default implementation
       	///< converts TS to PES and calls itself again, allowing a derived class
       	///< to display PES if it can't handle TS directly.


    Das beigelegte VDR-Logo lässt sich aber mit ffmpeg entsprechend konvertieren:

    Code
    $ ffmpeg -i vdrlogo_720x576.mpg -f mpegts vdrlogo_720x576.pes
    $ mv vdrlogo_720x576.pes vdrlogo_720x576.mpg


    Damit erscheint auch das VDR-Logo, wenn der VDR in den Suspend geht.


    Gruss
    Thomas

  • Moin!


    Hier der korrekte Patch für suspendoutput und vdr 2.1.6


    Lars.

  • Und cOmxDevice::StillPicture() benötigt PES- oder TS-Pakete, weil das im API so definiert ist:


    Ja, ok. aber das gibt IMHO dem cOmxDevice::StillPicture() nicht das Recht den VDR mit segmentation fault zu crashen wenn ihm jemand non-PES daten uebergibt (so wie das suspendoutput plugin). Hier mal wie ich das gefixt habe.



    Das beigelegte VDR-Logo lässt sich aber mit ffmpeg entsprechend konvertieren:


    Supi, vielen Dank. Hatte schon versucht das selbst zu machen, war bisher aber erst erfolglos mit mencoder am probieren ;) Ich schick mal eine Mail an Petri das er das mal im module fixen kann.

  • Quoted from "reufer"



    Das beigelegte VDR-Logo lässt sich aber mit ffmpeg entsprechend konvertieren:


    Supi, vielen Dank. Hatte schon versucht das selbst zu machen, war bisher aber erst erfolglos mit mencoder am probieren ;) Ich schick mal eine Mail an Petri das er das mal im module fixen kann.


    Hat funktioniert mit dem ffmpeg. Allerdings war das VDRlogo ziemlich ploede. Bloss vdrlogo ohne irgendein Hinweis. Ich hatte da das gleiche Logo erwartet wie beim suspend im streamdev-server - das hat den netten hinweis das vdr suspended ist. Habe also das genommen. Das war natuerlich auch kein richtiges PES. Musste ich also auch erst konvertieren bevor ich es im suspendoutput compiliet habe. Denke mal dass streamdev-server auch absemmelt unter rpihddevice solange man das dort nicht auch fixed.

  • Ich habe StillImage() im rpihddevice-Plugin nun dahingehend geändert, dass auch normales MPEG ohne PES-Header angezeigt wird. Damit zeigt nun suspendoutput ohne zu patchen das VDR-Logo an und auch der Hinweis in streamdev-server sollte funktionieren - letzteres habe ich allerdings nicht getestet.


    Fix ist in Git eingecheckt .


    Gruss
    Thomas

  • Bekomme jetzt leider einen Build Fehler

    Code
    omxdevice.c:37:1: error: expected ‘}’ before ‘const’
    omxdevice.c:37:1: error: expected ‘,’ or ‘;’ before ‘const’
    make[1]: *** [omxdevice.o] Fehler 1


    Gruß Patrick

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Konnte es selbst beheben :)
    Vor Zeile 37 fehlt ein

    Code
    };


    Gruß Patrick

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

Jetzt mitmachen!

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