Método IMFMediaSink::SetPresentationClock (mfidl.h)
Define o relógio de apresentação no coletor de mídia.
Sintaxe
HRESULT SetPresentationClock(
[in] IMFPresentationClock *pPresentationClock
);
Parâmetros
[in] pPresentationClock
Ponteiro para a interface IMFPresentationClock do relógio de apresentação ou NULL. Se o valor for NULL, o coletor de mídia deixará de ouvir o relógio de apresentação que foi definido anteriormente, se houver.
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 relógio de apresentação não tem uma fonte de tempo. Chame SetTimeSource no relógio da apresentação. |
|
O método Shutdown do coletor de mídia foi chamado. |
Comentários
Durante o streaming, o coletor de mídia tenta corresponder as taxas com o relógio da apresentação. O ideal é que o coletor de mídia apresente amostras no momento correto de acordo com o relógio da apresentação e não fique para trás. Coletores de mídia sem taxa são uma exceção a essa regra, pois consomem amostras o mais rápido possível e ignoram o relógio. Se o coletor for sem taxa, o método IMFMediaSink::GetCharacteristics retornará o sinalizador MEDIASINK_RATELESS.
O relógio de apresentação deve ter uma fonte de tempo. Antes de chamar esse método, chame IMFPresentationClock::SetTimeSource no relógio da apresentação para definir a origem da hora da apresentação. Alguns coletores de mídia fornecem fontes de tempo; portanto, o coletor de mídia pode ser a fonte de tempo para seu próprio relógio de apresentação. Independentemente de qual objeto fornece a fonte de tempo, no entanto, o coletor de mídia deve tentar corresponder as taxas com o relógio especificado em pPresentationClock. Se um coletor de mídia não puder corresponder as taxas com uma fonte de tempo externa, o método IMFMediaSink::GetCharacteristics do coletor de mídia recuperará o sinalizador MEDIASINK_CANNOT_MATCH_CLOCK. Nesse caso, SetPresentationClock ainda terá êxito, mas os resultados não serão ideais. O coletor pode não renderizar amostras rapidamente o suficiente para corresponder as taxas com o relógio de apresentação.
Se pPresentationClock não for NULL, o coletor de mídia deverá se registrar para notificações de estado do relógio, chamando IMFPresentationClock::AddClockStateSink no relógio da apresentação. Se o método for chamado novamente com um novo relógio de apresentação ou se pPresentationClock for NULL, o coletor de mídia deverá chamar IMFPresentationClock::RemoveClockStateSink para se desregistrar do relógio anterior.
Todos os coletores de mídia devem dar suporte a esse método.
Requisitos
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 |