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 |
---|---|
|
Erfolg. |
|
Unerwarteter Fehler. |
|
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:
- CDynamicOutputPin::ChangeOutputFormat
- CDynamicOutputPin::ChangeMediaType
- CDynamicOutputPin::D ynamicReconnect
- CBaseOutputPin::D eliver
- CBaseOutputPin::D eliverEndOfStream
- CBaseOutputPin::D eliverNewSegment
- IMemInputPin::Receive
- IMemInputPin::ReceiveMultiple
- IPin::EndOfStream
- IPin::NewSegment
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 |
|
Bibliothek |
|