diff libtwamr/d_gain_p.c @ 340:e18452a4fbac

libtwamr: integrate d_gain_p.c
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 18 Apr 2024 23:45:25 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libtwamr/d_gain_p.c	Thu Apr 18 23:45:25 2024 +0000
@@ -0,0 +1,71 @@
+/*
+********************************************************************************
+*
+*      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             : d_gain_p.c
+*
+********************************************************************************
+*/
+ 
+ 
+/*
+********************************************************************************
+*                         MODULE INCLUDE FILE AND VERSION ID
+********************************************************************************
+*/
+#include "namespace.h"
+#include "d_gain_p.h"
+ 
+/*
+********************************************************************************
+*                         INCLUDE FILES
+********************************************************************************
+*/
+#include "tw_amr.h"
+#include "typedef.h"
+#include "basic_op.h"
+#include "oper_32b.h"
+#include "no_count.h"
+#include "cnst.h"
+#include "gains_tab.h"
+
+/*
+********************************************************************************
+*                         PUBLIC PROGRAM CODE
+********************************************************************************
+*/
+
+/*
+**************************************************************************
+*
+*  Function    : d_gain_pitch
+*  Purpose     : Decodes the pitch gain using the received index.
+*                output is in Q14 
+*
+**************************************************************************
+*/
+Word16 d_gain_pitch (      /* return value: gain (Q14)                */
+    enum Mode mode,        /* i   : AMR mode                          */   
+    Word16 index           /* i   : index of quantization             */
+)
+{
+    Word16 gain;
+
+    test ();
+    if (sub(mode, MR122) == 0)
+    {
+       /* clear 2 LSBits */
+       gain = shl (shr (qua_gain_pitch[index], 2), 2);    move16 ();
+    }
+    else
+    {
+       gain = qua_gain_pitch[index];                      move16 (); 
+    }
+    
+    return gain;
+}