Condividi tramite


Metodo CBaseOutputPin.DecideAllocator

[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.

Il DecideAllocator metodo seleziona un allocatore di memoria.

Sintassi

virtual HRESULT DecideAllocator(
   IMemInputPin  *pPin,
   IMemAllocator **pAlloc
);

Parametri

pPin

Puntatore all'interfaccia IMemInputPin del pin di input.

pAlloc

Indirizzo di una variabile che riceve un puntatore all'interfaccia IMemAllocator dell'allocatore.

Valore restituito

Restituisce S_OK se ha esito positivo o un valore HRESULT che indica la causa dell'errore.

Commenti

Questo metodo viene chiamato alla fine del processo di connessione pin. Esegue i passaggi seguenti:

  1. Chiama il metodo IMemInputPin::GetAllocatorRequirements per recuperare i requisiti del buffer del pin di input, se presente.
  2. Chiama il metodo IMemInputPin::GetAllocator per richiedere un allocatore dal pin di input. Se il pin di input non fornisce un allocatore, il pin di output ne crea uno chiamando il metodo di classe CBaseOutputPin::InitAllocator .
  3. Chiama il metodo di classe CBaseOutputPin::D ecideBufferSize , che imposta le proprietà dell'allocatore. Si tratta di un metodo virtuale puro; la classe derivata deve implementarla.
  4. Chiama il metodo IMemInputPin::NotifyAllocator , che notifica il pin di input dell'allocatore usato.

Requisiti

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

Vedi anche

Classe CBaseOutputPin