Condividi tramite


Metodo CSourceStream.DoBufferProcessingLoop

[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 DoBufferProcessingLoop metodo genera dati multimediali e lo distribuisce al pin di input downstream.

Sintassi

virtual HRESULT DoBufferProcessingLoop();

Parametri

Questo metodo non presenta parametri.

Valore restituito

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

Codice restituito Descrizione
S_FALSE
Thread ha ricevuto una richiesta di arresto.
S_OK
Il filtro di flusso terminato o downstream non accetta esempi.

Commenti

Questo metodo implementa il ciclo principale che elabora i dati e lo fornisce downstream. Ogni volta che si attraversa il ciclo, il metodo recupera un campione multimediale vuoto dall'allocatore. Passa l'esempio al metodo CSourceStream::FillBuffer . Il metodo FillBuffer , che la classe derivata deve implementare, genera dati multimediali e lo inserisce nel buffer di esempio.

Il ciclo termina quando si verifica una delle operazioni seguenti:

  • Il metodo IMemInputPin::Receive rifiuta un esempio.
  • Il metodo FillBuffer restituisce S_FALSE, che indica la fine del flusso o restituisce un codice di errore.
  • Il thread riceve una richiesta CSourceStream::Stop .

Il DoBufferProcessingLoop metodo gestisce la notifica end-of-stream. Se si verifica un errore, invia un evento EC_ERRORABORT alla gestione dei grafici di filtro.

Requisiti

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

Vedi anche

Classe CSourceStream