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

Linux Discussion :

Envoyer des parametres a une appli durant son fonctionnement en C


Sujet :

Linux

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 12
    Points
    12
    Par défaut Envoyer des parametres a une appli durant son fonctionnement en C
    Bonjour,

    Je m'explique car mon titre n'est pas très explicite, je veux m'interfacer avec le logiciel NvGstPlayer fourni par nvidia pour ses processeurs Tegra. Ce logiciel est basé sur GStreamer avec quelques surcouches dont notamment des commandes toutes faites pour connaitre l'avancée de la vidéo, faire des play/pause, etc.

    En utilisation "normale", on lance l'appli via la commande 'nvgstplayer -i "Chemin de la video"' et la fenêtre du player s'ouvre automatique, ainsi que la console qui reste en arrière plan, en cliquant sur la console on peut taper des commande au clavier telles que 'spos' pour connaitre la position temporelle de la vidéo (l'appli retourne alors la valeur dans cette même console), 'P' pour faire des play/pause, etc...

    Mon problème est que j'aimerai faire une appli en C qui lance nvgstplayer et qui soit capable de s'interfacer sur cette console en arrière plan pour lui envoyer et récupérer les paramètres de nvgstplayer, quelqu'un saurait t'il comment faire car cela dépasse mes modestes connaissances du monde linuxien...

    Pour info mon système fonctionne sur une distri Angstrom.

    Merci d'avance

    Vincent

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 254
    Points : 13 489
    Points
    13 489
    Par défaut
    Bonjour,

    là, au débotté, je ferais un script qui écrit dans la console et qui communique avec ton application c, par pipe ou socket.
    La compréhension des redirections n'est-elle pas suffisante pour résoudre ton problème ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Déjà merci pour ta réponse, désolé d'avoir été un peu long a répondre, j'ai été pris sur un autre projet...

    Donc j'ai fait l'essai avec les flux de redirection mais j'ai un doute, soit je l'utilise mal, soit ca ne va pas etre possible de les utiliser:

    Voici mon code (désolé c'est extrement moche c'est vraiment juste pour tester)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #include <stdio.h>
     
    main()
    {
         system("nvgstplayer -i /mnt/nas/Video/big_bunny.mov << FIN");
         sleep(5);
         fprintf(stdout,"spos\nspos\nspos\nFIN\n");
         while(1);
    }
    Mais ca plante avec une segmentation fault, j'ai également essayer de rentrer la ligne de commande directement et j'obtiens la meme chose:
    nvgstplayer -i /mnt/nas/Video/big_bunny.mov << FIN
    et donc la dans ma console j'obtiens un chevron fermant dans lequel je peux taper du texte, je rentre spos plusieurs fois, je rentre FIN et la le player se lance, démarre et plante avec un segmentation fault car il doit prendre les parametres que je lui renseigne comme des parametres d'entrée, hors c'est une fois qu'il est lancé que je veux lui envoyer ces parametres, la solution de la redirection du flux ne suffit donc pas a priori...

    Pas certains que les pipes s'appliquent dans mon cas car je pense que contrairement au "<<" qui s'executent avant d'etre transmis à la fonction, le pipe si j'ai bien compris est transmis apres que la fonction se soit terminée, hors dans le cas de mon player celui ci doit etre en fonctionnement lorsque je veux lui envoyer ces parametres...

    Idéalement il faudrait vraiment que je puisse intercepter la console dans mon soft en C, attendre que celui ci soit pret en lisant les retours de la console du player, et que je puisse lui envoyer des infos exactement comme si je les tapais au clavier...

    Concernant les sockets, je n'ai pas d'expérience dessus, penses tu qu'ils me permettraient de faire ce que je veux? Aurais tu quelques exemples de codes a me proposer?

    Merci en tout cas pour tes propositions qui me permettent d'orienter mes recherches.

    @+

    Vincent

Discussions similaires

  1. [Débutant] récupérer des parametres de l'appli web depuis une classe
    Par paquerette dans le forum ASP.NET
    Réponses: 1
    Dernier message: 04/06/2014, 16h53
  2. envoyer des données sur une carte son
    Par khalifa1 dans le forum DirectX
    Réponses: 1
    Dernier message: 26/10/2007, 17h29
  3. envoyer des codes ESC à une imprimante série sous XP et W98?
    Par rebelor dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 14/02/2006, 06h41
  4. Envoyer des SMS via une application en C++
    Par yakotey dans le forum C++
    Réponses: 1
    Dernier message: 09/01/2006, 19h15
  5. Réponses: 2
    Dernier message: 04/10/2005, 20h54

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