0
我寫一個DirectShow源過濾器來讀取特定的原始文件,原始文件包含時間戳(UTC時間)在每一幀DirectShow的源過濾SETTIME
我的過濾器從微軟SDK的修改「推源過濾樣本」 ,所以最重要的是覆蓋GetMediaType(),DecideBufferSize()和FillBuffer()。
我的問題是在FillBuffer(IMediaSample * pSample)中。我不知道如何在此函數中正確調用pSample-> SetTime(),因爲時間戳從大數開始,幀將等到StreamTime達到時間戳。
問題可以通過。減去來解決每個幀上的偏移,但我需要在下游過濾器(SampleGrabber)原始時間戳
是否有更好的解決方案?
非常感謝,這聽起來可行的方法,但在實施尋求接口事情會變得複雜。順便說一句 我嘗試使用SetMediaTime()來保存起始時間,但它不起作用(SampleGrabber對GetMediaTime()不正確) – 2013-02-27 09:01:04
是的媒體時間是一種不可靠的,我建議你不要使用它。而是直接從源過濾器獲取基準時間,而不是從媒體樣本的屬性獲取。 – 2013-02-27 09:03:05