Posts by kls

    In Zeile 121 heißt es, dass die CAT maximal 1024 Byte lang sein kann. Den Buffer zu vergrößern halte ich daher nicht für sinnvoll, da es ein eventuelles Problem wohl eher verschleiern würde.


    Die Warnung fallls length > 1024 ist (da die Section-Length ja 12 Bit hat) wäre dagegen sicher sinnvoll.

    MegaV0lt : magst du das mal testweise bei dir einbauen und versuchen, den Fall erneut zu forcieren?

    Mit folgender Änderung wird Vor- und Nachlaufzeit an die Länge des vorherigen bzw. nachfolgenden Events angepasst.

    Damit klappt der konkrete Fall schon mal.

    Vielleicht macht es sogar Sinn, das nicht nur auf Pattern-Timer zu beschränken.

    Meinungen dazu?.

    Das Problem hier ist, dass der eigentlich aufzunehmende Event sehr kurz ist (5 Minuten) und der Timer mit seinen 10 Minuten Nachlaufzeit auch den nachfolgenden Event (der 10 Minuten dauert) vollständig überlappt. In cTimer::SetEventFromSchedule() greift daher die Bedingung "if overlap is the same, we take the longer event"; beide Events werden zu 100% überlappt, und der zweite ist der Längere.

    Damit wird dem Timer der zweite Event zugewiesen, und der erste hat keinen Timer mehr. cTimer::SpawnPatternTimers() erzeugt daher einen neuen Timer und das Spiel beginnt von vorne. Mit VPS könnte man das zwar auf diesem Kanal umgehen, aber das ist keine allgemeine Lösung.


    Im konkreten Fall hilft erstmal, die Timer-Nachlaufzeit auf unter 10 Minuten zu verkürzen.

    Um das Problem allgemein für Aufnahmen ohne VPS in den Griff zu bekommen werde ich wohl dafür sorgen müssen, dass die Vor- und Nachlaufzeit des Timers immer klein genug ist, damit weder der vorherige noch der nachfolgende Event zu 100% überlappt wird.

    Als "Notbremse" könnte in cTimer::SpawnPatternTimers() auch noch geprüft werden, ob es bereits einen "gespawnten" Timer mit diesen Einstellungen gibt - falls es noch aus irgendwelchen anderen Gründen aus dem Ruder laufen sollte...

    jsffm Kannst zum Thema "Pattern Timer spawnt nicht sofort nach Änderung" bzw. "...nach beendeter Aufnahme" bitte mal das hier testen:

    Das könnte dann erledigt sein, wenn Pattern Timer auch direkt auf Veränderungen der Timer-Liste reagieren. Momentan ist es so, dass ein Pattern Timer nur dann "spawnt", wenn sich die EPG-Daten des betreffenden Kanals ändern. Ich werde das noch so machen, dass das auch bei jeder Änderung der Timer-Liste passiert (das Beenden eines Timers verursacht ja auch eine solche Änderung).

    Behalte diesen Fall bitte im Auge und verifiziere es mit der nächsten Version von VDR (ich bin momentan an einer anderen Ecke tätig, daher wird es noch ein paar Tage dauern damit).

    Jetzt interessiert mich noch, welchen Einfluss es auf "normale" Timer, also ohne VPS, hat, wenn ich im Aunahmemenü VPS aktiviere.

    Setup.UseVps hat keinen Einfluss auch "normale" Timer.

    MANUAL:

    Code
    1. Use VPS = 0 Defines whether a timer that is created from an EPG entry
    2. (by pressing the "Record" (red) key in the "Schedules"
    3. or "What's on now/next?" menu) will automatically use VPS
    4. if the event it is created for has a VPS time.

    Es wirkt sich also ausschließlich beim Anlegen eines Timers aus dem Menü heraus aus.


    Der oben angegebene Patch ist notwendig, damit auch bei Setup.UseVps=false alles wie gewünscht funktioniert.

    Danke für den Bug-Report!

    Das ist natürlich aus, wenn ich das einschalte, welchen Einfluss hat das auf "normale" Timer, also ohne VPS?

    Keinen. Das dient nur dazu, VPS beim Anlegen von Timern für Kanäle, die VPS senden, defaultmäßig einzuschalten.

    Nach Aktivieren von VPS gleiches Ergebnis.

    Hat der Pattern Timer den Timer auch wirklich *nach* dem Einschalten von Setup.UseVps neu angelegt?


    Eventuell sollten wir diese Änderung machen:

    denn so wie es momentan ist, klappen Pattern Timer mit VPS nur dann, wenn beim Spawnen auch Setup.UseVps eingeschaltet ist.

    Ich denke mal, damit sollte es allgemein funktionieren (der obige Patch entfällt dann):

    Pattern Timer "spawnen" immer, wenn sich am EPG des jeweiligen Kanals etwas ändert (und sei es nur der Running Status).

    Um bei unmittelbar aufeinander folgenden Treffern rechtzeitig die Aufnahem starten zu können, wird, falls ein Event matcht, auch der darauf folgende Event gecheckt und ggf. ein weiterer Timer angelegt.


    Was ich noch machen muss ist, dass das auch bei jeder Änderung der Timer-Liste geschieht. Das ist momentan noch nicht der Fall, daher der Workaround mit dem löschen des EPG des Kanals.