2016-05-11 56 views
0

我正在編寫一些代碼,將Windows Media Foundation的樣本轉發到live555。當MF使用其100ns的時間戳時,live555使用struct timeval形式的「實時」。我知道如何從GetSystemTime()中僞造後者,但我想知道是否可以從MF採樣時間導出「實時」並將數據傳遞給IMFClockStateSink::OnClockStart我可以將MFTIME與真實系統時間相關嗎?

回答

0

Media Foundation還提供基於系統時鐘的演示時間源。

雖然此演示文稿源提供基於系統時鐘的時間戳(推測使用或使用共享源與timeGetTime但我沒有檢查),但此源不是唯一的選項。

所以你基本上不應該對時鐘時間和當前系統「絕對」時間之間的相關性做出假設。時間戳應該只提供10 MHz速率的相對時間增量。

If the presentation clock uses some other time source, ...

+0

但是,我需要生成某種絕對時間LIVE555。問題是:我會怎麼做?我最好猜測atm將捕獲MESessionStarted事件,檢索處理程序中的系統時間,並假定相對時間作爲'hnsSystemTime'傳遞給'IMFClockStateSink :: OnClockStart'大約是生成'MESessionStarted'時的相對時間。那有意義嗎? – Christoph

+0

那麼爲什麼不在會話啓動時保存兩個時鐘值,然後計算絕對時間作爲會話開始絕對時間加上媒體時鐘差異。我想這就是你的想法 - 是的,這是有道理的。 –

+0

這就是主意 - 問題在於是否有一種「更好」的方式來做到這一點(顯然不是,如果我正確理解你的話)以及MESessionStarted事件是否是正確的地方。 – Christoph

相關問題