[CELT-dev] Use of cruel and unusal frame sizes

N H Elroy nelroy at box.nl
Sun May 29 00:46:08 PDT 2011


 I've been developing an application using CELT for some time and, for 
 simplicity, have restricted frame sizes to powers of 2.  During final 
 testing I tested with a sound interface (the Phonic Firefly 302) whose 
 ASIO drivers are very restictive in what they accept, and have about 6 
 allowable frame sizes < 512, a lot of which are odd numbers. However 
 some are even numbered, so this should work.  Unfortunately it doesn't 
 and en exception is raised.  Some investigation reveals the problem to 
 be in the module kiss_fft.c, during allocation of storage for the FFT.  
 The factorisation function kf_factor returns a failure if the frame size 
 has a prime factor > 5. This results in the block which wasn't yet 
 allocated being freed, and hence the exception. Given this restriction, 
 their is no frame size that the both the driver and CELT will accept. 
 I'd like to avoid the fancy footwork involved in having different frame 
 sizes, if at all possible.

 My question is (a) is this the intended behaviour, or am I missing 
 something? and (b)is there a way around this restriction?  I've also 
 tried to address this with Phonic, because this sort of behaviour of the 
 driver is weird and is not a problem with the WDM drivers, but they're 
 not answering.

More information about the celt-dev mailing list