Der DVBViewer GE bietet einige Möglichkeiten, die für die Bild- und Tonwiedergabe benutzten DirectShow-Filter auszuwählen. Doch manchmal reicht das nicht aus. Wenn es darum geht, unerwünschte Komponenten aus dem Verkehr zu ziehen, aus dem Internet heruntergeladene Filter im System anzumelden oder sie auf bestimmte Weise zu konfigurieren, muss man auf Systemebene tätig werden. Dazu braucht man das richtige Werkzeug. Und Kenntnisse über die internen Zusammenhänge. Dieses Kapitel vermittelt die Grundlagen.
DirectShow | Filter-Typen | Videodecoder-Konfiguration | RadLight Filter Manager | GraphEdit/GraphStudio
DirectShow-Filter sind Software-Module. Die dazugehörigen Dateien tragen die Endung .ax, manchmal auch .dll. Wenn diese Dateien im System angemeldet (registriert) sind, können sie von allen Programmen benutzt werden. Sie haben meist einen oder mehrere Eingänge („Input Pins“). Dort werden Daten hinein geschoben. Nach der internen Verarbeitung kommen sie auf der anderen Seite an den Output-Pins wieder heraus und gelangen zum Input-Pin des nächsten Filters. Und so weiter, bis die Daten schließlich gut zubereitet der Grafikkarte, der Soundkarte oder auch einer Datei zugeführt werden.
Jeder Filter akzeptiert an seinen Input-Pins bestimmte Datentypen, für die er zuständig ist. Also zum Beispiel komprimiertes MPEG-Video. Über den Output-Pin gibt er bekannt, was er anzubieten hat, zum Beispiel entkomprimierte Video-Rohdaten. DirectShow sieht vor, dass die Filter untereinander ein Übergabeformat aushandeln. Ein Filter-Programmierer muss die dafür notwendigen Mechanismen bereitstellen. Wenn es zwischen zwei Filtern keine Einigung gibt, verbinden sie sich nicht – Output- und Input-Pin lassen sich nicht zusammenstöpseln.
Im Grunde macht es DirectShow den Media-Playern sehr einfach. Sie brauchen nur die Datenquelle, also zum Beispiel eine Datei vorgeben, und dann den DirectShow-GraphBuilder anweisen, die für die Verarbeitung und Wiedergabe erforderlichen Filter automatisch zu suchen und zu verbinden. Das Gebilde, das dabei entsteht, heißt „Filtergraph“.
Wie geht der DirectShow-GraphBuilder dabei vor? Er kennt den Ausgangs-Datentyp, und was am Ende dabei herauskommen soll. Und hat einen Haufen Informationen in der Windows-Registry. Da stehen alle Filter drin, mitsamt den Datentypen der Input- und Output-Pins. Also probiert er quasi als Rooter solange herum, bis er es geschafft hat, über mehrere Stationen den Anfang mit dem Ende zu verbinden. Bei einer MPG-Datei sieht das Ergebnis etwa so aus:
Was aber macht der GraphBuilder, wenn er mehrere Filter mit gleicher Eignung findet? Dann schaut er sich den Merit („Verdienst“) an. Jedem Filter ist ein solcher Zahlenwert zugeordnet. Und der mit dem höchsten Merit-Wert wird genommen. Dabei gibt es nur ein Problem: Den Standard-Merit-Wert legt der Filter-Programmierer fest. Wenn er von seinem Produkt überzeugt ist, natürlich einen hohen. Obwohl Microsoft dafür bestimmte Regeln vorgibt, kommt es auf dem Gebiet zu einigen Übertreibungen, wie man sich denken kann. Glücklicherweise kann man den Merit-Wert mit dem RadLight Filter Manager ändern.
Außerdem sind Programme nicht vollständig auf den GraphBuilder angewiesen. Sie können auch selbst ein FilterGraph-Objekt erzeugen, bestimmte Filter vorab einfügen, und dem GraphBuilder die restliche Arbeit überlassen. Er ist dann verpflichtet, die schon vorhandenen Komponenten zu bevorzugen, unabhängig vom Merit. Genau so macht es der DVBViewer. Die in den Optionen eingestellten Decoder werden also eingebaut, sofern sie sich verbinden (falls nicht, sucht der GraphBuilder automatisch eine Alternative). Wenn Sie dagegen in der Auswahlliste <System Default> einstellen, darf der GraphBuilder machen was er will. Und damit kommen meistens die Decoder mit dem höchsten Merit zum Zuge.
Inhalt | an den Anfang | vorheriges Kapitel | nächstes Kapitel
Was gibt es nun für Filter? Eine ganze Menge verschiedene. Wir beschränken uns auf die Typen, die für den DVBViewer von Bedeutung sind:
Sourcefilter (Quellfilter): Steht immer ganz am Anfang und besitzt logischerweise nur Output-Pins. Er hat die Aufgabe, die Daten in den Filtergraph einzuspeisen. Beim Fernseh- und Radioempfang mit dem DVBViewer übernimmt der DVBViewer-Filter diese Rolle. Für bestimmte Dateitypen wie MPG und TS kann er auch als Datei-Quellfilter arbeiten. Wenn Sie ihm unter „Einstellungen/ Optionen/ DirectShow/ DVBViewer Filter benutzen für“ diese Aufgabe entziehen, kommt wie im obigen Bild ein anderer im System installierter Sourcefilter zum Einsatz – um welchen es sich dann handelt, entscheidet das DirectShow-System anhand der Informationen, die in der Windows-Registry vorliegen.
Demultiplexer (Splitter): Ein sehr wichtiger Filter, der weiß, wie die Daten in bestimmten Stream- oder Dateiformaten angeordnet sind. Oft sind Video- und Audiodaten in einem so genannten Container-Format wie MPG, TS, AVI oder MKV verpackt. Erst in ausgepackter Form werden sie für Decoder genießbar. Außerdem müssen in einem Stream ineinander geschachteltes („gemultiplextes“) Video und Audio auseinander dividiert und an den jeweils zuständigen Decoder weitergereicht werden, mitsamt Zeitinformationen, die dafür sorgen, dass Bild und Ton synchron bleiben (PTS, Presentation Time Stamps, Zeitstempel). All dies erledigt der Demultiplexer- bzw. Splitter-Filter.
Mitunter sind Sourcefilter und Demultiplexer in einer Komponente zusammengefasst. So auch beim DVBViewer Filter („DVB Source“). Wenn Sie ihn für Dateiwiedergabe einsetzen, brauchen Sie keinen zusätzlichen Demultiplexer-Filter. Er ist bereits im DVBViewer Filter enthalten und optimal auf die Anforderungen des DVBViewers zugeschnitten. Nur bei unerwarteten Problemen – insbesondere bei Dateien, die nicht mit dem DVBViewer erzeugt wurden – empfiehlt sich ein Versuch mit anderen Komponenten.
Die Bedeutung des Demultiplexers wird oft unterschätzt. Wenn die Wiedergabe einer Video- oder Audiodatei nicht funktioniert, mangelt es vielleicht gar nicht an geeigneten Decodern, sondern an einem Splitter-Filter, der dieses Dateiformat versteht. So zum Beispiel, wenn sich TS-Dateien zwar im DVBViewer, aber nicht im Windows Mediaplayer abspielen lassen. Er sucht vergeblich nach einem geeigneten Demultiplexer im System, denn der DVBViewer Filter ist aufgrund seiner Spezialisierung auf Belange des DVBViewers nicht allgemein verwendbar. In Frage kämen in diesem Fall der Elecard Demultiplexer, sofern vorhanden, oder der freie Haali Media Splitter (ebenfalls ein kombinierter Sourcefilter/Demultiplexer) – beide können neben TS noch weitere Formate handhaben.
Decoder: Sie entpacken die komprimierten Audio- und Videodaten. Der Videodecoder hat ohne Zweifel den härtesten Job im Filtergraphen. Die MPEG2-Komprimierung ist ziemlich kompliziert (ganz zu schweigen vom noch komplizierteren H.264), und die Umwandlung von 25 Bildern pro Sekunde deshalb ziemlich aufwändig. Dazu kommt auch noch das Deinterlacing, damit die für einen Fernseher gedachten Bilder auf dem Computermonitor gut aussehen.
Wenn möglich, übertragen deshalb manche Decoder der Grafikkarten-Hardware besonders rechenaufwändige Teile der Dekodierung, um die Prozessorlast zu senken. Dabei hängt viel von der reibungslosen Zusammenarbeit zwischen Decoder und Grafikkarten-Treiber ab, die nicht immer so gut funktioniert, wie man es sich wünscht. Das gilt insbesondere für das bei HDTV bevorzugte H.264-Videoformat, das die Hardware-Beschleunigung besonders nötig braucht – hier sind jedoch noch nicht alle Kinderkrankheiten überwunden. Deshalb lässt sich auf den Eigenschaftsseiten der Decoder meist konfigurieren, ob Hardware-Hilfe in Anspruch genommen werden soll oder nicht.
Renderer: Bilden den Abschluss der Kette und haben deshalb nur Input-Pins. Sie reichen die von den Decodern gelieferten Daten an die Treiber der Grafik- und Soundkarte weiter. Der Video-Renderer hat dabei nicht so viel zu rechnen, aber viel zu transportieren. Sie glauben, dass eine 3 GB große MPG-Videodatei viel Holz ist? Ein Pappenstiel im Vergleich zur Menge der unkomprimierten Videodaten. Eine kurze Rechnung: 720 x 576 Bildpunkte à 3 Byte (bei 24 Bit Farbtiefe). Davon 25 Stück macht runde 30 MB pro Sekunde. Eine CD wäre in 23 Sekunden gefüllt. Außerdem muss ein Video-Renderer das Bild auf die darzustellende Größe und das richtige Seitenverhältnis strecken bzw. stauchen. Und eventuell noch als „Mixer“ arbeiten, weil die Anwendung die Einblendung eines OSD (On Screen Display) in das Video wünscht.
Das waren bereits die wichtigsten Filter. Es gibt noch weitere, die der DVBViewer optional verwendet. Dazu gehören insbesondere Postprozessor-Filter. Sie werden zwischen Decoder und Renderer geklemmt und haben die Aufgabe, die dekodierten Daten auf spezielle Weise zu nutzen oder nachzubearbeiten, bevor sie zur Wiedergabe gelangen. Ein Audio-Postprozessor, der im Filtergraph unter dem Namen „Audio Callback“ auftaucht, ist im DVBViewer fest eingebaut. Da er in keiner separaten Datei wohnt und nicht registriert wird, ist er nicht allgemein nutzbar. Er kann bei Bedarf den rechten Stereo-Kanal auf den linken kopieren (oder umgekehrt) und damit einen von beiden ausblenden. Diese Funktion finden Sie im DVBViewer-Menü als „Einstellungen/ Audio-Kanal“. Der DVBViewer Pro realisiert auf diesem Weg noch einen Equalizer und verwandelt Töne in Visualisierungen.
Der DirectShow GraphBuilder bindet normalerweise weitere im System vorhandene Video- und Audio-Postprozessoren automatisch ein. Aber die Wirkung solcher Komponenten kann ebenso gut von Vorteil wie unerwünscht sein. Probleme sind deshalb vorprogrammiert, wenn man blindlings Codec-Packs aus dem Internet installiert, ohne genau zu wissen, was sie mit sich bringen. Video-Postprozessoren verhindern zum Beispiel prinzipbedingt hardware-beschleunigtes Dekodieren. Deshalb lässt der DVBViewer im Gegensatz zu anderen Mediaplayern die unkontrollierte Einbindung nicht zu. Wer trotzdem gezielt bestimmte Postprozessor-Filter nutzen möchte, kann dies mit dem Postprocessor Plugin tun.
Wie erzeugt der DVBViewer nun den Filtergraph für die Wiedergabe? Vereinfacht beschrieben führt er folgende Schritte aus:
Wenn es sich um TV/Radio oder ein Dateiformat handelt, für das der DVBViewer Filter zuständig (und nicht in den Optionen abgewählt) ist, fügt der DVBViewer diesen als Sourcefilter/Demultiplexer in den Filtergraphen ein. Andernfalls wird das DirectShow-System beauftragt, einen passenden Sourcefilter/Demultiplexer für die Datei zu finden.
Wenn es sich um ein Video- und ein Audioformat handelt, für das der Anwender in den Optionen bestimmte Decoder eingestellt hat (also nicht System Default), fügt der DVBViewer diese in den Filtergraph ein.
Die vom Anwender eingestellten Renderer werden in den Filtergraph eingefügt. Dies verhindert, das im nächsten Schritt unerwünschte Postprozessor-Filter hinzukommen.
Der DVBViewer „rendert“ den Video- und Audio-Output-Pin des Demultiplexers. Das heißt, er beauftragt den DirectShow GraphBuilder, ausgehend vom Output Pin eine vollständige Kette verbundener Wiedergabe-Komponenten zu erzeugen. Die zuvor eingefügten noch unverbundenen Filter kommen dabei bevorzugt zum Einsatz. Falls ein bestimmter Baustein (z.B. ein Decoder) nicht passt oder fehlt, durchforscht der GraphBuilder die Windows-Registrierung, um eine geeignete Komponente zu finden.
Als letztes trennt der der DVBViewer die Verbindung zwischen Audio-Decoder und Audio-Renderer noch einmal auf, um an der Stelle den Audio Callback-Filter einzufügen und zu verbinden. Danach informiert er alle Plugins darüber, dass ein neuer Filtergraph gebaut wurde, und gibt ihnen damit Gelegenheit, vor dem Wiedergabestart einzugreifen.
Inhalt | an den Anfang | vorheriges Kapitel | nächstes Kapitel
Bei Videodecodern sind insbesondere zwei Konfigurationsmöglichkeiten von Interesse:
Hardware-Beschleunigung: Verringert die erforderliche Prozessorleistung beträchtlich. Insbesondere bei der Wiedergabe von HDTV (High Definition TV) kann dies darüber entscheiden, ob die Wiedergabe einwandfrei ist oder stark ruckelt.
Unbedingte Voraussetzung ist allerdings, dass die Grafikkarte entsprechende Möglichkeiten bietet. Das ist nicht bei allen der Fall. Im Zweifel lassen Sie es einfach auf einen Versuch ankommen.
Deinterlacing: Beseitigt mehr oder weniger die Störungen, die sich durch die Wiedergabe von eigentlich für einen Fernseher gedachten Bildern auf einem Computer-Monitor ergeben.
Fernsehbilder werden in Form von verzahnten Halbbildern übertragen („interlaced“). Zuerst die Zeilen mit ungeradzahliger Nummer. Nachfolgenden die geradzahligen Zeilen, usw. Dieser Trick ermöglicht auf einem Fernseher, der für diese Übertragungsart konstruiert ist, eine einigermaßen flimmerfreie Wiedergabe, trotz der relativ geringen Anzahl von nur 25 vollständigen Bildern pro Sekunde. Ein Computermonitor kann jedoch nur Vollbilder darstellen. Es werden also zwei Halbbilder, die eigentlich kurz nacheinander kommen sollten, zu einem Vollbild zusammengesetzt, und erscheinen dann gleichzeitig, was sich bei Bewegungen auswirkt.
Es ist Aufgabe des Videodecoders, durch ein geeignetes Deinterlacing-Verfahren diese Effekte zu beseitigen oder zumindest zu mildern. Dafür gibt es verschiedene Methoden, und deshalb auch meist mehrere Einstellmöglichkeiten. Die wichtigsten sind:
Bob: Bringt gute Ergebnisse bei Laufschrift (z.B. n-tv) und beseitigt Kammeffekte zuverlässig, erzeugt aber ein leichtes vertikales Zittern des Bildes, das insbesondere bei dünnen horizontalen Linien auffällt.
Weave: Bringt gute Ergebnisse bei Filmmaterial (also gesendeten Kinofilmen), nicht aber bei Videomaterial. Hier kommt es bei Bewegungen zu Kammeffekten.
Außerdem gibt es Kombinationen dieser beiden Verfahren. Am besten, man probiert sie aus, um sich einen Eindruck von den Auswirkungen zu verschaffen.
Rufen Sie im DVBViewer über „Einstellungen/ Filter“ die Eigenschaftsseite des Videodecoders auf und überprüfen Sie, ob es Einstellmöglichkeiten für die Hardware-Beschleunigung und das Deinterlacing gibt. Es gibt auch Videodecoder, die für die Einstellungen einen Eintrag in der Systemsteuerung anlegen (Sonic). Falls dies nicht zum Ziel führt, probieren Sie einen anderen Videodecoder.
Inhalt | an den Anfang | vorheriges Kapitel | nächstes Kapitel
Wer bei DirectShow-Angelegenheiten ein Wörtchen mitreden will, braucht den RadLight Filter Manager, der auch bei Reparaturmaßnahmen unverzichtbar ist (Download).
Der RadLight Filter Manager ist ein sehr
wirkungsvolles Werkzeug. Bei unsachgemäßer Handhabung kann
man damit die Multimedia-Fähigkeiten eines PC nachhaltig
beeinträchtigen. Von planlosem Experimentieren ist deshalb
dringend abzuraten!
Wenn Sie die vorherigen und diesen Abschnitte sorgfältig gelesen haben, und darauf achten, dass die Log-Funktion des Filtermanagers immer eingeschaltet ist, sollten Sie jedoch auf der sicheren Seite sein. Auf der Log-Registerkarte werden alle Vorgänge protokolliert, so dass Sie sie notfalls wieder rückgängig machen können.
Der Filter Manager zeigt nach dem Start alle vorhandenen Filter in einer Baumansicht. Für den DVBViewer sind besonders die in der Abteilung „DirectShow“ vorhandenen Einträge von Interesse. Schauen Sie sich dort einmal um. Sie werden staunen, wie viele Filter in Ihrem System vorhanden sind.
Was kann man nun mit dem Filter Manager konkret machen? Hier ein Überblick:
Register: Öffnet ein Datei-Dialogfenster, in dem Sie eine Datei auswählen, die im System registriert werden soll. Diese Dateien tragen die Endung .ax, manchmal auch .dll. Nach einem Klick auf „Öffnen“ erhalten Sie eine Meldung über die erfolgreiche Registrierung.
Meistens werden Filter durch die Software, die sie mitbringt, oder durch einen Installer automatisch im System registriert. Manchmal erhalten Sie jedoch nur die reinen ax-Dateien. Registrieren Sie sie wie beschrieben, damit sie im DVBViewer verwendet werden können.
Unregister: Meldet einen Filter durch Entfernen seiner Einträge aus der Windows-Registry im System ab. Selektieren Sie das Objekt in der Baumansicht, und klicken Sie auf „Unregister“. Schon ist es geschehen – kein Programm wird ihn danach mehr benutzen.
Auf diese Weise können Sie Störenfriede (zum Beispiel aus einem Codec-Pack) aus dem Verkehr ziehen. Die dazugehörige Datei wird nicht gelöscht, so dass sich der Vorgang mit „Register“ rückgängig machen lässt. Dazu müssen Sie allerdings wissen, wie die Datei heißt und wo sie sich befindet. Dies erfahren Sie auf der Log-Registerkarte.
Das Registrieren und Deregistrieren von
DirectShow-Komponenten sowie das Ändern von Merit-Werten (siehe
unten) erfordert unter Windows 2000/XP/Vista Administratorrechte!
Insbesondere unter Vista kann es erforderlich sein, den Filtermanager
explizit mit Administrator-Rechten zu starten (Rechtsklick...),
selbst wenn man sich in einem Administrator-Konto befindet.
Manchmal ist das Neu-Registrieren eines
Filters eine geeignete Reparaturmaßnahme, wenn man den Verdacht
hat, dass die Einträge in der Windows-Registry beschädigt
sind. Besonders wichtige Dateien, die auf jeden Fall sauber im System
registriert sein müssen, befinden sich im Ordner
Windows\System32. Das sind qdvd.dll (Overlay Mixer), mpg2splt.ax
(Microsoft Demultiplexer) und vor allem quartz.dll - eine zentrale
DirectShow-Datei, die gleich mehrere unverzichtbare Filter wie
Video-Renderer enthält.
Property Page: Lässt, sofern vorhanden, die Eigenschaftsseite des in der Baumansicht selektierten Filters erscheinen. Hier bieten sich eventuell interessante Konfigurationsmöglichkeiten.
Copy CLSID: Etwas für Programmierer. Jeder Filter hat eine unverwechselbare Kennung, die aus Buchstaben und Ziffern besteht. Wenn man in einem Programm einen bestimmten Filter benutzen will, muss man diese CLSID angeben. Der Befehl befördert die CLSID des selektierten Filters in die Windows-Ablage.
Navigate: Öffnet ein Explorer-Fenster. Es zeigt den Inhalt des Ordners an, in dem sich der selektierte Filter befindet.
Set Merit Value: Verpasst dem in der Baumansicht selektierten Filter einen neuen Merit-Wert und verändert damit die Priorität, mit der er vom DirectShow-GraphBuilder eingesetzt wird. In der Liste unten links können Sie verschiedene Standard-Meritwerte auswählen – sie reichen von MERIT_DO_NOT USE (wenn möglich, gar nicht benutzen) bis MERIT_PREFERRED + 255 (bevorzugt benutzen plus Zuschlag). Das Feld daneben erlaubt die Eingabe beliebiger (hexadezimaler) Werte. Sie sollten jedoch nach Möglichkeit nur die Standardwerte aus der Liste benutzen.
Die Änderung des Merit-Wertes ist von Nutzen, wenn man es zum Beispiel mit Decodern zu tun hat, die sich notorisch vordrängeln. Man bestraft sie mit MERIT_UNLIKELY (Benutzung unwahrscheinlich), und dann ist Ruhe.
Ein neuer Merit-Wert wird erst wirksam,
wenn Sie sich aus dem aktuellen Benutzerkonto ab- und wieder
anmelden, oder den PC neu starten. Wenn Sie es rückgängig
machen wollen, verrät die Log-Registerkarte den vorherigen Wert.
Save DirectShow List: Speichert den Inhalt der Abteilung DirectShow mit allen Details als Textdatei und fertigt damit quasi einen Schnappschuss der momentanen DirectShow-Situation an, so dass man später vergleichen kann, was sich geändert hat.
Weitere Befehle bietet das Kontext-Menü, das nach einem Rechtsklick in den Filtermanager erscheint.
Inhalt | an den Anfang | vorheriges Kapitel | nächstes Kapitel
Nun ein besonders interessantes Spielzeug: Gleichzeitig eine Art Mediaplayer und ein grafisches User-Interface für den DirectShow-GraphBuilder. Damit können Sie hinsichtlich DirectShow (fast) alles machen, was Programmierer mit ihrem Code veranstalten.
GraphEdit stammt von Microsoft. Das Programm – ein Bestandteil des DirectX-SDK - ist ursprünglich für Programmierer vorgesehen, die vor dem Code-Eintippen auf bequeme Weise ausprobieren wollen, wie die eingeplanten Filter zusammenarbeiten. Glücklicherweise kann man sich den Download des ganzen SDK-Pakets sparen, da GraphEdit auch einzeln im Web aufzutreiben ist. Einen Download-Link finden Sie im DVBViewer-Forum in der Linkliste. Inzwischen existiert mit GraphStudio eine empfehlenswerte freie Alternative, die ähnlich wie GraphEdit funktioniert, aber besser handhabbar ist und zusätzliche Funktionen aufweist.
GraphEdit stellt also den Filtergraphen anschaulich dar. Jetzt wissen Sie auch, woher die Filtergraph-Diagramme in dieser Anleitung stammen. Und es ist, wie Sie gleich sehen werden, sehr einfach, so ein Bild zu erzeugen. Probieren Sie die folgenden Funktionen:
File/ Render Media File: Es erscheint ein Datei-Auswahlfenster. Dort wählen Sie eine mit dem DVBViewer aufgenommene MPG-Datei (oder auch eine andere Media-Datei). Und schon produziert der GraphBuilder den Filtergraphen dazu. Klicken Sie auf den Play-Button, es öffnet sich ein Video-Fenster, und die Datei wird abgespielt.
Damit wissen Sie, was der GraphBuilder standardmäßig für MPG-Videos verwendet. Stoppen Sie nun das Video und wählen Sie File/ New. Dann geht es weiter:
Graph/ Insert Filters: Es erscheint eine Liste, die ähnlich wie der RadLight Filter Manager alle im System verfügbaren Filter auflistet. Selektieren Sie in der DirectShow-Abteilung einen MPEG2-Videodecoder nach Ihrem Geschmack. Klicken Sie auf „Insert Filter“ - der Decoder wird in den Filtergraphen eingefügt. Zunächst ist er dort ganz allein. Nun wiederholen Sie den Trick mit Render Media File. Der Filtergraph wird wieder automatisch aufgebaut, aber mit dem gewählten Decoder.
Auf diese Weise können Sie natürlich auch andere Filter vorgeben – einen Audiodecoder, einen Video-Renderer, was immer sie wollen. Wenn irgendwie möglich, wird der GraphBuilder ihre Auswahl einbauen. Und es kommt noch besser. Was der GraphBuilder kann, können Sie auch. Sorgen Sie zunächst dafür, dass ein vollständiger Filtergraph vorhanden ist.
Sie können den DVBViewer Filter
(„DVB Source“) zwar in den Graphen einfügen und mit
anderen Filtern verbinden, aber in GraphEdit nicht in Betrieb nehmen.
Er braucht eine spezielle Ansteuerung, die in GraphEdit nicht zur
Verfügung steht.
Edit/ Disconnect All Pins: Dieser Befehl löst alle Verbindungen zwischen den Input- und Output-Pins. Nun verbinden Sie die vereinsamten Filter selbst: Klicken Sie auf einen Output-Pin, halten Sie die Maustaste gedrückt. Ziehen Sie den Mauszeiger zu dem dazugehörigen Input-Pin, und lassen Sie die Taste los. Schon sind die Filter wieder miteinander verbunden.
Auch einzelnes Löschen ist möglich, und zwar durch Anklicken eines Filters oder einer Verbindung und anschließendes „Edit/ Delete“. Auf diese Weise können Sie den Filtergraphen per Hand .beliebig ändern Falls Sie versuchen, zwei Pins zu verbinden, die nicht miteinander können, probiert der GraphBuilder zunächst, Zwischenfilter einzusetzen. Wenn auch das nicht funktioniert, gibt es eine Fehlermeldung.
Und das ist noch längst nicht alles. GraphEdit und GraphStudio erlauben es auch, dem DVBViewer über die Schulter zu schauen.
File/ Connect to Remote Graph: Starten Sie den DVBViewer und lassen Sie ihn einen Fernsehsender wiedergeben. Dann starten Sie GraphEdit und wählen File/ Connect to Remote Graph. Es erscheint ein Fenster mit einem rätselhaften Eintrag, den Sie selektieren und dann OK anklicken. Ergebnis: GraphEdit hat sich mit dem Filtergraphen des DVBViewers verbunden und zeigt ihn an. Bitte beachten: Diese Funktion erfordert ab Windows Vista, die Datei proppage.dll aus dem Windows SDK, die Windows leider standardmäßig nicht mitbringt. Eine Internet-Suche nach der Datei hilft womöglich weiter. Sie muss im System registriert werden, was Sie bequem mit dem RadLight Filter Manager durchführen können.
Der Einblick durch „Connect to
remote Graph“ kann für eine Diagnose bei
Wiedergabe-Problemen wichtig sein. So lassen sich beispielsweise
unerwünschte Eindringlinge im DVBViewer-Graphen ermitteln. Wenn
Sie im DVBViewer-Forum um Rat fragen, ist ein angehängter
Schnappschuss des DVBViewer-Graphen für Supporter
aufschlussreich. Mit „Graph/ Make Graph Snapshot“
macht GraphStudio dies besonders einfach. Der Befehl befördert
das komplette Bild in die Windows-Ablage, auch wenn es im Fenster
nicht vollständig zu sehen ist. Zusätzlich zeigt das
Programm mit „View/ Text Information“ alle Details
des Filtergraphen als Text an, wenn Sie in dem Fenster „Graph
Report (Level 5)“ wählen und auf „Refresh“
klicken. Bei Problemen kopieren Sie diesen für Entwickler sehr
informativen Text, posten ihn im DVBViewer Forum oder hängen ihn
als Textdatei an.
Sie können nach „Connect To
Remote Graph“ den Filtergraphen des DVBViewers in GraphEdit
bearbeiten (z.B. um bestimmte Filter auszutauschen oder zu
entfernen). Dazu müssen Sie den Graphen jedoch erst anhalten,
indem Sie in der Kontrollleiste des DVBViewers auf den Stop-Button
klicken, ansonsten drohen Abstürze. Nach vollendeter Operation
am lebenden Objekt setzen Sie die Wiedergabe fort, indem Sie in der
Kontrollleiste des DVBViewers (!) auf den Play-Button klicken.
Inhalt | an den Anfang | vorheriges Kapitel | nächstes Kapitel