CSource筛选器出现问题
Issue with CSource filter
我目前正在尝试实现我自己的源过滤器,以便解码作为输入的MOV文件。我一直在关注网络上和WinSDK7.1示例文件夹中的各种示例,最终我得到了以下内容:
-
实现CreateInstance的CSource子类
-
CSourceStream子类实现了以下功能:
- 决定缓冲区大小
- GetMediaType
- 通知
- FillBuffer
请注意,我目前没有实现任何类型的寻求处理。
目前,我的过滤器可以通过graphstudio实例化,并公开1个视频输出引脚。我能够通过VMR7全程呈现它。
当我点击播放时,我的问题就来了。我的FillBuffer方法被调用一次,graphstudio无法报告source.cpp@line 317:assert(!ThreadExists())内的断言失败。
有人能告诉我我在这里做错了什么吗?基本引脚的::Active()方法似乎有某种问题,但我不确定具体是什么。
如果需要,我很乐意提供更详细的源代码。
提前谢谢。
好的,所以我终于让它工作了。
如果有人遇到同样的问题,这来自CSource过滤器的pin注册。我使用AddPin方法注册我的pin。这以某种方式导致CSource内部状态失败。按照directshow示例中的操作直接访问m_paStreams数组解决了我的问题。
这个问题可能是由重写基类方法的方式引起的。
断言失败表明执行到达了根本不应该到达的位置,直到过滤器停止,然后再次启动。我想说,它应该返回更高的几行(第303行),但由于某种原因,它没有返回。IsActive
的错误值并不表示方法本身是错误的,相反,它很可能是带有重写的东西。
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- OPENCV筛选未定义的参考问题
- 筛选实时数据时出现QSortFilterProxyModel问题
- CSource筛选器出现问题
- 在DirectShow筛选器图中使用Async_reader和Wave Parser会导致视频查找问题