Metodo CPullPin.Receive

[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 Receive metodo viene chiamato quando l'oggetto riceve un esempio multimediale dal pin di output. La classe derivata deve implementare questo metodo.

Sintassi

virtual HRESULT Receive(
   IMediaSample *pSample
) = 0;

Parametri

pSample

Puntatore all'interfaccia IMediaSample dell'esempio multimediale.

Valore restituito

Restituisce un valore HRESULT . La restituzione di un valore diverso da S_OK arresterà il thread di pull dei dati.

Commenti

Questo metodo viene chiamato ogni volta che arriva un nuovo esempio dal pin di output. Scrivere questo metodo nello stesso modo del metodo IMemInputPin::Receive .

I timestamp nell'esempio specificano gli offset di byte, rispetto alla posizione iniziale originale specificata nel metodo CPullPin::Seek .

La posizione iniziale viene arrotondata fino al limite di allineamento più vicino e la posizione di arresto viene arrotondata fino al limite di allineamento più vicino. Inoltre, se la posizione di arresto supera la durata totale, viene usata invece la durata.

Tutti i timestamp vengono assegnati come offset di byte moltiplicati per 10.000.000, definiti come unità costanti. Pertanto, un secondo è un byte. Per trovare gli offset di byte effettivi, chiamare IMediaSample::GetTime e dividere i risultati in base a UNITS.

Requisiti

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

Vedi anche

Classe CPullPin