Condividi tramite


ReceiveConnection

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEnginee Acquisizione audio/video in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente di usare un nuovo codice MediaPlayer, IMFMediaEngine e Acquisizione audio/video 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.

Questo meccanismo consente a un pin di output di proporre una modifica del formato al peer downstream, quando il nuovo formato richiede un buffer più grande. Il pin di output esegue le operazioni seguenti:

  1. Chiama IPin::ReceiveConnection sul pin di input downstream.
  2. Se ReceiveConnection ha esito positivo, chiama IMemInputPin::NotifyAllocator sul pin di input.

Inoltre, il pin di output potrebbe dover chiamare IMemAllocator::SetProperties e quindi decommettere e ricommettere l'allocatore per modificare le dimensioni del buffer. Assicurarsi di recapitare tutti i campioni in sospeso nel formato precedente prima di modificare le dimensioni del buffer.

Alcuni decodificatori MPEG-2 usano questo meccanismo per passare dall'output MPEG-1 a MPEG-2 o se le dimensioni del video cambiano.