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 |
|
Libreria |
|