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

Side by Side Diff: webrtc/modules/audio_processing/aecm/include/echo_control_mobile.h

Issue 1440523002: Remove webrtc/modules/audio_processing/{aec,aecm,ns}/include (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebased 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 #ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AECM_INCLUDE_ECHO_CONTROL_MOBILE_H_
12 #define WEBRTC_MODULES_AUDIO_PROCESSING_AECM_INCLUDE_ECHO_CONTROL_MOBILE_H_
13
14 #include <stdlib.h>
15
16 #include "webrtc/typedefs.h"
17
18 enum {
19 AecmFalse = 0,
20 AecmTrue
21 };
22
23 // Errors
24 #define AECM_UNSPECIFIED_ERROR 12000
25 #define AECM_UNSUPPORTED_FUNCTION_ERROR 12001
26 #define AECM_UNINITIALIZED_ERROR 12002
27 #define AECM_NULL_POINTER_ERROR 12003
28 #define AECM_BAD_PARAMETER_ERROR 12004
29
30 // Warnings
31 #define AECM_BAD_PARAMETER_WARNING 12100
32
33 typedef struct {
34 int16_t cngMode; // AECM_FALSE, AECM_TRUE (default)
35 int16_t echoMode; // 0, 1, 2, 3 (default), 4
36 } AecmConfig;
37
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41
42 /*
43 * Allocates the memory needed by the AECM. The memory needs to be
44 * initialized separately using the WebRtcAecm_Init() function.
45 * Returns a pointer to the instance and a nullptr at failure.
46 */
47 void* WebRtcAecm_Create();
48
49 /*
50 * This function releases the memory allocated by WebRtcAecm_Create()
51 *
52 * Inputs Description
53 * -------------------------------------------------------------------
54 * void* aecmInst Pointer to the AECM instance
55 */
56 void WebRtcAecm_Free(void* aecmInst);
57
58 /*
59 * Initializes an AECM instance.
60 *
61 * Inputs Description
62 * -------------------------------------------------------------------
63 * void* aecmInst Pointer to the AECM instance
64 * int32_t sampFreq Sampling frequency of data
65 *
66 * Outputs Description
67 * -------------------------------------------------------------------
68 * int32_t return 0: OK
69 * 1200-12004,12100: error/warning
70 */
71 int32_t WebRtcAecm_Init(void* aecmInst, int32_t sampFreq);
72
73 /*
74 * Inserts an 80 or 160 sample block of data into the farend buffer.
75 *
76 * Inputs Description
77 * -------------------------------------------------------------------
78 * void* aecmInst Pointer to the AECM instance
79 * int16_t* farend In buffer containing one frame of
80 * farend signal
81 * int16_t nrOfSamples Number of samples in farend buffer
82 *
83 * Outputs Description
84 * -------------------------------------------------------------------
85 * int32_t return 0: OK
86 * 1200-12004,12100: error/warning
87 */
88 int32_t WebRtcAecm_BufferFarend(void* aecmInst,
89 const int16_t* farend,
90 size_t nrOfSamples);
91
92 /*
93 * Reports any errors that would arise when buffering a farend buffer.
94 *
95 * Inputs Description
96 * -------------------------------------------------------------------
97 * void* aecmInst Pointer to the AECM instance
98 * int16_t* farend In buffer containing one frame of
99 * farend signal
100 * int16_t nrOfSamples Number of samples in farend buffer
101 *
102 * Outputs Description
103 * -------------------------------------------------------------------
104 * int32_t return 0: OK
105 * 1200-12004,12100: error/warning
106 */
107 int32_t WebRtcAecm_GetBufferFarendError(void* aecmInst,
108 const int16_t* farend,
109 size_t nrOfSamples);
110
111 /*
112 * Runs the AECM on an 80 or 160 sample blocks of data.
113 *
114 * Inputs Description
115 * -------------------------------------------------------------------
116 * void* aecmInst Pointer to the AECM instance
117 * int16_t* nearendNoisy In buffer containing one frame of
118 * reference nearend+echo signal. If
119 * noise reduction is active, provide
120 * the noisy signal here.
121 * int16_t* nearendClean In buffer containing one frame of
122 * nearend+echo signal. If noise
123 * reduction is active, provide the
124 * clean signal here. Otherwise pass a
125 * NULL pointer.
126 * int16_t nrOfSamples Number of samples in nearend buffer
127 * int16_t msInSndCardBuf Delay estimate for sound card and
128 * system buffers
129 *
130 * Outputs Description
131 * -------------------------------------------------------------------
132 * int16_t* out Out buffer, one frame of processed nearend
133 * int32_t return 0: OK
134 * 1200-12004,12100: error/warning
135 */
136 int32_t WebRtcAecm_Process(void* aecmInst,
137 const int16_t* nearendNoisy,
138 const int16_t* nearendClean,
139 int16_t* out,
140 size_t nrOfSamples,
141 int16_t msInSndCardBuf);
142
143 /*
144 * This function enables the user to set certain parameters on-the-fly
145 *
146 * Inputs Description
147 * -------------------------------------------------------------------
148 * void* aecmInst Pointer to the AECM instance
149 * AecmConfig config Config instance that contains all
150 * properties to be set
151 *
152 * Outputs Description
153 * -------------------------------------------------------------------
154 * int32_t return 0: OK
155 * 1200-12004,12100: error/warning
156 */
157 int32_t WebRtcAecm_set_config(void* aecmInst, AecmConfig config);
158
159 /*
160 * This function enables the user to set the echo path on-the-fly.
161 *
162 * Inputs Description
163 * -------------------------------------------------------------------
164 * void* aecmInst Pointer to the AECM instance
165 * void* echo_path Pointer to the echo path to be set
166 * size_t size_bytes Size in bytes of the echo path
167 *
168 * Outputs Description
169 * -------------------------------------------------------------------
170 * int32_t return 0: OK
171 * 1200-12004,12100: error/warning
172 */
173 int32_t WebRtcAecm_InitEchoPath(void* aecmInst,
174 const void* echo_path,
175 size_t size_bytes);
176
177 /*
178 * This function enables the user to get the currently used echo path
179 * on-the-fly
180 *
181 * Inputs Description
182 * -------------------------------------------------------------------
183 * void* aecmInst Pointer to the AECM instance
184 * void* echo_path Pointer to echo path
185 * size_t size_bytes Size in bytes of the echo path
186 *
187 * Outputs Description
188 * -------------------------------------------------------------------
189 * int32_t return 0: OK
190 * 1200-12004,12100: error/warning
191 */
192 int32_t WebRtcAecm_GetEchoPath(void* aecmInst,
193 void* echo_path,
194 size_t size_bytes);
195
196 /*
197 * This function enables the user to get the echo path size in bytes
198 *
199 * Outputs Description
200 * -------------------------------------------------------------------
201 * size_t return Size in bytes
202 */
203 size_t WebRtcAecm_echo_path_size_bytes();
204
205
206 #ifdef __cplusplus
207 }
208 #endif
209 #endif // WEBRTC_MODULES_AUDIO_PROCESSING_AECM_INCLUDE_ECHO_CONTROL_MOBILE_H_
OLDNEW
« no previous file with comments | « webrtc/modules/audio_processing/aecm/echo_control_mobile.c ('k') | webrtc/modules/audio_processing/audio_processing.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698