mnlipp / CoCy4Enigma2

A UPnP Renderer for Enigma2
3 stars 1 forks source link

CoCy doesn't play the files on VTI14 #5

Closed Bartyboy closed 4 years ago

Bartyboy commented 5 years ago

Hi I've installed CoCy on a Vu+Duo2 with VTI14. If I want to play a mp3 file from the synology nas with ds audio, the file falls all seconds back to the begin and there's no sound. I've the same problem with local mp3-files via BubbleUPnP on a android phone. On the VTI forum, there are other members with the same problem with VTI10-VTI14. I've attached the cocy.log file. Do you have any ideas to correct this issue? cocy.log

mnlipp commented 5 years ago

From the log, I'd say that everything works up to where CoCy hands over the play request to Enigma2, but Enigma2 doesn't start playing. You may find some more information in the Enigma2 log. With OpenPLI, some information is collected in /var/log/messages. However, this is by default only a subset. To get a full log, follow these instructions. These are general instructions, maybe there is something special for VTI.

Bartyboy commented 5 years ago

Habe gerade bemerkt, dass du auch Deutsch sprichst und im von mir genannten Forum ebenfalls vor langer Zeit einen Post gemacht hast. https://www.vuplus-support.org/wbb4/index.php?thread/23370-upnp-media-renderer-plugin/&pageNo=38#post1835660 Wenn ich die Log-Dateien richtig interpretiere, gibt CoCy alles an den Media Player von Enigma2 weiter. Dieser scheint aber eigentlich auch die Befehle entgegenzunehmen. Kannst du hier eventuell auch weiterhelfen? Leider kommen wir da im VTI-Forum nicht weiter. cocy.log messages.log

mnlipp commented 5 years ago

Es könnte sein, dass die Übergabe zwischen den Threads nicht funktioniert. Ich weiß nicht, wie viel IT-Wissen Du hast...

Unter Windows kann man ja mehrere Programme parallel laufen lassen. Diese Programme "glauben" alle, dass sie den Rechner für sich alleine hätten. Innerhalb eines Programms kann man etwas Ähnliches machen. Verschiedene Teile eines Programms können parallel laufen, jeder Teil "glaubt" sozusagen, er wäre das Programm. Diese parallel laufenden Teile nennt man Threads. Manche Dinge, wie z.B. das Abspielen von Datenströmen, dürfen aber nur von bestimmten Threads (bei Enigma2 dem "Main-Thread") ausgeführt werden. Will ein anderer Thread (CoCy) das Abspielen auslösen, muss er den Main-Thread dazu bringen, den entsprechenden Befehl zu geben.

Leider kenne ich keine "offizielle" Enigma2-Schnittstelle, mit der man den Main-Thread dazu bringen kann, einen bestimmten Code auszuführen. Ich verwende daher dafür eine Lösung, die ich hier gefunden habe. Sie beruht darauf, dass in Enigma2 die sogenannte "twisted" Komponente verwendet wird. Das sollte eigentlich immer der Fall sein, da man sie für das Web-Interface braucht, und ich mir nicht so recht vorstellen kann, dass das mehr als einmal implementiert wurde (also außer in der OpenPLI-Version nochmal in einer Version, die nicht Twisted verwendet).

Grundsätzlich kann man aber natürlich ein Image ohne Twisted bauen und vielleicht ist das bei VTI der Fall. Ich könnte das evtl. herausfinden. Dazu bräuchte ich aber den VTI Source-Code und den habe ich nicht gefunden. (Das ist das Schöne an OpenPLI, da steht der Code ordentlich versioniert auf GitHub.)

Bartyboy commented 5 years ago

Danke für die Unterstützung. Leider ist VTI Closed Source. Mit Microsoft kenne ich mich ziemlich gut aus, bin IT System Techniker. Aber vom Programmieren und Linux habe ich nur einige Grundkenntnisse. Ich werde mich mal über OpenPLI informieren und dies ev. mal testen. Dein Plugin wäre für mich genau das, was mir noch gefehlt hat.

blacksun80 commented 5 years ago

Ich habe das gleiche Problem. Allerdings hat es schonmal funktioniert auf meiner Vuduo2. Siehe anderen Issue. Im zweiten Logfile sieht man, dass es schonmal funktioniert hat. Ich brings aber auch nicht mehr zum laufen.

Bartyboy commented 5 years ago

Hallo Michael Ich habe mich am Wochenende nochmals intensiv mit CoCy beschäftigt und es auch zum Laufen gebracht. Installieren lässt sich sowohl die Version 0.4.1 sowie die Version 0.2.1.

In der angehängten ZIP-Datei sind alle benötigten Dateien für die Installation inklusive Anleitung. Getestet habe ich es mit meiner mipsel-Box (vu+duo2), es sollte aber auch mit ARM funktionieren.

Jedoch läuft es leider nicht wie gewünscht.

CoCy_0.2.1

CoCy_0.4.1

Ich vermute, dass die Version 0.4.1 nicht funktioniert, da dieses als Systemerweiterung installiert wird. Die Version 0.2.1 wird als normale Erweiterung aufgeführt.

