Condividi tramite


Metodo CDynamicOutputPin.StartUsingOutputPin

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Il StartUsingOutputPin metodo ottiene l'accesso al pin per un'operazione di streaming.

Sintassi

virtual HRESULT StartUsingOutputPin();

Parametri

Questo metodo non presenta parametri.

Valore restituito

Restituisce un valore HRESULT . I valori possibili includono quelli illustrati nella tabella seguente.

Codice restituito Descrizione
S_OK
Operazione completata.
E_UNEXPECTED
Errore imprevisto.
VFW_E_STATE_CHANGED
Il filtro è stato arrestato o il pin ha iniziato lo scaricamento.

Commenti

Chiamare questo metodo prima di chiamare tutti i metodi che recapitano dati al pin di input connesso o che modificano il tipo di supporto della connessione. Ad esempio, questa regola si applica ai metodi seguenti:

Successivamente, chiamare il metodo CDynamicOutputPin::StopUsingOutputPin per rilasciare l'accesso al pin.

Se il pin è bloccato, StartUsingOutputPin attende che il pin diventi sbloccato. Se il filtro si arresta mentre il metodo è in attesa, il metodo restituisce immediatamente VFW_E_STATE_CHANGED. Il pin mantiene un conteggio del numero di chiamate StartUsingOutputPin senza una chiamata corrispondente a StopUsingOutputPin. Se un altro thread tenta di bloccare il pin mentre questo conteggio è diverso da zero, il pin imposta lo stato di blocco su "in sospeso". Il pin viene bloccato una volta completate tutte le operazioni di streaming, nella chiamata finale a StopUsingOutputPin.

Non contenere la sezione CDynamicOutputPin::m_BlockStateLock critical quando si chiama questo metodo. In caso contrario, se il pin è bloccato, non può mai diventare sbloccato, causando un deadlock.

Requisiti

Requisito Valore
Intestazione
Amfilter.h (include Streams.h)
Libreria
Strmbase.lib (build retail);
Strmbasd.lib (build di debug)

Vedi anche

Classe CDynamicOutputPin