DVB.NET und VCR.NET nun auf GitHub

Ich bin dabei, die Entwicklung meiner privaten aber öffentlichen Projekte von SVN auf GIT umzustellen. Dabei hat es nun auch DVB.NET und VCR.NET erwischt. Da ich die Historie von SVN nicht übertragen habe, gibt es im Moment nur den jeweils aktuellen, nicht stabilen (!) Entwicklungsstand der Version 4.2 – mit allen Fehlern, die so passieren. Sobald die 4.2 abgeschlossen ist werde eine entsprechende Markierung vornehmen – das kann aber noch etwas dauern. Inzwischen gilt: anschauen: gerne, spielen: gerne, produktiv nutzen: nur mit äußerster Vorsicht und ohne Gewähr auf eigene Gefahr – Support gibt es nur mit vorheriger Rücksprache!

Einen schönen Tag

Jochen

VCR.NET 4.2: Wiederverwendung eines Gerätes trotz geringerer Planungspriorität

In der Standardeinstellung versucht VCR.NET immer Geräten mit höherer Priorität bei der Zuweisung von Aufzeichnungen zu bevorzugen. Hat man mehr als zwei Karten so kann es in der Standardeinstellung des Planungsalgorithmus dazu kommen, dass zwei Karten zum gleichen Zeitpunkt die gleiche Quelle aufzeichnen. Hier ein Beispiel aus der Praxis:

 19:25-21:05 KiKA auf Gerät A
 20:10-22:20 RTL auf Gerät C
 20:10-23:40 HD auf Gerät B
 22:05-00:20 RTL auf Gerät A 

Den Geräten A und B wurde die Priorität 100 zugeordnet, C allerdings nur 50. Um 22:05 erfolgt die Zuordnung der letzten Aufzeichnung an Gerät A, da dieses die höchste Priorität und gerade nichts zu tun hat – in der Praxis ist die Entscheidung geringfügig komplizierter führt aber zum selben Ergebnis.

Die neue Regel ParallelSource:Min erlaubt es VCR.NET nun die Aufzeichnung auf dem Gerät C auszuführen, da dieses auf der gewünschten Quelle bereits aktiv ist – obwohl dadurch ein Gerät niedrigerer Priorität länger als unbedingt notwendig in Betrieb bleibt.

Da die Auswertung der Regel allerdings etwas zeitaufwändiger ist, muss sie in VCR.NET gesondert aktiviert werden um berücksichtigt zu werden. Oder kurz: die Standardregeln enthalten diese neue Bewertungsregel nicht.

Mal schauen, ob das jemandem hilft…

Jochen

Mal wieder die Nexus…

Meine alte Nexus hat unter Windows 7 leider die unangenehme Eigenschaft, dass beim Starten einer Aufzeichnung (respektive Nutzung der Karte überhaupt) das System kurz ins Stocken kommt. An sich kein Problem, aber wenn meine andere DVB Karte (Nova-HD-S2) gerade eine Aufzeichnung macht, gibt es kurz Aussetzer. Für VCR.NET 4.2 wird es daher eine eigene Planungsregel geben – hey, ich nutze das halt auch 🙂 :

Startzeit einschränken

In dieser Variante (die Regel ist durchaus etwas mächtiger) sagt die Zeile mit der Nexus: wenn möglich (i.e. keine der vorherigen Regeln wird verletzt) sollten Aufzeichnung auf der Nexus immer vor Aufzeichnungen anderer Karten starten. Da in der Standardeinstellung die Priorität der Geräte erst ganz am Ende berücksichtigt wird heißt das, dass die Nexus in solchen Situationen bevorzugt wird, obwohl sie (bei mir aus gutem Grund) eigentlich eine niedrigere Aufzeichnungspriorität hat.

Viel Spaß

Jochen

WaitableTimer und der Schlafzustand mit Tücken

Für VCR.NET 4.1 habe ich einige grundlegende Änderung beim Arbeiten mit dem Schlafzustand vorgenommen. Ursache war, dass seit Windows Vista der Windows Dienst den durch den Anwender ausgelösten Schlafzustand nicht mehr unterbinden kann und sich dem ganzen Vorgang stillschweigend anschließen muss. Das Beenden laufender Aufzeichnungen ist dabei ein wichtiger Schritt und das scheint auch soweit zu klappen. Allerdings wollte ich VCR.NET dafür sorgend lassen, dass zum einen ein überhasteter Schlafzustand Aufzeichnungen nicht ganz unter den Tisch fallen lässt zum anderen aber der Rechner auch nicht direkt wieder aufgeweckt wird.

Die Grundidee war der neue Konfigurationsparameter zur minimalen Verweildauer im Schlafzustand. Wenn der Anwender eine Minute vor Beginn in der Aufzeichnung den Schlafzustand auslöst, dann respektiert VCR.NET das erst einmal. Allerdings wird sichergestellt, dass der Aufweckzeitpunkt durch einen sogenannten WaitableTimer nicht weiter als diese minimale Verweildauer in der Zukunft liegt – die Voreinstellung ist 5 Minuten, i.e. im Beispiel gingen „nur“ 4 Minuten der Aufzeichnung verloren.

Leider haben wir nun festgestellt, dass das so nicht immer geht. Es scheint so zu sein, dass Windows den Aufweckzeitpunkt ignoriert wenn dieser zu spät während des Übergangs in den Schlafzustand erfolgt! Einige Änderungen in VCR.NET 4.1 führen dazu, dass je nach konkreter Konfiguration, Anzahl von Aufzeichnungen und Karten und abhängig von der Leistungsfähigkeit des Rechners in einigen Fällen genau dies passiert. Und dann wacht der Rechner für die nächste Aufzeichnung gar nicht auf – blöd, wenn das im Urlaub passiert.

Ab VCR.NET 4.2 kann man dieses neu eingeführte Verhalten wieder deaktivieren – in der Voreinstellung ist es weiterhin aktiv, für mich benutze ich es als Selbstschutz gegen persönliche Dummheit.

Neue Einstellung

Ist das Häkchen gesetzt, so manipuliert VCR.NET 4.2 den Aufweckzeitpunkt nicht mehr. Würde das Kontrollzentrum einen gelben Hintergrund zeigen und damit signalisieren, dass eine Aufzeichnung unmittelbar bevorsteht, so kann es dann sein, dass der Rechner sehr schnell wieder aufwacht – und dann die Aufzeichnung korrekt ausführt. Bei einem blauen Hintergrund und damit einer laufenden Aufzeichnung kann das Verhalten nicht genau vorhergesagt werden. Überlappen sich Aufzeichnungen, so wird VCR.NET zu Beginn der Folgeaufzeichnung aufwachen, ansonsten eventuell unnötig zu dem Zeitpunkt, an dem die unterbrochene Aufzeichnung eigentlich zu Ende wäre. Mit Verlust ist auf jeden Fall zu rechnen.

Nach aktuellem Kenntnisstand ist das im Moment das beste, was ich für VCR.NET 4.2 machen kann.

Jochen