3
框架步對於視頻混合呈現,我有實現對CBaseRenderer
//IFilterGraph * m_FilterGraph
IVideoFrameStep * ivfs=0;
HRESULT hr = m_FilterGraph->QueryInterface(IID_IVideoFrameStep, (void**)&ivfs);
if (SUCCEEDED(hr))
{
ivfs->Step(1, 0);
}
SAFE_RELEASE(ivfs);
和它的作品,但使用派生類基類CBaseRenderer
的,我不能做出同樣的。閱讀參考頁面,我試圖在渲染器上實現IKsPropertySet
接口,但它從來不會被查詢,所以這是關於它...
那麼如何啓用幀自定義渲染器上的步進?
我也很好奇知道如何實現實際的步進。
對於一個骯髒的快速解決方案,由於這樣的事實,我似乎擁有一個直接指向渲染,我只是叫
//CBaseRenderer * m_pRenderer
m_pRenderer->BeginFlush();
m_pRenderer->EndFlush();
從應用程序線程
。它工作,直到我從步進狀態(=暫停)切換到播放狀態。從本質上講,它從來沒有崩潰,但似乎有一個滯後等於步進狀態的持續時間。顯然這是不正確的。
你可以顯示你的'QueryInterface'實現嗎? – wimh
@Wimmel,你在說。我正在調用'CBaseRenderer :: QueryInterface'並且缺少一個繼承級別。 – mainactual