在做视频监控的客户端,现想把 界面应用程序 和 网路数据处理部分分开,网络数据处理部分 有媒体数据和控制命令数据两个模块,媒体数据接收用 DIRECTSHOW的SOURCE端 写了个.AX组建 ,控制模块的数据 是要 跟 媒体数据 通信的,如果也是写个DLL的话, 我现有两种 思路,
   1. 是控制命令DLL 跟 媒体数据的.AX模块 独立 ,上层界面 跟 DLL和AX 互相调用。   2. 媒体数据的.AX 包容在 控制DLL的 模块里 ,这样 上次界面只要调用DLL 提供的接口就可以了,
感觉 第二个 稍微好点,但是 不知是否可行?或者 有没有更好的做法,

解决方案 »

  1.   


    又想到 第三种方案    3. 就是 媒体数据.AX的实例化等操作都 一起写在  DLL里 算了,感觉这样也能做,就是 不能体现COM的重用性了。
      

  2.   

    1.视频获取解码部分依据directshow框架的设计即可.网络数据获取处理源filter,中途编码filter,依据渲染filter分别做成独立的COM组件.
    2.使用Filter Graph建立一个媒体数据处理的filter链路.这里你可以封装成COM组件,也可以提供API的方式以供上层调用.
      

  3.   

    首先先谢谢雪影了,已经帮我解答了很多问题了,呵呵你的意思就是   把filter (源,编码,渲染)链路的操作都 封装到COM组建里吧 ,
      

  4.   

    对,可以封装在一个COM组件内部以供客户调用,也可以以API的形式提供给用户调用
      

  5.   

    额,那个如果封装在com组建内部的话 ,线程操作有点迷茫
       我想 在COM组建里  写几个线程,一个TCP 的接收 ,一个TCP 的发送,线程的开启该怎么写呢?写在哪里?(写在DLLmain 里?) 跟WIN32 的写法一样吗?     头痛啊,COM的线程模型 有点糊涂,不知道怎么弄,如果 跟WIN32差别很大,还望给个例子啊