Wie lang müsste eine VDR Aufzeichnung sein, wenn es keine Fehler gab?

  • Hi,


    Wie lang müsste eine VDR Aufzeichnung sein, wenn es keine Fehler gab?


    Ich habe das in live implementiert, aber meine Lösung gefällt mir nicht so richtig gut. Ich muss einfach zu oft raten. Ich schreibe mal auf, was ich gemacht habe. Ev. gibt es ja bessere Möglichkeiten.


    A: Das Event hat kein VPS

    Dann addiere ich zur Dauer des Events die Margin, entsprechend dem VDR Setup. Und vergleiche das Ergebnis mit der Länge der Aufzeichnung. Das Ergebnis ist bei mir OK, weil ich die Margin im VDR Setup nie ändere.

    Besser wäre es natürlich, die tatsächliche Länge des Timers herauszufinden. Geht das?


    B: Das Event hat VPS: Wurde tatsächlich VPS verwendet?

    Dann muss ich erst mal herausfinden, ob bei der Aufzeichnung VPS verwendet wurde.

    Dazu berechne ich 2 Abweichungen:

    1) Die Abweichung, unter der Annahme, dass kein VPS verwendet wurde. Wie in A) beschrieben

    2) Die Abweichung von der Länge des Events (ohne eine Margin zu berücksichtigen).

    Je nach dem, welche diese Zahlen betragsmäßig kleiner ist, gehe ich davon aus, dass kein VPS verwendet wurde (und springe zu A), oder mache mit VPS weiter.


    Besser wäre es, irgendwo "nachlesen" zu können, ob VPS verwendet wurde. Geht das? Oder gibt es eine andere, bessere Möglichkeit? Im VDR Setup nachsehen funktioniert bei mir nicht, ich ändere diese Einstellung im Setup zu oft.


    C: VPS wurde verwendet

    In diesem Fall nehme ich an, dass die Länge des Events gleich der Länge der Aufzeichnung sein sollte. Das stimmt aber sehr oft nicht. Daher betrachte ich es generell als keinen Fehler, wenn die Aufzeichnung länger ist als das Event. Falls die Aufzeichnung kürzer ist als das Event, sehe ich nur bei recht großen Abweichungen ( > 6 min) einen Fehler.

    Besser wäre es natürlich, herauszufinden, wann das VPS Signal den Beginn markiert hat, und wann das Ende. kfb77 , markad schreibt das doch mit (?). Kann ich das irgendwie auslesen/verwenden?


    ~ Markus

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • Besser wäre es, irgendwo "nachlesen" zu können, ob VPS verwendet wurde. Geht das?

    Das Thema habe ich in markad auch. Du kannst es mit timer->HasFlags(tfVps) auslesen, solange der Timer existiert. Da ich die Info aber auch danach haben will, erzeuge ich ein Info File im Aufnahmeverzeichnis.

    markad.vps mit dem Inhalt VPSTIMER=NO oder VPSTIMER=YES.

    Klar kannst du die Datei auslesen, aber damit erzeugt du dir eine Abhängigkeit zum markad Plugin.

  • Besser wäre es natürlich, die tatsächliche Länge des Timers herauszufinden. Geht das?

    Das geht z.B. mit LSTT 1


    Ich verwende das in meinem Skript um Aufnahmen dei unvollständig sind zu kennzeichnen.

  • markad.vps mit dem Inhalt VPSTIMER=NO oder VPSTIMER=YES.

    Das hilf schon mal. Könnte ich auch die Informationen aus vps.log verwenden? Um herauszufinden, wann das VPS Signal den Beginn markiert hat, und wann das Ende?

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • Könnte ich auch die Informationen aus vps.log verwenden?

    Nein, das ist ein Logfile und da steht alles mögliche drin und kann sich jederzeit ändern.

    Um die Zeiten von mir zu bekommen, kannst du aber auch die marks.vps werden, da steht die Info in einem festen Format drin.

    So sieht die Datei aus, wenn ich eine gültige VPS Sequenz bekommen habe, dazu muss die Aufnahme nicht mal mit VPS aufgenommen worden sein:


    Code
    VPSTIMER=NO
    START: 12.04.2021-19:15:57 177
    STOP: 12.04.2021-19:30:10 1030

    also:

    START/STOP/PAUSE START/PAUSE STOP

    Uhrzeit

    Offset vom Start der Aufnahme (s)


    Aber das ganze funktioniert wie bekannt nicht mit epg2vdr Plugin, und das nutzen wohl die meisten.

    Auch dein false beim EPG Händler hat nicht gebracht, ich vermute, da gibt es noch mehr Stellen, wo epg2vdr den VDR (und damit auch mich) aus dem Event raus wirft. Im Verdacht habe ich da noch das true auf IgnoreChannel. Leider habe ich den EPG Handler immer nicht nicht wirklich verstanden, aber ich bin noch dran.

    Einmal editiert, zuletzt von kfb77 ()

  • Das geht z.B. mit LSTT 1

    Denke ich gerade zu kompliziert ? Ich habe das so verstanden, dass er die Info auch nach dem Ende der Aufnahme will und da kann er nicht mehr in den Timer schauen.

  • Die Werte kann man ja auch speichern

    Bash
    # Ermittelte Werte für später Speichern
        { echo "TIMER_ID=$TIMER_ID" ; echo "VDR_TIMER=\"${VDR_TIMER[*]}\""
          echo "START=$START"       ; echo "STOP=$STOP"
          echo "TIMER_LENGTH=$TIMER_LENGTH"
        } > "$REC_INFOS"  # .checkrec
  • Hi,


    marks.vps ist genau das, was ich brauche. Und wir kriegen das auch noch mit epg2vdr hin.


    Eine Information zum Timer zu bekommen, so lange der Timer noch existiert, geht natürlich mit LSTT 1.

    Und ja, ich kann das dann auch im Recording Verzeichnis speichern. Ich wollte eigentlich wissen, ob es das schon gibt. Wenn ja, müsste ich das ja dann nicht nochmal machen.


    ~ Markus

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • Und wir kriegen das auch noch mit epg2vdr hin.

    Mit deiner Hilfe sicher.

    Ich denke das Problem liegt tiefer: epg2vdr liefert bei den Kanälen, die in seiner channel.map stehen, auf IgnoreChannel true zurück. Damit ist der VDR komplett raus aus der Verarbeitung und somit auch kein Aufruf der EPG Handler.

    Ich habe dies mal zum Test (ohne deine Patches) auf false geändert. Damit kommen bei mir die Events an.


    Code
    Dec 25 15:54:54 VDR-2204-Dev vdr: [689801] markad: cEpgHandlerMarkad::HandleEitEvent(): EventID() 30521 RunningStatus() 4, channel: S19.2E-1-1019-10303 SWR BW HD
    Dec 25 15:54:54 VDR-2204-Dev vdr: [689801] markad: cEpgHandlerMarkad::HandleEvent():    EventID() 30521 RunningStatus() 4, channel: S19.2E-1-1019-10303 SWR BW HD, title: Sagenhaft - Südtirol
    Dec 25 15:54:54 VDR-2204-Dev vdr: epg2vdr:                      epg2vdr::HandleEvent(): EventID() 30521 RunningStatus() 4, channel: S19.2E-1-1019-10303 SWR BW HD, title: Sagenhaft - Südtirol

    Sowohl am EIT Handler, als auch am Event Handler. Aber sie kommt auch bei epg2vdr wieder an, was wohl bei selbst verwalteten Kanälen unnötig ist.

  • Die Debug Version vom markad Plugin ist hier, falls du selber Testen möchtest.

    Da werden alle Aufrufe von HandleEitEvent und HandleEvent ins Syslog geschreiben.

  • Hallo kfb77,


    Wie ist das Epg2VdrConfig.masterMode Setting?


    Wenn hier nein steht, oder auto und ein anderer VDR die EPG Daten in die DB schiebt, dann ignoriert dieser VDR das EPG komplett ...


    ~ Markus

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • :wand

    Guter Ansatz, stand auf Auto und da der Test VDR ja dauernd neu gestartet wird, ist der andere Master.


    Jetzt bekomme ich im cEpgHandlerMarkad::HandleEitEvent() die EIT raw events, aber bei cEpgHandlerMarkad::HandleEvent() kommt weiterhin nichts an.

    Aber das mir auch egal, weil dann komme ich mit minimalen Anpassungen in markad und ohne Anpassungen im VDR und epg2vdr aus.

    Die Variante ist eh schon im produktiven markad drin, brauchst nur:

    Code
    markad.logVPS = 1
    markad.useVPS = 1

    Vielen Dank für deine Unterstützung.

  • Hi,


    Anbei ein Update des Patches. Damit sollten auch bei dem EPG Client: VPS funktionieren, und die Events ankommen. Falls der Client EIT Daten bekommt.


    Warum HandleEvent nicht aufgerufen wird, ist mir unklar. Dafür habe ich doch extra einen Aufruf eingebaut:

    Code
    if (!EpgHandlers.IsUpdate(SiEitEvent.getEventId(), StartTime, Tid, getVersionNumber())) {
                EpgHandlers.HandleEvent(pEvent);
                continue;
    }


    ~ Markus

  • Ich habe dies mal zum Test (ohne deine Patches) ...

    Weil ich ohne deinen Patch getestet habe. Ich möchte eine Abhängigkeit von Patches in VDR und epg2vdr möglichst vermeiden. Wenn kls und horchi dies übernehmen, kann ich ja immer noch auf HandleEvent umstellen.

  • Gibt es hierzu schon Rückmeldungen, ob das von den Maintainern übernommen wird, die beiden Patches?


    Wäre schade wenn das wieder mal untergeht.

    Gruß utiltiy



    VDR Projekte VDR Projects

  • MarkusE

    Mein Syslog wird seit dem letztem Update geflutet mit:

    "vdr: [1945] live: ERROR: markad.vps, wrong format, first line=START: ..."

    Es gab natürlich alte Versionen von markad, wo die Zeile "VPSTIMER=..." noch nicht erzeugt wurde.

    Wäre schon, wenn live dies ohne (oder zumindest nicht Level ERROR oder WARNING) akzeptieren würde.

  • Hi kfb77,


    Klar, stelle ich um. Wie war denn das alte Format? Hat da einfach die 1. Zeile gefehlt?

    Ich vermute mal, mit den Informationen im alten Format war es nicht möglich, herauszufinden, ob der Timer tatsächlich VPS nutzte (?). Sonst hättest Du ja die 1. Zeile nicht ergänzt ...


    ~ Markus

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • Wie war denn das alte Format? Hat da einfach die 1. Zeile gefehlt?

    Ja, aber sicherer ist trotzdem, <key>=<value> zu nutzen und nicht die Zeile hart kodieren.


    Ich vermute mal, mit den Informationen im alten Format war es nicht möglich, herauszufinden, ob der Timer tatsächlich VPS nutzte (?). Sonst hättest Du ja die 1. Zeile nicht ergänzt ...

    Ja, ich hatte festgestellt, dass ich die Info in markad auch brauche (Aufnahme vom User zu spät gestartet und somit unvollständig oder berechtigt durch VPS später gestartet ?) und darum eingeführt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!