Posts by tefans

    also einen physikalisch serial-port sehe ich nicht.

    Von aussen ist da auch nichts zu sehen, irgendwo auf der Platine gibt es 3 Anschlüsse (GND,TX,RX), wahrscheinlich mit TTL-Level die man nutzen kann.

    In der Arduino-Welt gibt es entsprechende Adapter, die man dort anfrickln kann.

    z.B. https://www.amazon.de/FTDI-Adapter-F…o/dp/B01M755991

    Aber das ist auch nicht jedermans Sache.

    Ich habe hier 2 von den Dingern im Betrieb und Sie machen in der Regel keinen Ärger.

    Mein altes Luxusproblem ist wieder da: der VDR startet nicht weil der TV nicht läuft und er deshalb sein alsa-Audio-Device beim Starten nicht findet:


    Das Problem ist offenbar zurück weil ich zum Testen wieder auf einen alten Medion Billig-Fernseher gewechselt bin. Zwischendurch hatte ich wochenlang einen (ursprünglich) teuren Panasonic, der die HDMI-Ports zumindest im Standby sauber verwaltet. Damit trat das Problem nicht zutage -- lauerte aber natürlich noch irgendwo im Hintergrund.

    Also habe ich mein Glück jetzt mal mit Pulseaudio versucht und ich hasse es.

    Mutmaßlich unnütze Komplexität und ein Sonderplatz in der Abhängigkeitshölle :

    Code
    Jun 14 18:08:28 vdrpi vdr: [498] ERROR: /usr/local/lib/libavformat.so.58: symbol av_log_once version LIBAVUTIL_56 not defined in file libavutil.so.56 with link time reference
    Jun 14 18:08:28 vdrpi vdr[498]: vdr: /usr/local/lib/libavformat.so.58: symbol av_log_once version LIBAVUTIL_56 not defined in file libavutil.so.56 with link time reference

    Ich möchte einfach einen zuverlässig laufenden/startenden VDR und das simpler Stereoton ausgegeben wird falls ein TV eingeschaltet/angeschlossen ist.

    Man kann über die /boot/config.txt des Pis so ziemlich alle Automatismen zur Erkennung von Videomodes außer Kraft setzen. Die damit verbundenen Audio-Devices sind davon offenbar wenig beeindruckt.

    Hat jemand noch eine Spezialtipp für einen Ansatz das Pulseaudio und ich doch noch Freunde werden können?

    Oder sonst eine Idee?

    Hier ist es ein Raspberry Pi 4b.

    Irgendetwas fehlt in der Reinitialisierung des Ausgabedevice.

    Das normale Log gibt nicht so viel her.

    Apr 29 19:15:24 vdrpi vdr: [532] replay /var/lib/video/Das_Rätsel_des_Eismonds/2021-04-28.18.48.19-0.rec

    Apr 29 19:15:24 vdrpi vdr: [532] playing '/var/lib/video/Das_Rätsel_des_Eismonds/2021-04-28.18.48.19-0.rec/00001.ts'

    Apr 29 19:15:25 vdrpi vdr: [532] [softhddev]SetPlayMode: 1

    Apr 29 19:15:25 vdrpi vdr: [856] dvbplayer thread started (pid=532, tid=856, prio=high)

    Apr 29 19:15:25 vdrpi vdr: [856] resuming replay at index 43520 (0:14:30.20)

    Apr 29 19:15:25 vdrpi vdr: [857] non blocking file reader thread started (pid=532, tid=857, prio=high)

    Apr 29 19:15:27 vdrpi vdr: [532] [softhddev]Clear:

    Apr 29 19:15:27 vdrpi vdr: [532] [softhddev]Mute:

    Apr 29 19:15:27 vdrpi vdr: [532] [softhddev]TrickSpeed: 1 1

    Apr 29 19:15:28 vdrpi vdr: [857] non blocking file reader thread ended (pid=532, tid=857)

    Apr 29 19:15:28 vdrpi vdr: [856] dvbplayer thread ended (pid=532, tid=856)

    Apr 29 19:15:28 vdrpi vdr: [532] [softhddev]SetPlayMode: 0

    Apr 29 19:15:28 vdrpi vdr: [532] [softhddev]SetVideoDisplayFormat: 1

    Apr 29 19:15:28 vdrpi vdr: [532] [softhddev]GetSpuDecoder:

    Apr 29 19:15:28 vdrpi vdr: [532] switching to channel 2 S19.2E-1-1011-11110 (ZDF HD)

    Apr 29 19:15:29 vdrpi vdr: [640] SATIP: Detected 375 RTP packet errors [device 0]

    Apr 29 19:15:29 vdrpi vdr: [862] device 1 receiver thread started (pid=532, tid=862, prio=high)

    Apr 29 19:15:30 vdrpi vdr: [532] [softhddev]SetPlayMode: 1

    Apr 29 19:15:31 vdrpi vdr: [644] SATIP: Idle timeout - releasing [device 1]

    Apr 29 19:15:31 vdrpi vdr: [647] SATIP: Idle timeout - releasing [device 2]

    Apr 29 19:15:32 vdrpi vdr: [650] SATIP: Idle timeout - releasing [device 3]

    Apr 29 19:15:40 vdrpi vdr: [640] ERROR: 353 ring buffer overflows (418300 bytes dropped)

    Apr 29 19:15:42 vdrpi vdr[532]: AlsaPlayer: ring buffer empty

    Apr 29 19:15:46 vdrpi vdr: [640] ERROR: 599 ring buffer overflows (724928 bytes dropped)

    Apr 29 19:15:52 vdrpi vdr: [640] ERROR: 759 ring buffer overflows (886796 bytes dropped)

    Apr 29 19:15:58 vdrpi vdr: [640] ERROR: 778 ring buffer overflows (911612 bytes dropped)

    Apr 29 19:16:04 vdrpi vdr: [640] ERROR: 782 ring buffer overflows (918568 bytes dropped)

    Apr 29 19:16:10 vdrpi vdr: [640] ERROR: 762 ring buffer overflows (889052 bytes dropped)

    Apr 29 19:16:16 vdrpi vdr: [640] ERROR: 723 ring buffer overflows (852580 bytes dropped)

    Apr 29 19:16:17 vdrpi vdr[532]: CodecAudioDecode: avcodec_receive_frame error: Die Ressource ist zur Zeit nicht verfügbar

    Apr 29 19:16:18 vdrpi vdr: [532] [softhddev]SetPlayMode: 0

    Apr 29 19:16:18 vdrpi vdr: [532] [softhddev]SetVideoDisplayFormat: 1

    Apr 29 19:16:18 vdrpi vdr: [532] [softhddev]GetSpuDecoder:

    Apr 29 19:16:18 vdrpi vdr: [532] replay /var/lib/video/Das_Rätsel_des_Eismonds/2021-04-28.18.48.19-0.rec

    Apr 29 19:16:18 vdrpi vdr: [532] playing '/var/lib/video/Das_Rätsel_des_Eismonds/2021-04-28.18.48.19-0.rec/00001.ts'

    Apr 29 19:16:18 vdrpi vdr: [532] [softhddev]SetPlayMode: 1

    Apr 29 19:16:18 vdrpi vdr: [867] dvbplayer thread started (pid=532, tid=867, prio=high)

    Apr 29 19:16:18 vdrpi vdr: [867] resuming replay at index 44320 (0:14:46.20)

    Apr 29 19:16:18 vdrpi vdr: [868] non blocking file reader thread started (pid=532, tid=868, prio=high)

    Apr 29 19:16:18 vdrpi vdr: [862] device 1 receiver thread ended (pid=532, tid=862)

    Apr 29 19:16:20 vdrpi vdr: [532] [softhddev]Clear:

    Apr 29 19:16:20 vdrpi vdr: [532] [softhddev]Mute:

    Apr 29 19:16:20 vdrpi vdr: [532] [softhddev]TrickSpeed: 1 1

    Apr 29 19:16:22 vdrpi vdr: [532] [softhddev]Clear:

    Apr 29 19:16:22 vdrpi vdr: [532] [softhddev]Mute:

    Apr 29 19:16:22 vdrpi vdr: [532] [softhddev]TrickSpeed: 1 0

    Apr 29 19:16:23 vdrpi vdr: [532] [softhddev]Clear:

    Apr 29 19:16:23 vdrpi vdr: [532] [softhddev]Mute:

    Apr 29 19:16:23 vdrpi vdr: [532] [softhddev]TrickSpeed: 1 1

    Apr 29 19:16:23 vdrpi vdr: [532] [softhddev]Clear:

    Apr 29 19:16:23 vdrpi vdr: [532] [softhddev]Play:

    Apr 29 19:16:27 vdrpi vdr: [868] non blocking file reader thread ended (pid=532, tid=868)

    Apr 29 19:16:27 vdrpi vdr: [867] dvbplayer thread ended (pid=532, tid=867)

    Apr 29 19:16:27 vdrpi vdr: [532] [softhddev]SetPlayMode: 0

    Apr 29 19:16:27 vdrpi vdr: [532] [softhddev]SetVideoDisplayFormat: 1

    Apr 29 19:16:27 vdrpi vdr: [532] [softhddev]GetSpuDecoder:

    Apr 29 19:16:27 vdrpi vdr: [532] switching to channel 2 S19.2E-1-1011-11110 (ZDF HD)

    Apr 29 19:16:28 vdrpi vdr: [877] device 1 receiver thread started (pid=532, tid=877, prio=high)

    Apr 29 19:16:29 vdrpi vdr: [532] [softhddev]SetPlayMode: 1

    softhddevice-drm ist mittlerweile wirklich sehr stabil -- aber ich kriege alles kaputt :):

    Wenn man die Wiedergabe einer Aufnahme dann verlässt, während diese nicht mit der normalen Geschwindigkeit läuft, gerät danach die Live-Ausgabe ins Stolpern.

    Man kann dann die Wiedergabe der Aufnahme wieder starten, auf die normale Geschwindigkeit schalten und danach ist alles wieder normal.

    Bemerkt habe ich das als ich mehrstufigen Vor- und Rücklauf ausprobieren wollte.

    Für den headless Server Betrieb gibt es das dummydevice. Per svdrpsend kannst Du softhddevice-drm zum Primäry device machen.

    Aber ein headless Server soll es ja nicht sein, es soll ein standalone vdr sein der dann auch aufnimmt wenn jemand den Fernseher zum Zocken gezockt hat. Ebenso soll ein Neustart (wegen Watchdog oder anderer Probleme) funktionieren auch wenn der Fernseher gerade mal ab- oder auch nur umgeschaltet ist.

    (Headless habe ich in der Vergangenheit immer mit dem xineliboutput- und suspendoutput-Plugin realisiert um im Notfall einen menschenwürdigen Zugriff auf das Gerät zu bekommen.)

    Ob das Dummy-Device als Fallback geeignet wäre ist ein Ansatz den ich mir noch mal ansehen werde.

    Gibt das setzen von "hdmi_force_hotplug=1" im /boot/config Abhilfe?

    Leider nicht. Auch die Variante für einen speziellen der beiden Ports bringt nichts:

    Code
    hdmi_force_hotplug:0=1

    Die Option ist ja auch eigentlich dafür um nicht auf den analogen Ausgang zurück zu fallen.

    /boot/config.txt bietet schon eine Menge Möglichkeiten Video-Modi zu beeinflussen, aber für die Audioausgabe habe ich nichts gefunden.

    Das Tool tvservice, mit dem man Eigenschaften von angeschlossenen Displays von Userspace aus abfragen kann, funktioniert mit der verwendeten Treiberkombination nicht.

    Wie schaffe ich es den vdr mit softhddevice-drm zuverlässig (neu) zu starten wenn kein Fernseher (mehr) dran hängt oder dieser ausgeschaltet ist.

    In diesem Fall gibt eine Beschwerde das das default Alsa-Device nicht verfügbar sei und der vdr startet nicht.

    Das ist sehr schlecht weil dann nichts aufgenommen wird. Benutzt ihr das Zeug alle nur als Client zum gucken?

    Gibt es eine einfache, elegante Möglichkeit das hinzu bekommen die ich übersehen habe?

    Braucht man pulseaudio dafür? =O

    Ich habe das Update gemacht und es tatsächlich das gleiche Problem:

    Eine genauere Fehlermeldung ist ja kein Schaden.

    Ich habe jetzt erst einmal Plugins abgeschaltet.

    2 konkrete Probleme die mir aufgefallen sind:

    Nachdem "Aufwecken" muss der FB aus dem suspendoutput-Plugin kann es nach Laufzeit zu dem Fehler "CodecVideoOpen: Error opening the decoder" kommen:


    Ebenfalls nach Laufzeit gehen dem VDR (und damit auch allen geladenen Plugins) die Filehandles aus:

    Code
    Apr 13 23:57:14 vdrpi vdr: [762] ERROR (svdrp.c,278): Zu viele offene Dateien
    Apr 13 23:57:14 vdrpi vdr: [870] [softhddev]StillPicture: pes 0xb28e8dd8 22740
    Apr 13 23:57:15 vdrpi vdr: [762] ERROR (svdrp.c,278): Zu viele offene Dateien

    Ich werde noch einen zweiten Testaufbau daneben stellen und ausserdem erst einmal wieder mit weniger Plugins testen.

    Die derzeitige Konfiguration ist:

    Leider fehlt es mir derzeit die Zeit, die Satellitenschüssel müsste neu ausgerichtet werden und der verwendete Test-TV ist auch eher fragwürdig. :(

    tefans , im git wird jetzt PES und RAW stream unterschieden. Teste mal bitte.

    Es funktioniert! :thumbup:

    Code
    Apr  6 22:30:11 vdrpi vdr: [966] suspendoutput: output suspended by inactivity timer
    Apr  6 22:30:11 vdrpi vdr: [966] [softhddev]SetPlayMode: 0
    Apr  6 22:30:11 vdrpi vdr: [966] [softhddev]SetVideoDisplayFormat: 1
    Apr  6 22:30:11 vdrpi vdr: [966] [softhddev]GetSpuDecoder:
    Apr  6 22:30:11 vdrpi vdr: [966] [softhddev]SetPlayMode: 1
    Apr  6 22:30:11 vdrpi vdr: [966] [softhddev]StillPicture: pes 0xb2d21dd8 22740
    Apr  6 22:30:11 vdrpi vdr: [985] device 1 receiver thread ended (pid=966, tid=985)
    Apr  6 22:30:16 vdrpi vdr: [1016] [softhddev]StillPicture: pes 0xb2d21dd8 22740
    Apr  6 22:30:21 vdrpi vdr: [1016] [softhddev]StillPicture: pes 0xb2d21dd8 22740

    Die StillPicture Meldung kommt dann allerdings alle 5 Sekunden.

    In Anbetracht des Lärms des satip-Plugins fällt das aber nicht ins Gewicht.

    danke!

    Ich versuche gerade (mal wieder) meine alte Version 2.2.0 Client/Server Installation durch einen modernen Stand-alone VDR zu ersetzen. Meine Frau liebt das alte System und deshalb möchte ich möglichst kompatibel bleiben.

    Das suspendoutput-Plugin habe ich bisher immer verwendet um Resourcen (in erster Linie einen SAT>IP-Tuner) zu sparen. Die höchste Priorität hat dieses Feature aber erst einmal nicht.

    Das Plugin schaltet bei Aufruf oder nach einem voreingestellten Timeout nach Inaktivität des Benutzers den Bildschirm dunkel oder blendet ein VDR-Logo ein. Das Logo ist dabei in das Plugin eincompiliert.

    Angezeigt wird auf dem Pi4 bei Aktivierung der Funktion überhaupt nichts, der VDR stürzt einfach ab und wird neu gestartet.

    Die Ursache kann natürlich jeder der 3 beteiligten Komponenten liegen. Einen Core-Dump werde ich wohl hinbekommen aber meine letzten Kontakte mit gdb liegen wahrscheinlich 20 Jahre zurück. Ich versuche mal mein Glück.

    Ich versuche gerade das Plugin suspendoutput in diesem Kontext zum Laufen zu bekommen.

    Im Prinzip habe ich das Modul wohl richtig gebaut und installiert:

    Code
    mkdir suspendoutput
    cd suspendoutput/
    tar -xzf ../vdr-plugin-suspendoutput_2.1.0.orig.tar.gz
    xzcat ../vdr-plugin-suspendoutput_2.1.0-1mavdr2.debian.tar.xz | tar -xf -
    cd vdr-plugin-suspendoutput-2.1.0
    patch -p1  <../debian/patches/suspendoutput_nooutput.patch
    patch -p1  <../debian/patches/timer_fix_vdr2.4
    make
    sudo make install

    Das Modul lädt soweit normal:

    Code
    Apr  4 22:07:22 vdrpi vdr: [3339] loading plugin: /usr/lib/vdr/plugins/libvdr-suspendoutput.so.2.4.0
    Apr  4 22:07:22 vdrpi vdr: [3339] suspendoutput: inactivity timer set to 30 minutes
    Apr  4 22:07:22 vdrpi vdr: [3339] initializing plugin: suspendoutput (2.1.0): Suspend output
    Apr  4 22:07:24 vdrpi vdr: [3339] starting plugin: suspendoutput

    Leider schmiert der VDR ab wenn die Funktion des Plugins aufgerufen wird (egal ob über das Menu oder den Timeout):


    Hat jemand eine Idee wie ich weiterkomme? Ich bin offenbar etwas eingerostet.