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

Windows Discussion :

GStreamer et XWindow


Sujet :

Windows

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Points : 21
    Points
    21
    Par défaut GStreamer et XWindow
    Salut,

    je suis entrain de réaliser une application sur la base de GStreamer pour lire des fichiers vidéo.

    J'utilise un "playbin" afin reconnaître le format vidéo et que GStreamer choisisse ainsi lui-même le décodeur adapté au format vidéo. Ensuite j'utilise un sink de type "directdrawsink".

    Pour afficher la vidéo, je veux relier le sink "directdrawsink" à un drawingArea de XWindow. Pour ce la, je réalise les opérations suivantes :

    - récupération du XID de mon drawing area :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    unsigned long winid = XtWindow(myDrawingArea);
    -liaison du sink et du drawingArea :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(vsink), winid);
    où "vsink" correspond à mon sink vidéo et "winid" au XID de mon drawingArea.

    Mon problème est que lorsque je demande la lecture du fichier vidéo, je me rend compte que le lien n'est pas réalisé et me retourne un message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    domain=1048    code=10
    message="ailed to set the set the cooperative level error=DDERR_INVALID_PARAMS"
    gstdirectdrawsink.c   (1142)    /dec/vbin/vsink
    je pense que mon problème vient du XID de ma widget drawingArea qui n'est pas valide pour GStreamer. Cependant, je ne sais pas comment récupérer autrement le XID ou le window_handle d'un widget sous XWindow.

    Auriez-vous une idée sur mon problème ?
    Y-at-il d'autres méthodes pour récupérer l'identifiant d'un widget XWindow ?

    Merci pour vos réponses,

    Bouncebounce

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Tu sais, on ne joue pas beaucoup avec XWindow sous Windows...

    En fait, tout ce qui relie ce thread à windows, on dirait bien que c'est le nom "directdrawsink", parce qu'il y a "directdraw" dedans...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Points : 21
    Points
    21
    Par défaut
    Merci pour ta réponse.

    Mon problème est que mon application est basée sur XWindow, elle est multiplateforme (Unix, Windows, OS/X) et qu'elle est émulée sous Windows grâce à Hummingbird.

    Je pense que mes problèmes viennent d'ici, mais je ne vois pas comment les résoudre. En effet, j'utilise XWindow dans l'émulateur Unix Hummingbird. Donc quand je refile le window_handle (qui est un unsigned long sous Unix) à directdrawsink, il le transforme en HWND. De là, je pense qu'il ne fait pas le lien avec le widget de sortie.

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 340
    Points : 177
    Points
    177
    Par défaut
    utilise gtk:
    1) c'est multiplatforme
    2) ca utilise, comme gstreamer, glib pour la main loop, donc ca s'integre tres bien avec gstreamer

    sinon, ton probleme vient du fait (a mon avis) que tu recuperes un id de ta fenetre qui ne doit pas etre le HWND associe. XtWindow n'est peut-etre pas la bonne fonction a utiliser pour ceci.

    le seul reproche que je pourrais trouver a gtk : il est lent sous windows.
    L'Opus attire les Prélats

Discussions similaires

  1. Utilisation de GStreamer dans une application
    Par bouncebounce dans le forum C++
    Réponses: 4
    Dernier message: 13/04/2007, 16h44
  2. Utilisation de GStreamer dans une application
    Par bouncebounce dans le forum C
    Réponses: 1
    Dernier message: 13/04/2007, 08h24
  3. XWindow et lecture vidéo
    Par bouncebounce dans le forum C++
    Réponses: 2
    Dernier message: 10/04/2007, 09h40
  4. Problème émulateur XWINDOW CYGWIN
    Par Staron dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 22/10/2006, 20h00
  5. Sélection avec XWindow ?
    Par doudblast dans le forum Linux
    Réponses: 2
    Dernier message: 25/05/2005, 12h23

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