Beispiel für InfTee-Filter
Beschreibung
Der InfTee-Filter stellt eine Beispielimplementierungen des DirectShow Infinite Pin Tee-Filters bereit. Der Filter verfügt über einen Eingabepin und eine dynamische Anzahl von Ausgabepins. Alle Medienbeispiele, die an den Filter gesendet werden, werden gleichzeitig von allen Ausgabepins übermittelt.
Dieser Filter wird in GraphEdit unter dem Namen "Sample Infinite Pin Tee" angezeigt, um ihn vom standardmäßigen Filter Infinite Pin Tee zu unterscheiden, der in DirectShow bereitgestellt wird.
Verbrauch
Da dieser Filter die empfangenen Daten nicht ändert, müssen alle Pins demselben Medientyp zustimmen. Während des Verbindungsvorgangs kann der Filter einige Pins erneut verbinden, damit die Medientypen übereinstimmen.
Daten, die am Eingabepin eintreffen, werden nicht kopiert, bevor sie an die Ausgabepins gesendet werden. Der Filter stellt außerdem sicher, dass die Daten an die Downstreamfilter übermittelt werden, um sicherzustellen, dass beide Ausgaben einen rechtzeitigen Dienst empfangen. Insbesondere wenn eine der Ausgaben in der COutputQueue::Receive-Memberfunktion blockiert werden kann, startet der Tee einen Thread, um das Beispiel zu übermitteln. Wenn kein Thread zum Übermitteln des Beispiels vorhanden ist, übergibt der Thread, der das Beispiel an den Tee-Eingabepin übermittelt, die Daten möglicherweise an einen Downstreamfilter. An diesem Punkt kann sie blockiert werden, sodass Daten aus dem anderen Downstreamfilter über längere Zeiträume hinweg erhalten bleiben.
Herunterladen des Beispiels
Um die DirectShow SDK-Beispiele herunterzuladen, installieren Sie die neueste Version des Windows SDK.
Dieses Beispiel wird unter folgendem Pfad installiert: [ ] SDK-Stammbeispiele \ Multimedia \ \ DirectShow Filters \ \ InfTee.