请教wince5 下开发filter的流程

liyanping   2008-6-7 13:43 楼主
前段时间开始学习directshow下的filter的开发,买了陆老师的 directshow 开发指南,在window XP上做了些试验,能够用上自己注册的filter
现在想在wince5.0下开发filter,比如说MPEG2 video decoder filter 请教各位高手:
1、库的问题
在wince 下开发是在EVC下吧,在VC 6.0开发需要的库如strmbasd.lib,该如何生成?
如果不生成库,把bassclasses的源码放在工程里面一起编译能行吗?
2 假如生成的.ax的文件,在wince5.0下应该怎么注册,在run 里还可以运行regsvr32.exe    XXXX.ax类似注册吗?
如果没有,该怎么办?


现在只是想知道开发环境搭建的流程,在哪个环境开发,怎样注册
网上没有搜到,谁知道给点提示,好心人帮帮忙
谢谢 !!

回复评论 (13)

我也正做这方面开发,对你的问题,有以下方案:
1.用PB定制SDK时,可以将directshow的SDK包含进来.
2.定制SDK时将组件信息写到注册表中,并把组件放到Release目录.

这是我在网上看到的方法,仅供参考,有更好的办法请告诉我,谢谢!

点赞  2008-6-7 16:19
1、可以用EVC编译bassclasses,也可以在PB下的用命令build -c,也可以在制定系统打到SDK中。
2、可以用regsvr32.exe,这个在PB下有,只要编译,
再则,最好编译个GRAPHEDIT,和PC下的用法差不多的。
点赞  2008-6-8 22:35
谢谢楼上两位的回答!不过小弟还有些疑问请教
to  :tjololo
     “2.定制SDK时将组件信息写到注册表中,并把组件放到Release目录. ”
      请问是怎样把信息写到注册表中的,能说具体点吗?
to  :jack1003
     1 请问要用regsvr32.exe,在编译的时候需要添加哪个组件啊?要是这个命令能注册能省掉很多麻烦,但是我在网上看到说不能用
      http://blog.eeworld.net/heninghejun/archive/2005/06/15/394985.aspx,请问您用过吗?
      2 "最好编译个GRAPHEDIT", 这在wince中也可以用啊,在Pb定制的时候添加选项?但我在网上看到wince中不能用啊,原来准备在
      XP环境调试再移植的

另外,我看到网上有的说在PB中开发,有的是在EVC中开发,都可以吗?是不是在EVC中开发生成.ax文件,然后用
regsvr32.exe在wince中注册即可,而在PB中开发就得把注册信息添加到SDK中。
问题很多,边学边解决

我想还有很多的人会遇到同样的问题,小弟愚钝,恳请两位大哥说详细点吧 ,谢谢!!
希望大家继续关注。。。
      
     
     
点赞  2008-6-9 00:37
帮顶,我现在也是想用VS2005开发一个软件,使它能在WINCE下实现视频的随机播放。可就是不知道如何实现,有谁知道在VS2005下如何开发呀?
点赞  2008-6-9 09:33
1、库的问题
在wince 下开发是在EVC下吧,在VC 6.0开发需要的库如strmbasd.lib,该如何生成?
如果不生成库,把bassclasses的源码放在工程里面一起编译能行吗?

这个库可以利用PB DIRECTX目录下的bassclasses编译生成

2 假如生成的.ax的文件,在wince5.0下应该怎么注册,在run 里还可以运行regsvr32.exe    XXXX.ax类似注册吗?
如果没有,该怎么办?

这个我之前有试过,不行……,望达人指点
点赞  2008-6-10 11:48
1. 如果你定制过包含directshow组件的系统并sysgen过,那么strmbasd.lib等文件在wince500下的相关文件夹里搜索的到,用evc开发或者pb都可以直接用

2. 需要自己写注册表文件,即.reg文件,格式你参考你的directx.reg里的格式


; @CESYSGEN IF QUARTZ_MPGSPLIT

; MPEG-1 Stream Splitter

[HKEY_CLASSES_ROOT\Filter\{336475d0-942a-11ce-a870-00aa002feab5}]
@="MPEG-I Stream Splitter"

[HKEY_CLASSES_ROOT\CLSID\{336475d0-942a-11ce-a870-00aa002feab5}]
@="MPEG-I Stream Splitter"
"Merit"=dword:00600000

[HKEY_CLASSES_ROOT\CLSID\{336475d0-942a-11ce-a870-00aa002feab5}\InprocServer32]
@="quartz.dll"
"ThreadingModel"="Both"

[HKEY_CLASSES_ROOT\CLSID\{336475d0-942a-11ce-a870-00aa002feab5}\Pins\Audio Output]
"Direction"=dword:00000001
;"IsRendered"=dword:00000000
"AllowedZero"=dword:00000001
;"AllowedMany"=dword:00000000

[HKEY_CLASSES_ROOT\CLSID\{336475d0-942a-11ce-a870-00aa002feab5}\Pins\Audio Output\Types\{73647561-0000-0010-8000-00AA00389B71}\{E436EB80-524F-11CE-9F53-0020AF0BA770}]

