2016-03-29 150 views
0

我正在使用Media Foundation播放需要實時編輯的視頻,因此我需要知道幀何時可以呈現,但回調不提供此類消息。MediaFoundation - 框架已準備就緒?

我唯一的想法是檢查幀速率,然後設置一個計時器,只是害羞的,並使用GetPosition來檢查我在哪裏我最後一次計時器被稱爲,但必須有一個更好的辦法比這個。

謝謝!

馬特

回答

0

爲什麼你不能注入自己的IMFStreamSink例如在topologoy,做編輯在實施IMFStreamSink::ProcessSample和傳球的編輯以任何輸出節點使用的是目前?

此外,如果您使用EVR,則可以創建自定義演示者 - 請參閱MSDN上的this文章。

+0

花了一天的時間,我可以放心地說,我完全困惑。我對MediaFoundation完全陌生,爲了讓它工作,我在下面的MSDN網站上使用了教程。我不確定如何將IMFStreamSink集成到程序中。這似乎是它自己的做事方式,所以我需要取消這個並重新開始。 https://msdn.microsoft.com/en-us/library/windows/desktop/ff728866(v=vs.85).aspx – CodeConfusion

0

我找到了一個簡單的解決方案。設置會話的播放速度,然後從會話中創建演示時鐘。設置一個計時器,並檢查演示時鐘。當時間流逝等於一個滴答的播放速度時,正在呈現新的幀。