speex - undefined reference



  • Hallo,

    ich habe gerade folgenden code ausprobiert:

    #include "speex/speex.h"
    #include <stdio.h>
    
    /*The frame size in hardcoded for this sample code but it doesn't have to be*/
    #define FRAME_SIZE 160
    int main(int argc, char **argv)
    {
       char *inFile;
       FILE *fin;
       short in[FRAME_SIZE];
       float input[FRAME_SIZE];
       char cbits[200];
       int nbBytes;
       /*Holds the state of the encoder*/
       void *state;
       /*Holds bits so they can be read and written to by the Speex routines*/
       SpeexBits bits;
       int i, tmp;
    
       /*Create a new encoder state in narrowband mode*/
       state = speex_encoder_init(&speex_nb_mode);
    
       /*Set the quality to 8 (15 kbps)*/
       tmp=8;
       speex_encoder_ctl(state, SPEEX_SET_QUALITY, &tmp);
    
       inFile = argv[1];
       fin = fopen(inFile, "r");
    
       /*Initialization of the structure that holds the bits*/
       speex_bits_init(&bits);
       while (1)
       {
          /*Read a 16 bits/sample audio frame*/
          fread(in, sizeof(short), FRAME_SIZE, fin);
          if (feof(fin))
             break;
          /*Copy the 16 bits values to float so Speex can work on them*/
          for (i=0;i<FRAME_SIZE;i++)
             input[i]=in[i];
    
          /*Flush all the bits in the struct so we can encode a new frame*/
          speex_bits_reset(&bits);
    
          /*Encode the frame*/
          speex_encode(state, input, &bits);
          /*Copy the bits to an array of char that can be written*/
          nbBytes = speex_bits_write(&bits, cbits, 200);
    
          /*Write the size of the frame first. This is what sampledec expects but
           it's likely to be different in your own application*/
          fwrite(&nbBytes, sizeof(int), 1, stdout);
          /*Write the compressed data*/
          fwrite(cbits, 1, nbBytes, stdout);
    
       }
    
       /*Destroy the encoder state*/
       speex_encoder_destroy(state);
       /*Destroy the bit-packing struct*/
       speex_bits_destroy(&bits);
       fclose(fin);
       return 0;
    }
    

    Diese Liebrays hab ich gelinkt:

    Libs: libspeex.lib und libspeexdsp.lib

    Mehr gab es in der SDK nicht -libtechnisch gesehen.

    Dennoch kommt dieser Fehler:

    H:\speex\main.cpp|21|undefined reference to `speex_nb_mode'|
    

    Was mache ich falsch?



  • Hat da keiner eine Idee?

    Es wäre mir wichtig, bitte.



  • sppeex schrieb:

    Hat da keiner eine Idee?

    Es wäre mir wichtig, bitte.

    Ich hab mal gegoogelt nach
    speex_nb_mode

    z.B
    http://list.sipfoundry.org/archive/sipxtapi-dev/msg00293.html



  • Ach komm. Dieser quatsch soll deine Antwort sein? Hast du dir das mal durchgelesen?

    Weiß jemand was ich tun kann?


Anmelden zum Antworten