Método IMFMediaSink::SetPresentationClock (mfidl.h)
Establece el reloj de presentación en el receptor de medios.
Sintaxis
HRESULT SetPresentationClock(
[in] IMFPresentationClock *pPresentationClock
);
Parámetros
[in] pPresentationClock
Puntero a la interfaz IMFPresentationClock del reloj de presentación o NULL. Si el valor es NULL, el receptor de medios deja de escuchar el reloj de presentación que se estableció anteriormente, si existe.
Valor devuelto
El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.
Código devuelto | Descripción |
---|---|
|
El método se ha llevado a cabo de forma correcta. |
|
El reloj de presentación no tiene un origen de hora. Llame a SetTimeSource en el reloj de presentación. |
|
Se ha llamado al método Shutdown del receptor de medios. |
Comentarios
Durante el streaming, el receptor multimedia intenta hacer coincidir las tasas con el reloj de presentación. Idealmente, el receptor de medios presenta muestras en el momento correcto según el reloj de presentación y no se queda atrás. Los receptores de medios sin frecuencia son una excepción a esta regla, ya que consumen muestras lo más rápido posible e ignoran el reloj. Si el receptor no tiene velocidad, el método IMFMediaSink::GetCharacteristics devuelve la marca MEDIASINK_RATELESS.
El reloj de presentación debe tener un origen de hora. Antes de llamar a este método, llame a IMFPresentationClock::SetTimeSource en el reloj de presentación para establecer el origen de la hora de presentación. Algunos receptores de medios proporcionan orígenes de tiempo; por lo tanto, el receptor de medios podría ser el origen de la hora de su propio reloj de presentación. Sin embargo, independientemente del objeto que proporcione el origen de hora, el receptor de medios debe intentar coincidir las tasas con el reloj especificado en pPresentationClock. Si un receptor de medios no puede coincidir con las tasas con un origen de tiempo externo, el método IMFMediaSink::GetCharacteristics del receptor de medios recupera la marca MEDIASINK_CANNOT_MATCH_CLOCK. En este caso, SetPresentationClock seguirá siendo correcto, pero los resultados no serán óptimos. Es posible que el receptor no represente muestras lo suficientemente rápido como para hacer coincidir las tasas con el reloj de presentación.
Si pPresentationClock no es NULL, el receptor de medios debe registrarse para las notificaciones de estado del reloj, llamando a IMFPresentationClock::AddClockStateSink en el reloj de presentación. Si se llama de nuevo al método con un nuevo reloj de presentación o si pPresentationClock es NULL, el receptor multimedia debe llamar a IMFPresentationClock::RemoveClockStateSink para anular el registro del reloj anterior.
Todos los receptores multimedia deben admitir este método.
Requisitos
Cliente mínimo compatible | Windows Vista [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | mfidl.h |
Library | Mfuuid.lib |