Método IMFMediaStream::RequestSample (mfidl.h)
Solicita um exemplo da fonte de mídia.
Sintaxe
HRESULT RequestSample(
[in] IUnknown *pToken
);
Parâmetros
[in] pToken
Ponteiro para a interface IUnknown para um objeto que é usado como um token para a solicitação. O chamador deve implementar esse objeto. Este parâmetro pode ser NULL. Consulte Observações.
Valor retornado
O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.
Código de retorno | Descrição |
---|---|
|
O método foi bem-sucedido. |
|
O final do fluxo foi atingido. |
|
A fonte de mídia é interrompida. |
|
O método Shutdown da origem foi chamado. |
Comentários
Se pToken não for NULL, o fluxo de mídia chamará AddRef no pToken e colocará o token em uma fila inicial e inicial.
Quando o próximo exemplo estiver disponível, o fluxo de fluxo de mídia fará o seguinte:
- Extrai o primeiro token da fila.
- Define o atributo MFSampleExtension_Token no exemplo de mídia. Os dados do atributo são um ponteiro para o objeto de token.
- Envia um evento MEMediaSample . Os dados do evento são um ponteiro para a interface IMFSample do exemplo de mídia.
- Chama a Versão no token.
O chamador deve monitorar a contagem de referência no token de solicitação. Se o fluxo de mídia enviar um evento MEMediaSample , obtenha o atributo MFSampleExtension_Token do exemplo e corresponda ao valor do atributo com o token. Se a contagem de referência do token cair para zero e você não recebeu um evento MEMediaSample, isso significa que a solicitação foi descartada.
Como o pipeline do Media Foundation é multithreaded, o método RequestSample da origem pode ser chamado depois que a origem for interrompida. Se a origem da mídia for interrompida, o método deverá retornar MF_E_MEDIA_SOURCE_WRONGSTATE. O pipeline não trata esse código de retorno como uma condição de erro. Se a origem retornar qualquer outro código de erro, o pipeline o tratará como um erro fatal e interromperá a sessão.
Se a fonte de mídia for pausada, o método será bem-sucedido, mas o fluxo não fornecerá o exemplo até que a origem seja iniciada novamente.
Se uma fonte de mídia encontrar um erro de forma assíncrona durante o processamento de dados, ela deverá sinalizar o erro de uma das seguintes maneiras (mas não ambas):
- Retornar um código de erro da próxima chamada RequestSample .
- Enviar um evento MEError .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | mfidl.h |
Biblioteca | Mfuuid.lib |