Arbeiten mit mindestens zwei gleichartigen USB Geräten

(Dies ist ein Folgeartikel zu dieser Grundlagenbeschreibung)

USB Geräte habe die Angewohnheit, bei vielen normalen Gelegenheiten die eindeutigen Namen (Moniker) und Gerätepfade zu ändern. Damit versagt in vielen Fällen der DVB.NET Grundalgorithmus, Geräte über den eindeutigen BDA Namen nachzuschlagen- bei PCI Geräten ist es besser, aber die Problematik ist grundsätzlich die selbe.

Seit einiger Zeit kann in einem BDA Geräteprofil die Einstellung IgnoreMoniker von der Voreinstellung false auf true gesetzt werden. Ist dies der Fall, so versucht DVB.NET erst gar nicht, einen eindeutigen Namen zu verwenden, sondern geht direkt auf die Anzeigenamen der Filter. Zusammen mit den in den anderen Artikeln beschriebenen Neuerung im Service Pack 2 greift diese Lösung in vielen Fällen. Zum einen sind Geräte mit gleichen Anzeigenamen zusätzlich durchnummeriert. Zum anderen erfolgt diese Nummerierung auf Basis der Gerätepfade, so dass insbesondere bei USB Geräten die Tuner und Capture Filter in der gleichen Reihenfolge angeordnet bleiben – der dritte Tuner Filter gehört zum dritten Capture Filter, man weiß halt nur nicht, zu welchem Gerät konkret. Dieses Verhalten muss zwar noch mit verschiedenen BDA Geräten verifiziert werden, scheint aber in der Tat DVB.NET an dieser Stelle zu helfen, mehrere gleichartige USB Geräte stabil zu verwalten.

So, das war erst einmal der letzte Artikel zu Thema – Rückfragen und Diskussionen bitte im Forum.

Ciao

Jochen

Nutzung mehrerer gleichartiger Geräte

(Dies ist ein Folgeartikel zu dieser Grundlagenbeschreibung)

In vielen Fällen ist es bei mehreren gleichartigen Geräten im System so, dass diese die gleichen BDA Anzeigenamen verwenden und so in der Auswahl nicht unterschieden werden können – das gilt sowohl für PCI als auch für USB basierte Hardware. Erschwerend kommt hinzu, dass im Allgemeinen passende Pärchen von Tuner und Capture Filter ausgewählt werden müssen. Hat man zwei Karten, so gibt es zwei mögliche Kombinationen zur Auswahl. Bei drei sind es schon 6, bei vier 24 und so weiter. Die schlechte Nachricht vorweg: die Auswahl der richtigen Kombination bleibt weiterhin dem Anwender überlassen. Sorry!

Immerhin gibt es seit Service Pack 2 eine leicht veränderte Anzeige zur Auswahl der Filter: DVB.NET fasst nun Geräte mit identischem Namen zusammen und sortiert diese nach dem zugehörigen Gerätepfad des Windows Gerätes (Device) – zur Erinnerung: dieses wird nun immer zu jedem Filter ermittelt. Gemäß dieser Sortierung erfolgt eine Nummerierung der Art (1), (2), etc., die zur Ergänzung der Anzeigenamen verwendet wird. Ändern sich die Gerätepfade nicht, so bleibt diese permanent stabil und eine gleiche Nummer bezeichnet auch das gleiche Gerät.

Was ist denn dann, wenn sich die Nummer doch ändert, etwa durch eine Treiberinstallation oder bei USB Geräten durch einen Neustart des Rechners, eventuell sogar einfach nur durch Vertauschen der USB Ports? Nun, DVB.NET hat dafür nicht wirklich eine Lösung. Aber vielleicht ist das für den Normalbetrieb auch gar nicht notwendig. Wenn mehrere Profile entsprechend konfiguriert sind und die eindeutigen Namen ändern sich, dann kann DVB.NET immer noch eine Auflösung über den Anzeigenamen samt Nummer versuchen. Nun die gute Nachricht: zumindest für USB Geräte (und scheinbar auch für einige PCI Geräte) haben die Gerätepfad für zusammengehörige Filterpaare eine gewisse Symmetrie. Die Sortierung wird vielleicht die Anzeigenamen (1) und (2) vertauschen, dies aber simultan für Tuner und Capture Filter. Oder kurz ausgedrückt: selbst bei einer Vertauschung hat man immer noch korrekt konfigurierte Profile, nur dass diese nun evtl. andere Geräte ansprechen – da dieser aber identisch sind, ist dies im realen Leben möglicherweise gar kein Problem.

Nun gut, zwei weitere Wermutstropfen gibt es noch – einer in einem Folgeartikel, der andere hier: die Nummerierung beginnt, wenn mindestens zwei Geräte mit gleichen Anzeigenamen vorhanden sind. Der Nummernzusatz hängt von der Anzahl der gleichartigen Geräte ab und ist bei bis zu 9 Geräten (1) bis (9) und dann (01) bis zur Anzahl der Geräte. Das bedeutet, dass der Sprung von einem zu zwei Geräten (und umgekehrt) sowie von 9 zu 10 (und umgekehrt) eine Neukonfiguration des Geräteprofils erforderlich machen kann – ich würde es zumindest empfehlen. Bei Verwendung ständig wechselnder USB Konfigurationen kann dies lästig werden. Sollte das tatsächlich mal ein Problem werden, denke ich darüber nach. Die Wahrscheinlichkeit ist aber nicht wirklich gigantisch…

Tschüss

Jochen

