web (HbbTV, VDR*ELEC), Milestone 1 erreicht

  • softhddevice-drm-gles hat noch kein dummy-OSD implementiert, weil es auch kein DETA/ATTA kann. Aber das ließe sich nachholen. Wie es mit den anderen aussieht, weiß ich nicht.

    Wenn du bis dahin mit der Komplettentfernung warten könntest, wär der Druck nicht so hoch ;)

    Hat damit gar nichts zu tun...

    Einmal editiert, zuletzt von rell ()

  • Zabrimus Wenn ich Dein Plugin unter dem neuen Kernel CE-no laufen lasse, erhalte ich im cefbrwoser folgende Fehlermeldung:



    [2024-01-02 17:20:12.057] [cefbrowser] [error] [vdrremoteclient.cpp:226] HTTP error (SendHello): Could not establish connection

    [2024-01-02 17:20:12.073] [cefbrowser] [error] [vdrremoteclient.cpp:226] HTTP error (SendHello): Could not establish connection


    Sagt Dir das etwas? Das Plugin meldet dann, dass der Browser nicht gestartet ist. Die IP-Adresse in sockets.ini ist korrekt.

    Auch 127.0.0.1 geht nicht.

  • Sagt Dir das etwas? Das Plugin meldet dann, dass der Browser nicht gestartet ist. Die IP-Adresse in sockets.ini ist korrekt.

    Auch 127.0.0.1 geht nicht.

    Der Browser meldet im Prinzip ein Lebenszeichen an VDR und ist das einfachste Kommando überhaupt.


    Du kannst mit curl versuchen, ob der Browser und auch der VDR überhaupt Verbindungen annehmen:


    Kommando an den Browser:


    Kommando an VDR:

    Port/IP-Adresse/Host müssen natürlich angepasst werden und in beiden Fällen sollte ein 200 OK kommen. Falls nicht, dann muss weitergeschaut werden. Ich warte noch auf das CE-no, damit ich da auch testen kann.


    Das Bind für die Sockets mache ich tatsächlich nur auf die konfigurierte IP.

  • VDR läuft korrekt, WLAN IP siehe unten (Ethernet IP geht auch nicht):

  • Das ist ja seltsam. Findet du im Log einen Hinweis, daß der HTTP Server im VDR gestartet werden soll?

    Sowas wie [vdrweb] Start Http Server on 192.168.178.20:50000.


    Es gibt noch einen radikalen Test, der allerdings 3 verschiedene sockets.ini benötigt, jeweils einen für VDR, Browser und Transcoder. Das Socket wird für die konfigurierte IP Adresse geöffnet. Wenn man jetzt für die VDR Konfiguration die IP 0.0.0.0 einträgt, dann macht der einen Bind auf alle Interfaces. Die IP-Adressen für Browser und Transcoder müssen aber richtig sein. Für den VDR sähe das so aus:

    Analog für die anderen beiden Komponenten.


    TODO für mich: Ich denke, ich sollte das konfigurierbar machen. Bind auf 0.0.0.0 oder spezifische Adresse. Die Angabe mehrerer IP-Adressen ist mir leider nicht gelungen. Zusätzlich muss ich prüfen, ob der Aufruf von "Listen" wirklich funktioniert hat.

  • Das VDR-Log sieht so aus:


    Code
    Jan 02 20:31:28 CoreELEC vdr[1083]: [1083] [vdrweb
    Jan 02 20:31:28 CoreELEC vdr[1083]: [1083] [vdrweb] Start Http Server on :0
    Jan 02 20:31:31 CoreELEC vdr[1083]: [1083] [vdrweb] HTTP error (InsertChannel): Could not establish connection
    Jan 02 20:31:31 CoreELEC vdr[1083]: [1083] [vdrweb] Attached HbbTV ait filter to device 1, vdrDev=2 actDev=1, Sid=0x2b66
    Jan 02 20:31:33 CoreELEC vdr[1083]: [1087] [vdrweb] InsertHbbtv, browser is not available


    Edit: Der Test mit 0.0.0.0 liefert auch


    Code
    [2024-01-02 20:42:11.803] [cefbrowser] [error] [vdrremoteclient.cpp:226] HTTP error (SendHello): Could not establish connection
    [2024-01-02 20:42:12.339] [cefbrowser] [error] [vdrremoteclient.cpp:226] HTTP error (SendHello): Could not establish connection
  • Das ist doch....


    Ich habe allen 3 Komponenten den neuen Parameter -b / --bindall verpasst, der automatisch den Bind auf alle Interfaces macht und nicht mehr nur auf die Konfigurierte.

    Zusätzlich habe im Plugin noch eine Fehlermeldung eingebaut, wenn das listen nicht funktioniert (das fehlte nur im Plugin).


    Code
    Start Http Server on :0

    Diese Meldung macht überhaupt keinen Sinn. Da fehlen die IP und der Port. Bist du sicher, daß du die Konfiguration zu der sockets.ini angegeben hast? Z.B. sowas...

    Code
    [web]
    -c pfad/zu/sockets.ini
    -o
    -b
  • Ich komme mal wieder darauf RE: web (HbbTV, VDR*ELEC), Milestone 1 erreicht zurück.

    Wenn ich aus der Mediathek einen Film abspiele, konkurrieren beide Lautstärkebalken. Kann das mit dem dummyosd zusammenhängen? Das habe ich nämlich (noch) nicht aktiv.

  • Wenn ich aus der Mediathek einen Film abspiele, konkurrieren beide Lautstärkebalken. Kann das mit dem dummyosd zusammenhängen? Das habe ich nämlich (noch) nicht aktiv.

    Vor nicht allzulanger Zeit hatte ich wieder herausgefunden, warum ich das dummyosd brauche.

    Das sollte aber mit der Lautstärke nichts zu tun haben.


    Ich bin nochmal durch die Sourcen und das /SetVolume im Browser wird nicht mehr aufgerufen und somit sollte der Volumebalken im Browser gar nicht mehr kommen. Ich finde auch nix anderes. Das ist doch gruselig.


    Im Browser gibt es die Datei js/volume.html mit dem Inhalt

    Code
    <div id="_volumecontainer" style="visibility: hidden;">
        <progress value="0" max="100" id="_volume"></progress>
    </div>

    Das kannst du z.B. ändern zu

    Code
    <div id="_volumecontainer" style="visibility: hidden;">
    </div>

    Ich weiß nicht, ob es in deinem (seltsamen) Fall nicht einen Javascript Fehler gibt, wenn es kein Element mit der Id "_volumecontainer" gibt. Oder sowas

    Code
    <span id="_volumecontainer" style="visibility: hidden;" />
  • Danke für eure Antworten, ich werde mal versuchen herauszufinden, was da vor sich geht ;)

  • Tatsächlich reicht es scheinbar aus, das dummyosd zu setzen. Dann habe ich nur noch das OSD vom web-plugin.


    Allerdings schlägt die Pause-Taste zum VDR durch. D.h. es kommt der Livesignal-anhalten-Balken, wenn ich die Pause Taste während der Wiedergabe drücke. Gibt es irgendwo einen Überblick über die Tastenbelegung? Intuitiv ging ich davon aus, dass Pause im Web-Plugin auch pausieren würde?

  • Habe https://github.com/Zabrimus/ce…/blob/master/keycodes.cpp gefunden...

    Das doppelte VK_PAUSE in der Map scheint verdächtig... ;)

  • Allerdings schlägt die Pause-Taste zum VDR durch. D.h. es kommt der Livesignal-anhalten-Balken, wenn ich die Pause Taste während der Wiedergabe drücke.

    Du siehst einen Film in der Mediathek und dann kommt die Live-Signal anhalten Nachricht?


    Die Keys, die vom Plugin an den Browser durchgereicht werden findet du in webosdpage.cpp und speziell die Prozedur WebOSDPage::ProcessKey(eKeys Key) und die genutzte KeyMap std::map<int, std::string> keyMap.


    Intuitiv ging ich davon aus, dass Pause im Web-Plugin auch pausieren würde?

    Ei. Ein ungetesteter Use-Case. Ich nutze immer das OSD selbst um zu pausieren und nicht die entsprechenden Tasten der FB.


    Das doppelte VK_PAUSE in der Map scheint verdächtig... ;)

    Das ist in der Tat verdächtig. Ich frage mich gerade, welche der beiden Codes an den Browser gesendet wird, wenn VK_PAUSE ankommt und welche Auswirkungen das hat.


    Aber nochmal zum Lautstärkebalken. Im Plugin gibt es keinen Aufruf von

    Code
    bool BrowserClient::SetVolume(int currentVolume, int maxVolume)

    mehr. Also kann der Balken nicht mehr aus dem Plugin angesteuert werden. Sollte jedenfalls nicht. Auch die IDE sagt, die Prozedur ist unused.

    Achja. Ändert sich der Lautstärkebalken oder ist der eher statisch? Ich glaube langsam, die einzige Möglichkeit ist es, den Balken völlig restlos zu entfernen.

  • Also, grad nochmal getestet.

    vdr-plugin-web/status.cpp at master · Zabrimus/vdr-plugin-web
    Contribute to Zabrimus/vdr-plugin-web development by creating an account on GitHub.
    github.com

    DrawVolume zeichnet die Lautstärke. Passt ja auch. web reagiert mit der cStatus Klasse auf die Laustärkeänderung und blendet den Balken ein. ->SetVolume wird nicht aufgerufen, da auskommentiert. Aber wir brauchen ja nur DrawVolume. Da wäre ich dir dankbar, wenn das bleiben würde. SetVolume hingegen kannst du entsorgen, das wird eh nicht benutzt.


    Und ja, bei Pause kommt der Balken. Dann weiß ich nicht, wie ich mich befreien soll, also warte ich und irgendwann ist der Balken weg, aber auch das Video - und das Fernsehbild kommt wieder.


    Wie schließe ich im Übrigren das Bedien-OSD, das ich mit OK öffnen kann? Back klappt nicht...

    Einmal editiert, zuletzt von rell ()

  • Mal wieder ein Problem beim spulen auf ZDF. Hier das cefbrowser log:

    Welche Serveradresse wird denn da gesucht. ? Das Video bricht da bei dann ab und es kommt wieder das TV Programm.

Jetzt mitmachen!

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