This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Running speex on C5505 USB Stick

Hi,

I am currently working on C5505 USB stick to sample input voice and encode it. I have so far succeeded in modifying the aic3204 test program to sample voice through MIC and play it out on head phone. Now I want to encode these samples using speex encoder.

I know that Couth Infotech has the required codecs built to work with C5505 USB stick but I do not know whether any evaluation copy is freely available for download. Anybody has any clue on this?

Now, I am using the speex code directly (downloaded from speex.org and installed using cygwin on windows) by enabling flag while configuring to make it compatible with C55x DSPs. The installation proceeded successfully and I could include "speex/speex.h" in aic3204 program without any compilation error.

But as soon as I insert any speex function call like "speex_bits_init(&bits)", the linker throws error something like this "error: member "bits.o" of archive "c:/cygwin/usr/local/lib/libspeex.a" is not recognized object file" I have included following things for compilation and linking in CC Studio IDE:

1. project -> properties -> C5500 compiler -> include options : added path to speex/speex.h

2. project -> properties -> c5500 linker -> fie search path : added libspeex.a and libogg.a to include-library-file and added path "c:\cygwin\usr\local\lib" to library-search-path.

Any ideas as to how to make speex code work with C5505 USB stick. The error I have mentioned seems to be linking error.

Awaiting your replies.

Vijay

  • Hi,

    I figured out that the previous error was due to incompatibility of speex for Windows. I was trying to include a file meant for Linux.

    Now, for encoding voice samples, I am using Speex codec binary http://downloads.xiph.org/releases/speex/speex-1.2beta3-win32.zip or http://downloads.us.xiph.org/releases/speex/speex_win32_1.0.4_setup.exe.This speex is meant for Windows.

    I could include "speex/speex.h" (e.g. from C:/Program Files/Speex/libspeex/include/) without any compilation error.

    But as soon as I insert any speex function call like "speex_bits_init(&bits)", the linker throws error something like this "error: Corrupt member header: 'C:/Program Files/Speex/libspeex/libspeex.lib' and error: offset 0x0002044a in file "C:/Program Files/Speex/libspeex/libspeex.lib" does not point to a valid archive member." I have included following things for compilation and linking in CC Studio IDE:

    1. project -> properties -> C5500 compiler -> include options : added path to speex/speex.h

    2. project -> properties -> c5500 linker -> fie search path : added libspeex.lib and added path "c:/Program Files/Speex/libspeex" to library-search-path.

    Any ideas as to how to make speex code work with C5505 USB stick. The error I have mentioned seems to be linking error. I am most likely not providing enough information for linker to link the library with the program.

    Awaiting your replies.

    Vijay

  • Hi,

    The c:/Program Files/Speex/libspeex.lib file is actually a Windows/x86 library
    file. Thus The code within this files is not C55x binary but x86 binary.
    Further, the format of a Windows/x86 library file would be different from that
    produced by the C55x code generation tools' archive utility, and I think that is
    what the linker is complaining about.

    Now my question is is there a pre-developed C55x speex library for me to use?

    Vija

  • Vijay,

    I am interested in this also. Did you find a solution?

    MikeH