Beiträge von seahawk1986

    Bei SD habe ich nur ein 4:3-Bild, obwohl es 16:9-Sendungen sind.

    Da musst du in den Einstellungen von softhdcuvid unter Video bei "16:9 and other video display format" etwas anderes als die Voreinstellung auswählen, mit "center cut-out" passt es zumindest bei 16:9 Material.

    Bei UHD habe ich immer Bildruckler. Das ist natürlich weniger schön!

    Ich habe hier leider keine Möglichkeit mit UHD zu experimentieren.

    Welches Frontend-Script ist das? Muss ich ggf nochmal updaten, hatte das Paket schon am Montag installiert.

    Das steckt im Paket python3-yavdrfrontend

    Der Fullscreen-Betrieb ist anscheinend etwas anders als der maximized-Window Betrieb: bei mir ist zB auf einmal DPMS und Screen blanking angesprungen, so dass ich nach 10min einen abgeschalteten HDMI Port bzw ein schwarzes Bild hatte.

    Vermutlich wäre es am sinnvollsten beim Attachen des Frontends dpms abzuschalten und es beim Detachen wieder zu erlauben.

    yaVDR nutzt Consumer Keys, die laut https://github.com/torvalds/li…vers/hid/hid-input.c#L858 in der USB HUT v1.12 auf den Seiten 75-84 zu finden sind - wobei die Farbtasten gemeinerweise in einem reservierten Bereich zu liegen scheinen (Seite 76).


    Die Tastennamen kann man aber auch mit einer evmap für eventlircd bequem auf den yaVDR-Standard bringen, wenn dann mal feststeht, welche Key-Codes du für dein Gerät verwenden willst.

    seahawk1986 welchen Stand hat das softhdcuvid plugin im experimental PPA, mit/ohne OpenGL und gibt es empfohlene Konfigurationen (in der config kommt derzeit kein -f oder -D mit)?

    Das Paket im PPA wird aktuell ohne OPENGLOSD gebaut, weil der VDR sonst ständig hängen bleibt.


    Das Frontend-Skript mit Unterstützung für softhdcuvid habe ich gerade hochgeladen, genauso wie die ergänzende Fensterregel für openbox in yavdr-ansible. Damit macht es dann auch Sinn das Plugin mit -D zu starten, sonst müsste man das Plugin ja jedes mal von Hand nach dem Start attachen.

    Prinzipiell kannst du das Plugin mit oder ohne -f starten (wie die softhddevice auch).


    Eine kleine Unschönheit gibt es wie weiter oben erwähnt: wenn das Plugin detached wird (z.B. wenn KODI gestartet wird) und es beim Wechsel zurück zum VDR wieder attached wird, muss man einmal den Kanal wechseln, bevor man wieder ein Bild hat.

    Für micht sieht das nach Fehlern in der Aufnahme aus. Wie gut ein Programm das wegsteckt, hängt vermutlich von der Implementierung ab.


    Wie kann ich eigentlich wieder zurück auf alsa ohne

    pulseaudio, denn eigentlich benötige ich das nicht.

    Ich hatte beim Frontend-Skript schon eine Option eingebaut, mit der man pulseaudio pausieren kann, wenn das VDR-Frontend aktiv ist, da fehlt bislang nur eine Möglichkeit zu erkennen, ob der VDR nach dem stoppen des Frontends die Soundkarte schon freigegeben hat, bevor man pulseaudio reaktiviert - sonst hat man keinen Ton mehr damit - dafür habe ich in den letzten Tagen eine Lösung erarbeitet und komme hoffentlich bald dazu das python3-yavdrfrontend Paket zu aktualisieren, so dass man mit einer Variablen in der /etc/yavdr-frontend/config.yml Ausgabeplugins wie softhddevice, vaapidevice oder softhdcuvid die Möglichkeit geben kann direkt über ALSA Ton auszugeben.


    Andere (eigenständige) Programme kann man mit pasuspender wrappen und für KODI muss man noch eine Umgebungsvariable setzen, damit das dann auch tatsächlich ALSA nutzt.

    Mit twm und icewm ist der Hänger mit OPENGLOSD beim Start weg, wenn ich das Plugin ohne -f starte, aber beim Detachen crasht der VDR immer noch. Könnte die Größenänderung Wechsel vom Fenster- in den Vollbildmodus das OPENGLOSD durcheinander bringen bzw. versuchen den Thread abbrechen zu lassen?

    So habe noch etwas eingecheckt um den crash beim detach zu unterbinden. Hoffentlich hilf es.

    Wenn ich ohne OPENGLOSD baue, klappt jetzt das detachen. Beim erneuten Attachen habe ich dann erst mal kein Videobild, sondern einen Farbverlauf von Schwarz nach Rot und Ton, bis ich den Kanal umschalte.


    Mit OPENGLOSD bleibt der VDR jetzt beim Starten regelmäßig hängen (egal ob das Plugin mit oder ohne -f gestartet wird), der Crash beim detachen ist eventuell ein Folgefehler weil der VDR generell nicht mehr richtig auf Befehle reagiert. Streamdev-Client und alle anderen Plugins habe ich mal versuchsweise deaktiviert und die darüber empfangenen Kanäle aus der channels.conf entfernt, das macht keinen Unterschied.


    Hier noch mal der Backtrace: openglosd_hangs.txt, wenn man sich mit gdb attach $(pidof vdr) an den Prozess hängt - den LDPRELOAD für den Sundtek Mediaclient habe ich auch gerade mal versuchsweise entfernt, das ändert auch nichts.


    Als nächstes versuche ich es noch mal mit einem anderen Window-Manager als Openbox, vielleicht ändert das noch etwas - was setzt du da ein?

    Brauchst du das denn unbedingt und warum startest du nicht mit -f ?

    Grundsätzlich brauche ich einen Weg, um das Plugin mit detachtem Frontend starten zu können, damit der startende VDR keine Abhängigkeit zu einem laufenden X-Server hat und das Frontend nicht ungewollt dargestellt wird, wenn es bereits andere laufende Programme wie z.B. KODI gibt. Und wenn ich es attache, sollte es keine Fensterdekoration haben.


    Zur Frage, warum das Fenster maximiert lauft: Bei yaVDR gab es bislang ein Dock (wmDrawer), das man per Mouse-Over am linken Bildschirmrand erreichen konnte. Das klappt nur, wenn das Fenster nicht im Vollbild läuft. Außerdem gibt es Spezialfälle wie bei CKone , der eine PIP-Funktionalität mit zwei parallel laufenden VDR-Instanzen nutzt und dann die beiden Fenster auf dem Bildschirm nebeneinander oder leicht überlappend anordnen können will.


    Mit dem Commit 9a14e74 bekomme ich ohne Fensterregel und wenn ich das Plugin mit -f starte ab und an beim Start oder beim dem ersten Kanalwechsel ein schwarzes Bild, teilweise läuft es auch normal. Ich schaue mal, ob ich da ein Muster finde.


    PS das detachen verstehe ich immer noch nicht. Kannst du das mal mit gdb debuggen und nen Backtrace posten

    Der Backtrace davon sieht so aus: detach_crash.txt

    Mit der aktuellen Git-Version bekomme ich mit jetzt wieder ein Videobild mit voller Höhe.


    Was mir gerade aufgefallen ist, weil sich der Fenstertitel mit der neuen Version von softhddevice auf softhdcuvid geändert hat:
    Ich hatte eine Regel für Openbox, die für softhddevice die Fensterdekoration entfernt und das Fenster maximiert - wenn die Regel nicht mehr greift, startet das Plugin ohne Probleme, aber sobald ich die Fensterdekoration durch Openbox in der rc.xml mit so einer Regel

    Code
    1. <application title="softhdcuvid">
    2. <decor>no</decor>
    3. <maximized>yes</maximized>
    4. <skip_taskbar>no</skip_taskbar>
    5. </application>

    entfernen und das Fenster maximieren lasse, tritt der Fehler mit xcb wieder auf (die Bibliotheken für xcb haben unter Ubuntu nebenbei bemerkt die selben Versionsnummern wie auf deinem System):

    Code
    1. Sep 08 20:17:13 yavdr07 vdr[1019]: video: fatal i/o error
    2. Sep 08 20:17:13 yavdr07 vdr[1019]: [xcb] Unknown request in queue while dequeuing
    3. Sep 08 20:17:13 yavdr07 vdr[1019]: [xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
    4. Sep 08 20:17:13 yavdr07 vdr[1019]: [xcb] Aborting, sorry about that.
    5. Sep 08 20:17:13 yavdr07 vdr[1019]: vdr: ../../src/xcb_io.c:165: dequeue_pending_request: Zusicherung »!xcb_xlib_unknown_req_in_deq« nic
    6. Sep 08 20:17:14 yavdr07 systemd[1]: vdr.service: Main process exited, code=killed, status=6/ABRT

    Wenn ich das Plugin stattdessen mit -f im Vollbild starten lasse, scheint der Fehler beim Start nicht aufzutreten.


    Mit dem Skindesigner ist die OSD-Darstellung unvollständig - es sieht so aus, als würde er den Hintergrund nicht rendern und ab und an gibt es ein schwarz blinkendes OSD (scheint bevorzugt zu passieren, wenn er Dinge neu zeichnet).


    Beim Detachen crasht er weiterhin.

    bei der Wiedergabe von Aufnahmen, die auf meinem NAS liegen und per NFS eingebunden sind, bekomme ich

    immer wieder Tonaussetzer.

    Sind die Aussetzer weg, wenn die selbe Aufnahme lokal abgelegt wurde? Falls nicht: hast du mal mit dem TS-Doctor oder einem ähnlichen Programm geschaut, ob es Fehler im TS-Stream gibt?

    seahawk1986 compiliere mal ohne das openglosd. Dazu den Define im Makefile (-DOPENGLOSD) auskommentieren. Das Openglosd macht noch einen GL thread und da scheint es Probleme zu geben. Ich frage mich nur warum es bei mir einwandfrei läuft.

    Damit allein baut das Plugin nicht, weil das openglosd.o weiterhin in den OBJS steht - wenn ich diese Änderungen mache baut es:

    Das Videobild ist in der Höhe ca. auf die Hälfte gestaucht und zentriert (wie in diesem Post beschrieben), während das OSD Bildschirmfüllend gerendert wird.

    Wenn ich die Meldung richtig verstehe, musst du dafür sorgen, dass das Alsa-Gerät von pulseaudio freigegeben wird, damit mpv es benutzen kann. Dafür sollte man z.B. den pasuspender nutzen können, um den mplayer-Aufruf zu wrappen: http://manpages.ubuntu.com/man…c/man1/pasuspender.1.html

    Alternativ gibt es auch noch ein Tool von mini73 , mit dem man Pulseaudio gezielt pausieren bzw. reaktiveren lassen kann: https://github.com/flensrocker/yavdr-pasuspend


    Die bestehenden Pulseaudio-Clients frieren beim Suspend effektiv ein, bis puseaudio den regulären Betrieb wieder aufgenommen hat.

    Wenn ich den VDR mit der Umgebungsvariablen __GL_THREADED_OPTIMIZATIONS=0 starte, ist der SIGABRT von xcb beim Start weg. Dafür ist das Video dann aber gestaucht, während das OSD normal gezeichnet wird und mit dem Skindesigner geht überhaupt nichts mehr.

    Der aktuelle Git-Stand funktioniert bei mir leider nicht - wenn ich das Plugin unverändert baue, bekomme ich eine Meldung beim Start des VDR, dass das Symbol hw_device_ctx nicht definiert ist.

    Code
    1. Sep 07 11:00:59 yavdr07 vdr[27818]: vdr: /usr/lib/vdr/plugins/libvdr-softhdcuvid.so.2.4.0: undefined symbol: hw_device_ctx

    Ich sehe dafür nur eine Deklaration in https://github.com/jojo61/vdr-…d/blob/master/codec.h#L50 und in libavcodec/avcodec.h von ffmpeg 3.4 scheint die eigentliche Definition zu stecken (AVBufferRef *hw_device_ctx;), die er aber ignoriert.

    Wenn ich in https://github.com/jojo61/vdr-…blob/master/video.c#L2243 AVBufferRef als Typ des Pointers angebe (also AVBufferRef *hw_device_ctx = NULL; schreibe), ist das Problem mit dem fehlenden Symbol weg, dafür habe ich im Log dann Warnungen von xcb und einen Segfault:

    Es gibt auf http://www.saunalahti.fi/~rahrenbe/vdr/patches/index.php diesen Patch:http://www.saunalahti.fi/~rahr…s/vdr-2.4.0-tpid.patch.gz

    Die Seite(n) mit den Teletextuntertiteln kann man dann laut der Beschreibung gegen Ende es Patches in der channels.conf setzen.


    Ansonsten könntest du mal die Patches aus Videotextuntertitel für vdr-2.4.0 für das vdr-plugin-ttxtsubs ausprobieren, also die beiden von mir und die Ergänzung von TheTroll , die den Crash beseitigt.

    Das Paket bringt ein SysV-Init Skript mit, das beim Booten und beim Herunterfahren kurz ausgeführt wird und dabei die letzte Aufweckzeit löscht bzw. eine neue setzt.

    Die Systemd-Unit wird dynamisch erzeugt und macht nichts anderes als das Skript mit start bzw. stop als Argument aufzurufen:

    Was es allerdings zumindest auf meinem Testsystem nicht mehr gibt, ist /proc/acpi/alarm (wohin das Skript die Aufweckzeit schreiben will). Damit schlägt der Aufruf von /etc/init.d/vdr-addon-acpiwakeup stop fehl.


    Bei modernen Kerneln sollte das jetzt /sys/class/rtc/rtc0/wakealarm für die erste RTC sein. Außerdem scheint man nicht mehr wiederholt eine Aufwachzeit schreiben zu können, ohne vorher den Wakealarm auf 0 zu setzen.


    Ich habe das Skript jetzt mal so angepasst, dass es die moderne Variante nutzt, um die Aufweckzeit zu setzen: https://launchpad.net/~yavdr/+…66/+listing-archive-extra

    Langfristig überlege ich https://github.com/seahawk1986/acpiwakeup-ng für yaVDR zu paketieren, das ist für Systemd vorbereitet und nutzt ausschließlich die neue Methode.