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 :

Filtre source avec DirectShow - asynchrone ?


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de buzzkaido
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2004
    Messages
    821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 821
    Par défaut Filtre source avec DirectShow - asynchrone ?
    Bonjour,

    Je développe un module qui doit permettre de créer une vidéo à partir d'images générées en mémoires.

    L'une des contraintes est d'utiliser DirectShow.

    J'ai donc créé un filtre source, basé sur l'exemple "PushSource" du SDK, et ça fonctionne plutôt pas mal...

    Le soucis, c'est que le temps de génération d'une image en mémoire est assez variable : je ne sais donc pas à quel moment le prochain "sample" sera disponible.

    Pour résoudre ça, j'aimerais pouvoir :
    - créer le graphe (avec mon filtre pushsource)
    - créer la première image en mémoire
    - transmettre l'adresse de cette image à mon filtre
    - lancer le graphe en "OneShot" (comme avec un sampleGrabber) pour qu'il n'encode qu'une image
    - attendre la fin du traitement de cette image
    - générer l'image suivante
    - transmettre l'adresse de cette image à mon filtre
    - etc....
    - stopper le graphe

    Est-ce possible de lancer un graphe d'encodage en "OneShot" ? Comment ?

    Sinon, j'ai vu qu'il existe des filtres "Asynchrones"... est-ce que ça répond à ce besoin ? Quelqu'un aurait des exemples (j'ai pas trop envie de repartir de zéro pour faire un nouveau filtre, j'ai déjà pas mal galéré pour le premier...)


    Pour info, mon graphe est très simple :

    MaSourceCustom ==> Codec ==> AVIMuxer ==> FileWriter

    (le codec est au libre choix de l'utilisateur)

    Merci d'avance pour tout ce qui pourrait faire avancer mon schmilblick !

  2. #2
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Bonjour.

    Je ne comprends pas trop ton problème. Le filtre PushSource doit normalement envoyer les frames au filtre "codec" lorsque celles-ci sont prêtes. Si le filtre "codec" n'est pas prêt à recevoir la frame, il va certainement la refuser, sauf s'il utilise un ou des buffers (et encore c'est limité). Le filtre PushSource doit donc attendre que le filtre "codec" soit prêt pour lui transmettre la frame.


    Citation Envoyé par buzzkaido
    Sinon, j'ai vu qu'il existe des filtres "Asynchrones"...
    Si tu écrits un filtre asynchrone, et bien par exemple au lieu d'attendre que le filtre "codec" soit prêt, il peut en même temps commencer à préparer la ou les frames qui suivront...

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/03/2015, 18h29
  2. [Filtre source DirecShow] Remplissage avec FillBuffer()
    Par bbenator dans le forum DirectX
    Réponses: 3
    Dernier message: 13/09/2010, 11h57
  3. pbleme d'affraichissement d'image avec directshow
    Par lykim dans le forum DirectX
    Réponses: 4
    Dernier message: 17/03/2005, 09h08
  4. problème de capture son avec Directshow
    Par albator83 dans le forum DirectX
    Réponses: 2
    Dernier message: 06/11/2003, 17h18
  5. Gros Problème avec DirectShow et la méthode RELEASE
    Par Olivier Delmotte dans le forum DirectX
    Réponses: 3
    Dernier message: 10/03/2003, 18h10

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