Home | History | Annotate | Download | only in ilbc
      1 /*
      2  *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
      3  *
      4  *  Use of this source code is governed by a BSD-style license
      5  *  that can be found in the LICENSE file in the root of the source
      6  *  tree. An additional intellectual property rights grant can be found
      7  *  in the file PATENTS.  All contributing project authors may
      8  *  be found in the AUTHORS file in the root of the source tree.
      9  */
     10 
     11 /******************************************************************
     12 
     13  iLBC Speech Coder ANSI-C Source Code
     14 
     15  WebRtcIlbcfix_Enhancer.c
     16 
     17 ******************************************************************/
     18 
     19 #include "defines.h"
     20 #include "constants.h"
     21 #include "get_sync_seq.h"
     22 #include "smooth.h"
     23 
     24 /*----------------------------------------------------------------*
     25  * perform enhancement on idata+centerStartPos through
     26  * idata+centerStartPos+ENH_BLOCKL-1
     27  *---------------------------------------------------------------*/
     28 
     29 void WebRtcIlbcfix_Enhancer(
     30     int16_t *odata,   /* (o) smoothed block, dimension blockl */
     31     int16_t *idata,   /* (i) data buffer used for enhancing */
     32     int16_t idatal,   /* (i) dimension idata */
     33     int16_t centerStartPos, /* (i) first sample current block within idata */
     34     int16_t *period,   /* (i) pitch period array (pitch bward-in time) */
     35     int16_t *plocs,   /* (i) locations where period array values valid */
     36     int16_t periodl   /* (i) dimension of period and plocs */
     37                             ){
     38   /* Stack based */
     39   int16_t surround[ENH_BLOCKL];
     40 
     41   WebRtcSpl_MemSetW16(surround, 0, ENH_BLOCKL);
     42 
     43   /* get said second sequence of segments */
     44 
     45   WebRtcIlbcfix_GetSyncSeq(idata, idatal, centerStartPos, period, plocs,
     46                            periodl, ENH_HL, surround);
     47 
     48   /* compute the smoothed output from said second sequence */
     49 
     50   WebRtcIlbcfix_Smooth(odata, idata+centerStartPos, surround);
     51 }
     52