[Speex-dev] Would be nice to conditionally compile out coding modesand code tables...

John Miles jmiles at pop.net
Wed Dec 13 14:33:11 PST 2006


I agree with this, by the way.  Dynamic memory allocation does NOT belong in
a realtime codec, apart from allocation of the initial stream state at open
time.

This is something that the Ogg guys (Vorbis being a prime offender in
particular) have never quite understood.

</pet_peeve>

-- john

>
> I'm only using the narrow-band encoder on my embedded system and have
> removed all references to the wide-band and ultra-wide band encoder
> functions and tables.  They will be pulled in by the linker due to the
> references made by the structures in modes.c.  Attached is a replacement
> modes.c for compiling out modes that are not in use for anyone who's
> interested.
>
> Also, I've removed the dynamic memory allocation of the encoder and
> decoder.  To do this I had to determine the required size of the encoder
> and decoder states since i'm working on a fixed memory platform I simply
> handle the worst case, see the attached statesize.h.   Now I can do this
> sort of thing...
>
> MyDecoderClass decoders[5];
>
> ... will means all of my decoder states are contiguous and quick to DMA.
> It also improves cache consistency when the input buffers are placed in
> MyDecoderClass.
>
> Would be nice for functionality like this to make it into the main line
> of code.
>
> I hope this is useful to someone,
> Stewart Miles



More information about the Speex-dev mailing list