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

Vitor Sessak vitor1001 at gmail.com
Sun Jul 12 15:39:57 CEST 2009


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


More information about the FFmpeg-soc mailing list