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

OpenAL Discussion :

OpenAL streaming and threads


Sujet :

OpenAL

  1. #1
    Membre du Club
    Inscrit en
    mai 2009
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : mai 2009
    Messages : 62
    Points : 43
    Points
    43
    Par défaut OpenAL streaming and threads
    Salut,

    J'ai réussi à lire un son avec openal en streaming, mais quand je crée un thread pour jouer le son je vois que mon cpu est presque à 100%

    vous avez une petite idée pour diminuer l'usage du cpu ?

    voici comment je fais appel au thread:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    /* pour jouer le son */
    void play(ASS_Sound* sound)
    {
       pthread_create(&sound->thread,NULL,ASS_PlaySound,(void*)sound);
    }
    /* et la fonction pour mettre à jour le son */
    void* ASS_PlaySound(void* snd)
    {
      ASS_Sound* sound=snd;
     
      alSourcePlay(sound->source);
     
      while(updateStream(sound)) /* peut être cette boucle qui consomme le cpu ??*/
      {
        if(!(ASS_GetStatus(*sound)==AL_PLAYING))
          {
            if(!playback(sound))
             printf("stream abruptly stopped.");
            else
             printf("stream was interrupted.\n");
          }
      }
    }
    Merci d'avance

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    26 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 26 285
    Points : 209 490
    Points
    209 490
    Billets dans le blog
    93
    Par défaut
    Bonjour

    Oui, d'après moi, la boucle consomme tout le CPU ( ou une grosse portion ).

    Ne pourriez vous pas utiliser un sleep ? afin de laisser du temps au CPU ...
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre du Club
    Inscrit en
    mai 2009
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : mai 2009
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Bah je sais pas un Sleep de combien ? et est ce que ça aura un effet sur la lecture de la musique ??

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    26 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 26 285
    Points : 209 490
    Points
    209 490
    Billets dans le blog
    93
    Par défaut
    Je pense que la lecture ce fait dans un thread ... d'ailleurs vous n'avez pas vraiment besoin d'attendre la fin de la lecture par une boucle blocante.
    Faites un essaie et vous verrez. Par contre il faut faire un Update de OpenAL de mémoire. Un peu en faire un tout les 15ms comme pour les images d'un jeu ... ça me semble bien ...
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre du Club
    Inscrit en
    mai 2009
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : mai 2009
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Voila c'est réglé j'ai ajouté un usleep et ça marche nickel
    Merci!

  6. #6
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    novembre 2006
    Messages
    7 944
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : novembre 2006
    Messages : 7 944
    Points : 19 082
    Points
    19 082
    Par défaut
    Salut pourquoi créer un thread pour jouer un son ?
    C'est totalement inutile !
    Cela ne présente aucun intérêt parce que la lecture et le rendu sonore d'un fichier son est dédié à la carte son; c'est elle qui s'occupe de gérer cela et non pas le CPU .
    Donc je ne vois vraiment pas l'intérêt d'une telle manipulation sauf si on effectue des modifications en temps réel

  7. #7
    Expert éminent
    Avatar de raptor70
    Inscrit en
    septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : septembre 2005
    Messages : 3 173
    Points : 6 811
    Points
    6 811
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    Salut pourquoi créer un thread pour jouer un son ?
    C'est totalement inutile !
    Cela ne présente aucun intérêt parce que la lecture et le rendu sonore d'un fichier son est dédié à la carte son; c'est elle qui s'occupe de gérer cela et non pas le CPU .
    Donc je ne vois vraiment pas l'intérêt d'une telle manipulation sauf si on effectue des modifications en temps réel
    Dans le cas d'un jeu, cela permet au son de ne pas influer sur la fréquence de rendu.. et inversement, si le jeu rame, (lors d'un loading par exemple) le thread de son continu normalement. Ce n'est pas sans intérêt.

    Dans le cas d'un chargement de niveau, aucune informations de sons ne sera envoyé à ta carte son, donc elle a beau être puissante, si elle n'a rien à lire
    Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/

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

Discussions similaires

  1. [Système] Failed to open stream
    Par BnA dans le forum Langage
    Réponses: 4
    Dernier message: 26/05/2006, 16h09
  2. [Système] failed to open stream: Too many open files
    Par shamanlinks dans le forum Langage
    Réponses: 7
    Dernier message: 23/05/2006, 11h59
  3. Réponses: 4
    Dernier message: 29/12/2005, 19h35
  4. [FTP] Erreur "failed to open stream"
    Par Nefret dans le forum Langage
    Réponses: 2
    Dernier message: 04/11/2005, 19h53

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