[CELT-dev] A few build problems

Jean-Marc Valin
Tue, 16 Aug 2011 01:10:26 -0000

Hi Chris,



On 11-08-14 11:07 AM, Chris Weiland wrote:
> First, this application is cross platform, and my primary development
> environment is Windows.  However, there is no config.h included with
> CELT, so I seem to have to make my own.  I managed to get it to build
> after a lot of trial and error, but I'm not positive if I've
> configured everything exactly properly.  I guess this is more of a
> complaint/request that an "official" config.h for Windows be
included
> in future releases.

Yeah, that's on the TODO list. In general, the main thing is that you'll
need to:
#define restrict
and
#define inline __inline
or something like this.

> Second, I started this project using Speex.  I don't see any reason to
> get rid of Speex support (at least for now), so I'd like to keep that
> option.  However, I can't link both Speex and CELT at the same time
> because the kiss_fft function is defined in both libraries, which
> causes the linker to be confused.  I thought that I could simply
> remove one, but it looks like each implementation is very different
> and each library depends on its own implementation.  Is there any way
> around this?

I just renamed the kiss-fft functions in the Opus code to avoid this.
Though it will not be updated in the CELT repo.

> Lastly, documentation is quite sparse for some of the parameters that
> I'd like to play around with.  The biggest one is latency.  The demo
> page shows a comparison of different latencies that CELT can run at,
> but I don't see anything in the API that has anything to do with that.
>  Do I simply adjust the frame size?  Also, what is input clipping?
> And what exactly does "complexity" control?  Does it have any
effect
> on latency or bit rate?  How much effect on CPU usage does varying the
> complexity make?

The latency is simply (frame_size+2.5ms) for CELT and (frame_size+5ms)
for Opus (though there will be a +2.5 option). As for the complexity
parameter, I just suggest you play around with it.

Cheers,


	Jean-Marc