[ANNOUNCE] UPnP-AV/DLNA-Plugin für den VDR (0.0.1-alpha)

  • Hallo,


    nach sehr langer Entwicklungszeit möchte ich nun das (zweite) UPnP-Plugin für den VDR ankündigen. In diesem Plugin wird besonders auf die DLNA-Fähigkeit wert gelegt und soll mit den meisten DLNA-zertifitzierten Geräten funktionieren.


    Die Projekt-Homepage vom Plugin lautet:
    http://projects.vdr-developer.org/projects/show/plg-upnp
    Die aktuellen Versionen können dort oder unter:
    http://upnp.vdr-developer.org
    heruntergeladen werden.


    Das Plugin steht noch sehr am Anfang. Allerdings habe ich mich bemüht, die zahlreichen Wünsche und Vorschläge aus den Diskussionen einzubinden und entsprechende Vorbereitungen zu treffen, damit ich sie im Laufe der Entwicklung einarbeiten kann. Ich habe auch die Entwicklung des anderen Plugins übernommen, wobei ich allerdings auf eigenen Sourcen aufgebaut habe und auch die Abhängigkeiten entsprechend sind.


    Einen Hinweis noch: Diese Version arbeitet NUR ab Version 1.7.4 und später. Getestet ist sie aber mit Versionen ab 1.7.8. Frühere Versionen und ganz speziell Version 1.6.0 des VDRs werden nicht unterstützt, da hier der TS-Support fehlt. Hierfür kann/soll die andere (erste) Version genutzt werden.


    PS: das ist mein erstes Plugin, daher bitte ich natürlich im reichlich Hilfe und Unterstützung eurerseits, damit das Plugin schnell und gesund reift.


    AN ALLE INTERESSIERTEN TESTER: Danke für die Unterstützung. Wenn ihr Fehler findet oder das Plugin abstürzt, öffnet bitte ein Ticket und schreibt kurz hinein, wann der Fehler passiert ist und welche Ausgaben zuletzt dabei angezeigt wurden. Damit kann ich die Fehler sammeln und schneller bearbeiten.


    //edit:
    Da für viele DLNA-Geräte bestimmte HTTP-Header wichtig sind, habe ich die Tombupnp von Mediatomb hergenommen und die CustomHeader-Funktionen extrahiert, woraus dann dieser Patch für libupnp-1.6.6 entstanden ist. Ich habe noch keine Zeit gefunden das Plugin darauf abzustimmen, aber falls jemand Lust und Muse hat, dass selber auszuprobieren, kann das tun und mir die Ergebnisse mitteilen, damit ich das dann einarbeiten kann. Der Patch ist noch ungetestet, daher keine Garantie auf Funktion *hrhr*


    //edit 2: Ich habe mal den Titel angepasst. Damit mit der demnächst kommenden Version 0.0.2-alpha keine Konflikte aufkommen :)


    PS: die automatische Bereinigung des MBR hab ich mal auskommentiert ;-)

  • Und dann auch gleich noch den ersten Befund:


    Folgende Player konnten den Server finden und erfolgreich Browsen:


    * Windows Media Player 11 (Windows 7, spielt leider nicht!)
    * XBMC (Spielt HD-Kanäle ab, aber noch kein SD?!)
    * Popcorn Hour C200 (Spielt SD, HD nicht getestet)
    * Popcorn Hour A100 (Spielt SD, HD nicht getestet)
    * Pioneer BDP-LX70A (Spielt beides)


    Es gibt auch noch einige Dinge, die die Nutzung etwas limitieren und daher sich die Nutzung nur auf Testumgebungen beschränken sollte:


    * Kanallisten mit mehr als 30 Kanälen gehen nicht (29 schon!?)
    * Kanalgruppen werden nicht erkannt
    * Datenbank muss manchmal gelöscht werden
    * EPG-Daten mit Anführungszeichen werden nicht gespeichert.


    Das sind erstmal Dinge, die mir berichtet worden. Ich habe versucht sehr viele Ausgaben in das Plugin einzuarbeiten, so dass sowohl auf der Konsole, als auch im Syslog für mich aussagekräftige Hinweise stehen, die mir beim Debuggen helfen. Core-Dumps usw. sind ebenfalls äußerst hilfreich.


    Das Plugin wird ständig um weitere Features erweitert, bis der DLNA V1.5-Standard mehr oder weniger vollständig unterstützt wird und man sich auch im Laden irgendeinen Player kaufen kann und es sofort geht. Deswegen keine Panik, wenn etwas nicht unterstützt wird, ich nehme es auf und versuche es umzusetzen!


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • Hi,



    dann steigt vdr mit Segmentation fault aus.


    plain vdr-1.7.9 libupnp3 (ubuntu 9.04)


    CU
    9000h

    Es ist eagl in wlehcer Reiehnfogle die Bchustebaen in Woeretrn vokrmomen. Huapstache der estre und leztte Bchustbae sitmmen.

    The post was edited 2 times, last by 9000H ().

  • methodus


    Du musst das Makefile nochmal ein bisschen überarbeiten. DESDIR (du meinst wahrscheinlich DESTDIR) ist nicht für dich, das ist für den Paketbauer.
    Im Makefile sollte es nur so benutzt werden:

    Code
    1. DESTDIR ?= /


    Deine eigenen Pfadangaben musst du dann dahinter schreiben, also

    Code
    1. $(DESTDIR)/$(CONFDIR)/$(PLUGIN)/$(WEBDIR)


    statt

    Code
    1. $(DESTDIR)/$(WEBDIR)


    Die Lokalisierung läuft Amok, weil du noch keine Files dafür hast. Das von aussen übergebene LOCALEDIR wird ignoriert und es wird versucht ein Verzeichnis /upnp zu erzeugen. Das ist tödlich in einem Paket. Am Besten du kommentierst das aus solange du noch keine Language-Files hast.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Hi,


    erstmal ein großes Dankeschön für dieses tolle Plugin.


    Habe noch ein weiteres Gerät kurz getestet, nämlich


    Kiss DP-600


    Server wird sofort erkannt und die Kanäle, bzw. das EPG der gerade laufenden Sendung, wird angezeigt.


    SD-Kanäle funktionieren wunderbar, bei HD-Kanälen sagt diese Kiss-Box selbst das sie diesen Codec nicht unterstützt.


    Das VDR-System selbst ist ein Geode mit 600 MHz.
    Technotrend TT S2-3600 USB mit Liplianin Treiber.
    Debian Lenny minimal mit standard Kernel 2.6.26, VDR 1.7.9 und dem UPnP/DLNA-PLugin.


    Weitere Tests mit mehreren Geräten folgen bald.


    Gruß,


    Knallbert


  • DESDIR habe ich selber erstellt, wusste nicht, dass es DESTDIR schon gibt. Ich wollte lediglich das web-verzeichnis in das Konfigurationsverzeichnis des VDRs kopieren und da ich nicht weiß, woher ich das Verzeichnis dynamisch herbekomme, habe ich das so gemacht. Wie kann ich das mit dem kopieren so machen, dass es überall funktioniert? Deine Variante habe ich nicht ganz verstanden (sorry)


    Zum Lokalisieren bin ich auch noch nicht gekommen. Wie kommentiere ich das aus?


    Ich habe absolut keine Ahnung von Makefiles und bin dort komplett auf eure Hilfe angewiesen! Danke schonmal


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • feature wunsch :
    eine INSTALL für mich :)


    irgendwas hab ich doch vergessen ? :schiel


  • Die Warnung ist normal, die habe ich jetzt rausgenommen, weil die viel zu häufig kommt und keine information ist. Was noch wichtig wäre ist die ausgabe im Hauptfenster, dort wird das meiste ausgegeben. Ansonsten, wenn du nicht in die Standardausgabe ausgeben lassen möchtest, könntest du die Datei common.h in Zeile 68 editieren und dort das #define DEBUG auskommentieren, dann wird sowas auch in die Syslog geschrieben.


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • Ich habe den SQLite-Fehler mit Einträgen wo ein einzelnes Anführungszeichen im Text vorkommt behoben. Kanalgruppen habe ich bei mir angelegt und erhalte keine Fehler, kann das jemand nochmal überprüfen?


    Die alpha1-Version kann auf der Projektseite heruntergeladen werden.


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • methodus : Super Sache dein Plugin, werde es demnächst auch antesten. Ich habe aber noch einen kleinen Wunsch: Verwende doch bitte das von http://projects.vdr-developer.org/ angebotene git-Hosting. Somit muss ich als Tester nicht immer ein Archiv herunterladen, entpacken,... sondern mach einfach nur ein 'git pull' ausführen. Ist für dich als Entwickler auch einfacher, da du kein Archiv erstellen musst und auch nicht hochladen musst. Ein einfaches 'git push' und das wars.
    Projekte von http://projects.vdr-developer.org/ die schon git verwenden findest du hier

  • Hallo,


    danke für den Hinweis, ich werde es berückstichtigen und in GIT einlesen.


    9000H : welche Fehler werden dir denn angezeigt? Alles ist hilfreich!


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • Hallo,


    mein Samsung 8090 Fernseher sieht den Server zwar, die möglichen Videos werden auch angezeigt, jedoch wird immer ein "Nicht unterstütztes Dateiformat" bemängelt (vom Fernseher).


    Das gleiche Problem hatte ich auch schon bei meinen Versuchen mit Mediatomb.


    VDR: Ubuntu 9.04, VDR-1.7.9


    Vielleicht hilfts ja weiter.


    Michael

    VDR1: yavdr 0.5 x86_64, 2.0.2, P5QD-Turbo, HVR-4000, TBS-6980, Zotac GT240
    VDR2: yavdr 0.5 x86_64, 2.0.2, auf M3N78 headless als Server
    VDR3: yavdr 0.5 x86_64, 2.0.2, auf ZOTAC ION Mini-ITX als Streaming Client in Koexistenz mit OpenELEC 12.1

  • BobW


    hast Du beim MediaTomb auch die Custom-HTTP-Header Probiert?


    So in der Art wie die hier:


    Code
    1. <custom-http-headers>
    2. <add header="transferMode.dlna.org: Streaming"/>
    3. <add header="contentFeatures.dlna.org: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=017000 00000000000000000000000000"/>
    4. </custom-http-headers>


    Damit soll es bei vielen TV´s laufen.


    Ciaoo,


    Knallbert

  • Knallbert


    Nein, hatte ich nicht. Werde ich morgen versuchen und gebe Bescheid.


    Danke für den Hinweis.


    Michael

    VDR1: yavdr 0.5 x86_64, 2.0.2, P5QD-Turbo, HVR-4000, TBS-6980, Zotac GT240
    VDR2: yavdr 0.5 x86_64, 2.0.2, auf M3N78 headless als Server
    VDR3: yavdr 0.5 x86_64, 2.0.2, auf ZOTAC ION Mini-ITX als Streaming Client in Koexistenz mit OpenELEC 12.1

  • das kommt mit der alpha2 bei mir: (nach dem segfault regelmässig der restart)




    und das kommt wenn ich mit -a die server-ip angebe ?:



    das kommt bei -i eth0




    witzigerweise nach einem neuen versuch gehtr es weiter, aber nur bis zum segfault...



    was mach ich falsch ?


    so ich hab keine ahnung ob ich das richtig gemacht hab, aber das hier gibt es mit valgrind: (ganzer log pastebin)


    http://de.pastebin.ca/1641129


  • Hallo Hotzenplotz,


    danke für die Valgrinds, ich habe gestern einen Fehler mit einen anderen ersetzt. Tut mir leid. Ich habe nochmal eine neue Version hochgeladen. Ich werde heute versuchen das git einzurichten... versprechen kann ich nix.


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin

  • Es gibt nach wie vor sehr viele Fehler. Gerade in Hinblick auf Speicherbereinigung usw.


    Mir würde ja schon viel bringen, wenn mir jemand erklären könnte, was es dieser Fehler mit cString von Klaus auf sich hat. Ich erhalte überall, wo ich cString::sprintf() nutze den Valgrind-Output, dass ein Byte falsch gelesen wurde. Ist das ein Fehler von mir oder von Klaus' sprintf?


    Medion Digitainer; AsRock B75 Pro3-M, Celeron G540; Kingston Value 4GB
    Samsung SpinPoint 250GB 2,5"; Samsung WriteMaster DVD-Brenner;
    TT-S2-6400, 2x TT-S2-1600, Ubuntu 12.04 mit YaVDR-Paketen. VDR 1.7.27, UPnP/DLNA-Plugin