softhddevice-drm-gles mit Raspi3

  • Kommando zurück.

    Kannst du versuchen, die ganze Funktion HasIBPTrickSpeed rauszunehmen:
    https://github.com/rellla/vdr-plu…evice.cpp#L1624

    Ich bin C++ Neuling und das false ist in VDR schon der Standard...

    EDIT: Bei mir wirft der compiler weder Warnungen noch Fehler... Aber evtl. stört er sich an dem const hinter der Funktion. Ich glaube das ist falsch.

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---
    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.7 mit streamdev, satip/vtuner-ng, live, epgsearch, markad ---
    (Client 1) --- HW: RPI4 --- SW: VDR*ELEC mit softhddevice-drm-gles ---
    (Client 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 --

    Edited once, last by rell (September 29, 2025 at 3:18 PM).

  • Ich bin C++ Neuling und das false ist in VDR schon der Standard...

    Nur nicht so bescheiden. Ich könnte so etwas nicht programmieren.

    EDIT: Bei mir wirft der compiler weder Warnungen noch Fehler... Aber evtl. stört er sich an dem const hinter der Funktion. Ich glaube das ist falsch.

    Die KI sagt auch das es an dem const liegt und schlägt mir folgende Patches vor:

    Diff
    diff --git a/softhddevice.h b/softhddevice.h
    index abcdef1..1234567 100644
    --- a/softhddevice.h
    +++ b/softhddevice.h
    @@ -76,7 +76,7 @@ class cSoftHdDevice : public cDevice {
    -        virtual bool HasIBPTrickSpeed(void) const;
    +        virtual bool HasIBPTrickSpeed(void) override;


    Diff
    diff --git a/softhddevice.cpp b/softhddevice.cpp
    index abcdef2..1234568 100644
    --- a/softhddevice.cpp
    +++ b/softhddevice.cpp
    @@ -1624,7 +1624,7 @@
    -bool cSoftHdDevice::HasIBPTrickSpeed(void) const
    +bool cSoftHdDevice::HasIBPTrickSpeed(void)
    {
        return false; // oder deine Logik
    }


    Ich kann nicht beurteilen ob das die beste/korrekte Lösung ist, aber damit bekomme ich einen neuen/weiteren Fehler:


    Hier schlägt mir die KI folgenden Patch vor:

    Ich kann zwar nicht beurteilen ob das gut ist, aber damit baut das Plugin jetzt bei mir und ich werde mal testen wie es läuft. :)

  • Ich weiß noch nicht, warum ich nicht mal eine Warnung bekomme, schaue mir das aber an. Welche Compilerversion hast du?

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---
    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.7 mit streamdev, satip/vtuner-ng, live, epgsearch, markad ---
    (Client 1) --- HW: RPI4 --- SW: VDR*ELEC mit softhddevice-drm-gles ---
    (Client 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 --

  • Welche Compilerversion hast du?

    g++ --version
    g++ (Raspbian 12.2.0-14+rpi1+deb12u1) 12.2.0
    Copyright (C) 2022 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

  • Fix ist gepusht.

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---
    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.7 mit streamdev, satip/vtuner-ng, live, epgsearch, markad ---
    (Client 1) --- HW: RPI4 --- SW: VDR*ELEC mit softhddevice-drm-gles ---
    (Client 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 --

  • Vielen Dank damit klappt das kompilieren. :welle

    Ich habe mal einige Aufnahmen mit Fehlern am Anfang getestet und dort sehe ich nur noch kurz Pixelfehler und nach dem Fehler wird die Aufnahme korrekt abgespielt. :thumbup:

    Ich hatte dir ja damals die eine Aufnahme zukommen lassen die nach 8:44 Minuten stehen geblieben ist. Laut VDR ist die ohne Fehler. Bei dieser Aufnahme habe ich jetzt den Effekt das diese nach 8:44 Minuten beim Bild sehr pixelig wird. Der Ton bleibt aber normal. Das bleibt solange bis ich die Aufnahme mit zurück beende. Wenn ich die Aufnahme dann an der Stelle fortsetzte wird diese korrekt korrekt abgespielt. Nur wenn ich wieder knapp über 8 Minuten warte dann wird es wieder pixelig. Allerdings ist mir das bisher auch nur bei dieser einen Aufnahme aufgefallen.

    Ich teste auf jeden Fall weiter und kann es produktiv einsetzen. Vielen Dank

  • Freut mich. Dann wären wir ja einen Schritt weiter mit den kaputten Aufnahmen.

    Bei der 08:44 Aufnahme: Tritt das auch auf, wenn ich ab Minute 8 starte? Dann versuche ich das nachzustellen.

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---
    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.7 mit streamdev, satip/vtuner-ng, live, epgsearch, markad ---
    (Client 1) --- HW: RPI4 --- SW: VDR*ELEC mit softhddevice-drm-gles ---
    (Client 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 --

  • Also ich habe mir jetzt mal die ersten 11 Minuten von der Aufnahme angeschaut und konnte keine Probleme feststellen.
    Evtl. liegt es an der ffmpeg Version. Wenn ich mir das anschauen soll, bräuchte ich das Log mit den codec logs - falls hier was auffällig ist.

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---
    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.7 mit streamdev, satip/vtuner-ng, live, epgsearch, markad ---
    (Client 1) --- HW: RPI4 --- SW: VDR*ELEC mit softhddevice-drm-gles ---
    (Client 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 --

  • Ja ist egal wann man startet, nach 8:44 Minuten tritt der Fehler auf. Wenn ich die Aufnahme von Anfang starte und direkt 2 Minuten vor mache dann tritt der Fehler bei 10:44 Minuten auf.

    Wenn der Fehler auftritt kommt im Log folgendes:

    Ich habe jetzt noch die Debug Codec Logs aktiviert und schau was da kommt.

  • Mit der Debug Codec Log Option ist jetzt noch folgender Fehler dazugekommen:


    Code
    vdr[892]: [893] [softhddevice][Codec] videocodec: SendPacket: send_packet ret: Auf dem Gerät ist kein Speicherplatz mehr verfügbar
  • Puh, das kann ich nicht nachstellen. Wie ist denn die Speicherentwicklung dabei? Kannst du das mit top beobachten? Ich möchte nicht ausschließen, dass es irgendwo ein memory leak gibt, aber die Suche wäre etwas mühsamer...

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---
    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.7 mit streamdev, satip/vtuner-ng, live, epgsearch, markad ---
    (Client 1) --- HW: RPI4 --- SW: VDR*ELEC mit softhddevice-drm-gles ---
    (Client 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 das mal mit top beobachtet und an der Speicherentwicklung tut sich fast nichts. Es ist auch immer genug freier Speicher da, sowohl wenn ich die problematische Aufnahme starte als auch wenn der Fehler auftritt.

    Der Raspi3 hat grundsätzlich 1 GB Speicher wobei ich über die /boot/firmware/config.txt festlege wieviel davon für die GPU genutzt wird. Bisher habe ich da gpu_mem=256 verwendet.

    Die GPU Mem Auslastung konnte ich jetzt nicht direkt beobachten. Ich habe jetzt aber testweise mal die Aufnahme mit unterschiedlichen gpu_mem Werten getestet so das jeweils mehr CPU RAM / weniger GPU RAM und umgekehrt, da war.

    Folgende Werte habe ich getestet:
    gpu_mem=256
    gpu_mem=128
    gpu_mem=384

    Bei allen Varianten ist das Video auf die Sekunde an der gleichen Stelle pixelig geworden. Es macht also keinen Unterschied ob mehr oder weniger RAM für CPU und GPU vorhanden ist.

    Ich habe testweise auch mal eine längere HD Aufnahme laufen lassen und konnte den Fehler dort nicht nachstellen. Die Problematische Aufnahme ist ja sogar nur eine SD Aufnahme, wenn auch im gleichen Codec wie die HD Aufnahme.

  • Da bin ich tatsächlich überfragt. Welche ffmpeg Version hast du?

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---
    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.7 mit streamdev, satip/vtuner-ng, live, epgsearch, markad ---
    (Client 1) --- HW: RPI4 --- SW: VDR*ELEC mit softhddevice-drm-gles ---
    (Client 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 --

  • Mit der Debug Codec Log Option ist jetzt noch folgender Fehler dazugekommen:


    Code
    vdr[892]: [893] [softhddevice][Codec] videocodec: SendPacket: send_packet ret: Auf dem Gerät ist kein Speicherplatz mehr verfügbar

    Ich hoffe, ich verstehe es richtig... Die ENOMEM Meldung deute ich so, dass es der ffmpeg decoder nicht schafft, aus einem packet des streams zwei interlaced frames zu machen. Kein Speicher wird zurückgegeben, wenn unterwegs irgendwo ein alloc fehlschlägt. Die Render-Frame Warnung ist die Konsequenz, die uns sagt, dass ein als progressiv markiertes frame in einem eigentlich interlace stream kommt.

    Beides kann ich hier auf dem RPI4 nicht nachstellen, ich vermute aber das Problem in ffmpeg.

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---
    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.7 mit streamdev, satip/vtuner-ng, live, epgsearch, markad ---
    (Client 1) --- HW: RPI4 --- SW: VDR*ELEC mit softhddevice-drm-gles ---
    (Client 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 den VDR bzw. dein Plugin gegen die Standardpakete FFmpeg aus Raspberry Pi OS Bookworm gebaut. Die Version ist 5.1.6

    Code
    dpkg -l | grep libavcodec
    ii  libavcodec-dev:armhf                 8:5.1.6-0+deb12u1+rpt3            armhf        FFmpeg library with de/encoders for audio/video codecs - development files
    ii  libavcodec59:armhf                   8:5.1.6-0+deb12u1+rpt3            armhf        FFmpeg library with de/encoders for audio/video codecs - runtime files
    dpkg -l | grep libavformat
    ii  libavformat-dev:armhf                8:5.1.6-0+deb12u1+rpt3            armhf        FFmpeg library with (de)muxers for multimedia containers - development files
    ii  libavformat59:armhf                  8:5.1.6-0+deb12u1+rpt3            armhf        FFmpeg library with (de)muxers for multimedia containers - runtime files
    dpkg -l | grep libavutil
    ii  libavutil-dev:armhf                  8:5.1.6-0+deb12u1+rpt3            armhf        FFmpeg library with functions for simplifying programming - development files
    ii  libavutil57:armhf                    8:5.1.6-0+deb12u1+rpt3            armhf        FFmpeg library with functions for simplifying programming - runtime files

    Ich kann ja mal eine aktuellere Version testen. Muss ich mal schauen wann ich dazu komme.

  • https://github.com/jc-kynesim/rpi-ffmpeg/branches

    Das wäre der aktuellste Stand, falls du dir das Selbstbauen antun willst.

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---
    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.7 mit streamdev, satip/vtuner-ng, live, epgsearch, markad ---
    (Client 1) --- HW: RPI4 --- SW: VDR*ELEC mit softhddevice-drm-gles ---
    (Client 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 --

  • Die Render-Frame Warnung ist die Konsequenz, die uns sagt, dass ein als progressiv markiertes frame in einem eigentlich interlace stream kommt.

    Das ist durchaus üblich, siehe

    zillerbaer
    July 26, 2023 at 5:48 PM
    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, tvscraper, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

  • Das ist durchaus üblich, siehe

    zillerbaer
    July 26, 2023 at 5:48 PM

    Ja, das weiß ich und softhddevice sollte generell damit zurecht kommen. Ich bin nur stutzig, dass bei mir in der besagten Aufnahme diese progressive frames nicht "angewarnt" werden.

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---
    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.7 mit streamdev, satip/vtuner-ng, live, epgsearch, markad ---
    (Client 1) --- HW: RPI4 --- SW: VDR*ELEC mit softhddevice-drm-gles ---
    (Client 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 --

  • https://github.com/jc-kynesim/rpi-ffmpeg/branches

    Das wäre der aktuellste Stand, falls du dir das Selbstbauen antun willst.

    Ich habe jetzt auf meine Raspi3 VDR*ELEC mit Libreelec 12 und Libreelec 13 gebaut und mit deinem Plugin getestet. Da sollte ich ja jeweils neuere ffmpeg Versionen haben.

    Tatsächlich tritt der Fehler unter VDR*ELEC bei der Aufnahme nicht auf. Dort läuft diese fehlerfrei durch. :thumbup:

    Auch habe ich dort nicht das Problem mit dem grünen dünnen Streifen unten am Bildschirm und es macht insgesamt einen sehr guten Eindruck. :)
    Welche Libreelec Version verwendet du denn? Sollte ich lieber 12 oder 13 nutzen.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!