X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fqcelpdec.c;h=16f9ae0be9dde704ded898cd1926611b89ac2c43;hb=646eb55139ce6cad08d6f2d1dd07c28ee73a861e;hp=0df30daf34c5eceb19c4387f3351f9dad12eae1f;hpb=33ae681f5ca9fa9aae82081dd6a6edbe2509f983;p=ffmpeg diff --git a/libavcodec/qcelpdec.c b/libavcodec/qcelpdec.c index 0df30daf34c..16f9ae0be9d 100644 --- a/libavcodec/qcelpdec.c +++ b/libavcodec/qcelpdec.c @@ -405,31 +405,6 @@ static void compute_svector(QCELPContext *q, const float *gain, } } -/** - * Compute the gain control - * - * @param v_in gain-controlled vector - * @param v_ref vector to control gain of - * - * @return gain control - * - * FIXME: If v_ref is a zero vector, it energy is zero - * and the behavior of the gain control is - * undefined in the specs. - * - * TIA/EIA/IS-733 2.4.8.3-2/3/4/5, 2.4.8.6 - */ -static float compute_gain_ctrl(const float *v_ref, const float *v_in, const int len) -{ - float scalefactor = ff_dot_productf(v_in, v_in, len); - - if(scalefactor) - scalefactor = sqrt(ff_dot_productf(v_ref, v_ref, len) / scalefactor); - else - av_log_missing_feature(NULL, "Zero energy for gain control", 1); - return scalefactor; -} - /** * Apply generic gain control. * @@ -442,15 +417,13 @@ static float compute_gain_ctrl(const float *v_ref, const float *v_in, const int static void apply_gain_ctrl(float *v_out, const float *v_ref, const float *v_in) { - int i, j, len; - float scalefactor; + int i; - for(i=0, j=0; i<4; i++) - { - scalefactor = compute_gain_ctrl(v_ref + j, v_in + j, 40); - for(len=j+40; j