Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Side by Side Diff: webrtc/modules/audio_coding/codecs/ilbc/include/ilbc.h

Issue 1438663003: modules/audio_coding: Remove some codec include dirs (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebase again Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 /*
12 * ilbc.h
13 *
14 * This header file contains all of the API's for iLBC.
15 *
16 */
17
18 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_ILBC_INCLUDE_ILBC_H_
19 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_ILBC_INCLUDE_ILBC_H_
20
21 #include <stddef.h>
22
23 /*
24 * Define the fixpoint numeric formats
25 */
26
27 #include "webrtc/typedefs.h"
28
29 /*
30 * Solution to support multiple instances
31 * Customer has to cast instance to proper type
32 */
33
34 typedef struct iLBC_encinst_t_ IlbcEncoderInstance;
35
36 typedef struct iLBC_decinst_t_ IlbcDecoderInstance;
37
38 /*
39 * Comfort noise constants
40 */
41
42 #define ILBC_SPEECH 1
43 #define ILBC_CNG 2
44
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48
49 /****************************************************************************
50 * WebRtcIlbcfix_XxxAssign(...)
51 *
52 * These functions assigns the encoder/decoder instance to the specified
53 * memory location
54 *
55 * Input:
56 * - XXX_xxxinst : Pointer to created instance that should be
57 * assigned
58 * - ILBCXXX_inst_Addr : Pointer to the desired memory space
59 * - size : The size that this structure occupies (in Word16 )
60 *
61 * Return value : 0 - Ok
62 * -1 - Error
63 */
64
65 int16_t WebRtcIlbcfix_EncoderAssign(IlbcEncoderInstance **iLBC_encinst,
66 int16_t *ILBCENC_inst_Addr,
67 int16_t *size);
68 int16_t WebRtcIlbcfix_DecoderAssign(IlbcDecoderInstance **iLBC_decinst,
69 int16_t *ILBCDEC_inst_Addr,
70 int16_t *size);
71
72
73 /****************************************************************************
74 * WebRtcIlbcfix_XxxAssign(...)
75 *
76 * These functions create a instance to the specified structure
77 *
78 * Input:
79 * - XXX_inst : Pointer to created instance that should be creat ed
80 *
81 * Return value : 0 - Ok
82 * -1 - Error
83 */
84
85 int16_t WebRtcIlbcfix_EncoderCreate(IlbcEncoderInstance **iLBC_encinst);
86 int16_t WebRtcIlbcfix_DecoderCreate(IlbcDecoderInstance **iLBC_decinst);
87
88 /****************************************************************************
89 * WebRtcIlbcfix_XxxFree(...)
90 *
91 * These functions frees the dynamic memory of a specified instance
92 *
93 * Input:
94 * - XXX_inst : Pointer to created instance that should be freed
95 *
96 * Return value : 0 - Ok
97 * -1 - Error
98 */
99
100 int16_t WebRtcIlbcfix_EncoderFree(IlbcEncoderInstance *iLBC_encinst);
101 int16_t WebRtcIlbcfix_DecoderFree(IlbcDecoderInstance *iLBC_decinst);
102
103
104 /****************************************************************************
105 * WebRtcIlbcfix_EncoderInit(...)
106 *
107 * This function initializes a iLBC instance
108 *
109 * Input:
110 * - iLBCenc_inst : iLBC instance, i.e. the user that should receive
111 * be initialized
112 * - frameLen : The frame length of the codec 20/30 (ms)
113 *
114 * Return value : 0 - Ok
115 * -1 - Error
116 */
117
118 int16_t WebRtcIlbcfix_EncoderInit(IlbcEncoderInstance *iLBCenc_inst,
119 int16_t frameLen);
120
121 /****************************************************************************
122 * WebRtcIlbcfix_Encode(...)
123 *
124 * This function encodes one iLBC frame. Input speech length has be a
125 * multiple of the frame length.
126 *
127 * Input:
128 * - iLBCenc_inst : iLBC instance, i.e. the user that should encode
129 * a package
130 * - speechIn : Input speech vector
131 * - len : Samples in speechIn (160, 240, 320 or 480)
132 *
133 * Output:
134 * - encoded : The encoded data vector
135 *
136 * Return value : >0 - Length (in bytes) of coded data
137 * -1 - Error
138 */
139
140 int WebRtcIlbcfix_Encode(IlbcEncoderInstance *iLBCenc_inst,
141 const int16_t *speechIn,
142 size_t len,
143 uint8_t* encoded);
144
145 /****************************************************************************
146 * WebRtcIlbcfix_DecoderInit(...)
147 *
148 * This function initializes a iLBC instance with either 20 or 30 ms frames
149 * Alternatively the WebRtcIlbcfix_DecoderInit_XXms can be used. Then it's
150 * not needed to specify the frame length with a variable.
151 *
152 * Input:
153 * - IlbcDecoderInstance : iLBC decoder instance
154 * - frameLen : The frame length of the codec 20/30 (ms)
155 *
156 * Return value : 0 - Ok
157 * -1 - Error
158 */
159
160 int16_t WebRtcIlbcfix_DecoderInit(IlbcDecoderInstance *iLBCdec_inst,
161 int16_t frameLen);
162 void WebRtcIlbcfix_DecoderInit20Ms(IlbcDecoderInstance* iLBCdec_inst);
163 void WebRtcIlbcfix_Decoderinit30Ms(IlbcDecoderInstance* iLBCdec_inst);
164
165 /****************************************************************************
166 * WebRtcIlbcfix_Decode(...)
167 *
168 * This function decodes a packet with iLBC frame(s). Output speech length
169 * will be a multiple of 160 or 240 samples ((160 or 240)*frames/packet).
170 *
171 * Input:
172 * - iLBCdec_inst : iLBC instance, i.e. the user that should decode
173 * a packet
174 * - encoded : Encoded iLBC frame(s)
175 * - len : Bytes in encoded vector
176 *
177 * Output:
178 * - decoded : The decoded vector
179 * - speechType : 1 normal, 2 CNG
180 *
181 * Return value : >0 - Samples in decoded vector
182 * -1 - Error
183 */
184
185 int WebRtcIlbcfix_Decode(IlbcDecoderInstance* iLBCdec_inst,
186 const uint8_t* encoded,
187 size_t len,
188 int16_t* decoded,
189 int16_t* speechType);
190 int WebRtcIlbcfix_Decode20Ms(IlbcDecoderInstance* iLBCdec_inst,
191 const uint8_t* encoded,
192 size_t len,
193 int16_t* decoded,
194 int16_t* speechType);
195 int WebRtcIlbcfix_Decode30Ms(IlbcDecoderInstance* iLBCdec_inst,
196 const uint8_t* encoded,
197 size_t len,
198 int16_t* decoded,
199 int16_t* speechType);
200
201 /****************************************************************************
202 * WebRtcIlbcfix_DecodePlc(...)
203 *
204 * This function conducts PLC for iLBC frame(s). Output speech length
205 * will be a multiple of 160 or 240 samples.
206 *
207 * Input:
208 * - iLBCdec_inst : iLBC instance, i.e. the user that should perform
209 * a PLC
210 * - noOfLostFrames : Number of PLC frames to produce
211 *
212 * Output:
213 * - decoded : The "decoded" vector
214 *
215 * Return value : Samples in decoded PLC vector
216 */
217
218 size_t WebRtcIlbcfix_DecodePlc(IlbcDecoderInstance *iLBCdec_inst,
219 int16_t *decoded,
220 size_t noOfLostFrames);
221
222 /****************************************************************************
223 * WebRtcIlbcfix_NetEqPlc(...)
224 *
225 * This function updates the decoder when a packet loss has occured, but it
226 * does not produce any PLC data. Function can be used if another PLC method
227 * is used (i.e NetEq).
228 *
229 * Input:
230 * - iLBCdec_inst : iLBC instance that should be updated
231 * - noOfLostFrames : Number of lost frames
232 *
233 * Output:
234 * - decoded : The "decoded" vector (nothing in this case)
235 *
236 * Return value : Samples in decoded PLC vector
237 */
238
239 size_t WebRtcIlbcfix_NetEqPlc(IlbcDecoderInstance *iLBCdec_inst,
240 int16_t *decoded,
241 size_t noOfLostFrames);
242
243 /****************************************************************************
244 * WebRtcIlbcfix_version(...)
245 *
246 * This function returns the version number of iLBC
247 *
248 * Output:
249 * - version : Version number of iLBC (maximum 20 char)
250 */
251
252 void WebRtcIlbcfix_version(char *version);
253
254 #ifdef __cplusplus
255 }
256 #endif
257
258 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698