Freigeben über


CDynamicOutputPin.StartUsingOutputPin-Methode

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Die StartUsingOutputPin -Methode erhält Zugriff auf die Anheftung für einen Streamingvorgang.

Syntax

virtual HRESULT StartUsingOutputPin();

Parameter

Diese Methode hat keine Parameter.

Rückgabewert

Gibt einen HRESULT-Wert zurück. Mögliche Werte sind die in der folgenden Tabelle gezeigten Werte.

Rückgabecode BESCHREIBUNG
S_OK
Erfolg.
E_UNEXPECTED
Unerwarteter Fehler.
VFW_E_STATE_CHANGED
Der Filter wurde beendet, oder der Stift hat mit dem Leeren begonnen.

Bemerkungen

Rufen Sie diese Methode auf, bevor Sie Methoden aufrufen, die Daten an den verbundenen Eingabenadel übermitteln oder den Medientyp der Verbindung ändern. Diese Regel gilt beispielsweise für die folgenden Methoden:

Rufen Sie anschließend die CDynamicOutputPin::StopUsingOutputPin-Methode auf, um den Zugriff auf den Pin freizugeben.

Wenn der Pin blockiert ist, wartet, StartUsingOutputPin bis die Pin aufgehoben wird. Wenn der Filter beendet wird, während die Methode wartet, gibt die Methode sofort VFW_E_STATE_CHANGED zurück. Der Pin verwaltet die Anzahl der Aufrufe StartUsingOutputPin ohne einen entsprechenden Aufruf von StopUsingOutputPin. Wenn ein anderer Thread versucht, den Pin zu blockieren, während diese Anzahl ungleich 0 ist, legt der Pin seine blockierende status auf "ausstehend" fest. Der Pin wird blockiert, sobald alle Streamingvorgänge im letzten Aufruf von StopUsingOutputPin abgeschlossen sind.

Halten Sie den kritischen Abschnitt CDynamicOutputPin::m_BlockStateLock nicht gedrückt, wenn Sie diese Methode aufrufen. Andernfalls kann die Blockierung des Pins nie aufgehoben werden, was zu einem Deadlock führt.

Anforderungen

Anforderung Wert
Header
Amfilter.h (streams.h einschließen)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

CDynamicOutputPin-Klasse