diff libtwamr/dec_amr.h @ 426:7bef001cd8b8

libtwamr: integrate dec_amr.c
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 07 May 2024 20:33:01 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libtwamr/dec_amr.h	Tue May 07 20:33:01 2024 +0000
@@ -0,0 +1,136 @@
+/*
+*****************************************************************************
+*
+*      GSM AMR-NB speech codec   R98   Version 7.6.0   December 12, 2001
+*                                R99   Version 3.3.0                
+*                                REL-4 Version 4.1.0                
+*
+*****************************************************************************
+*
+*      File             : dec_amr.h
+*      Purpose          : Speech decoder routine.
+*
+*****************************************************************************
+*/
+#ifndef dec_amr_h
+#define dec_amr_h "$Id $"
+ 
+/*
+*****************************************************************************
+*                         INCLUDE FILES
+*****************************************************************************
+*/
+#include "tw_amr.h"
+#include "typedef.h"
+#include "cnst.h"
+#include "dtx_dec.h"
+#include "d_plsf.h"
+#include "gc_pred.h"
+#include "ec_gains.h"
+#include "ph_disp.h"
+#include "c_g_aver.h"
+#include "bgnscd.h"
+#include "lsp_avg.h"
+
+/*
+*****************************************************************************
+*                         LOCAL VARIABLES AND TABLES
+*****************************************************************************
+*/
+/*---------------------------------------------------------------*
+ *    Postfilter constant parameters (defined in "cnst.h")       *
+ *---------------------------------------------------------------*
+ *   L_FRAME     : Frame size.                                   *
+ *   PIT_MAX     : Maximum pitch lag.                            *
+ *   L_INTERPOL  : Length of filter for interpolation.           *
+ *   M           : LPC order.                                    *
+ *---------------------------------------------------------------*/
+
+/*
+*****************************************************************************
+*                         DEFINITION OF DATA TYPES
+*****************************************************************************
+*/
+typedef struct{
+  /* Excitation vector */
+  Word16 old_exc[L_SUBFR + PIT_MAX + L_INTERPOL];
+  Word16 *exc;
+    
+  /* Lsp (Line spectral pairs) */
+   /* Word16 lsp[M]; */      /* Used by CN codec */
+  Word16 lsp_old[M];
+ 
+  /* Filter's memory */
+  Word16 mem_syn[M];
+
+  /* pitch sharpening */
+  Word16 sharp;
+  Word16 old_T0;
+
+  /* Memories for bad frame handling */
+  Word16 prev_bf;
+  Word16 prev_pdf;   
+  Word16 state;
+  Word16 excEnergyHist[9];
+
+  /* Variable holding received ltpLag, used in background noise and BFI */
+  Word16 T0_lagBuff;
+
+  /* Variables for the source characteristic detector (SCD) */
+  Word16 inBackgroundNoise;
+  Word16 voicedHangover;
+  Word16 ltpGainHistory[9];
+
+  Bgn_scdState background_state;
+  Word16 nodataSeed;
+
+  Cb_gain_averageState Cb_gain_averState;
+  lsp_avgState lsp_avg_st;
+
+  D_plsfState lsfState;
+  ec_gain_pitchState ec_gain_p_st;
+  ec_gain_codeState ec_gain_c_st;  
+  gc_predState pred_state;
+  ph_dispState ph_disp_st;
+  dtx_decState dtxDecoderState;
+} Decoder_amrState;
+ 
+
+/*
+*****************************************************************************
+*                         DECLARATION OF PROTOTYPES
+*****************************************************************************
+*/
+ 
+/*
+**************************************************************************
+*
+*  Function    : Decoder_amr_reset
+*  Purpose     : Resets state memory
+*  Returns     : 0 on success
+*
+**************************************************************************
+*/
+void Decoder_amr_reset (Decoder_amrState *st, Flag dtx_partial_reset);
+ 
+/*
+**************************************************************************
+*
+*  Function    : Decoder_amr
+*  Purpose     : Speech decoder routine.
+*  Returns     : 0
+*
+**************************************************************************
+*/
+int Decoder_amr (
+    Decoder_amrState *st,  /* i/o : State variables                       */
+    enum Mode mode,        /* i   : AMR mode                              */
+    Word16 parm[],         /* i   : vector of synthesis parameters
+                                    (PRM_SIZE)                            */
+    enum RXFrameType frame_type, /* i   : received frame type               */
+    Word16 synth[],        /* o   : synthesis speech (L_FRAME)            */
+    Word16 A_t[]           /* o   : decoded LP filter in 4 subframes
+                                    (AZ_SIZE)                             */
+);
+
+#endif