Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Segfault avec le module audio  (Lu 2430 fois)

0 Membres et 1 Invité sur ce sujet

MadMass

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Segfault avec le module audio
« le: Mars 02, 2015, 10:57:14 pm »
Bonjour à tous,

Je cherche à utiliser la lib audio de la SFML pour faire de l'enregistrement.

Voici ma source (toute simple) :

sf::SoundBufferRecorder * CurrentRecorder = new sf::SoundBufferRecorder;
            CurrentRecorder->start(44100);

            sf::sleep(sf::milliseconds(100));

            CurrentRecorder->stop();
            BuffersPile.push_back(CurrentRecorder);

J'obtiens un SEGFAULT sur l'appel de la méthode start. J'ai vu ici et là que c'était peut-être dû à une erreur de linkage ? J'utilise Qt Creator + MinGW et c'est un peu la misère de ce côté là  :-\
J'ai fait mon linkage comme suit :

LIBS += C:\Qt\5.4\mingw491_32\lib\libsfml-system.a \
    C:\Qt\5.4\mingw491_32\lib\libsfml-main.a \
    C:\Qt\5.4\mingw491_32\lib\libsfml-network.a \
    C:\Qt\5.4\mingw491_32\lib\libsfml-audio.a \
    C:\Qt\5.4\mingw491_32\lib\avcodec.lib \
    C:\Qt\5.4\mingw491_32\lib\avutil.lib

Et j'utilise la lib network de la SFML sans aucun problème, par contre avec audio, soucis.

Quelqu'un aurait une idée de comment corriger le problème ?

Merci de votre aide  :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Segfault avec le module audio
« Réponse #1 le: Mars 02, 2015, 11:03:02 pm »
Ton code me paraît super louche, mais tu ne nous en montres pas assez. Il faudrait que tu reproduises le problème dans un code complet minimal (note bien les mots "reproduises", "complet" et minimal" -> ça veut pas dire qu'il faut juste que tu colles un plus gros morceau de ton code original).
Laurent Gomila - SFML developer

MadMass

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Re : Segfault avec le module audio
« Réponse #2 le: Mars 03, 2015, 08:38:02 am »
J'ai créé un nouveau projet sous Qt Creator, et assigné l'action d'enregistrement à un bouton :

#include <SFML/System.hpp>
#include <SFML/Audio.hpp>
#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    sf::SoundBufferRecorder * CurReccorder = new sf::SoundBufferRecorder;
    CurReccorder->start(44100);

    sf::sleep(sf::milliseconds(100));

    CurReccorder->stop();

}

J'ai le même problème, sur la méthode Start.
Notez que si je passe en allocation statique le soucis se présente toujours...

De plus, un code similaire marche parfaitement sous code::blocks, je pense que le problème vient de Qt creator; mais je n'ai aucun soucis avec les autres libs de la SFML que j'utilise, donc je ne vois vraiment pas ce qui peut ne pas aller dans le cas présent  :(

Merci de votre aide.

MadMass

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Re : Segfault avec le module audio
« Réponse #3 le: Mars 03, 2015, 01:30:26 pm »
Finalement je pense avoir résolu le problème, j'utilisais la mauvaise version de la SFML avec MinGW, cf : http://www.sfml-dev.org/tutorials/2.0/start-cb-fr.php

J'avais naïvement réutilisé la lib de mon installation de Code::Blocks, qui est en SJLJ alors que le MinGW de Qt et en DW2. Le fait que le réseau fonctionne parfaitement ne m'avais pas mis la puce à l'oreille :/

Navré pour le dérangement !  :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Segfault avec le module audio
« Réponse #4 le: Mars 03, 2015, 07:06:48 pm »
Note pour ton code initial : tu devrais stocker les SoundBuffer, pas les SoundBufferRecorder.
Laurent Gomila - SFML developer