DVB.NET 3.5 – Ein Ausblick oder so

Nachdem ich nun doch schon DVB.NET 3.2 inklusive des DVB.NET / VCR.NET Viewers freigegeben habe, einige sehr rohe Gedanken zur nächsten Version – obwohl ich nicht glaube, dass ich vor Karneval 2008 anfangen werde, etwas Konkretes zu tun. Ich plane auch locker, die Versionsnummer statt auf 3.3 direkt auf 3.5 zu erhöhen. Erst mal überraschend, denn nach aussen hin sichtbar wird sich wenig tun.

Aber im Laufe der Jahre sind einige relativ umfangreiche Teile der Bibliothek relativ schnell enstanden, hier ist an mehreren Stellen mal eine Konsoldierung und ein Review notwendig, vielleicht sogar mal wieder eine Dokumentation für Entwickler (Stichwort Sandcastle – NDoc hat den Sprung nach .NET 2.0 ja nicht geschafft). Das betrifft vor allem die Unterstützung der BDA Treiber. In diesem Bereich werde ich aber vor allem die Anbindung der spezifischen DiSEqC Ansteuerung und (die zur Zeit noch gar nicht angedachte) PayTV Unterstützung via CI/CAM angehen. Für die nächste DVB.NET Version soll hier ein Provider Konzept her, dass eine Nutzung von anderen BDA Treibern durch eine Bereitstellung von kleinen Zusatzmodulen erlauben soll.

Auch der für den Viewer entwickelte Bereich der Anzeige von DirectShow Graphen soll noch einmal mit etwas Abstand betrachtet werden. An dieser Stelle kommt aber auch schon der zweite große Bereich ins Spiel, der etwas Auffrischung braucht. DVB.NET unterstützt heute mit einigen Klassen den Umgang mit Transport Streams: es gibt einen Parser, der zum Beispiel den Datenstrom vom Sender zerlegt, eine Klasse zum Erzeugen von Dateien und einen DirectShow Filter zum Einmischen in einen Graphen. Bei allen Aspekten gibt es noch offene Fragen, die möglicherweise Probleme verursachen. Der Parser verwendet für die Filter etwa keine eigenen Threads zur Datenverteilung, das könnte der Grund sein, warum einige PayTV HDTV Sender nicht gleichzeitig mit der Programmzeitschrift (EPG) aufgezeichnet oder fehlerfrei betrachtet werden können. Die Dateierzeugung hat einen Multiplexer auf Basis der TS Pakete, sondern verwendet die PES Struktur, was möglicherweise die Ursache dafür ist, dass Sender mit einem PES Paket pro GOP Aufzeichnungsdateien erzeugen, die nicht abgespielt werden können. Und die Einmischung von H.264 Material in DirectShow Graphen erkennt die innere Struktur des Datenstroms nicht und kann dem Graphen keine Hinweise auf so genannte Synchronisationspunkte geben, was vermutlich der Grund dafür ist, dass der Viewer FFDShow und andere Decoder nicht zur Anzeige von H.264 Material nutzen kann.

Ach ja: im Zusammenspiel mit dem Viewer wäre auch die Unterstützung einer Fernbedienung Thema für die nächste Version. Hier müsste ich mich auch mal schlau machen, was möglich ist, welche Software existiert und so weiter. Es geht schwerpunktmäßig um verteilte Szenarien, bei denen ein VCR.NET die DVB Hardware verwaltet, der Viewer aber auf einem anderen Rechner läuft und die Fernbedienung dort angeschlossen wird. Die bei den Karten mitgelieferten Fernbedienungen sind daher erst einmal nicht das Thema – auch wenn ich vielleicht damit anfange, da DVB.NET ja zumindest die Nexus diesbezüglich unterstützt.

Viel gesagt, viel Kram In-House, aber vielleicht kommen dabei einige ‘Bug Fixes’ heraus. Und wie immer: mal schauen, was ich davon wirklich umsetzen kann.

Man darf gespannt sein (naja: ich bin es)

Viel Spaß weiterhin mit DVB.NET und Konsorten

Jochen