2013-04-02 40 views
1

記憶到現在爲止我用MCI & mmioInstallIOProc視頻播放與所提到的回調方法的幫助下直接從內存中讀取數據塊。DirectShow的閱讀包含回調方法

是否有任何示例使用DirectShow完成相同的播放方法?我玩了一點點,包含在Platform SDK中的「MemFile」示例,但是此代碼將整個文件讀入內存,而我需要加載大塊數據。

在哪裏看或使用什麼接口來完成目標?

問候,

回答

-2

我剛剛創建了一個新的源過濾器!

+0

答案應該把相關的細節有關解決方案,以便其他人可以從Q和A. –

+0

是的,你有權受益,但這個問題的問題是一種奇怪的,因爲我想之前我解密數據我把它們發送到視頻渲染器。我創造了幾乎與一個你可以在SDK中找到相同的,除了我添加的代碼,處理數據的一堆源過濾是通過調用解密代碼讀出,然後他們按照正常的方式。 ! – Maverick

2

的memfile樣品是正確的。您需要實現IAsyncReader接口以從內存緩衝區中提取數據,這是最接近的示例。

+0

嗨, 在包含文件「asyncrdr.h」中,類「CAsyncOutputPin」已經是「IAsyncReader」子類。無論如何,IAsyncReader接口中的回調機制在該主題上沒有提及任何內容。 – Maverick

+0

在memfile示例中的CAsyncOutputPin中,將對m_pIO的調用替換爲對您的類進行調用以獲取數據的調用。如果您想通過調用輸入引腳來傳遞數據,您需要對數據進行排隊並將其從輸出引腳拉出。 –

+0

謝謝,但我不確定我是否真正理解您的目標解決方案。我的回調函數如何通知下游需要饋送數據?你能解釋一下嗎?在計算器上 – Maverick