2013-04-02 38 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