Método IMemInputPin::Receive (strmif.h)

O Receive método recebe o próximo exemplo de mídia no fluxo.

Sintaxe

HRESULT Receive(
  [in] IMediaSample *pSample
);

Parâmetros

[in] pSample

Ponteiro para a interface IMediaSample do exemplo.

Retornar valor

Retorna um valor HRESULT . Os valores possíveis incluem os mostrados na tabela a seguir.

Código de retorno Descrição
S_OK
Êxito.
S_FALSE
O exemplo foi rejeitado.
E_POINTER
Argumento de ponteiro NULL.
VFW_E_INVALIDMEDIATYPE
Tipo de mídia inválido.
VFW_E_RUNTIME_ERROR
Ocorreu um erro em tempo de execução.
VFW_E_WRONG_STATE
O pino está parado.

Comentários

Esse método é síncrono e possivelmente está bloqueando. O pino faz um dos seguintes procedimentos:

  • Rejeita o exemplo.
  • Retorna imediatamente e processa o exemplo em um thread de trabalho.
  • Processa o exemplo antes de retornar.
No último caso, o método pode bloquear indefinidamente. Se isso acontecer, o método IMemInputPin::ReceiveCanBlock retornará S_OK.

Se o pino usar um thread de trabalho para processar o exemplo, ele manterá uma contagem de referência no exemplo. De qualquer forma, o pino de saída não pode reutilização direta desse exemplo. Ele deve chamar o método IMemAllocator::GetBuffer para obter um novo exemplo.

Se esse método retornar S_FALSE ou um código de erro, o filtro upstream deverá parar de enviar amostras até que o grafo pare ou conclua uma operação de liberação. Os motivos típicos para um valor retornado S_FALSE incluem:

  • O pino downstream está liberando; ou seja, ele recebeu uma chamada BeginFlush e ainda não recebeu uma chamada endFlush .
  • O filtro downstream detectou o fim do fluxo. (Consulte Notificações de Fim de Fluxo.)

Requisitos

   
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho strmif.h (inclua Dshow.h)
Biblioteca Strmiids.lib

Confira também

Códigos de erro e êxito

IMemInputPin Interface