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 Pathname: ./gsm-amr/c/src/extract_l.c 31 32------------------------------------------------------------------------------ 33 REVISION HISTORY 34 35 Description: Created separate file for the extract_l function. Sync'ed up 36 with the current template and fixed tabs. 37 38 Description: Removed conditional code that updates WMOPS counter 39 40 Who: Date: 41 Description: 42 43------------------------------------------------------------------------------ 44 INPUT AND OUTPUT DEFINITIONS 45 46 Inputs: 47 L_var1 = 32 bit long signed integer (Word32 ) whose value falls 48 in the range : 0x8000 0000 <= L_var1 <= 0x7fff ffff. 49 50 Local Stores/Buffers/Pointers Needed: 51 None 52 53 Global Stores/Buffers/Pointers Needed: 54 None 55 56 Outputs: 57 L_var1 = Most significant word of input (Word16) 58 59 Pointers and Buffers Modified: 60 None 61 62 Local Stores Modified: 63 None 64 65 Global Stores Modified: 66 None 67 68------------------------------------------------------------------------------ 69 FUNCTION DESCRIPTION 70 71 This function returns the 16 LSB of the input, L_var1. 72 73------------------------------------------------------------------------------ 74 REQUIREMENTS 75 76 None 77 78------------------------------------------------------------------------------ 79 REFERENCES 80 81 [1] basicop2.c, ETS Version 2.0.0, February 8, 1999 82 83------------------------------------------------------------------------------ 84 PSEUDO-CODE 85 86Word16 extract_l (Word32 L_var1) 87{ 88 Word16 var_out; 89 90 var_out = (Word16) L_var1; 91#if (WMOPS) 92 multiCounter[currCounter].extract_l++; 93#endif 94 return (var_out); 95} 96 97------------------------------------------------------------------------------ 98 RESOURCES USED 99 When the code is written for a specific target processor the 100 the resources used should be documented below. 101 102 STACK USAGE: [stack count for this module] + [variable to represent 103 stack usage for each subroutine called] 104 105 where: [stack usage variable] = stack usage for [subroutine 106 name] (see [filename].ext) 107 108 DATA MEMORY USED: x words 109 110 PROGRAM MEMORY USED: x words 111 112 CLOCK CYCLES: [cycle count equation for this module] + [variable 113 used to represent cycle count for each subroutine 114 called] 115 116 where: [cycle count variable] = cycle count for [subroutine 117 name] (see [filename].ext) 118 119------------------------------------------------------------------------------ 120*/ 121 122 123/*---------------------------------------------------------------------------- 124; INCLUDES 125----------------------------------------------------------------------------*/ 126#include "basic_op.h" 127 128/*---------------------------------------------------------------------------- 129; MACROS 130; Define module specific macros here 131----------------------------------------------------------------------------*/ 132 133/*---------------------------------------------------------------------------- 134; DEFINES 135; Include all pre-processor statements here. Include conditional 136; compile variables also. 137----------------------------------------------------------------------------*/ 138 139/*---------------------------------------------------------------------------- 140; LOCAL FUNCTION DEFINITIONS 141; Function Prototype declaration 142----------------------------------------------------------------------------*/ 143 144/*---------------------------------------------------------------------------- 145; LOCAL STORE/BUFFER/POINTER DEFINITIONS 146; Variable declaration - defined here and used outside this module 147----------------------------------------------------------------------------*/ 148 149/*---------------------------------------------------------------------------- 150; EXTERNAL FUNCTION REFERENCES 151; Declare functions defined elsewhere and referenced in this module 152----------------------------------------------------------------------------*/ 153 154/*---------------------------------------------------------------------------- 155; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES 156; Declare variables used in this module but defined elsewhere 157----------------------------------------------------------------------------*/ 158 159/*---------------------------------------------------------------------------- 160; FUNCTION CODE 161----------------------------------------------------------------------------*/ 162Word16 extract_l(Word32 L_var1) 163{ 164 /*---------------------------------------------------------------------------- 165 ; Define all local variables 166 ----------------------------------------------------------------------------*/ 167 168 /*---------------------------------------------------------------------------- 169 ; Function body here 170 ----------------------------------------------------------------------------*/ 171 172 /*---------------------------------------------------------------------------- 173 ; Return nothing or data or data pointer 174 ----------------------------------------------------------------------------*/ 175 return ((Word16) L_var1); 176} 177