2010-09-14 4 views
1

Je dois écrire un filtre de capture DirectShow qui enveloppe le "vrai" périphérique vidéo (fitler) et désentrelace la vidéo capturée. De la perspective d'interface , cela doit être un périphérique vidéo séparé disponible dans l'énumérateur et lorsqu'il est choisi, il se connecte à un périphérique vidéo réelle et insère un filtre de transformation (désentrelacement) entre la vidéo broche de sortie de l'appareil et la propre broche de sortie . Ma question est la suivante: est-ce que mon approche est correcte? Je veux simplement développer un filtre vidéo de capture DShow , instancier un filtre de transformation à l'intérieur et connecter les broches de mon filtre automatiquement. Existe-t-il un meilleur moyen d '"injecter" un filtre transfrontière entre un appareil vidéo réel et l'application qui l'utilise? CordialementFiltre d'encapsulation du filtre de capture directe Show

Dominik Tomczak

Répondre

2

désentrelacer sans emballage, vous pouvez créer un filtre de transformation et de lui donner un mérite très élevé, de cette façon, il peut être automatiquement ajoutée (injecté) aux graphes. Voir MatrixMixer qui fait quelque chose de simulaire pour l'audio.

Si vous avez vraiment besoin d'un wrapper, créez un second graphe avec le périphérique vidéo d'origine et le filtre de transformation. Ensuite, transférez la sortie dans le graphique où votre filtre wrapper est. Voir GMFBridge pour un exemple comment utiliser la sortie du graphique A comme l'entrée du graphique B.

+0

Merci pour la réponse. Est-ce que le mérite élevé provoque l'injection automatique de filtre dans n'importe quel graphique? Comment puis-je contrôler dans quels graphiques mon filtre de transformation sera-t-il injecté? – cubesoft

+0

Pour la 2ème réponse, ai-je vraiment besoin d'un deuxième graphique? Je ne peux pas simplement injecter des fillters dans le graphe d'application? – cubesoft

+0

Si vous voulez injecter des filtres dans le graphique, regardez comment matrixmixer fonctionne. Installez-le sur votre ordinateur, utilisez graphedit, ajoutez un filtre de capture audio, choisissez render ou connectez-vous manuellement à un moteur de rendu. Vous pouvez vous contrôler lorsque vous ajoutez un filtre à un graphique. Par exemple, vous devez veiller à ce qu'il ne soit pas ajouté deux fois au même graphique. – wimh