summaryrefslogtreecommitdiff
path: root/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src
diff options
context:
space:
mode:
Diffstat (limited to 'opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src')
-rw-r--r--opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/add.cpp2
-rw-r--r--opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/az_lsp.cpp2
-rw-r--r--opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/bytesused.cpp171
-rw-r--r--opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/gc_pred.cpp4
-rw-r--r--opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/mult_r.cpp2
-rw-r--r--opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/norm_l.cpp4
-rw-r--r--opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/norm_s.cpp4
-rw-r--r--opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/qua_gain_tbl.cpp2
-rw-r--r--opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/sub.cpp2
-rw-r--r--opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/syn_filt.cpp8
10 files changed, 16 insertions, 185 deletions
diff --git a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/add.cpp b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/add.cpp
index 8085ac2..0a1182b 100644
--- a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/add.cpp
+++ b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/add.cpp
@@ -158,7 +158,7 @@ OSCL_EXPORT_REF Word16 add_16(Word16 var1, Word16 var2, Flag *pOverflow)
*pOverflow = 1;
sum = MAX_16;
}
- else if (sum < (Word32) 0xffff8000L)
+ else if (sum < (Word32) - 32768)
{
*pOverflow = 1;
sum = MIN_16;
diff --git a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/az_lsp.cpp b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/az_lsp.cpp
index 6f6bf4d..7711ac9 100644
--- a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/az_lsp.cpp
+++ b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/az_lsp.cpp
@@ -240,7 +240,7 @@ static Word16 Chebps(Word16 x,
t0 += (Word32) * (p_f) << 13;
- if ((UWord32)(t0 - 0xfe000000L) < (UWord32)0x03ffffffL)
+ if ((UWord32)(t0 + 33554432) < 67108863)
{
cheb = (Word16)(t0 >> 10);
}
diff --git a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/bytesused.cpp b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/bytesused.cpp
deleted file mode 100644
index 4893542..0000000
--- a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/bytesused.cpp
+++ /dev/null
@@ -1,171 +0,0 @@
-/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
- *
- * 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.
- * -------------------------------------------------------------------
- */
-/****************************************************************************************
-Portions of this file are derived from the following 3GPP standard:
-
- 3GPP TS 26.073
- ANSI-C code for the Adaptive Multi-Rate (AMR) speech codec
- Available from http://www.3gpp.org
-
-(C) 2004, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC)
-Permission to distribute, modify and use this file under the standard license
-terms listed above has been obtained from the copyright holder.
-****************************************************************************************/
-/*
-
- Filename: bytesused.cpp
-
-------------------------------------------------------------------------------
- INPUT AND OUTPUT DEFINITIONS
-
- Inputs:
- None
-
- Local Stores/Buffers/Pointers Needed:
- None
-
- Global Stores/Buffers/Pointers Needed:
- None
-
- Outputs:
- None
-
- Pointers and Buffers Modified:
- None
-
- Local Stores Modified:
- None
-
- Global Stores Modified:
- None
-
-------------------------------------------------------------------------------
- FUNCTION DESCRIPTION
-
- This function creates a table called BytesUsed that holds the value that
- describes the number of bytes required to hold one frame worth of data in
- the WMF (non-IF2) frame format. Each table entry is the sum of the frame
- type byte and the number of bytes used up by the core speech data for each
- 3GPP frame type.
-
-------------------------------------------------------------------------------
- REQUIREMENTS
-
- None
-
-------------------------------------------------------------------------------
- REFERENCES
-
- [1] "AMR Speech Codec Frame Structure", 3GPP TS 26.101 version 4.1.0
- Release 4, June 2001, page 13.
-
-------------------------------------------------------------------------------
- PSEUDO-CODE
-
-
-------------------------------------------------------------------------------
-*/
-
-
-/*----------------------------------------------------------------------------
-; INCLUDES
-----------------------------------------------------------------------------*/
-#include "typedef.h"
-
-/*--------------------------------------------------------------------------*/
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
- /*----------------------------------------------------------------------------
- ; MACROS
- ; Define module specific macros here
- ----------------------------------------------------------------------------*/
-
-
- /*----------------------------------------------------------------------------
- ; DEFINES
- ; Include all pre-processor statements here. Include conditional
- ; compile variables also.
- ----------------------------------------------------------------------------*/
-
- /*----------------------------------------------------------------------------
- ; LOCAL FUNCTION DEFINITIONS
- ; Function Prototype declaration
- ----------------------------------------------------------------------------*/
-
-
- /*----------------------------------------------------------------------------
- ; LOCAL STORE/BUFFER/POINTER DEFINITIONS
- ; Variable declaration - defined here and used outside this module
- ----------------------------------------------------------------------------*/
- const short BytesUsed[16] =
- {
- 13, /* 4.75 */
- 14, /* 5.15 */
- 16, /* 5.90 */
- 18, /* 6.70 */
- 20, /* 7.40 */
- 21, /* 7.95 */
- 27, /* 10.2 */
- 32, /* 12.2 */
- 6, /* GsmAmr comfort noise */
- 7, /* Gsm-Efr comfort noise */
- 6, /* IS-641 comfort noise */
- 6, /* Pdc-Efr comfort noise */
- 0, /* future use */
- 0, /* future use */
- 0, /* future use */
- 1 /* No transmission */
- };
- /*----------------------------------------------------------------------------
- ; EXTERNAL FUNCTION REFERENCES
- ; Declare functions defined elsewhere and referenced in this module
- ----------------------------------------------------------------------------*/
-
-
- /*----------------------------------------------------------------------------
- ; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES
- ; Declare variables used in this module but defined elsewhere
- ----------------------------------------------------------------------------*/
-
-
- /*--------------------------------------------------------------------------*/
-#ifdef __cplusplus
-}
-#endif
-
-/*----------------------------------------------------------------------------
-; FUNCTION CODE
-----------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
-; Define all local variables
-----------------------------------------------------------------------------*/
-
-
-/*----------------------------------------------------------------------------
-; Function body here
-----------------------------------------------------------------------------*/
-
-
-/*----------------------------------------------------------------------------
-; Return nothing or data or data pointer
-----------------------------------------------------------------------------*/
-
diff --git a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/gc_pred.cpp b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/gc_pred.cpp
index 9179fe4..71519e9 100644
--- a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/gc_pred.cpp
+++ b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/gc_pred.cpp
@@ -479,7 +479,7 @@ OSCL_EXPORT_REF void gc_pred(
ener_code <<= 4;
- if (ener_code < 0) /* Check for saturation */
+ if ((ener_code >> 31)) /* Check for saturation */
{
ener_code = MAX_32;
}
@@ -648,7 +648,7 @@ OSCL_EXPORT_REF void gc_pred(
*pOverflow = 1;
L_tmp = MAX_32;
}
- else if (L_tmp < (Word32) 0xffe00000L)
+ else if (L_tmp < -2097152)
{
*pOverflow = 1;
L_tmp = MIN_32;
diff --git a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/mult_r.cpp b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/mult_r.cpp
index 6ee82b2..003afc7 100644
--- a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/mult_r.cpp
+++ b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/mult_r.cpp
@@ -173,7 +173,7 @@ OSCL_EXPORT_REF Word16 mult_r(Word16 var1, Word16 var2, Flag *pOverflow)
*pOverflow = 1;
L_product_arr = MAX_16;
}
- else if (L_product_arr < (Word32) 0xffff8000L)
+ else if (L_product_arr < (Word32) - 32768)
{
*pOverflow = 1;
L_product_arr = MIN_16;
diff --git a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/norm_l.cpp b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/norm_l.cpp
index e690246..dc4ca72 100644
--- a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/norm_l.cpp
+++ b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/norm_l.cpp
@@ -1,5 +1,5 @@
/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
+ * Copyright (C) 1998-2010 PacketVideo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -152,7 +152,7 @@ Word16 norm_l (Word32 L_var1)
/*----------------------------------------------------------------------------
; FUNCTION CODE
----------------------------------------------------------------------------*/
-#if !( defined(PV_ARM_V5) || defined(PV_ARM_GCC_V5) )
+#if !((PV_CPU_ARCH_VERSION >=5) && ((PV_COMPILER == EPV_ARM_GNUC) || (PV_COMPILER == EPV_ARM_RVCT)))
OSCL_EXPORT_REF Word16 norm_l(register Word32 L_var1)
{
/*----------------------------------------------------------------------------
diff --git a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/norm_s.cpp b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/norm_s.cpp
index 892d06e..4fdc6d2 100644
--- a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/norm_s.cpp
+++ b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/norm_s.cpp
@@ -1,5 +1,5 @@
/* ------------------------------------------------------------------
- * Copyright (C) 1998-2009 PacketVideo
+ * Copyright (C) 1998-2010 PacketVideo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -153,7 +153,7 @@ Word16 norm_s (Word16 var1)
/*----------------------------------------------------------------------------
; FUNCTION CODE
----------------------------------------------------------------------------*/
-#if !( defined(PV_ARM_V5) || defined(PV_ARM_GCC_V5) )
+#if !((PV_CPU_ARCH_VERSION >=5) && ((PV_COMPILER == EPV_ARM_GNUC) || (PV_COMPILER == EPV_ARM_RVCT)))
OSCL_EXPORT_REF Word16 norm_s(register Word16 var1)
{
diff --git a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/qua_gain_tbl.cpp b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/qua_gain_tbl.cpp
index c0470b7..116a1b4 100644
--- a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/qua_gain_tbl.cpp
+++ b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/qua_gain_tbl.cpp
@@ -83,6 +83,7 @@ extern "C"
/* table used in 'high' rates: MR67 MR74 */
+ extern const Word16 table_gain_highrates[];
const Word16 table_gain_highrates[VQ_SIZE_HIGHRATES*4] =
{
@@ -227,6 +228,7 @@ extern "C"
/* table used in 'low' rates: MR475, MR515, MR59 */
+ extern const Word16 table_gain_lowrates[];
const Word16 table_gain_lowrates[VQ_SIZE_LOWRATES*4] =
{
/*g_pit, g_fac, qua_ener_MR122, qua_ener */
diff --git a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/sub.cpp b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/sub.cpp
index ed9fccc..479c40e 100644
--- a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/sub.cpp
+++ b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/sub.cpp
@@ -157,7 +157,7 @@ OSCL_EXPORT_REF Word16 sub(Word16 var1, Word16 var2, Flag *pOverflow)
/* to conserve MIPS, i.e., var_out = saturate (diff) */
- if ((UWord32)(diff - 0xFFFF8000L) > 0x000FFFF)
+ if ((UWord32)(diff + 32768) > 0x000FFFF)
{
if (diff > (Word32) 0x0007FFFL)
{
diff --git a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/syn_filt.cpp b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/syn_filt.cpp
index 221f4dc..e84ee66 100644
--- a/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/syn_filt.cpp
+++ b/opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src/syn_filt.cpp
@@ -225,7 +225,7 @@ OSCL_EXPORT_REF void Syn_filt(
}
/* check for overflow on s1 */
- if ((UWord32)(s1 - 0xf8000000L) < 0x0fffffffL)
+ if ((UWord32)(s1 + 134217728) < 0x0fffffffL)
{
temp = (Word16)(s1 >> 12);
}
@@ -246,7 +246,7 @@ OSCL_EXPORT_REF void Syn_filt(
p_yy1 = yy;
/* check for overflow on s2 */
- if ((UWord32)(s2 - 0xf8000000L) < 0x0fffffffL)
+ if ((UWord32)(s2 + 134217728) < 0x0fffffffL)
{
temp = (Word16)(s2 >> 12);
}
@@ -283,7 +283,7 @@ OSCL_EXPORT_REF void Syn_filt(
s1 = amrnb_fxp_msu_16_by_16bb((Word32) * (p_a++), (Word32) * (p_yy1), s1);
}
- if ((UWord32)(s1 - 0xf8000000L) < 0x0fffffffL)
+ if ((UWord32)(s1 + 134217728) < 0x0fffffffL)
{
temp = (Word16)(s1 >> 12);
}
@@ -301,7 +301,7 @@ OSCL_EXPORT_REF void Syn_filt(
*(p_y++) = temp;
p_yy1 = p_y;
- if ((UWord32)(s2 - 0xf8000000L) < 0x0fffffffL)
+ if ((UWord32)(s2 + 134217728) < 0x0fffffffL)
{
*(p_y++) = (Word16)(s2 >> 12);
}