Posts by kfb77

    Nachdem du mir so viel Übung beim Lesen von backtraces verschaffst hast, war das einfach:

    Beliebiges Programm, dann click auf die EPG Info einer Sendung und schon ist der nächste Crash da.

    Der Punkt

    WARN tntnet.worker - http-Error: 500 character conversion failed

    ist im git gefixed. Ich hatte eine Aufnahme von einem anderen vdr im Aufnahmeverzeichnis, wo das vdr info File iso-8859-1 codiert war. Tntnet20 zeigt dann seltsame Zeichen statt der Umlaute an, Tntnet30 zeigt gar keine Aufnahme mehr an.

    Ich habe mal einen full backtrace davon angehängt, weis nicht ob es dir hilft.

    Ja, hat geholfen. Das Problem liegt an diesem commit. Da habe ich mal auf die Schnelle nur den Header der zusätzlich benötigten Funktion eingebaut damit Live kompiliert, aber noch nicht einen Inhalt. Somit bekommt die Funktion "Timer speichern" die Channel-Id des Timer nicht. In Tntnet20 ging das mit internen Funktionen. Jetzt muss ich erst mal verstehen, was Tntnet30 hier haben will.

    Ja, kann ich reproduzieren, da gib es auch einen Crash.

    Aber so weit bin ich noch nicht, ich kämpfe gerade immer noch mit der Aufnahme Liste, bei einer meiner Aufnahme bekomme ich:

    Code
    1. WARN tntnet.worker - http-Error: 500 character conversion failed

    Schön wäre es, wenn man einen Hinweis bekommen würde, wo im Code das schief geht ...

    Lass uns die offenen Punkte hier sammeln, ich versuche die nach und nach abzuarbeiten.

    Nachdem ich nun die Suche nach dem Fehler schon fast aufgegeben hatte und den Hilfe Post abgesetzt hatte, bin ich durch Zufall über die Lösung gestolpert.


    Quelle


    "Eine kleine Änderung, selten genutzt", naja, das hat mich Tage Suche gekostet.

    Erster Test war auch erfolgreich, mit "path[]" statt "path" wird nun auch der Vector übergeben. Somit kann es weiter gehen.

    Ich habe mich mal daran versucht, Live mit Tntnet30 zum Laufen zu bringen, leider nicht erfolgreich.

    MarkusE hat mich freundlicherweise auf sein git berechtigt, damit wir nicht wieder mehrere gits haben. Mein Versuch liegt in seinem git im Branch Tntnet30.

    Aktueller Status: es kompiliert, aber crashed beim Aufruf der Aufnahme Liste.

    Ich konnte den Fehler eingrenzen, dass bei diesem rekursivem Aufruf der Vector mit dem Parameter "path" nicht funktioniert. Einfache Parameter wie "level" oder "filter" kommen an, der Vector "path" kommt aber immer leer an. Damit gibt das eine Endlos Schleife, bis zum Crash.

    Ab da komme ich nicht weiter. MarkusE : schaust du dir das mal an, ob du da was finden kannst. Ich vermute fast, das ist ein Bug in Tntnet30.

    Das EPG schreibt doch nur der VDR? Und der düfte doch das vorher prüfen.

    Ja, so sollte das sein. Aber manchmal geht halt auch was schief, vielleicht war da mal ein Crash während des Speicherns von Einträgen.

    Ich würde bei gestoppten VDR die Zeile raus löschen und dann abwarten, ob das Problem wieder kommt.

    Hier ging es nur mit After=network.target

    Dass das was verbessert, verstehe ich nicht, da network.target vor network-online.target kommt. Die Wege von systemd sind manchmal seltsam ...


    Quote
    • network.target has very little meaning during start-up. It only indicates that the network management stack is up after it has been reached. Whether any network interfaces are already configured when it is reached is undefined. Its primary purpose is for ordering things properly at shutdown: since the shutdown ordering of units in systemd is the reverse of the startup ordering, any unit that is order After=network.target can be sure that it is stopped before the network is shut down if the system is powered off. This allows services to cleanly terminate connections before going down, instead of abruptly losing connectivity for ongoing connections, leaving them in an undefined state. Note that network.target is a passive unit: you cannot start it directly and it is not pulled in by any services that want to make use of the network. Instead, it is pulled in by the network management service itself. Services using the network should hence simply place an After=network.target dependency in their unit files, and avoid any Wants=network.target or even Requires=network.target.
    • network-online.target is a target that actively waits until the nework is "up", where the definition of "up" is defined by the network management software. Usually it indicates a configured, routable IP address of some kind. Its primary purpose is to actively delay activation of services until the network is set up. It is an active target, meaning that is may be pulled in by the services requiring the network to be up, but is not pulled in by the network management service itself. By default all remote mounts defined in /etc/fstab pull this service in, in order to make sure the network is up before it is attempted to connect to a network share. Note that normally, if no service requires it, and if no remote mount point is configured this target is not pulled into the boot, thus avoiding any delays during boot should the network not be available. It is strongly recommended not to pull in this target too liberally: for example network server software should generally not pull this in (since server software generally is happy to accept local connections even before any routable network interface is up), its primary purpose is network client software that cannot operate without network.

    Quelle

    eine rc.local wo man einfach ein mount -a; touch .update hinterlegen könnte, hat sich auch noch nicht gefunden.

    Die gibt es zwar nicht, die kann man aber anlegen und wird dann auch von systemd ausgeführt. Das ist aber nicht "recommended".


    Diese systemd mount Unit läuft bei mir:

    Der Name muss der Unit muss der Ausgabe von

    Code
    1. systemd-escape --suffix=mount --path <EINHÄNGEPUNKT>

    entsprechen.

    Ja, und direkt davor müsste kommen:

    Code
    1. DEBUG: cExtractLogo::SearchLogo(): recording is aktive, read frame 3000, now save dummy start mark at pre timer position 120s

    Ich gehe mal davon aus, dass es funktionieren wird.

    Somit gibt es jetzt Version 2.6.1 auf vdr-plugin-markad.

    Zusätzlich zu frühen Marken für live Schnitte sind zahlreiche Bug Fixes und Optimierungen drin.

    Sorry für den Fehler. Der make all muss auch irgendwo einen Fehler gebracht haben. Vorsicht: Nicht drauf verlassen, dass in einer farbigen Konsole alle make Fehler farbig sind, fehlende libs sind es nicht. Da falle ich auch immer wieder drauf rein.

    Falls du eine Anleitung brauchst:

    sudo bash

    apt-get install vdr-dev

    apt-get build-dep vdr-plugin-markad-ng

    cd /usr/src

    git clone -b V02 https://github.com/kfb77/vdr-plugin-markad

    cd vdr-plugin-markad

    make all

    service vdr stop

    make install

    service vdr start


    Das ist alles ....

    Wenn was schief geht, mit apt-get --reinstall install vdr-plugin-markad geht es wieder zurück.


    Edit: Fehler bei Plugin Name für yavdr korrigiert.

    ofenheizer

    Für dich habe ich im Branch V02 zwei Patches drin:

    1. die Logo Suche von dem Sender mit dem hohen Logo geht jetzt

    2. Bei "markad während der Aufnahme" wird eine vorläufige Start Marke zum Zeitpunkt des Timer Starts geschrieben.


    Bitte testen, da ich dies nicht nutze, habe ich es nur mal so auf dem Testrechner ausprobieren können.

    OK, habe dein Argument verstanden, ich baue das Verhalten beim Online Schneiden in der nächsten Version um. Wir haben ja immer noch Lockdown ...

    Ich finde deine Idee gut, beim Start eine Dummy Marke am Ende des Pre Timers zu setzen und die dann mit der echten Marke ersetzen, wenn die bekannt ist. Das kann ich vielleicht sogar ganz einfach einbauen, indem ich vorab eine Dummy Marke setze, die Marken speichere und sie intern gleich wieder lösche. Dann brauche ich sie nicht mal als Dummy Marke erkennen, weil sie intern gleich wieder weg ist. Ich kämpfe aber gerade noch mit Optimierungen aus den neuen Features, das will ich zuerst fertig haben.

    Bringt es denn was Vor/Nachlauf zu ignorieren? Da dann die Logoerkennung von Anfang an losläuft?

    Nein, das ist eine wichtige Information, ohne die die Start Marke nichts werden wird. Damit wird auch, je nach Aufnahme, nicht mal die Logo Erkennung schneller, weil ja vor Pre Timer Werbung ohne Logo kommen könnte und er mehr Frames lesen muss.

    Kann man denn nicht einfach eine Startmarke an den Beginn der Aufnahme setzen, also Aufnahmestart + Vorlauf (hier 5min).

    Könnte man, das wäre aber i.A. nicht korrekt. So pünktlich beginnen die Sender nie. Und da habe ich eine klare Priorität: Lieber möglichst richtig als möglichst schnell.


    Die wird ja im Verlauf dann sowieso nochmal angepasst.

    Angepasst nicht, eine wird ausgewählt aus den vorhanden vom Start Bereich. Und wie könnte ich die willkürliche Marke von den Echten unterschieden ? Da müsste ich das Datenmodell umbauen. Sorry, aber da habe ich im Moment andere Prioritäten. Ich behalte das mal als Feature Request im Hinterkopf. Die Idee ist grundsätzlich gut, vielleicht was für 2.7.

    Ich pack dir mal die Aufnahme von 13th Street zusammen und melde mich dann per PM bei Dir.

    danke


    Das Logo hebt sich schon recht schwach vom Hintergrund ab, vvlt. ist das das Problem.

    Kann gut sein, einen gewissen Kontrast zum Hintergrund brauche ich.

    Eine online Erkennung geht nicht sofort, ich brauche Material mit dem ich arbeiten kann.

    Die 20 Min bei Sky Universal HD setzen sich wie folgt zusammen (ca. Werte):

    20:55:02 Start

    warten bis 5 Minuten Pre Timer vorbei sind

    21:00:21 Start Warten auf Frames für Logo Suche

    14 Minuten warten bis 1000 Frames von der Aufnahme da sind (bei SD geht das schneller, da mehr iFrames pro Sekunde)

    21:14:00 Start Logo Suche

    21:14:04 Logo beim ersten Versuche gefunden

    21:14:21 Start Marke gefunden und erstes Speichern der Marken

    Das Log bestätigt deine 20 Minuten bis zu der ersten Marke, aber fast die ganze Zeit ist Warten auf Material mit dem markad arbeiten kann.

    Das geht nur schneller, wenn du das Logo in den Cache legst.

    Aber auch dann geht es nicht sofort:

    5 Minuten Pre Timer

    + 10 Minuten Start Bereich, aus dem die Startmarke ermittelt wird (die Frames dazu sind im o.g. Fall ja schon da)

    Damit kannst du 5 Minuten sparen.

    Ein Logo wird ja auch im Aufnahmeverzeichnis abgelegt.

    Das Logo sieht aber nicht gut aus, das steht "RUTH" drin ??? Wenn du mir ein tar auf das Aufnahmeverzeichnis machen kannst und mir per PM einen Download Link zusenden, dann schaue ich mir das mal an.


    Auch die vielen Marken zwischendrin sind bei zeitversetztem Schauen unschön

    Stimmt, das war nicht Absicht bei der Änderung der Save Funktion. Ist auch schon gefixt, kommt mit 2.6.1.