diff options
Diffstat (limited to 'opencore/codecs_v2/audio/gsm_amr/amr_nb/common/src')
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); } |