C++ 使用回调方法从内存读取DirectShow

C++ 使用回调方法从内存读取DirectShow,c++,video,callback,directshow,playback,C++,Video,Callback,Directshow,Playback,到目前为止,我使用MCI&mmioInstallIOProc进行视频播放,并借助上述回调方法直接从内存中读取数据块 是否有使用DirectShow实现相同播放方法的示例?我对平台SDK中包含的MemFile示例做了一些介绍,但这段代码将整个文件读取到内存中,而我需要加载数据块 在哪里查看或使用什么界面来实现目标 关于这一点,memfile示例是正确的。您需要实现IAsyncReader接口来从内存缓冲区中提取数据,这是最接近的示例 我刚刚创建了一个新的源过滤器 您好,在包含的文件asynchdr

到目前为止,我使用MCI&mmioInstallIOProc进行视频播放,并借助上述回调方法直接从内存中读取数据块

是否有使用DirectShow实现相同播放方法的示例?我对平台SDK中包含的MemFile示例做了一些介绍,但这段代码将整个文件读取到内存中,而我需要加载数据块

在哪里查看或使用什么界面来实现目标


关于这一点,

memfile示例是正确的。您需要实现IAsyncReader接口来从内存缓冲区中提取数据,这是最接近的示例

我刚刚创建了一个新的源过滤器

您好,在包含的文件asynchdr.h中,CAsyncOutputPin类已经是IAsyncReader子类。无论如何,IAsyncReader接口中是否有回调机制,因为该主题中的MSDN没有提及任何内容。在memfile示例中,在CAsyncOutputPin中,将对m_pIO的调用替换为对将获取数据的类的调用。如果您想通过调用输出pin来传递数据,则需要将数据排队并从输出pin中提取数据。谢谢您,但我不确定我是否真正理解您想要的解决方案。我的回调函数如何通知下游需要提供数据?你能给我解释一下吗?关于StackOverflow的回答应该会带来解决方案的相关细节,以便其他人可以从Q和A中受益。是的,你说得对,但这个问题有点奇怪,因为我想在将数据发送到视频渲染器之前解密数据。我创建的源代码过滤器与SDK中的过滤器几乎相同,除了我添加的代码之外,处理数据束的代码是通过调用解密程序代码读取的,然后它们按照正常方式进行操作!