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

  • Nur eine ganz schnelle Rückmeldung von mir: Ich habe gestern (nur) etwas mit ARD gespielt und habe den Eindruck, dass es insgesamt schneller und stabiler ist!

    Vorher war ein seek immer schwierig und das Ganze wirkte träger - kann aber auch an meinem Ausgabedevice gelegen haben...

    Wenn das Ganze wirklich stabil läuft, ist das ein großer Meilenstein und hat erheblichen Mehrwert für VDR! Danke für deine Arbeit!

    Nachtrag: Getestet mit VDR*ELEC. Hier fehlte mir zum erfolgreichen build die Paketabhängigkeit von _thrift im _vdr-plugin-web. Evtl. braucht das _cefbrowser auch noch!?

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---

    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.2 mit streamdev, satip/vtuner-ng, vdrmanager, live, epgsearch, markad ---

    (Client 1+2) --- HW: Radxa Rock 4 Plus - RK3399 --- SW: VDR*ELEC mit softhddevice-drm-gles ---

    (WIP) --- Tanix TX6, RPi5, RPi4, Odroid N2+, WetekPlay2 --- SW: VDR*ELEC mit softhddevice-drm-gles --

    Einmal editiert, zuletzt von rell (28. März 2025 um 11:51)

  • Hier auf dem yaVDR-System läuft es auch deutlich zügiger, werde es gern weiter testen - Danke Zabrimus für den großen Schritt nach vorn! :tup

    Hard- / Software
    • SatIP-Server / Octopus NET - MINI ITX / Chieftec IX-01B Case / DD-Max8 / Unicable LNB - DUR-LINE UK 124 / 8 Tuner DVB-S2
    • Server / Ubuntu 24.04 / seahawk1986 - yaVDR-ansible - 2.7.4 / 6x vtuner / ProLiant ML10 v2 / VmWare-ESXI 7.0.3 / 32 GB RAM / 2x 4TB Raid1
    • Client / Ubuntu 24.04 / seahawk1986 - yaVDR-ansible - 2.7.4 / 2x vtuner / Intel NUC8i3BEH / 16 GB RAM / 512GB m.2 SSD / 85" Samsung TV / Denon X3300W AVR
  • Wenn ich den thrift Branch übersetzen möchte dann habe ich folgendes Problem:

    No package 'thrift' found
    In file included from web.h:16,
    from web.cpp:18:
    thrift-services/src-client/BrowserClient.h:6:10: fatal error: thrift/protocol/TBinaryProtocol.h: No such file or directory
    6 | #include <thrift/protocol/TBinaryProtocol.h>
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    make[1]: *** [Makefile:108: web.o] Error 1
    make[1]: Leaving directory '/home/jojo/VDRSternELEC/CoreELEC/build.CoreELEC-Amlogic-ne.aarch64-21/build/_vdr-plugin-web-fa316dbb07167936837219f97cafa2b65e4879ea'
  • Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---

    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.2 mit streamdev, satip/vtuner-ng, vdrmanager, live, epgsearch, markad ---

    (Client 1+2) --- HW: Radxa Rock 4 Plus - RK3399 --- SW: VDR*ELEC mit softhddevice-drm-gles ---

    (WIP) --- Tanix TX6, RPi5, RPi4, Odroid N2+, WetekPlay2 --- SW: VDR*ELEC mit softhddevice-drm-gles --

  • Ich habe da noch einen Fehler anzubieten ;)

    Ich habe eben auf ZDF-NEO "Death in Paradise" über die blaue Taste "Sendung von Anfang" gestartet. Nach einiger Zeit habe ich die Sendung beendet mit der Back-Taste und die Mediathek über die Menütaste verlassen. Danach wollte ich "Rosenheim Cops" auf ZDF "Sendung von Anfang" starten und es kommt kein Video. Nach Neustart der Dienste geht es wieder 1mal...

    Wenn ich den Anbieter nach dem ersten Film wechsle (Bsp. auf arte) funktioniert es - Es scheint Probleme zu geben wenn es um den gleichen Anbieter geht... Ich hoffe das ist einigermaßen verständlich erklärt ;)

    Hard- / Software
    • SatIP-Server / Octopus NET - MINI ITX / Chieftec IX-01B Case / DD-Max8 / Unicable LNB - DUR-LINE UK 124 / 8 Tuner DVB-S2
    • Server / Ubuntu 24.04 / seahawk1986 - yaVDR-ansible - 2.7.4 / 6x vtuner / ProLiant ML10 v2 / VmWare-ESXI 7.0.3 / 32 GB RAM / 2x 4TB Raid1
    • Client / Ubuntu 24.04 / seahawk1986 - yaVDR-ansible - 2.7.4 / 2x vtuner / Intel NUC8i3BEH / 16 GB RAM / 512GB m.2 SSD / 85" Samsung TV / Denon X3300W AVR
  • Hier fehlt noch das "_thrift".

    Ach mist. Ich dachte, ich hätte das schon gefixed, aber ich habe es in die falsche Variable geschrieben :(

    Ich habe eben auf ZDF-NEO "Death in Paradise" über die blaue Taste "Sendung von Anfang" gestartet. Nach einiger Zeit habe ich die Sendung beendet mit der Back-Taste und die Mediathek über die Menütaste verlassen. Danach wollte ich "Rosenheim Cops" auf ZDF "Sendung von Anfang" starten und es kommt kein Video. Nach Neustart der Dienste geht es wieder 1mal...

    Muss mir anschauen. Beim gleichen Anbieter wird (gerade beim ZDF) etwas bzgl. des Videowechsels "optimiert" und ich scheine noch eine Variante übersehen zu haben.

  • ch habe eben auf ZDF-NEO "Death in Paradise" über die blaue Taste "Sendung von Anfang" gestartet. Nach einiger Zeit habe ich die Sendung beendet mit der Back-Taste und die Mediathek über die Menütaste verlassen. Danach wollte ich "Rosenheim Cops" auf ZDF "Sendung von Anfang" starten und es kommt kein Video. Nach Neustart der Dienste geht es wieder 1mal...

    Die gute Nachricht ist, daß ich das Problem nachvollziehen kann. Die Schlechte, daß ich noch überhaupt nicht weiß, wo genau das eigentlich hakt.

  • Beitrag von jojo61 (3. April 2025 um 11:31)

    Dieser Beitrag wurde vom Autor gelöscht (3. April 2025 um 11:41).
  • Ich bin nun mal zum testen gekommen. Nun habe ich einen Segfault beim stoppen des VDR:

    (gdb) bt
    #0 0x00149724 in cListBase::Clear() ()
    #1 0x00149804 in cListBase::~cListBase() ()
    #2 0x00132904 in cList<cStatus>::~cList() ()
    #3 0xf537c018 in ?? () from /usr/lib/libc.so.6
    Backtrace stopped: previous frame identical to this frame (corrupt stack?)

    Ob das allerdings vom web Plugin kommt musst du rausfinden :) Ausserdem zähle da mal die Version hoch damit man sieht das es aus dem thrift branch kommt.

    Das OSD kommt nun auch wenn ich den cefbrowser ohne -q starte. Also funktioniert das shared memory nun :thumbup:

    Nun muss "nur" noch der Segfault gefunden werden.

  • Alle Branches wurden jetzt gemerged und meine Testinstallation sieht immer noch gut aus.

    Das Problem von Taipan (beschrieben in #745) existiert leider noch. Es sieht so aus, als ob der Browser einfach die Arbeit einstellt. Dazu gibt es gar keine Meldung, weder vom Browser selbst noch in Javascript noch sonstwo. Sehr seltsam.
    Ich will erst einmal eine Klasse neu schreiben, die mir schon sehr lange nicht mehr gefällt (da sehe ich auch die letzte Meldung vom Browser, bevor nix mehr passiert). Und falls das Problem immer noch besteht, muss ich mir etwas überlegen.

    Ob das allerdings vom web Plugin kommt musst du rausfinden

    Einen cStatus nutze ich im Plugin für die HbbTV URLs und die Lautstärke. Aber den Crash habe ich noch nie gesehen. Machst du da was besonderes? Passiert das immer oder nur zufällig? Oder hängt das vom Sonnenstand ab?

    Ausserdem zähle da mal die Version hoch damit man sieht das es aus dem thrift branch kommt.

    Hmm. Guter Punkt. Ich brauche Versionsnummern in allen Komponenten und die entsprechende Abfrage dazu. Es kommt immer wieder etwas wichtigeres dazwischen... Ich muss mich clonen :/

    Das OSD kommt nun auch wenn ich den cefbrowser ohne -q starte. Also funktioniert das shared memory nun

    Das könnte vielleicht auch daran liegen, daß ich das shared memory in den thrift-Branches komplett gelöscht und ersetzt habe. Aber gut, daß es endlich funktioniert.

  • Einen cStatus nutze ich im Plugin für die HbbTV URLs und die Lautstärke. Aber den Crash habe ich noch nie gesehen. Machst du da was besonderes?

    Zum testen lasse ich den vdr auf der Konsole im vordergrund laufen. Wenn ich ihn dann mit Ctrl-C beende dann kommt der crash in 4 von 5 Fällen.

  • Clonen ist ne gute Idee:

    Zabrimus = :) => ^^^^ => :D:D:D:D

    MLD 6.5 mit vdr 2.7 - lirc yaUSBir - 4 x DD-Sat - SCR - Intel N100M - 4GB RAM - WD Green 12TB HDD - 22TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 6.5 mit vdr 2.7 - Raspberry Pi 3 - rpihddevice
    MLD 5.5 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

  • Zum testen lasse ich den vdr auf der Konsole im vordergrund laufen. Wenn ich ihn dann mit Ctrl-C beende dann kommt der crash in 4 von 5 Fällen.

    Ich dachte erst es läge an meiner "alten" VDR Version 2.7.1, aber auch mit 2.7.4 bekomme ich auf der Entwicklermaschine einfach keinen Crash hin. Ich versuche es nochmal auf den odroid. Das ist doch zum Mäusemelken.
    Meinst du es liegt wirklich am web-Plugin? Nicht, daß noch ein anderes Plugin da irgendwas fummelt?

  • Ich im Browser die letzte Referenz auf cpphttp-lib entfernt und eine Klasse neu geschrieben.
    Es scheint jetzt auch im ZDF stabiler zu sein. Manchmal (nicht immer) dauert es aber noch, bis das Video startet. Auf der Javascript-Console sehe ich da immer wieder Zugriffe auf xiti.com (die ich blockiere). Ich hatte beim Umschreiben der Klasse die Blocker noch nicht drin und die Seite war wieder so träge. Diese sehr vielen Trackingrequests müssen echt nicht sein.
    Vielleicht muss ich statt einem Fehler einfach irgendwas unsinniges an den Browser liefern?

  • Meinst du es liegt wirklich am web-Plugin? Nicht, daß noch ein anderes Plugin da irgendwas fummelt?

    Ich habe gestern versucht den vdr im gdb laufen zu lassen. Normalerweise ist da nach einem crash mehr zu sehen. Nur leider fängt der gdb mein Ctrl-C ab und reicht es nicht an den vdr durch. So kann ich es leider nicht testen.

    Ich schau mal ob ich es nicht doch noch eingrenzen kann wer es ist mit dem crash.

  • Danke das hat geholfen. Nur leider sehe ich danach auch nicht mehr als im coredump. Der bt bleibt hängen weil der stack kaputt ist

    Thread 1 "vdr" received signal SIGSEGV, Segmentation fault.
    0x00149724 in cListBase::Clear() ()
    (gdb) bt
    #0 0x00149724 in cListBase::Clear() ()
    #1 0x00149804 in cListBase::~cListBase() ()
    #2 0x00132904 in cList<cStatus>::~cList() ()
    #3 0xf58cc018 in ?? () from /usr/lib/libc.so.6
    Backtrace stopped: previous frame identical to this frame (corrupt stack?)

    Ich habe nun nur das web plugin und softhdodroid und satip aktiv.

    Zabrimus Könnte es sein das in ~cListBase kein Clear mehr ausgeführt werden kann. Oder es doppelt aufgerufen wird.

  • Könnte es sein das in ~cListBase kein Clear mehr ausgeführt werden kann. Oder es doppelt aufgerufen wird.

    Der cHbbtvDeviceStatus wird(wurde) im Plugin nicht explizit beim Stoppen des Plugins gelöscht. Ich habe die eine Zeile eingebaut und vielleicht macht es einen Unterschied.

    Und noch etwas. Ich habe nun eine Dune HD neu mit CE21-ne installiert und da fehlt dem cefbrowser die libcairo.so

    CE21-ne habe ich noch nie gestartet. CE21 braucht auch noch den Docker Container und damit müsste libcairo im Container fehlen.
    Es gibt die beiden Images cefbrowser-base-ce21 und cefbrowser-base-ce21-armv7. In der armv7 Variante ist libcairo drin. Ich habe gerade keine Ahnung, warum es die beiden Images gibt und welche davon sinnvoll ist und warum die sich unterscheiden.


    Mal wieder Allgemeinkram...
    Das ZDF treibt mich in den Wahnsinn. Es reicht ja schon, wenn ich in die "Mediathek" gehe, mit Menu raus und wieder in die Mediathek. Irgendwann bleibt der Browser hängen. Wechsel ich den Sender und zurück auf ZDF, dann kann es wieder funktionieren. Ich habe keinerlei, null, nada, niente, nix Hinweise, warum es nicht funktioniert.
    Der Code, der durchlaufen wird bei einem Senderwechsel oder bei einem neuen Aufruf ist absolut identisch und es gibt keine Bedingungen, die eingreifen könnten.

    Ich versuche mal ein Upgrade von cef, wobei das letzte Upgrade schon zu einigen Verwirrungen und nicht startenden Browsern geführt hat. Also erstmal testen....

  • Wieso brichst Du eigentlich den VDR mit CTRL-c ab, um eine Wiedergabe zu stoppen. Ich hab irgendwie das Gefühl, ich habe da irgendwas überlesen,...

    MLD 6.5 mit vdr 2.7 - lirc yaUSBir - 4 x DD-Sat - SCR - Intel N100M - 4GB RAM - WD Green 12TB HDD - 22TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
    MLD 6.5 mit vdr 2.7 - Raspberry Pi 3 - rpihddevice
    MLD 5.5 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

Jetzt mitmachen!

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