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 /**************************************************************************************** 19 Portions of this file are derived from the following 3GPP standard: 20 21 3GPP TS 26.173 22 ANSI-C code for the Adaptive Multi-Rate - Wideband (AMR-WB) speech codec 23 Available from http://www.3gpp.org 24 25 (C) 2007, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC) 26 Permission to distribute, modify and use this file under the standard license 27 terms listed above has been obtained from the copyright holder. 28 ****************************************************************************************/ 29 /* 30 ------------------------------------------------------------------------------ 31 32 Name: pvamrwbdecoder.h 33 34 Date: 05/02/2007 35 36 ------------------------------------------------------------------------------ 37 REVISION HISTORY 38 39 40 Description: 41 42 ------------------------------------------------------------------------------ 43 INCLUDE DESCRIPTION 44 45 Main header file for the Packet Video AMR Wide Band decoder library. The 46 constants, structures, and functions defined within this file, along with 47 a basic data types header file, is all that is needed to use and communicate 48 with the library. The internal data structures within the library are 49 purposely hidden. 50 51 ---* Need description of the input buffering. *------- 52 53 ---* Need an example of calling the library here *---- 54 55 ------------------------------------------------------------------------------ 56 REFERENCES 57 58 (Normally header files do not have a reference section) 59 60 ------------------------------------------------------------------------------ 61 */ 62 63 /*---------------------------------------------------------------------------- 64 ; CONTINUE ONLY IF NOT ALREADY DEFINED 65 ----------------------------------------------------------------------------*/ 66 #ifndef _PVAMRWBDECODER_H 67 #define _PVAMRWBDECODER_H 68 69 /*---------------------------------------------------------------------------- 70 ; INCLUDES 71 ----------------------------------------------------------------------------*/ 72 #include "pv_amr_wb_type_defs.h" 73 74 #ifdef __cplusplus 75 extern "C" 76 { 77 #endif 78 79 /*---------------------------------------------------------------------------- 80 ; MACROS 81 ; Define module specific macros here 82 ----------------------------------------------------------------------------*/ 83 84 /*---------------------------------------------------------------------------- 85 ; DEFINES 86 ; Include all pre-processor statements here. 87 ----------------------------------------------------------------------------*/ 88 89 90 91 /*---------------------------------------------------------------------------- 92 ; EXTERNAL VARIABLES REFERENCES 93 ; Declare variables used in this module but defined elsewhere 94 ----------------------------------------------------------------------------*/ 95 96 /*---------------------------------------------------------------------------- 97 ; SIMPLE TYPEDEF'S 98 ----------------------------------------------------------------------------*/ 99 100 typedef struct 101 { 102 int16 prev_ft; 103 int16 prev_mode; 104 } RX_State_wb; 105 106 /*---------------------------------------------------------------------------- 107 ; ENUMERATED TYPEDEF'S 108 ----------------------------------------------------------------------------*/ 109 110 /*---------------------------------------------------------------------------- 111 ; STRUCTURES TYPEDEF'S 112 ----------------------------------------------------------------------------*/ 113 114 /*---------------------------------------------------------------------------- 115 ; GLOBAL FUNCTION DEFINITIONS 116 ; Function Prototype declaration 117 ----------------------------------------------------------------------------*/ 118 119 void pvDecoder_AmrWb_Init(void **spd_state, void *st, int16 ** ScratchMem); 120 121 int32 pvDecoder_AmrWb( 122 int16 mode, /* input : used mode */ 123 int16 prms[], /* input : parameter vector */ 124 int16 synth16k[], /* output: synthesis speech */ 125 int16 * frame_length, /* output: lenght of the frame */ 126 void *spd_state, /* i/o : State structure */ 127 int16 frame_type, /* input : received frame type */ 128 int16 ScratchMem[] 129 ); 130 131 void pvDecoder_AmrWb_Reset(void *st, int16 reset_all); 132 133 int16 pvDecoder_AmrWb_homing_frame_test(int16 input_frame[], int16 mode); 134 135 int16 pvDecoder_AmrWb_homing_frame_test_first(int16 input_frame[], int16 mode); 136 137 int32 pvDecoder_AmrWbMemRequirements(); 138 139 void mime_unsorting(uint8 packet[], 140 int16 compressed_data[], 141 int16 *frame_type, 142 int16 *mode, 143 uint8 q, 144 RX_State_wb *st); 145 146 147 /*---------------------------------------------------------------------------- 148 ; END 149 ----------------------------------------------------------------------------*/ 150 151 #ifdef __cplusplus 152 } 153 #endif 154 155 156 #endif /* PVMP4AUDIODECODER_API_H */ 157 158 159