[FFmpeg-cvslog] r19649 - in trunk/libavcodec: acelp_filters.c acelp_filters.h

Reimar Döffinger Reimar.Doeffinger
Sat Aug 15 13:44:58 CEST 2009


On Sat, Aug 15, 2009 at 01:22:55PM +0200, superdump wrote:
> Author: superdump
> Date: Sat Aug 15 13:22:55 2009
> New Revision: 19649
> 
> Log:
> Add a function that can apply an order 2 rational transfer function in-place.
> This function will be used in the upcoming AMR-NB floating point decoder for
> high-pass filtering.
> 
> Patch by Colin McQuillan ( m.niloc googlemail com )
> 
> Modified:
>    trunk/libavcodec/acelp_filters.c
>    trunk/libavcodec/acelp_filters.h
> 
> Modified: trunk/libavcodec/acelp_filters.c
> ==============================================================================
> --- trunk/libavcodec/acelp_filters.c	Sat Aug 15 13:12:47 2009	(r19648)
> +++ trunk/libavcodec/acelp_filters.c	Sat Aug 15 13:22:55 2009	(r19649)
> @@ -93,3 +93,20 @@ void ff_acelp_high_pass_filter(int16_t* 
>          hpf_f[0] = tmp;
>      }
>  }
> +
> +void ff_acelp_apply_order_2_transfer_function(float *buf,
> +                                              const float zero_coeffs[2],
> +                                              const float pole_coeffs[2],
> +                                              float gain, float mem[2], int n)
> +{
> +    int i;
> +    float tmp;
> +
> +    for (i = 0; i < n; i++) {
> +        tmp = gain * buf[i] - pole_coeffs[0] * mem[0] - pole_coeffs[1] * mem[1];

Why not merge declaration and initialization? That also makes it clear
that the value is not reused over loop iterations.



More information about the ffmpeg-cvslog mailing list