/* ** Copyright 2003-2010, VisualOn, Inc. ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ /******************************************************************************* File: pre_echo_control.c Content: Pre echo control functions *******************************************************************************/ #include "basic_op.h" #include "oper_32b.h" #include "oper_32b.h" #include "pre_echo_control.h" /***************************************************************************** * * function name:InitPreEchoControl * description: init pre echo control parameter * *****************************************************************************/ void InitPreEchoControl(Word32 *pbThresholdNm1, Word16 numPb, Word32 *pbThresholdQuiet) { Word16 pb; for(pb=0; pb 0 ) { for(i = 0; i < numPb; i++) { tmpThreshold1 = pbThresholdNm1[i] >> (scaling-1); tmpThreshold2 = L_mpy_ls(pbThreshold[i], minRemainingThresholdFactor); /* copy thresholds to internal memory */ pbThresholdNm1[i] = pbThreshold[i]; if(pbThreshold[i] > tmpThreshold1) { pbThreshold[i] = tmpThreshold1; } if(tmpThreshold2 > pbThreshold[i]) { pbThreshold[i] = tmpThreshold2; } } } else { scaling = -scaling; for(i = 0; i < numPb; i++) { tmpThreshold1 = pbThresholdNm1[i] << 1; tmpThreshold2 = L_mpy_ls(pbThreshold[i], minRemainingThresholdFactor); /* copy thresholds to internal memory */ pbThresholdNm1[i] = pbThreshold[i]; if(((pbThreshold[i] >> scaling) > tmpThreshold1)) { pbThreshold[i] = tmpThreshold1 << scaling; } if(tmpThreshold2 > pbThreshold[i]) { pbThreshold[i] = tmpThreshold2; } } } }