Classe CBaseOutputPin
[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine 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, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
La CBaseOutputPin
classe è una classe base astratta che implementa un pin di output.
Questa classe deriva da CBasePin. È diverso da CBasePin nei seguenti aspetti:
- Si connette solo ai pin di input che supportano l'interfaccia IMemInputPin .
- Supporta il trasporto di memoria locale tramite l'interfaccia IMemAllocator .
- Rifiuta le notifiche end-of-stream, flush e new-segment. Questi non devono essere inviati a un pin di output.
- Fornisce metodi per la distribuzione di campioni downstream.
Quando il pin si connette, richiede un allocatore di memoria dal pin di input. In caso contrario, crea un nuovo oggetto allocatore. Il pin di output è responsabile dell'impostazione delle proprietà dell'allocatore. Questa operazione viene eseguita tramite il metodo virtuale puro CBaseOutputPin::D ecideBufferSize. Eseguire l'override di questo metodo nella classe derivata. Se il pin di input ha requisiti di buffer, vengono passati al metodo DecideBufferSize .
Chiamare il metodo CBaseOutputPin::GetDeliveryBuffer per ottenere un esempio multimediale vuoto. Chiamare il metodo CBaseOutputPin::D eliver per distribuire esempi downstream.
La classe derivata deve eseguire l'override del metodo CBasePin::CheckMediaType puro per convalidare il tipo di supporto durante le connessioni pin.
Variabili membro protette | Descrizione |
---|---|
m_pAllocator | Puntatore all'allocatore di memoria. |
m_pInputPin | Puntatore al pin di input connesso al pin. |
Metodi pubblici | Descrizione |
CBaseOutputPin | Metodo costruttore. |
CompleteConnect | Completa una connessione a un pin di input. Virtuale. |
DecideAllocator | Seleziona un allocatore di memoria. Virtuale. |
GetDeliveryBuffer | Recupera un esempio multimediale contenente un buffer vuoto. Virtuale. |
Distribuzione | Fornisce un esempio multimediale al pin di input connesso. Virtuale. |
InitAllocator | Crea un allocatore di memoria. Virtuale. |
CheckConnect | Determina se una connessione pin è adatta. |
BreakConnect | Rilascia il pin da una connessione. |
Attivo | Notifica al pin che il filtro è ora attivo. |
Inactive | Notifica al pin che il filtro non è più attivo. |
DeliverEndOfStream | Invia una notifica end-of-stream al pin di input connesso. Virtuale. |
DeliverBeginFlush | Richiede il pin di input connesso per avviare un'operazione di scaricamento. Virtuale. |
DeliverEndFlush | Richiede il pin di input connesso per terminare un'operazione di scaricamento. Virtuale. |
DeliverNewSegment | Invia una notifica di nuovo segmento al pin di input connesso. Virtuale. |
Metodi virtuali pure | Descrizione |
DecideBufferSize | Imposta i requisiti del buffer. |
Metodi IPin | Descrizione |
BeginFlush | Avvia un'operazione di scaricamento. |
EndFlush | Termina un'operazione di scaricamento. |
EndOfStream | Notifica al pin che non sono previsti dati aggiuntivi. |
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|