Metodo IMFMediaSink::SetPresentationClock (mfidl.h)
Imposta l'orologio della presentazione sul sink multimediale.
Sintassi
HRESULT SetPresentationClock(
[in] IMFPresentationClock *pPresentationClock
);
Parametri
[in] pPresentationClock
Puntatore all'interfaccia FMPresentationClock dell'orologio della presentazione o NULL. Se il valore è NULL, il sink multimediale smette di ascoltare l'orologio della presentazione impostato in precedenza, se presente.
Valore restituito
Il metodo restituisce un HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.
Codice restituito | Descrizione |
---|---|
|
Il metodo è riuscito. |
|
L'orologio della presentazione non ha un'origine temporale. Chiamare SetTimeSource nell'orologio della presentazione. |
|
Il metodo Shutdown del sink multimediale è stato chiamato. |
Commenti
Durante lo streaming, il sink multimediale tenta di corrispondere alle tariffe con l'orologio della presentazione. Idealmente, il sink multimediale presenta campioni al momento corretto in base all'orologio della presentazione e non cade dietro. I sink multimediali senza frequenza sono un'eccezione a questa regola, man mano che utilizzano campioni il più rapidamente possibile e ignorano l'orologio. Se il sink è senza frequenza, il metodo FMMediaSink::GetCharacteristics restituisce il flag di MEDIASINK_RATELESS.
L'orologio della presentazione deve avere un'origine temporale. Prima di chiamare questo metodo, chiamare FMPresentationClock::SetTimeSource nell'orologio della presentazione per impostare l'origine dell'ora di presentazione. Alcuni sink multimediali forniscono origini temporali; pertanto, il sink multimediale potrebbe essere l'origine temporale per il proprio orologio di presentazione. Indipendentemente dall'oggetto fornito dall'origine temporale, tuttavia, il sink multimediale deve tentare di trovare una corrispondenza con il clock specificato in pPresentationClock. Se un sink multimediale non può corrispondere alle tariffe con un'origine temporale esterna, il metodo FMMediaSink::GetCharacteristics recupera il flag di MEDIASINK_CANNOT_MATCH_CLOCK. In questo caso , SetPresentationClock avrà esito positivo, ma i risultati non saranno ottimali. Il sink potrebbe non eseguire il rendering di campioni abbastanza rapidamente per corrispondere alle tariffe con l'orologio della presentazione.
Se pPresentationClock non è NULL, il sink multimediale deve registrare le notifiche sullo stato dell'orologio chiamando FMPresentationClock::AddClockStateSink nell'orologio della presentazione. Se il metodo viene chiamato di nuovo con un nuovo orologio di presentazione o se pPresentationClock è NULL, il sink multimediale deve chiamare FMPresentationClock::RemoveClockStateSink per deregister se stesso dall'orologio precedente.
Tutti i sink multimediali devono supportare questo metodo.
Requisiti
Client minimo supportato | Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | mfidl.h |
Libreria | Mfuuid.lib |