Posts by TomJoad

    Mit dem grep geht es auch. Wichtig war aber vor allem, dass der ln -s nur ausgeführt wird, wenn wirklich vdr-recordings gefunden werden.

    Bei mir habe ich das udiskie-Skript wie folgt abgeändert, weil ich auch externe Medien anhänge, die Filme im mkv-Format beinhalten, sonst aber ziemlich voll mit Backups etc. sind.

    (Aus irgendeinem Grund brauchte es auch noch die zusätzlichen Anführungsstriche beim -n)

    Ich bin beim Neubauen in vdr 2.4.3 wieder drüber gestolpert, dass make -j4 plugins bei hbbtv Fehler wirft. Beim Erzeugen der libvdr-hbbtv.so ist der cmake von nng noch nicht durch und es fehlt die nng/build/libnng.a.

    Ich denke es reicht in in der Makefile folgende Änderung

    Code
    -$(SOFILE): $(OBJS)
    +$(SOFILE): buildnng $(OBJS)

    Damit wird zuerst mit -j4 nng gebaut und dann mit -j4 der Rest

    Aber ohne den "-re" Parameter wird das Video so schnell gewandelt, wie es die Leitung hergibt. Und seltsamerweise wurde das dann auch genauso schnell im VDR abgespielt.

    Ich habe mich unglücklich ausgedrückt, der Ffmpeg-Parameter -re ist nötig, aber die Variable realtime wurde uninitialisiert verwendet und dann -re nicht immer gesetzt. Da realtime immer true sein soll, könnte man den Code vereinfachen.

    Anbei ein Vorschlag, nur komplette ts-Pakete zu senden. FixSkipped.patch

    Ffmpeg schreibt zwar immer komplette Pakete in die Pipe, wegen der Grösse ist das Schreiben, soweit ich die Kernelinfos verstehe, nicht atomar. Deshalb, auch weil eine Namedpipe als Bytestream aufgefasst wird, werden auch Zwischenstände gelesen.

    Zusätzlich besteht eine gewisse Chance, das realtime nicht auf true steht beim Aufbau der der Ffmpeg-Kommandozeile. Eigentlich kann man den Parameter ganz rausnehmen.

    Browserlog:

    [2020-06-19 22:33:23.048] [browser] [error] Send Video data, but size is not a multiple of 188: 31640

    [2020-06-19 22:33:23.049] [browser] [error] Send Video data, but size is not a multiple of 188: 2388

    syslog (vdr):

    Jun 19 22:33:23 vdr[27085]: [27149] Got Video data, but size is not a multiple of 188: 31640

    Jun 19 22:33:23 vdr[27085]: [27149] ERROR: skipped 132 bytes to sync on start of TS packet at device.c/PlayTs(1583)

    Jun 19 22:33:23 vdr[27085]: [27149] ERROR: skipped 132 bytes to sync on start of TS packet at device.c/PlayTs(1583)

    Jun 19 22:33:23 vdr[27085]: [27149] ERROR: skipped 132 bytes to sync on start of TS packet at device.c/PlayTs(1583)

    Jun 19 22:33:23 vdr[27085]: [27149] ERROR: skipped 132 bytes to sync on start of TS packet at device.c/PlayTs(1583)

    Jun 19 22:33:23 vdr[27085]: [27149] Got Video data, but size is not a multiple of 188: 2388

    MarkusE: Da war bei mir was durcheinandergeraten, ich hatte den fix_remote_search_timer.diff im Gedächtnis, aber das ist ein anderes Thema, das schaue ich mir noch an.

    Mit GetById zu arbeiten, ist seit 2.4 immer die sicherere und bessere Methode, deshalb sollte dein Patch unabhängig von meinem drin bleiben.
    Das Holen der Liste von remote geht natürlich nur über svdrpservice, da hast Du recht.

    Man könnte natürlich auch eine neue aufgebohrte Version der Serviceschnittstelle machen, aber auch dann muss live angepasst werden.

    Mir fällt sonst kein weiteres Plugin ein, das die Konfliktcheck-Schnittstelle nutzt?

    Im epgsearch-Code werden im Conflictcheck-Menü die lokalen und die remoteTimer getrennt überprüft. Dazu wurde der svdrpservice-Befehl LSCC so angepasst, nur lokale Timer anzuzeigen. Das ist auch nötig, weil es sonst zu einer Ping-Pong-Schleife zwischen lokalem und remote Server führen würde.

    Mir wäre es am liebsten, die ServiceSchnittstelle entsprechend anzupassen und nur lokale Timer in diese Liste zu schreiben. Dann müsste live selber, wenn remote Timer vorhanden sind, die ServiceSchnittstelle von dem passenden Server aufrufen.

    Der Patch von MarkusE ist für epgsearch ohne Live nicht nötig und nicht sinnvoll.

    Anhängender Patch mit der Bitte um Kommentare.

    Warum löscht ihr nicht in solchen Fällen die timersdone? Die ist dazu da, um einmal automatisch programmierte Timer, die evtl. gezielt manuell gelöscht wurden, nicht sofort wieder automatisch aufzuziehen. Wenn Wiederholung vermeiden programmiert ist, wird auch die epgsearchdone herangezogen.