[Ffmpeg-devel] [RFC] Feature request

Loren Merritt lorenm
Sat Aug 19 01:49:43 CEST 2006


On Sat, 19 Aug 2006, Benjamin Larsson wrote:

> Hi, the ff_float_to_int16 function doesn't take a step argument would it
> be ok to add a step argument to the function? The cook and wma decoder
> interleaves the output directly from float so it's not possible to use
> ff_float_to_int16 without reordering the floatdata first.

That's possible, but it would be faster to have one function that takes 
pointers to some mono streams, and converts and interleaves them. And I 
even wrote such during the vorbis optimization, though it turned out not 
to help vorbis.
Can you use this?

void float_to_int16_interleave_c(int16_t *dst, float **src, int len, int channels){
     int i,j,k;
     for(i=k=0; i<len; i++){
         for(j=0; j<channels; j++, k++){
             int tmp = lrintf(src[j][i]);
             if(tmp < -32768) tmp = -32768;
             else if(tmp > 32767) tmp = 32767;
             dst[k] = tmp;
         }
     }
}

--Loren Merritt




More information about the ffmpeg-devel mailing list