我写了个Transfer过滤器,我把过滤器的优先级设得很高就是下面的0x70000210
AMOVIESETUP_FILTER g_sttSudFilter =
{
&CLSID_SHOWPCMWAVE_FILTER,                  // Filter CLSID
L"ShowPcmWave",                             // Filter name
0x70000210,                           // Its merit MERIT_PREFERRED
sizeof(psudPins) / sizeof(AMOVIESETUP_PIN), // Number of pins
psudPins                                    // Pin details
};结果发现在GraphEdit中,连接的时候出现了四个我的过滤器
后来我把DShow的例子Gargle的优先级也设得很高,试了一下,也是出现了四个Gargle过滤器,不知道有没有简单点的办法让他只有一个实例,谢谢

解决方案 »

  1.   

    说明一下:我的过滤器的输入/输出的格式是一样的,都是MEDIASUBTYPE_PCM
      

  2.   

    Merit值越高智能连接使用到的机会越大,不过我没太明白你的意思,出来了4个是什么意思??一条Graph链路里面使用了4个你的Filter???来个Graph看看
      

  3.   

    是的,一条Graph链路里面使用了4个我的Filter
    而且第一个名字ShowPcmWave正确,第二个名字变为ShowPcmWave 0001,第三个变为ShowPcmWave 0002,第四个变为ShowPcmWave 0003
      

  4.   

    明白你的意思,应该是只有一个filter,却出来了相同的4个filter是用的智能连接吧个人觉得,merit值设的太高了,比自动连接使用值高一点就可以了,最终你想达到什么效果啊
      

  5.   

    我就是想把merit值设高点,然后只连接一个我的Filter就行了
      

  6.   

    把merit值设高点,然后只连接一个我的Filter