IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DirectX Discussion :

Coder graphe directshow en c++ pr acquisition vidéo


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 18
    Par défaut [Résolu] Coder graphe directshow en c++ pr acquisition vidéo
    Bonjour à tous!

    Dans le cadre d'un stage, je dois développer une dll de visualisation vidéo pour une carte ATI 9600 all-in-Wonder. La situation est simple : une source vidéo est connectée à la carte et je dois être capable d'afficher cette source dans une application.

    Je dispose dejà d'un graphe édité grâce à graphedit qui donne ceci :

    ATI Rage Theater Video Capture (sortie pin vp) --->
    (input pin) Overlay mixer (output pin) --->
    (input pin) Video Renderer

    La visualisation de la video par ce graphe est fonctionnelle et de bonne qualité.

    Mon problème est le suivant : je ne sais pas quelle suite d'objets doit être codée en c++ pour correspondre au graphe de graphedit.

    J'ai déjà du code fonctionnel pour la visualisation à partir d'une carte pinnacle, mais le graphe de cette carte ne contient pas de filtre overlay mixer, et donc ne convient pas à la génération du graphe de visualisation
    pour la carte ati...

    Quelqu'un a-t'il l'expérience de ce type de filtre, ou saurait vers ou m'aiguiller pour résoudre mon problème?
    Merci

    Ben

  2. #2
    mat.M
    Invité(e)
    Par défaut
    Bjr,

    voir tout d'abord si ATI n'a pas un SDK proposant des exemples (samples ) utilisant des filtres personnalisés DShow.

    Toujours construire la hiérarchie de filtres et objets COM avec Graphedit comme tu as commencé à faire.
    Cela ne sert à rien de coder si cette hierarchie n'est pas etablie et fonctionne


    Mon problème est le suivant : je ne sais pas quelle suite d'objets doit être codée en c++ pour correspondre au graphe de graphedit
    euuhh ben ou est le pb ???
    tu construits des objets COM avec CoCreateInstance dans un certain ordre.
    Sinon voir les exemples du SDK de Direct X il ya un exemple de player Direct Show

  3. #3
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 18
    Par défaut
    Tout d'abord, merci pour la réponse.

    Je suis aller voir les sdk de ATI, mais les samples proposés tournent tous autour de directX orienté 3D, et non directshow.

    J'arrive à faire fonctionner la carte en prévisualisation et en capture mais, la qualité est assez pitoyable. Je vais chercher à construire un meilleur graphe avec graphedit. Si j'y arrive, alors il sera temps de coder. Je vous tiens au courant. La, je pars en we...


  4. #4
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 18
    Par défaut
    Bonjour!

    Finalement, le filtre overlay est bien pris en compte dans la construction intelligente du graphe directshow pour mon application. Maintenant se pose le pb de la capture de vidéos.

    J'ai le graphe suivant issu de graphedit qui donne des résultats encourageant :

    ATI Rage Theater Video Capture (sortie pin capture) --->
    (Input pin) ATI Noise reduction Filter (Output pin) --->
    (XForm In pin) AVI Decompressor (XForm Out pin) --->
    --->codec--->Mux.

    Aucune référence n'est faite directement dans directshow au filtre "ATI Noise reduction". Après une longue recherche avec google, je ne connais toujours pas l'identifiant de ce filtre (je cherche qq chose comme clsid_???). Avec cet identifiant et la construction intelligente du graphe, j'espère pouvoir reconstruire le graphe de graphedit.

    Cet identifiant apparait sans doute dans le sdk ATI, mais je n'en dispose pas pour le moment (faute de l'accord de l'administrateur pour l'installer). Si vous avez le sdk ATI, ou s'il existe une fonction permettant de récupérer cet identifiant à partir du "Friendly Name" du filtre ou d'autre chose, pourriez vous me renseigner?

    Merci
    Ben

  5. #5
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 19
    Par défaut
    Salut!

    Pour trouver le filtre ATI Noise Reduction, tu peux lister tous les filtres
    qui correspondent a certain criteres (ex les filtres qui prennent de la video en entree et en sortie, avec au moins 1 pin d'entree....)

    pour faire ca, tu dois utiliser IFilterMapper2 et un IMoniker.
    Quand tu as ta liste de filtres, tu lis les proprietes de chaque filtre en utilisant le Moniker et un IPropertyBag.

    Apres tu testes un truc que tu connais sur le filtre , le nom par exemple (ATI Noise Reduction)

    Pour savoir qu'elles sont les caracteristiques de ton filtre, utilise le binaire Mapper fourni avec le SDK DirectX.

    Il doit y avoir un exemple dans la MSDN (msdn.microsoft.com)... histoire de rendre un peu plus clair ce que je viens de dire.

    Voila,
    Bon courage
    et A+

  6. #6
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 18
    Par défaut
    Pb résolu.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Cherche solution pour acquisition vidéo en MPEG 2
    Par Chekov dans le forum Vidéo
    Réponses: 4
    Dernier message: 19/07/2008, 13h23
  2. Bibliothèque pour acquisition vidéo ?
    Par AGHILAS dans le forum OpenCV
    Réponses: 0
    Dernier message: 28/11/2007, 14h52
  3. Réponses: 0
    Dernier message: 23/07/2007, 15h09
  4. Carte d'acquisition Vidéo
    Par black is beautiful dans le forum Périphériques
    Réponses: 4
    Dernier message: 15/06/2006, 22h54
  5. Acquisition vidéo dans un MFC
    Par Mikelorrie dans le forum MFC
    Réponses: 2
    Dernier message: 14/03/2005, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo