IMFMediaSink::SetPresentationClock-Methode (mfidl.h)
Legt die Präsentationsuhr auf der Mediensenke fest.
Syntax
HRESULT SetPresentationClock(
[in] IMFPresentationClock *pPresentationClock
);
Parameter
[in] pPresentationClock
Zeiger auf die IMFPresentationClock-Schnittstelle der Präsentationsuhr oder NULL. Wenn der Wert NULL ist, hört die Mediensenke nicht mehr auf die zuvor festgelegte Präsentationsuhr zu, sofern vorhanden.
Rückgabewert
Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Die Methode wurde erfolgreich ausgeführt. |
|
Die Präsentationsuhr verfügt nicht über eine Zeitquelle. Rufen Sie SetTimeSource auf der Präsentationsuhr auf. |
|
Die Shutdown-Methode der Mediensenke wurde aufgerufen. |
Hinweise
Während des Streamings versucht die Mediensenke, die Preise mit der Präsentationsuhr abzugleichen. Im Idealfall präsentiert die Mediensenke Proben zur richtigen Zeit entsprechend der Präsentationsuhr und fällt nicht ins Hintertreffen. Ratenlose Mediensenken sind eine Ausnahme von dieser Regel, da sie Stichproben so schnell wie möglich nutzen und die Uhr ignorieren. Wenn die Senke ratenlos ist, gibt die IMFMediaSink::GetCharacteristics-Methode das flag MEDIASINK_RATELESS zurück.
Die Präsentationsuhr muss über eine Zeitquelle verfügen. Rufen Sie vor dem Aufrufen dieser Methode IMFPresentationClock::SetTimeSource auf der Präsentationsuhr auf, um die Quelle für die Präsentationszeit festzulegen. Einige Mediensenken bieten Zeitquellen; Daher kann die Mediensenke die Zeitquelle für ihre eigene Präsentationsuhr sein. Unabhängig davon, welches Objekt die Zeitquelle bereitstellt, muss die Mediensenke jedoch versuchen, die Raten mit der in pPresentationClock angegebenen Uhr abzugleichen. Wenn eine Mediensenke den Raten einer externen Zeitquelle nicht entsprechen kann, ruft die IMFMediaSink::GetCharacteristics-Methode der Mediensenke das flag MEDIASINK_CANNOT_MATCH_CLOCK ab. In diesem Fall ist SetPresentationClock weiterhin erfolgreich, aber die Ergebnisse sind nicht optimal. Die Senke rendert Beispiele möglicherweise nicht schnell genug, um die Raten mit der Präsentationsuhr abzugleichen.
Wenn pPresentationClock ungleich NULL ist, muss sich die Mediensenke für Benachrichtigungen über den Uhrzustand registrieren, indem IMFPresentationClock::AddClockStateSink auf der Präsentationsuhr aufgerufen wird. Wenn die Methode mit einer neuen Präsentationsuhr erneut aufgerufen wird oder pPresentationClockNULL ist, muss die Mediensenke IMFPresentationClock::RemoveClockStateSink aufrufen, um die Registrierung von der vorherigen Uhr aufzuheben.
Alle Mediensenken müssen diese Methode unterstützen.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | mfidl.h |
Bibliothek | Mfuuid.lib |