[FFmpeg-soc] [soc]: r4678 - amr/amr-ffmpeg.diff

Colin McQuillan m.niloc at googlemail.com
Sun Jul 12 16:26:38 CEST 2009


2009/7/12 Vitor Sessak <vitor1001 at gmail.com>:
> cmcq wrote:
>>
>> Author: cmcq
>> Date: Sun Jul 12 13:19:21 2009
>> New Revision: 4678
>>
>> Log:
>> Remove incorrect comment. An FIR filter doesn't need previous output.
>>
>> Modified:
>>   amr/amr-ffmpeg.diff
>>
>> Modified: amr/amr-ffmpeg.diff
>>
>> ==============================================================================
>> --- amr/amr-ffmpeg.diff Sun Jul 12 13:10:09 2009        (r4677)
>> +++ amr/amr-ffmpeg.diff Sun Jul 12 13:19:21 2009        (r4678)
>> @@ -113,3 +113,13 @@ Index: libavcodec/celp_filters.h
>>   * LP synthesis filter.
>>   * @param out [out] pointer to output buffer
>>   *        - the array out[-filter_length, -1] must
>> +@@ -101,9 +118,6 @@
>> +  * @param buffer_length amount of data to process
>> +  * @param filter_length filter length (10 for 10th order LP filter)
>> +  *
>> +- * @note Output buffer must contain filter_length samples of past
>> +- *       speech data before pointer.
>> +- *
>> +  * Routine applies A(z) filter to given speech data.
>> +  */
>> + void ff_celp_lp_zero_synthesis_filterf(
>
>>
>>    int i,n;
>>
>>    // Avoids a +1 in the inner loop.
>>    filter_length++;
>>
>>    for(n=0; n<buffer_length; n++)
>>    {
>>        out[n] = in[n];
>>        for(i=1; i<filter_length; i++)
>>            out[n] -= filter_coeffs[i-1] * out[n-i];
>
> When n==0 and i==filter_length-1, one have
>
> out[0] -= filter_coeffs[filter_length-2] * out[-filter_length+1];
>
> So I'd say one really need some past data in *out buffer...
>
> -Vitor

The snippet is ff_celp_lp_synthesis_filterf. The comment is for
ff_celp_lp_zero_synthesis_filterf.


More information about the FFmpeg-soc mailing list