2008-12-28 4 views
3

J'ai créé le graphique suivant dans GraphEdit: Logitech Webcam -> Infinite Tee Pin Filter -> VideoRenderer. Cela fonctionne bien (avec GraphEdit insérant automatiquement quelques filtres intermédiaires entre le filtre TEe et le filtre VideoRenderer).DirectShow: Graph fonctionne dans GraphEdit, pas dans le code

J'ai essayé de faire la même chose dans le code, et cela échoue lorsque j'essaie de connecter le filtre Tee au VideoRenderer. Je connecte d'abord la webcam au tee-shirt, ce qui fonctionne (la webcam s'allume et je reçois S_OK), puis j'essaie de connecter la seule broche de sortie du tee-shirt au premier, ce qui échoue (l'erreur est qu'elle pourrait pas trouver un ensemble de filtres intermédiaires pour les connecter). J'ai essayé de les connecter avec IGraphBuilder :: Connect et ICaptureGraphBuilder2 :: RenderStream, avec le même effet. Pour énumérer les pins, j'utilise hr = _CaptureGraphBuilder.FindPin (theFilter, PinDirection.Input, null, null, vrai, 0, sur lePin); pour le moteur de rendu vidéo, et le même sauf avec PinDirection.Output pour le filtre en T (c'est en C#, mais la construction est exactement mappée en C++).

Des idées?

Répondre

2

a trouvé le problème. Apparemment, le filtre Webcam ne met pas correctement à jour ses types de support de sortie jusqu'à ce que le graphique soit démarré. Donc, en commençant le graphique, puis en redémarrant le graphique une fois que tout est fait a fait l'affaire.

Questions connexes