DirectShow写拉模式Source Filter的问题,有经验的来谈谈,up也给分
我自己写了拉模式的源filter,播放mpeg1,2等没有问题,但是wmv和rmvb格式就出了问题。
大概思路如下:
1. new出source filter的实例加入Graph //都没问题
2. Load()都没问题
3. 取得自己写的filter的输出pin后调用它的Render()方法 //这里有问题!!!!!
在3处的问题描述:
mpeg1和2在这是正常运行的,而wmv和rmvb格式时Render()方法错误,提示E_POINTER,无效的指针。而我取指针是没有问题的。我想知道是什么导至的这个问题。是source filter里面媒体格式的问题??还是pull或push等模式的问题??
遇到过的讲讲,谢谢
问题点数:120、回复次数:17Top
1 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2006-03-03 16:47:50 得分 0
顶。没有朋友有过类似的经历吗?Top
2 楼king820802(卜呈)回复于 2006-03-03 17:40:46 得分 15
要拉模式的,条件太苛刻了。呵呵,没有碰到过。
建议把问题发到“专题开发”去Top
3 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2006-03-03 18:20:07 得分 0
我是这样指定的媒体类型
cmt.SetType(&MEDIATYPE_Video);
cmt.SetSubtype(&MEDIASUBTYPE_NULL);
混专题的很多后混vc,嘿嘿!!顶!!!!!Top
4 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2006-03-03 18:20:54 得分 0
上面打多了一个cmt.SetType(&MEDIATYPE_Stream);!!!不是MEDIATYPE_VideoTop
5 楼vcmute(BCare4 H1Rest Good9!)回复于 2006-03-03 21:31:23 得分 0
mpeg1和2在这是正常运行的是通过splitter来做推模式
wmv和rmvb格式时Render()方法错误 可能是需要MediaType的扩展字段,所以E_POINTERTop
6 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2006-03-03 22:03:15 得分 0
首先谢谢楼上回复!
2中情况应该都是要spliter来分离Audio和Video
我将可能的类型都试过了,嘿嘿,未果!再有就是我改变了某些类型的时候,原来可以的mpeg1和2也会出现E_POINTER的错误!觉得原因就在这了,还在思考...Top
7 楼Togecy2006()回复于 2006-03-04 10:25:42 得分 15
我最近也在学习DirectShow开发指南里的那个 MPEG流的 网络客户端播放 也是要拉模式的SourceFilter
他好象是继承自CAsyncReader
在Async\下Top
8 楼vcmute(BCare4 H1Rest Good9!)回复于 2006-03-04 11:34:51 得分 50
rmvb用的是realmediasplitter?
源代码在sourceforge可以下载的,
你可以下载下来编译(vc7)试试看Top
9 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2006-03-04 22:22:46 得分 0
to Togecy2006() ( ) 信誉:100
谢谢回答,拉模式在sdk的在Async\下有例子,其基类也有.是pull模式的好参考,不过这里问题应该不是这种模式的filter怎么写
to vcmute(横秋) ( ) 信誉:213
谢谢回答 我去下了编译试试,实在不行我就写个push模式的
顶!!!!怎么回答的人这么少???Top
10 楼Hurbox(斩月)回复于 2006-03-04 22:35:38 得分 10
upTop
11 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2006-03-06 09:35:40 得分 0
顶起来 ,别沉了Top
12 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2006-03-07 15:41:02 得分 0
up up up!!!!Top
13 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2006-03-08 13:09:33 得分 0
为什么 没人来回答?郁闷Top
14 楼qazokm(qazokm)回复于 2006-03-08 13:15:09 得分 10
upTop
15 楼nkwesley(江南丝竹)回复于 2006-03-08 14:02:21 得分 10
讨论Top
16 楼ydfivy(我就是一送外卖的)回复于 2006-03-08 14:05:00 得分 10
哈哈.哈哈.UP也有分啊.哈哈哈哈哈.
Top
17 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2006-03-08 16:04:43 得分 0
vcmute(横秋) ( ) 信誉:213 2006-03-04 11:34:00 得分: 0
rmvb用的是realmediasplitter?
源代码在sourceforge可以下载的,
你可以下载下来编译(vc7)试试看
So Sorry 呵呵!!是我记错了!用GraphEdit又看了看,wmv格式的是push模式的,不是source filter后接splitter的拉模式,而是直接出Audio和Video
vcmute(横秋) ( ) 信誉:213 2006-03-04 11:34:00 得分: 0 正解Top




