[ANNOUNCE] externaplayer-plugin 0.1.0

  • Ich habe gerade eine neue Version von meinem externalplayer-plugin hochgeladen. Man kann es hier herunterladen: http://sourceforge.net/projects/externalplayer


    Changelog:


    Es gibt allerdings noch mindestens 1 gravierendes Problem, siehe http://www.vdrportal.de/board/thread.php?threadid=40010&sid=


    Ein anderes mir bekanntes Problem in Verbindung von DXR3 ist, dass sich VDR nach beenden des Abspielprogramms aufhängt. Eine Lösung, die bei mir gut funktioniert, ist Zeile 1007 in der Datei dxr3interfaces.c des dxr3-Plugins auszukommentieren, um den Microcode-Uploade zu verhindern (Microcode wird beim VDR-Start trotzdem noch geladen). Den DXR3-Entwickler habe ich informiert.

  • Bekam beim kompilieren folgenden Fehler:


    Code
    externalplayer-i18n.c:31: error: too many initializers for `const char*
       const[16]'
    make[1]: *** [externalplayer-i18n.o] Error 1
    make[1]: Leaving directory `/home/src/vdr-plugin-externalplayer/externalplayer-0.1.0'
    make: *** [build-stamp] Error 2


    Habe dann aus externalplayer-i18n.c ein paar der

    Code
    "",// TODO

    Zeilen gelöscht ... dann ging es!


    Beim Starten des Plugins mit der example.conf bekomme ich Fehler, wie:

    Code
    LG/usr/sbin/runvdr: line 1: ; vdrKeyYellow = : No such file or directory
    noKey; vdrKey2 = *; vdrKey3 = noKey; vdrKey4 = : No such file or directory


    /Edit
    OK, nachdem das Plugin die conf in "var/lib/vdr/plugins" suchte, habe ich sie dorthin kopiert ... nun funzt es


    Roman

    Wohnzimmer (Client 1): C't Vdr (Sarge), 2.6.15-sl, 1.4.0-2, TT-1.5 FF, Hermes 651, 40 GB, 2Ghz Celeron, 512MB, PSOne TFT
    Server: C't VDR (Sid), 2.6.15-1-k7, 1.4.1-1, TT-1.6 FF, XP-2000+, 500GB, 512MB
    Schlafzimmer (Client 2): MediaMVP
    MediaMVP, Bose S 100, 400er Oldischlepptopp für den Garten

  • Bekomme MMS z.zt. nicht auf die DVB ... Werde mich wieder melden ...!


    Thx
    Roman

    Wohnzimmer (Client 1): C't Vdr (Sarge), 2.6.15-sl, 1.4.0-2, TT-1.5 FF, Hermes 651, 40 GB, 2Ghz Celeron, 512MB, PSOne TFT
    Server: C't VDR (Sid), 2.6.15-1-k7, 1.4.1-1, TT-1.6 FF, XP-2000+, 500GB, 512MB
    Schlafzimmer (Client 2): MediaMVP
    MediaMVP, Bose S 100, 400er Oldischlepptopp für den Garten

  • Das Plugin gibt dir die Möglichkeit, die Ausgabe vom VDR auf das Ausgabedevice (DVB, DXR3, etc.) zu unterbinden und einen anderen Player zu starten, welcher das selbe Ausgabedevice nutzt, wobei aber VDR selbst weiterläuft ...
    Dieses Konzept ist bekannt vom Mplayer-Plugin ... VDR läuft weiter, aber die Ausgabe erfolgt durch einen externen Player ...


    Wollte man bisher ein Programm nutzen, welches dasselbe Prim.Device wie VDR nutzt, konnte man das Mplayer-Plugin "mißbrauchen" oder VDR beenden ...


    Als Beispiele fallen mir hier ein:
    Xine, Mplayer, Dxr3Player, MMSv2, Emulatoren (die Ausgabe auf DVB/DXR3/etc nutzen), 2. VDR-Instanz (???) ... usw


    Was das mit LAN zu tun hat, bleibt der eigenen Phantasie überlassen :)


    LG
    Roman

    Wohnzimmer (Client 1): C't Vdr (Sarge), 2.6.15-sl, 1.4.0-2, TT-1.5 FF, Hermes 651, 40 GB, 2Ghz Celeron, 512MB, PSOne TFT
    Server: C't VDR (Sid), 2.6.15-1-k7, 1.4.1-1, TT-1.6 FF, XP-2000+, 500GB, 512MB
    Schlafzimmer (Client 2): MediaMVP
    MediaMVP, Bose S 100, 400er Oldischlepptopp für den Garten

    Einmal editiert, zuletzt von Uatschitchun ()

  • ich kann`s mit gcc-2.95.4 nicht kompilieren:


    make[1]: Entering directory `/usr/local/src/vdr-1.3.34-bigpatch-test1/PLUGINS/src/externalplayer-0.1.0'
    g++ -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"externalplayer"' -I../../../include -I../../../../DVB/include externalplayer.c
    g++ -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"externalplayer"' -I../../../include -I../../../../DVB/include externalplayer-config.c
    g++ -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"externalplayer"' -I../../../include -I../../../../DVB/include externalplayer-control.c
    In file included from /usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/list:30,
    from externalplayer-config.h:10,
    from externalplayer-player.h:15,
    from externalplayer-control.h:15,
    from externalplayer-control.c:9:
    /usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_algobase.h:76: redefinition of `template <class _Tp> void swap(_Tp &, _Tp &)'
    ../../../include/vdr/tools.h:54: `template <class T> void swap(T &, T &)' previously declared here
    /usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3/stl_algobase.h:76: redefinition of `void swap(_Tp &, _Tp &)'
    ../../../include/vdr/tools.h:54: `void swap(T &, T &)' previously defined here
    make[1]: *** [externalplayer-control.o] Error 1
    make[1]: Leaving directory `/usr/local/src/vdr-1.3.34-bigpatch-test1/PLUGINS/src/externalplayer-0.1.0'

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Kann jemand mit FF-Karte bitte kChanUp / kCanDown -Problem (http://www.vdrportal.de/board/thread.php?threadid=40010&sid=) testen, also irgendeinen Player starten, ohne dass deactivateRemotes aktiviert ist und mit mitteilen, was passiert wenn man die Kanal+ oder Kanal- Tasten drückt. Muss nämlich wissen, ob es ein DXR3-spezifisches Problem ist oder nicht! Vielen Dank.


    Dr. Seltsam
    Sorry, ich kann das Problem zwar reproduzieren, aber zum einen liegt das Problem nicht bei mir, sondern in einer Inompatibilität zwischen der alten GCC-mitgelieferten STL und der tools.h von VDR (STL wird im VDR nirgends verwendet, aber in meinem Plugin schon), zum anderen halte ich es nicht für notwendig einen über 4 Jahre alten Compiler zu unterstützen.
    Du kannst aber folgenden Hack ausprobieren:
    - stlport (eine alternative STL-Implementierung) installieren (http://www.stlport.org/) natürlich geht auch ein Paket deiner Distribution. Auf jeden Fall aber muss stlport mit dem gleichen Compiler übersetzt sein wie VDR und externalplayer!!
    - In der Zeile mit CXXFLAGS im externalplayer-Makefile einfach folgendes dranhängen: "-I/usr/include/stlport -lstlport" oder "-I/usr/local/include/stlport -lstlport", falls du stlport in /usr/local installiert hast.
    Kann dir aber nicht versprechen dass es funktioniert!

  • Zitat

    Original von flix
    halte ich es nicht für notwendig einen über 4 Jahre alten Compiler zu unterstützen.
    Du kannst aber folgenden Hack ausprobieren:
    - stlport (eine alternative STL-Implementierung) installieren (http://www.stlport.org/) natürlich geht auch ein Paket deiner Distribution. Auf jeden Fall aber muss stlport mit dem gleichen Compiler übersetzt sein wie VDR und externalplayer!!


    ich weiss, der gcc 2.95 gehört eigentlich ausgemustert. Aber LinVDR basiert nun mal noch auf woody, und ich wollte ein zu den vorhandenen Paketen kompatibles Plugin beisteuern.


    Wenn ich Dich richtig verstehe, könnte das trotzdem klappen, wenn ich STL mit gcc 2.95 auf meinem Entwicklungssystem kompiliere? Reicht es, dann wenn STL auf dem Entwicklungssystem vorhanden ist, oder werden evtl Teile davon (irgendwelche libs?) auch auf dem Rechner benötigt, wo vdr + Plugin später zum Einsatz kommen?

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Zitat

    ich weiss, der gcc 2.95 gehört eigentlich ausgemustert. Aber LinVDR basiert nun mal noch auf woody, und ich wollte ein zu den vorhandenen Paketen kompatibles Plugin beisteuern.


    Ok, das ist natürlich ein gutes Argument. Allerdings ist es schwierig das Problem zu umgehen, da ich auf die STL nicht verzichten will und auf die tools.h nicht verzichten kann.


    Zitat

    Wenn ich Dich richtig verstehe, könnte das trotzdem klappen, wenn ich STL mit gcc 2.95 auf meinem Entwicklungssystem kompiliere? Reicht es, dann wenn STL auf dem Entwicklungssystem vorhanden ist, oder werden evtl Teile davon (irgendwelche libs?) auch auf dem Rechner benötigt, wo vdr + Plugin später zum Einsatz kommen?


    Für Woody gibt es ja die Pakete libstlport4.5, libstlport4.5-dev und libstlport4.5-dbg. Damit sollte es gehen. Falls du das Plugin statisch linkst, (komischerweise ist im Paket libstlport4.5-dev keine statische Version drin, aber in libstlport4.5-dbg) braucht der Nutzer keine libstlport installiert zu haben. Bei einem kurzen Test (allerdings mit VDR 1.3 und aktuellem GCC auf Ubuntu) hat das aber nicht funktioniert!
    Dynamisch gelinkt hat es aber in der oben genannten Konfiguration funktioniert.
    Der Benutzer muss also libstlport4.5 (also nur die Runtime-Libs) installiert haben (sind nur ~1 MB und hat auch keine weiteren Abhängigkeiten).

  • Wirklich super Plugin, habe direkt mal ein wenig gebastelt.


    Mein Ziel war es das aktuell angespielte MP3-Stück mit Titel und Interpreter sowie Albumcover als MPEG an die DVB-Karte zu schicken.


    Ich habe die test_stillimage so angepasst das regelmäßig ein neues Stillimage an den VDR geschickt werden kann.



    edit: altes problem gelößt. die mpeg brauchen eine auflösung von 480x576 und können mit jpeg2yuv -f 25 -j pic001.jpg -I p -n 1 | yuvscaler -O SIZE_480x576 | mpeg2enc -a 2 -T 200 -n p -f 7 -o pic1.m2v aus einen jpg erstellt werden.


    leider beendet der knopf "wiedergabe beenden" mein script nicht. was muss ich dazu noch in test_stillimage einbauen?


    es läuft nach "wiedergabe beenden" weiterhin als

    Zitat

    20585 ? 00:00:00 test_stillimage <defunct>


    und lässt sich erst durch einen vdr-neustart beseitigen.


    danke :)


    tobias

  • Zitat

    Original von t-ob-i
    Mein Ziel war es das aktuell angespielte MP3-Stück mit Titel und Interpreter sowie Albumcover als MPEG an die DVB-Karte zu schicken.


    Wer spielt denn ?


    Zitat

    Ich habe die test_stillimage so angepasst das regelmäßig ein neues Stillimage an den VDR geschickt werden kann.


    Von wo aus kommen die Infos?
    Könntest du solche Änderungen nicht als diff posten? Machts für den geneigten Anwender etwas leichter :)


    LG
    Roman

    Wohnzimmer (Client 1): C't Vdr (Sarge), 2.6.15-sl, 1.4.0-2, TT-1.5 FF, Hermes 651, 40 GB, 2Ghz Celeron, 512MB, PSOne TFT
    Server: C't VDR (Sid), 2.6.15-1-k7, 1.4.1-1, TT-1.6 FF, XP-2000+, 500GB, 512MB
    Schlafzimmer (Client 2): MediaMVP
    MediaMVP, Bose S 100, 400er Oldischlepptopp für den Garten

  • Zitat

    Original von Uatschitchun


    Wer spielt denn ?


    Grade? Goethes Erben - Prolog zu einem Märchen


    Zitat

    Ich habe die test_stillimage so angepasst das regelmäßig ein neues Stillimage an den VDR geschickt werden kann.


    Von wo aus kommen die Infos?
    [/quote]
    Ich rufe still_image mit still_image /tmp/audio.mpg auf. das audio.mpg tausche ihr zur zeit noch manuell aus. später wird es automatisch generiert - sobal das manuell klappt ;)


    Zitat


    Könntest du solche Änderungen nicht als diff posten? Machts für den geneigten Anwender etwas leichter :)


    Hätte ich vermutlich wenn gewusst wie ;)


    Sonst jemand eine Idee wie ich dem Problem herr werden kann?


    tobias

  • Ich hab mmsv2 über den slave mode eingerichtet und möchte jetzt einige VDR Tasten übergeben die nicht in der externalplayer.conf aufgeführt sind. Mit den schon in der externalplayer.conf aufgeführten Tasten funktioniert es wunderbar. Jetzt möchte ich noch Tasten übergeben die nicht in der Liste sind. Konkret sind das:


    Mute
    Volume+
    Volume-
    Channel+
    Channel-


    ich hab es einfach mal mit vdrKeyMute usw. probiert aber das klappt leider nicht


    Hat jemand einen Tip für mich ?


    Außerdem will ich noch mal ein ganz Großes Lob für Plugin loswerden. Klasse Arbeit


    mfg


    dile

  • Hallo!


    Bin vor einigen Tagen auf das externalplayer plugin aufmerksam geworden, da ich den mms in meinen laufenden vdr einbinden möchte.


    es laufen zur Zeit:


    c't VDR 4.5 mit drx3
    MMSv2


    leider stelle ich mich beim kompilieren und einbinden des externalplayer plugins scheinbar zu Doof an.


    plugin ist entpackt, und scheint auch zu kompilieren ( make läuft ohne fehler, und erzeugt mit eine externalplayer.o im selbigen verzeichnis )


    das ist der Punkt wo ich nun nicht weiterkomme, wie kann ich das plugin nun in meinen c't vdr einbinden?


    UPDATE
    Ich bin jetzt nach anpassen der Pfade im Makefile soweit das die libvdr-externalplayer.so.1.4.2 in /usr/lib/vdr/plugins erzeugt wird, wenn ich jetzt in /etc/default/vdr PLUGIN_CHECK_PATCHLEVEL=no setzte startet mein vdr nichtmehr, mit yes wird das externalplaxer plugin nicht geladen.



    vielen dank schonmal für das plugin und dieses forum


    Gruß
    Johannes


  • man, was habe ich mir damals den Kopf darüber zerbrochen. Dabei ist es ganz einfach. Für die Nachwelt:


    Wenn man in externalplayer-control.c und externalplayer-player.c jeweils ein
    #include <stl.h>
    zusätzlich am Anfang einfügt, flutscht es auch mit dem gcc 2.95.4 sauber durch! :)

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

Jetzt mitmachen!

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