[HKEY_CLASSES_ROOT\CLSID\{336475d0-942a-11ce-a870-00aa002feab5}\Pins\Audio Output\Types\{73647561-0000-0010-8000-00AA00389B71}\{E436EB81-524F-11CE-9F53-0020AF0BA770}]

[HKEY_CLASSES_ROOT\CLSID\{336475d0-942a-11ce-a870-00aa002feab5}\Pins\Input]
;"Direction"=dword:00000000
;"IsRendered"=dword:00000000
;"AllowedZero"=dword:00000000
;"AllowedMany"=dword:00000000

[HKEY_CLASSES_ROOT\CLSID\{336475d0-942a-11ce-a870-00aa002feab5}\Pins\Input\Types\{E436EB83-524F-11CE-9F53-0020AF0BA770}\{E436EB84-524F-11CE-9F53-0020AF0BA770}]

[HKEY_CLASSES_ROOT\CLSID\{336475d0-942a-11ce-a870-00aa002feab5}\Pins\Input\Types\{E436EB83-524F-11CE-9F53-0020AF0BA770}\{e436eb85-524f-11ce-9f53-0020af0ba770}]

[HKEY_CLASSES_ROOT\CLSID\{336475d0-942a-11ce-a870-00aa002feab5}\Pins\Input\Types\{E436EB83-524F-11CE-9F53-0020AF0BA770}\{e436eb86-524f-11ce-9f53-0020af0ba770}]

[HKEY_CLASSES_ROOT\CLSID\{336475d0-942a-11ce-a870-00aa002feab5}\Pins\Input\Types\{E436EB83-524F-11CE-9F53-0020AF0BA770}\{e436eb87-524f-11ce-9f53-0020af0ba770}]

[HKEY_CLASSES_ROOT\CLSID\{336475d0-942a-11ce-a870-00aa002feab5}\Pins\Video Output]
"Direction"=dword:00000001
;"IsRendered"=dword:00000000
"AllowedZero"=dword:00000001
;"AllowedMany"=dword:00000000

[HKEY_CLASSES_ROOT\CLSID\{336475d0-942a-11ce-a870-00aa002feab5}\Pins\Video Output\Types\{73646976-0000-0010-8000-00AA00389B71}\{E436EB80-524F-11CE-9F53-0020AF0BA770}]

[HKEY_CLASSES_ROOT\CLSID\{336475d0-942a-11ce-a870-00aa002feab5}\Pins\Video Output\Types\{73646976-0000-0010-8000-00AA00389B71}\{E436EB81-524F-11CE-9F53-0020AF0BA770}]

; MEDIASUBTYPE_MPEG1SystemStream
[HKEY_CLASSES_ROOT\Media Type\{e436eb83-524f-11ce-9f53-0020af0ba770}\{e436eb84-524f-11ce-9f53-0020af0ba770}]
"0"="0, 16, FFFFFFFFF100010001800001FFFFFFFF, 000001BA2100010001800001000001BB"
"Source Filter"="{E436EBB5-524F-11CE-9F53-0020AF0BA770}"

; @CESYSGEN ENDIF
点赞  2008-6-10 13:25
to  xjfox:
   非常感谢你地回答 ,按照你的提示,我找到了库文件和reg文件,现在还存在一些疑惑:
    我想在PB里面开发,等写好了.reg文件,我应该如何使用这个文件才能使注册自己的filter

  微软的SDK中提供了几个源代码,他们都没有写.reg,此外,我把DSHOW里面的如BASECLASSED,和FILTER拷贝到
D:\WINCE500\PLATFORM\EMULATOR\SRC\DRIVERS中在pc上编译时出错,提示fatal error C1033: cannot open program database 'd:\wince500\pbworkspaces\media\wince500\emulator_x86\oak\lib\x86lib\x86\retail\ball.pdb'\retail\ball.pdb'  ,'d:\wince500\pbworkspaces\media\wince500\emulator_x86\oak\中根本就没有 ,你们遇到过这种 问题吗?

我想用微软的wince500中SAMPLE试验一下,该怎么办?
点赞  2008-6-10 14:37
想试验wince500中SAMPLE,直接对public下相应的sample工程进行sysgen就可以了,他会自动加到你的工程中去

包含.reg中的内容,只要这个reg文件是你工程中的一个文件就可以了,换句话说,你的工程include了这个reg文件;想省事的话,直接把相关语句加到reldir中的platform.reg或project.reg中去就行了
点赞  2008-6-10 15:19
{b420d5b5-dae7-4413-b89d-ccb306412054}
点赞  2008-6-10 19:14
还没有结果,晚点在结帖,继续学习中。。。。
点赞  2008-6-11 22:16
找到不用写注册表的方法没有?
点赞  2008-6-30 17:19
6楼的做法,谢谢了,别处已经 给分了
点赞  2008-7-11 10:00
regsrv32.exe在DCOM目录下,直接SYSGEN就可以产生regsrv32.exe
点赞  2008-7-12 19:25
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复