[FFmpeg-devel] [PATCH] wmavoice: protect against zero-energy in adaptive gain control.

Paul B Mahol onemda at gmail.com
Wed Dec 21 09:50:56 EET 2016


On 12/21/16, Ronald S. Bultje <rsbultje at gmail.com> wrote:
> Otherwise the scale factor becomes NaN, resulting in corrupt output.
> Fixes #5426.
> ---
>  libavcodec/wmavoice.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/libavcodec/wmavoice.c b/libavcodec/wmavoice.c
> index 90dfe20..cd5958c 100644
> --- a/libavcodec/wmavoice.c
> +++ b/libavcodec/wmavoice.c
> @@ -512,7 +512,8 @@ static void adaptive_gain_control(float *out, const
> float *in,
>          speech_energy     += fabsf(speech_synth[i]);
>          postfilter_energy += fabsf(in[i]);
>      }
> -    gain_scale_factor = (1.0 - alpha) * speech_energy / postfilter_energy;
> +    gain_scale_factor = postfilter_energy == 0.0 ? 0.0 :
> +                        (1.0 - alpha) * speech_energy / postfilter_energy;
>
>      for (i = 0; i < size; i++) {
>          mem = alpha * mem + gain_scale_factor;
> --
> 2.8.1
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>

lgtm


More information about the ffmpeg-devel mailing list