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

Side by Side Diff: webrtc/media/engine/fakewebrtcvoiceengine.h

Issue 2785443002: Remove VoECodec from FakeWebRtcVoiceEngine. (Closed)
Patch Set: one include too many Created 3 years, 8 months 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
« no previous file with comments | « no previous file | webrtc/media/engine/webrtcvoe.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2010 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2010 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 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 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 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #ifndef WEBRTC_MEDIA_ENGINE_FAKEWEBRTCVOICEENGINE_H_ 11 #ifndef WEBRTC_MEDIA_ENGINE_FAKEWEBRTCVOICEENGINE_H_
12 #define WEBRTC_MEDIA_ENGINE_FAKEWEBRTCVOICEENGINE_H_ 12 #define WEBRTC_MEDIA_ENGINE_FAKEWEBRTCVOICEENGINE_H_
13 13
14 #include <stddef.h>
15
16 #include <list>
17 #include <map> 14 #include <map>
18 #include <vector> 15 #include <vector>
19 16
20 #include "webrtc/base/checks.h" 17 #include "webrtc/base/checks.h"
21 #include "webrtc/base/stringutils.h"
22 #include "webrtc/base/checks.h"
23 #include "webrtc/config.h"
24 #include "webrtc/media/base/codec.h"
25 #include "webrtc/media/base/rtputils.h"
26 #include "webrtc/media/engine/webrtcvoe.h" 18 #include "webrtc/media/engine/webrtcvoe.h"
27 #include "webrtc/modules/audio_coding/acm2/rent_a_codec.h"
28 #include "webrtc/modules/audio_processing/include/audio_processing.h" 19 #include "webrtc/modules/audio_processing/include/audio_processing.h"
29 20
30 namespace webrtc { 21 namespace webrtc {
31 namespace voe { 22 namespace voe {
32 class TransmitMixer; 23 class TransmitMixer;
33 } // namespace voe 24 } // namespace voe
34 } // namespace webrtc 25 } // namespace webrtc
35 26
36 namespace cricket { 27 namespace cricket {
37 28
38 static const int kOpusBandwidthNb = 4000;
39 static const int kOpusBandwidthMb = 6000;
40 static const int kOpusBandwidthWb = 8000;
41 static const int kOpusBandwidthSwb = 12000;
42 static const int kOpusBandwidthFb = 20000;
43
44 #define WEBRTC_CHECK_CHANNEL(channel) \ 29 #define WEBRTC_CHECK_CHANNEL(channel) \
45 if (channels_.find(channel) == channels_.end()) return -1; 30 if (channels_.find(channel) == channels_.end()) return -1;
46 31
47 #define WEBRTC_STUB(method, args) \ 32 #define WEBRTC_STUB(method, args) \
48 int method args override { return 0; } 33 int method args override { return 0; }
49 34
50 #define WEBRTC_STUB_CONST(method, args) \
51 int method args const override { return 0; }
52
53 #define WEBRTC_BOOL_STUB(method, args) \
54 bool method args override { return true; }
55
56 #define WEBRTC_VOID_STUB(method, args) \
57 void method args override {}
58
59 #define WEBRTC_FUNC(method, args) int method args override 35 #define WEBRTC_FUNC(method, args) int method args override
60 36
61 class FakeWebRtcVoiceEngine 37 class FakeWebRtcVoiceEngine : public webrtc::VoEBase {
62 : public webrtc::VoEBase, public webrtc::VoECodec {
63 public: 38 public:
64 struct Channel { 39 struct Channel {
65 std::vector<webrtc::CodecInst> recv_codecs; 40 std::vector<webrtc::CodecInst> recv_codecs;
66 size_t neteq_capacity = 0; 41 size_t neteq_capacity = 0;
67 bool neteq_fast_accelerate = false; 42 bool neteq_fast_accelerate = false;
68 }; 43 };
69 44
70 explicit FakeWebRtcVoiceEngine(webrtc::AudioProcessing* apm, 45 explicit FakeWebRtcVoiceEngine(webrtc::AudioProcessing* apm,
71 webrtc::voe::TransmitMixer* transmit_mixer) 46 webrtc::voe::TransmitMixer* transmit_mixer)
72 : apm_(apm), transmit_mixer_(transmit_mixer) { 47 : apm_(apm), transmit_mixer_(transmit_mixer) {
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 WEBRTC_STUB(StartPlayout, (int channel)); 108 WEBRTC_STUB(StartPlayout, (int channel));
134 WEBRTC_STUB(StartSend, (int channel)); 109 WEBRTC_STUB(StartSend, (int channel));
135 WEBRTC_STUB(StopReceive, (int channel)); 110 WEBRTC_STUB(StopReceive, (int channel));
136 WEBRTC_STUB(StopPlayout, (int channel)); 111 WEBRTC_STUB(StopPlayout, (int channel));
137 WEBRTC_STUB(StopSend, (int channel)); 112 WEBRTC_STUB(StopSend, (int channel));
138 WEBRTC_STUB(GetVersion, (char version[1024])); 113 WEBRTC_STUB(GetVersion, (char version[1024]));
139 WEBRTC_STUB(LastError, ()); 114 WEBRTC_STUB(LastError, ());
140 WEBRTC_STUB(AssociateSendChannel, (int channel, 115 WEBRTC_STUB(AssociateSendChannel, (int channel,
141 int accociate_send_channel)); 116 int accociate_send_channel));
142 117
143 // webrtc::VoECodec
144 WEBRTC_STUB(NumOfCodecs, ());
145 WEBRTC_STUB(GetCodec, (int index, webrtc::CodecInst& codec));
146 WEBRTC_STUB(SetSendCodec, (int channel, const webrtc::CodecInst& codec));
147 WEBRTC_STUB(GetSendCodec, (int channel, webrtc::CodecInst& codec));
148 WEBRTC_STUB(SetBitRate, (int channel, int bitrate_bps));
149 WEBRTC_STUB(GetRecCodec, (int channel, webrtc::CodecInst& codec));
150 WEBRTC_FUNC(SetRecPayloadType, (int channel,
151 const webrtc::CodecInst& codec)) {
152 WEBRTC_CHECK_CHANNEL(channel);
153 Channel* ch = channels_[channel];
154 // Check if something else already has this slot.
155 if (codec.pltype != -1) {
156 for (std::vector<webrtc::CodecInst>::iterator it =
157 ch->recv_codecs.begin(); it != ch->recv_codecs.end(); ++it) {
158 if (it->pltype == codec.pltype &&
159 _stricmp(it->plname, codec.plname) != 0) {
160 return -1;
161 }
162 }
163 }
164 // Otherwise try to find this codec and update its payload type.
165 int result = -1; // not found
166 for (std::vector<webrtc::CodecInst>::iterator it = ch->recv_codecs.begin();
167 it != ch->recv_codecs.end(); ++it) {
168 if (strcmp(it->plname, codec.plname) == 0 &&
169 it->plfreq == codec.plfreq &&
170 it->channels == codec.channels) {
171 it->pltype = codec.pltype;
172 result = 0;
173 }
174 }
175 return result;
176 }
177 WEBRTC_STUB(SetSendCNPayloadType, (int channel, int type,
178 webrtc::PayloadFrequencies frequency));
179 WEBRTC_FUNC(GetRecPayloadType, (int channel, webrtc::CodecInst& codec)) {
180 WEBRTC_CHECK_CHANNEL(channel);
181 Channel* ch = channels_[channel];
182 for (std::vector<webrtc::CodecInst>::iterator it = ch->recv_codecs.begin();
183 it != ch->recv_codecs.end(); ++it) {
184 if (strcmp(it->plname, codec.plname) == 0 &&
185 it->plfreq == codec.plfreq &&
186 it->channels == codec.channels &&
187 it->pltype != -1) {
188 codec.pltype = it->pltype;
189 return 0;
190 }
191 }
192 return -1; // not found
193 }
194 WEBRTC_STUB(SetVADStatus, (int channel, bool enable, webrtc::VadModes mode,
195 bool disableDTX));
196 WEBRTC_STUB(GetVADStatus, (int channel, bool& enabled,
197 webrtc::VadModes& mode, bool& disabledDTX));
198 WEBRTC_STUB(SetFECStatus, (int channel, bool enable));
199 WEBRTC_STUB(GetFECStatus, (int channel, bool& enable));
200 WEBRTC_STUB(SetOpusMaxPlaybackRate, (int channel, int frequency_hz));
201 WEBRTC_STUB(SetOpusDtx, (int channel, bool enable_dtx));
202
203 size_t GetNetEqCapacity() const { 118 size_t GetNetEqCapacity() const {
204 auto ch = channels_.find(last_channel_); 119 auto ch = channels_.find(last_channel_);
205 RTC_DCHECK(ch != channels_.end()); 120 RTC_DCHECK(ch != channels_.end());
206 return ch->second->neteq_capacity; 121 return ch->second->neteq_capacity;
207 } 122 }
208 bool GetNetEqFastAccelerate() const { 123 bool GetNetEqFastAccelerate() const {
209 auto ch = channels_.find(last_channel_); 124 auto ch = channels_.find(last_channel_);
210 RTC_CHECK(ch != channels_.end()); 125 RTC_CHECK(ch != channels_.end());
211 return ch->second->neteq_fast_accelerate; 126 return ch->second->neteq_fast_accelerate;
212 } 127 }
213 128
214 private: 129 private:
215 bool inited_ = false; 130 bool inited_ = false;
216 int last_channel_ = -1; 131 int last_channel_ = -1;
217 std::map<int, Channel*> channels_; 132 std::map<int, Channel*> channels_;
218 bool fail_create_channel_ = false; 133 bool fail_create_channel_ = false;
219 webrtc::AudioProcessing* apm_ = nullptr; 134 webrtc::AudioProcessing* apm_ = nullptr;
220 webrtc::voe::TransmitMixer* transmit_mixer_ = nullptr; 135 webrtc::voe::TransmitMixer* transmit_mixer_ = nullptr;
221 136
222 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(FakeWebRtcVoiceEngine); 137 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(FakeWebRtcVoiceEngine);
223 }; 138 };
224 139
225 } // namespace cricket 140 } // namespace cricket
226 141
227 #endif // WEBRTC_MEDIA_ENGINE_FAKEWEBRTCVOICEENGINE_H_ 142 #endif // WEBRTC_MEDIA_ENGINE_FAKEWEBRTCVOICEENGINE_H_
OLDNEW
« no previous file with comments | « no previous file | webrtc/media/engine/webrtcvoe.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698