DVB Geräte mit nur einem Filter

(Dies ist ein Folgeartikel zu dieser Grundlagenbeschreibung)

Die Implementierung der BDA Anbindung in DVB.NET ist etwas eigenartig und kann einen Hinweis auf das geben, was ich in diesem Artikel kurz vorstellen möchte. Wenn der BDA Empfangsgraph aufgebaut wird, wird in diesem zuerst der im Geräteprofil konfigurierte Tuner Filter angelegt. Der Tuner wird allerdings nicht mit anderen Filtern verbunden. Anders als der Capture Filter, dessen Eingang zum Network Provider geht und an dessen Ausgang DVB.NET den (Transport Stream) Datenstrom abgreift. Der Tuner wird nun nur noch verwendet, um die Empfangsparamter festzulegen.

Ich war etwas überrascht, als ich ein Gerät in die Hand bekam, das tatsächlich nur einen Tuner Filter anbietet – so gesehen bei dem MSI DigiVox mini Deluxe DVB-T Stick. Schaut man sich die Implementierung an, so kann man zu der Ansicht kommen, dass tatsächlich einer der beiden Filter mehr oder weniger überflüssig ist – nur einer befindet sich im Datenfluss des DirectShow Graphen. Beginnend mit Service Pack 2 kommt DVB.NET zumindest mit der Situation klar, bei der es keinen Capture Filter gibt: hier wird nun der Tuner Filter zwischen Network Provider und Datenstromverbraucher geklemmt und parallel weiterhin zur Steuerung der Empfangsparameter verwendet.

Immer was Neues halt…

Jochen

BDA Filter ohne Namen

(Dies ist ein Folgeartikel zu dieser Grundlagenbeschreibung)

In den vorherigen Versionen von DVB.NET erfolgte die Auswahl der BDA Filter ausschließlich über die Anzeigenamen, die bei der BDA Registrierung hinterlegt wurden. Nun hat es sich aber gezeigt, dass es Geräte gibt, die einen solchen Namen gar nicht zur Verfügung stellen – gesehen beim Cinergy T-Stick MKII.

Ab Service Pack 2 ermittelt DVB.NET zu jedem BDA Filter grundsätzlich das zugehörige Windows Gerät (Device). Ist dem Filter kein registrierter Anzeigename zugeordnet, so wird der des Gerätes ermittelt – diesen gibt es wohl immer. Nun können auch Geräte mit diesem besonderen Verhalten ganz normal mit DVB.NET genutzt werden.

So long

Jochen

Geräteauswahl über die BDA Filter Tuner und Capture

Im Service Pack 2 von DVB.NET / VCR.NET 3.9 wird es einige eigentlich kleinere Erweiterungen im Bereich der Geräteauswahl geben – ich habe gerade einen Release Candidate 10 in den Beta Bereich geladen, in dem diese am Anfang des Testzyklus schon einmal drin sind. Ich will in einigen Folgeartikeln diese Erweiterungen kurz beschreiben, dachte mir aber, ein bisschen Hintergrundinformationen wären nützlich. Tja, das wäre dann das, was nun kommt.

Als DVB.NET vor langer Zeit um die Möglichkeit erweitert wurde, grundsätzlich beliebige BDA DVB Geräte zu nutzen, wurde zur Festlegung der zu verwendende Hardware bestimmt, dass eine Kombination von Tuner und Capture Filter ausgewählt werden musste. Ohne auf die volle Historie einzugehen, hier die aktuelle Implementierung in der Grundfassung – auf einige Feinheiten und -einstellungen gehe ich in den späteren Artikeln ein.

Dem Anwender werden die Filter jeweils einer Art als Liste angeboten. Diese Liste zeigt die Namen, wie sie in der BDA Registrierung hinterlegt wurden. Zusätzlich merkt sich DVB.NET bei einer Auswahl aber auch den eindeutigen Namen (BDA Moniker) – der Grund für dieses Verhalten wird später in dem Artikel deutlicher, in dem es um den Einsatz mehrerer gleichartiger Geräte in einem Rechner geht.

Wenn das Gerät später einmal benötigt wird, versucht DVB.NET dieses zuerst über den kryptischen (i.e. maschinen- aber weniger menschenlesbar) eindeutigen Namen zu ermitteln. Bei PCI Geräten ändert sich dieser im Allgemeinen erst, wenn eine neue Treiberversion installiert wird – dann auch nicht immer. DVB.NET erkennt diese Situation und fällt dann auf die Suche nach dem Anzeigenamen zurück. Dieser Mechanismus funktioniert eigentlich sehr gut, wenn man nur eine Karte einsetzt. Lediglich wenn eine neue Treiberversion auch einen neuen Anzeigenamen vergibt ist DVB.NET verloren – auch diese Situation habe ich schon erlebt. Hier hilft nur, im Geräteprofil die Auswahl des Gerätes zu erneuern.

Grundsätzlich empfehle ich, nach einer Aktualisierung der Gerätetreiber im Adminwerkzeug vorbeizuschauen und die Filter einmal neu auszuwählen – erst verwerfen und dann neu aus der Liste auswählen. Aber wie gesagt: eine vollständige Änderung ist selten und so oft gibt es ja auch keine neuen Treiberversionen.

So, das waren die Grundlagen. Jetzt geht es in den nächsten Kapiteln an die besonderen Spielchen der Hersteller – ich versuche, mich dabei immer auf ein Thema zu beschränken, also lieber einen Artikel mehr als zu viel Text in einem.

Jochen