1/* ------------------------------------------------------------------ 2 * Copyright (C) 1998-2009 PacketVideo 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 * express or implied. 14 * See the License for the specific language governing permissions 15 * and limitations under the License. 16 * ------------------------------------------------------------------- 17 */ 18/**************************************************************************************** 19Portions of this file are derived from the following 3GPP standard: 20 21 3GPP TS 26.073 22 ANSI-C code for the Adaptive Multi-Rate (AMR) speech codec 23 Available from http://www.3gpp.org 24 25(C) 2004, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC) 26Permission to distribute, modify and use this file under the standard license 27terms listed above has been obtained from the copyright holder. 28****************************************************************************************/ 29/* 30 31 Pathname: ./gsm-amr/c/src/extract_h.c 32 33------------------------------------------------------------------------------ 34 REVISION HISTORY 35 36 Description: Created separate file for the extract_h function. Sync'ed up 37 with the current template and fixed tabs. 38 39 Description: Removed conditional code that updates WMOPS counter 40 41 Who: Date: 42 Description: 43 44------------------------------------------------------------------------------ 45 INPUT AND OUTPUT DEFINITIONS 46 47 Inputs: 48 L_var1 = 32 bit long signed integer (Word32 ) whose value falls 49 in the range : 0x8000 0000 <= L_var1 <= 0x7fff ffff. 50 51 Local Stores/Buffers/Pointers Needed: 52 None 53 54 Global Stores/Buffers/Pointers Needed: 55 None 56 57 Outputs: 58 L_var1 = Most significant word of input (Word16) 59 60 Pointers and Buffers Modified: 61 None 62 63 Local Stores Modified: 64 None 65 66 Global Stores Modified: 67 None 68 69------------------------------------------------------------------------------ 70 FUNCTION DESCRIPTION 71 72 This function returns the 16 MSB of the input, L_var1. 73 74------------------------------------------------------------------------------ 75 REQUIREMENTS 76 77 None 78 79------------------------------------------------------------------------------ 80 REFERENCES 81 82 [1] basicop2.c, ETS Version 2.0.0, February 8, 1999 83 84------------------------------------------------------------------------------ 85 PSEUDO-CODE 86 87Word16 extract_h (Word32 L_var1) 88{ 89 Word16 var_out; 90 91 var_out = (Word16) (L_var1 >> 16); 92#if (WMOPS) 93 multiCounter[currCounter].extract_h++; 94#endif 95 return (var_out); 96} 97 98------------------------------------------------------------------------------ 99 RESOURCES USED 100 When the code is written for a specific target processor the 101 the resources used should be documented below. 102 103 STACK USAGE: [stack count for this module] + [variable to represent 104 stack usage for each subroutine called] 105 106 where: [stack usage variable] = stack usage for [subroutine 107 name] (see [filename].ext) 108 109 DATA MEMORY USED: x words 110 111 PROGRAM MEMORY USED: x words 112 113 CLOCK CYCLES: [cycle count equation for this module] + [variable 114 used to represent cycle count for each subroutine 115 called] 116 117 where: [cycle count variable] = cycle count for [subroutine 118 name] (see [filename].ext) 119 120------------------------------------------------------------------------------ 121*/ 122 123 124/*---------------------------------------------------------------------------- 125; INCLUDES 126----------------------------------------------------------------------------*/ 127#include "basic_op.h" 128 129/*---------------------------------------------------------------------------- 130; MACROS 131; Define module specific macros here 132----------------------------------------------------------------------------*/ 133 134/*---------------------------------------------------------------------------- 135; DEFINES 136; Include all pre-processor statements here. Include conditional 137; compile variables also. 138----------------------------------------------------------------------------*/ 139 140/*---------------------------------------------------------------------------- 141; LOCAL FUNCTION DEFINITIONS 142; Function Prototype declaration 143----------------------------------------------------------------------------*/ 144 145/*---------------------------------------------------------------------------- 146; LOCAL STORE/BUFFER/POINTER DEFINITIONS 147; Variable declaration - defined here and used outside this module 148----------------------------------------------------------------------------*/ 149 150/*---------------------------------------------------------------------------- 151; EXTERNAL FUNCTION REFERENCES 152; Declare functions defined elsewhere and referenced in this module 153----------------------------------------------------------------------------*/ 154 155/*---------------------------------------------------------------------------- 156; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES 157; Declare variables used in this module but defined elsewhere 158----------------------------------------------------------------------------*/ 159 160/*---------------------------------------------------------------------------- 161; FUNCTION CODE 162----------------------------------------------------------------------------*/ 163Word16 extract_h(Word32 L_var1) 164{ 165 /*---------------------------------------------------------------------------- 166 ; Define all local variables 167 ----------------------------------------------------------------------------*/ 168 169 /*---------------------------------------------------------------------------- 170 ; Function body here 171 ----------------------------------------------------------------------------*/ 172 173 /*---------------------------------------------------------------------------- 174 ; Return nothing or data or data pointer 175 ----------------------------------------------------------------------------*/ 176 return ((Word16)(L_var1 >> 16)); 177} 178