Método CBaseRenderer.Receive
[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
O Receive
método recebe o próximo exemplo de mídia no fluxo.
Sintaxe
virtual Receive(
IMediaSample *pMediaSample
);
Parâmetros
-
pMediaSample
-
Ponteiro para a interface IMediaSample do exemplo.
Retornar valor
Retorna S_OK se tiver êxito ou um valor HRESULT que indica a causa do erro.
Comentários
O pin de entrada chama esse método quando recebe um exemplo do filtro upstream.
Se o filtro estiver em execução, esse método executará as seguintes etapas:
- Agenda o exemplo de renderização (CBaseRenderer::P repareReceive).
- Aguarda a hora agendada (CBaseRenderer::WaitForRenderTime).
- Renderiza o exemplo (CBaseRenderer::Render).
- Libera o exemplo (CBaseRenderer::ClearPendingSample).
Se o filtro estiver pausado, o método executará as seguintes etapas:
- Notifica a classe derivada de que um exemplo está disponível (CBaseRenderer::OnReceiveFirstSample).
- Aguarda a hora agendada.
- Renderiza o exemplo.
- Libera o exemplo.
Enquanto pausado, o método aguarda na etapa 2 até que o filtro mude para um estado em execução. Nesse ponto, o filtro agenda o exemplo.
Na classe base, o método OnReceiveFirstSample não faz nada. A classe derivada pode substituí-la. Por exemplo, quando um renderizador de vídeo é pausado, ele exibe o primeiro exemplo como uma imagem parada.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|