Méthode IMFMediaSink::SetPresentationClock (mfidl.h)

Définit l’horloge de présentation sur le récepteur multimédia.

Syntaxe

HRESULT SetPresentationClock(
  [in] IMFPresentationClock *pPresentationClock
);

Paramètres

[in] pPresentationClock

Pointeur vers l’interface IMFPresentationClock de l’horloge de présentation, ou NULL. Si la valeur est NULL, le récepteur multimédia cesse d’écouter l’horloge de présentation précédemment définie, le cas échéant.

Valeur retournée

Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.

Code de retour Description
S_OK
S_OK
MF_E_CLOCK_NO_TIME_SOURCE
L’horloge de présentation n’a pas de source de temps. Appelez SetTimeSource sur l’horloge de la présentation.
MF_E_SHUTDOWN
La méthode Shutdown du récepteur multimédia a été appelée.

Notes

Pendant la diffusion en continu, le récepteur multimédia tente de faire correspondre les taux à l’horloge de présentation. Dans l’idéal, le récepteur multimédia présente des échantillons au bon moment en fonction de l’horloge de présentation et ne prend pas de retard. Les récepteurs multimédias sans débit constituent une exception à cette règle, car ils consomment des échantillons aussi rapidement que possible et ignorent l’horloge. Si le récepteur est sans taux, la méthode IMFMediaSink::GetCharacteristics retourne l’indicateur MEDIASINK_RATELESS.

L’horloge de présentation doit avoir une source de temps. Avant d’appeler cette méthode, appelez IMFPresentationClock::SetTimeSource sur l’horloge de présentation pour définir la source de l’heure de présentation. Certains récepteurs multimédias fournissent des sources de temps ; par conséquent, le récepteur multimédia peut être la source de temps pour sa propre horloge de présentation. Quel que soit l’objet qui fournit la source de temps, toutefois, le récepteur de média doit tenter de faire correspondre les taux à l’horloge spécifiée dans pPresentationClock. Si un récepteur multimédia ne peut pas faire correspondre les taux à une source de temps externe, la méthode IMFMediaSink::GetCharacteristics du récepteur multimédia récupère l’indicateur MEDIASINK_CANNOT_MATCH_CLOCK. Dans ce cas, SetPresentationClock réussit toujours, mais les résultats ne sont pas optimaux. Le récepteur peut ne pas afficher les échantillons assez rapidement pour faire correspondre les taux à l’horloge de présentation.

Si pPresentationClock n’a pas la valeur NULL, le récepteur multimédia doit s’inscrire pour les notifications d’état d’horloge, en appelant IMFPresentationClock::AddClockStateSink sur l’horloge de présentation. Si la méthode est appelée à nouveau avec une nouvelle horloge de présentation, ou si pPresentationClock a la valeur NULL, le récepteur multimédia doit appeler IMFPresentationClock::RemoveClockStateSink pour se désinscrire de l’horloge précédente.

Tous les récepteurs multimédias doivent prendre en charge cette méthode.

Spécifications

   
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête mfidl.h
Bibliothèque Mfuuid.lib

Voir aussi

IMFMediaSink

Récepteurs multimédias

Horloge de présentation