Sind die Fehler, welche in der Version 0.2.1 auftreten in der neueren Version behoben oder sind dies Probleme, welche durch die VTI-Software vorhanden sind? Falls sie in der neuen Version behoben sind, lässt sich die Version 0.4.1 irgendwie als normale Erweiterung installieren oder kann ich bei meiner "funktionierenden" Version 0.2.1 irgendwelche Dateien durch neuere ersetzen?

Ich hoffe, du kannst mir weiterhelfen, da ich das Plugin sehr nützlich finde und es ja auch fast läuft. Falls du weitere Log-Dateien oder sonstiges benötigst, lass es mich wissen.

Im Anhang ist meine Installationsanleitung für beide Versionen inkl. sämtlicher Dateien.

20190408_CoCy.zip

Danke und Gruss Bartyboy

mnlipp commented 5 years ago

Hallo Bartyboy,

Jedoch läuft es leider nicht wie gewünscht.

Es ist ein wenig schwierig, strukturiert darauf zu antworten. Ich versuche mal, die Punkte zu kommentieren, zu denen ich etwas sagen kann.

Ich vermute, dass die Version 0.4.1 nicht funktioniert, da dieses als Systemerweiterung installiert wird. Die Version 0.2.1 wird als normale Erweiterung aufgeführt.

Das ist nicht richtig, jedenfalls dann nicht, wenn die Unterscheidung unter VTi genauso läuft wie bei OpenPLi. Sowohl die alte als auch die neue Version werden in usr/lib/enigma2/python/Plugins/SystemPlugins/ installiert. Auch der plugin descriptor hat sich nicht geändert.

def Plugins(**kwargs):
    return PluginDescriptor(name="CoCy", 
        where=PluginDescriptor.WHERE_SESSIONSTART, 
        fnc=plugin_start) 

Das Plugin soll ein System-Plugin sein, da es keine Oberfläche hat.

* Zeitanzeige in BubbleUpnp und DSAudio hängt bei 0-1 Sekunde, Stück wird aber abgespielt
* Reaktionszeit zwischen Stückauswahl und Apspielen ist sehr langsam (Bis zu 30 Sekunden)

Das Problem ist immer die Abgrenzung zwischen Protokollfehlern in CoCy und dem Player. Probier' mal die "Fritz!App Media" als Vergleich.

Eigentlich sollten beide Versionen funktionieren. Bei der Kernfunktionialität "UPnP" habe ich nichts geändert. In der neueren Version wurden die Basisbibliotheken aktualisiert und die Thread-Synchronisation korrigiert. Der zweite Punkt dürfte für die beobachteten Unterschiede verantworlich sein. Das Thread-Management kann in den unterschiedlichen Box-Systemen sehr unterschiedlich sein. Es ist leider völlig unmöglich, das für ein anderes System zu debuggen als das, was man auf der Box hat.

* Beendet sich nicht sauber (Bild bleibt stehen und Sender muss umgeschaltete werden)

Ja, das ist bei mir auch so. Eigentlich wird zu Beginn des Abspielens die aktuelle Quelle gespeichert und am Ende wieder auf sie zurückgeschaltet. Warum das nicht immer funktioniert, weiß ich nicht. Leider fehlt hier auch jegliche Dokumentation. Ich habe das einfach aus einem anderen Plugin-Code kopiert.

* Bleibt bei mir immer mal wieder hängen und spielt das zuletzt ausgewählte Stück ab (vermutlich weil nicht sauber beendet)

Ja, auch das passiert bei mir immer mal. Die Synchronisation zwischen dem Player und dem Renderer beim "gapless play" ist nicht sehr zuverlässig. Soweit ich das in den Log-Files sehen konnte, liegt das Problem an den Playern. Jedenfalls habe ich bis jetzt noch keine Lösung gefunden.

Im Anhang ist meine Installationsanleitung für beide Versionen inkl. sämtlicher Dateien.

20190408_CoCy.zip

Ich muss mir mal noch etwas genauer ansehen, was Du bei der Installation (anders) machst. Aber letztich habe ich den Verdacht, dass die Pakete unter VTi anders "geschnürt" sind als unter OpenPLi. Wenn das so ist, wird es keine allgemein ausführbare Installation geben.

Gruß

Michael

Bartyboy commented 5 years ago

Hallo Michael Danke für deine ausführliche Antworten und Erklärungen. Mit der Fritz!App Media läuft es um einiges besser. Die Zeit zählt und ich die Stücke können meistens geändert werden. Mir ist noch aufgefallen, dass sämtliche Stücke mit dem &-Zeichen im Titel oder Interpret nicht abgespielt werden können. Die Fritz!App Media spielt sie einfach nicht ab und BubbleUpNp und DSAudio starten das gewählte Stück, danach lässt sich aber kein anderes Stück mehr wählen und es hängt in der Endlosschlaufe.

bikb commented 5 years ago

Hallo, ich habe ebenfalls VTI 14 am laufen und kann nur CoCy_0.4.1 installieren weil die ältere auf der Box die falsche Architektur unterstützt. Jedenfalls erhalte ich nur einen schwarzen Bildschirm, egal welche Medien und welcher Zuspieler. Meine Idee: es fehlt auf der Box einen UPNP Erweiterung?! Es taucht keine bei Systemplugins und Erweiterungen auf. Was wird da vorausgesetzt?

mnlipp commented 4 years ago

Closed as I don't have access to the environment used. Feel free to reopen if there is some additional information.