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

Bibliothèques Discussion :

lire un wav avec libsndfile // lecture par bloc


Sujet :

Bibliothèques

  1. #1
    Membre actif Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Points : 203
    Points
    203
    Par défaut lire un wav avec libsndfile // lecture par bloc
    Pour faire du traitement par lot sur un .wav, j'utilise libsndfile et je "read" par partie les données du fichiers, 16bit PCM Wav

    J'ai un message d'erreur
    Soundlab has exited due to signal 11 (SIGSEGV).
    quand j'utilise sf_readf sur un trop grand nombre de samples.

    Ca marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    sf_count_t  X;
    		int frames=FileInfos.frames;
    		vector<float> valuesample(frames);
     
    X = sf_readf_float(filex, &valuesample[0], 100)
    Ca marche plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    sf_count_t  X;
    		int frames=FileInfos.frames;
    		vector<float> valuesample(frames);
     
    X = sf_readf_float(filex, &valuesample[0], frames)
    J'ai essayé la même chose par lots/blocs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //// read content
    		sf_count_t  X;
    		int frames=FileInfos.frames;
    		vector<float> valuesample(frames);
     
    		int sizebloc = 8600;
    		int i=0;
    		while(i<frames){
    		X = sf_readf_float(filex, &valuesample[i], sizebloc) ; 
    			i+=sizebloc;
    			}
    Même message du a un Segmentation fault

    Qu'est ce qui peut causer ca ?

    Merci

  2. #2
    Membre actif Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Points : 203
    Points
    203
    Par défaut
    Salut, je relance le topic car j'ai une question a propos des fonctions sf_read de libsndfile.

    vous l'avez surement constaté, entre l'ouverture et la fermutre d'un fichier SF_FILE , les sf_read s'incrémentent.

    Si on fait se succéder 10 sf_read lisant chacun 20 échantillons du fichiers,
    on a en fait parcouru 10x20=200 échantillons.

    c'est plutôt pratique, mais j'ai un soucis car je voudrais faire une "remise a zéro" de cette "tete de lecture". En fait je voudrais recommencer ma lecture du début sans avoir à fermer/réouvrir...

    Vous auriez une idée ?

  3. #3
    Membre actif Avatar de ttone
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 589
    Points : 203
    Points
    203
    Par défaut
    up

Discussions similaires

  1. Réponses: 8
    Dernier message: 30/07/2012, 10h14
  2. Histoire de mémoire, lecture par bloc et non total
    Par hpl76 dans le forum Langage
    Réponses: 2
    Dernier message: 21/07/2011, 15h22
  3. Ouverture d'un fichier txt et lecture par blocs de données
    Par zazouille_63 dans le forum MATLAB
    Réponses: 1
    Dernier message: 17/04/2009, 08h17
  4. Lecture par blocs
    Par yarf dans le forum C
    Réponses: 6
    Dernier message: 08/03/2008, 10h41
  5. lecture par blocs dans un fichier avec marqueur
    Par cheikh_tk dans le forum C
    Réponses: 3
    Dernier message: 06/06/2006, 16h39

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