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

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

Issue 1361633002: Remove the [Un]RegisterVoiceProcessor() API. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 5 years, 3 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 | « talk/media/base/voiceprocessor.h ('k') | talk/media/webrtc/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 * libjingle 2 * libjingle
3 * Copyright 2010 Google Inc. 3 * Copyright 2010 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 16 matching lines...) Expand all
27 27
28 #ifndef TALK_SESSION_PHONE_FAKEWEBRTCVOICEENGINE_H_ 28 #ifndef TALK_SESSION_PHONE_FAKEWEBRTCVOICEENGINE_H_
29 #define TALK_SESSION_PHONE_FAKEWEBRTCVOICEENGINE_H_ 29 #define TALK_SESSION_PHONE_FAKEWEBRTCVOICEENGINE_H_
30 30
31 #include <list> 31 #include <list>
32 #include <map> 32 #include <map>
33 #include <vector> 33 #include <vector>
34 34
35 #include "talk/media/base/codec.h" 35 #include "talk/media/base/codec.h"
36 #include "talk/media/base/rtputils.h" 36 #include "talk/media/base/rtputils.h"
37 #include "talk/media/base/voiceprocessor.h"
38 #include "talk/media/webrtc/fakewebrtccommon.h" 37 #include "talk/media/webrtc/fakewebrtccommon.h"
39 #include "talk/media/webrtc/webrtcvoe.h" 38 #include "talk/media/webrtc/webrtcvoe.h"
40 #include "webrtc/base/basictypes.h" 39 #include "webrtc/base/basictypes.h"
41 #include "webrtc/base/checks.h" 40 #include "webrtc/base/checks.h"
42 #include "webrtc/base/gunit.h" 41 #include "webrtc/base/gunit.h"
43 #include "webrtc/base/stringutils.h" 42 #include "webrtc/base/stringutils.h"
44 #include "webrtc/config.h" 43 #include "webrtc/config.h"
45 #include "webrtc/modules/audio_processing/include/audio_processing.h" 44 #include "webrtc/modules/audio_processing/include/audio_processing.h"
46 45
47 namespace cricket { 46 namespace cricket {
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 return experimental_ns_enabled_; 179 return experimental_ns_enabled_;
181 } 180 }
182 181
183 private: 182 private:
184 bool experimental_ns_enabled_; 183 bool experimental_ns_enabled_;
185 }; 184 };
186 185
187 class FakeWebRtcVoiceEngine 186 class FakeWebRtcVoiceEngine
188 : public webrtc::VoEAudioProcessing, 187 : public webrtc::VoEAudioProcessing,
189 public webrtc::VoEBase, public webrtc::VoECodec, public webrtc::VoEDtmf, 188 public webrtc::VoEBase, public webrtc::VoECodec, public webrtc::VoEDtmf,
190 public webrtc::VoEHardware, 189 public webrtc::VoEHardware, public webrtc::VoENetEqStats,
191 public webrtc::VoEExternalMedia, public webrtc::VoENetEqStats,
192 public webrtc::VoENetwork, public webrtc::VoERTP_RTCP, 190 public webrtc::VoENetwork, public webrtc::VoERTP_RTCP,
193 public webrtc::VoEVideoSync, public webrtc::VoEVolumeControl { 191 public webrtc::VoEVideoSync, public webrtc::VoEVolumeControl {
194 public: 192 public:
195 struct DtmfInfo { 193 struct DtmfInfo {
196 DtmfInfo() 194 DtmfInfo()
197 : dtmf_event_code(-1), 195 : dtmf_event_code(-1),
198 dtmf_out_of_band(false), 196 dtmf_out_of_band(false),
199 dtmf_length_ms(-1) {} 197 dtmf_length_ms(-1) {}
200 int dtmf_event_code; 198 int dtmf_event_code;
201 bool dtmf_out_of_band; 199 bool dtmf_out_of_band;
202 int dtmf_length_ms; 200 int dtmf_length_ms;
203 }; 201 };
204 struct Channel { 202 struct Channel {
205 explicit Channel() 203 explicit Channel()
206 : external_transport(false), 204 : external_transport(false),
207 send(false), 205 send(false),
208 playout(false), 206 playout(false),
209 volume_scale(1.0), 207 volume_scale(1.0),
210 volume_pan_left(1.0), 208 volume_pan_left(1.0),
211 volume_pan_right(1.0), 209 volume_pan_right(1.0),
212 vad(false), 210 vad(false),
213 codec_fec(false), 211 codec_fec(false),
214 max_encoding_bandwidth(0), 212 max_encoding_bandwidth(0),
215 opus_dtx(false), 213 opus_dtx(false),
216 red(false), 214 red(false),
217 nack(false), 215 nack(false),
218 media_processor_registered(false),
219 rx_agc_enabled(false), 216 rx_agc_enabled(false),
220 rx_agc_mode(webrtc::kAgcDefault), 217 rx_agc_mode(webrtc::kAgcDefault),
221 cn8_type(13), 218 cn8_type(13),
222 cn16_type(105), 219 cn16_type(105),
223 dtmf_type(106), 220 dtmf_type(106),
224 red_type(117), 221 red_type(117),
225 nack_max_packets(0), 222 nack_max_packets(0),
226 send_ssrc(0), 223 send_ssrc(0),
227 send_audio_level_ext_(-1), 224 send_audio_level_ext_(-1),
228 receive_audio_level_ext_(-1), 225 receive_audio_level_ext_(-1),
(...skipping 10 matching lines...) Expand all
239 bool playout; 236 bool playout;
240 float volume_scale; 237 float volume_scale;
241 float volume_pan_left; 238 float volume_pan_left;
242 float volume_pan_right; 239 float volume_pan_right;
243 bool vad; 240 bool vad;
244 bool codec_fec; 241 bool codec_fec;
245 int max_encoding_bandwidth; 242 int max_encoding_bandwidth;
246 bool opus_dtx; 243 bool opus_dtx;
247 bool red; 244 bool red;
248 bool nack; 245 bool nack;
249 bool media_processor_registered;
250 bool rx_agc_enabled; 246 bool rx_agc_enabled;
251 webrtc::AgcModes rx_agc_mode; 247 webrtc::AgcModes rx_agc_mode;
252 webrtc::AgcConfig rx_agc_config; 248 webrtc::AgcConfig rx_agc_config;
253 int cn8_type; 249 int cn8_type;
254 int cn16_type; 250 int cn16_type;
255 int dtmf_type; 251 int dtmf_type;
256 int red_type; 252 int red_type;
257 int nack_max_packets; 253 int nack_max_packets;
258 uint32 send_ssrc; 254 uint32 send_ssrc;
259 int send_audio_level_ext_; 255 int send_audio_level_ext_;
(...skipping 27 matching lines...) Expand all
287 stereo_swapping_enabled_(false), 283 stereo_swapping_enabled_(false),
288 typing_detection_enabled_(false), 284 typing_detection_enabled_(false),
289 ec_mode_(webrtc::kEcDefault), 285 ec_mode_(webrtc::kEcDefault),
290 aecm_mode_(webrtc::kAecmSpeakerphone), 286 aecm_mode_(webrtc::kAecmSpeakerphone),
291 ns_mode_(webrtc::kNsDefault), 287 ns_mode_(webrtc::kNsDefault),
292 agc_mode_(webrtc::kAgcDefault), 288 agc_mode_(webrtc::kAgcDefault),
293 observer_(NULL), 289 observer_(NULL),
294 playout_fail_channel_(-1), 290 playout_fail_channel_(-1),
295 send_fail_channel_(-1), 291 send_fail_channel_(-1),
296 recording_sample_rate_(-1), 292 recording_sample_rate_(-1),
297 playout_sample_rate_(-1), 293 playout_sample_rate_(-1) {
298 media_processor_(NULL) {
299 memset(&agc_config_, 0, sizeof(agc_config_)); 294 memset(&agc_config_, 0, sizeof(agc_config_));
300 } 295 }
301 ~FakeWebRtcVoiceEngine() { 296 ~FakeWebRtcVoiceEngine() {
302 // Ought to have all been deleted by the WebRtcVoiceMediaChannel 297 // Ought to have all been deleted by the WebRtcVoiceMediaChannel
303 // destructors, but just in case ... 298 // destructors, but just in case ...
304 for (std::map<int, Channel*>::const_iterator i = channels_.begin(); 299 for (std::map<int, Channel*>::const_iterator i = channels_.begin();
305 i != channels_.end(); ++i) { 300 i != channels_.end(); ++i) {
306 delete i->second; 301 delete i->second;
307 } 302 }
308 } 303 }
309 304
310 bool IsExternalMediaProcessorRegistered() const {
311 return media_processor_ != NULL;
312 }
313 bool IsInited() const { return inited_; } 305 bool IsInited() const { return inited_; }
314 int GetLastChannel() const { return last_channel_; } 306 int GetLastChannel() const { return last_channel_; }
315 int GetChannelFromLocalSsrc(uint32 local_ssrc) const { 307 int GetChannelFromLocalSsrc(uint32 local_ssrc) const {
316 for (std::map<int, Channel*>::const_iterator iter = channels_.begin(); 308 for (std::map<int, Channel*>::const_iterator iter = channels_.begin();
317 iter != channels_.end(); ++iter) { 309 iter != channels_.end(); ++iter) {
318 if (local_ssrc == iter->second->send_ssrc) 310 if (local_ssrc == iter->second->send_ssrc)
319 return iter->first; 311 return iter->first;
320 } 312 }
321 return -1; 313 return -1;
322 } 314 }
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 } 373 }
382 void set_playout_fail_channel(int channel) { 374 void set_playout_fail_channel(int channel) {
383 playout_fail_channel_ = channel; 375 playout_fail_channel_ = channel;
384 } 376 }
385 void set_send_fail_channel(int channel) { 377 void set_send_fail_channel(int channel) {
386 send_fail_channel_ = channel; 378 send_fail_channel_ = channel;
387 } 379 }
388 void set_fail_create_channel(bool fail_create_channel) { 380 void set_fail_create_channel(bool fail_create_channel) {
389 fail_create_channel_ = fail_create_channel; 381 fail_create_channel_ = fail_create_channel;
390 } 382 }
391 void TriggerProcessPacket(MediaProcessorDirection direction) {
392 webrtc::ProcessingTypes pt =
393 (direction == cricket::MPD_TX) ?
394 webrtc::kRecordingPerChannel : webrtc::kPlaybackAllChannelsMixed;
395 if (media_processor_ != NULL) {
396 media_processor_->Process(0,
397 pt,
398 NULL,
399 0,
400 0,
401 true);
402 }
403 }
404 int AddChannel(const webrtc::Config& config) { 383 int AddChannel(const webrtc::Config& config) {
405 if (fail_create_channel_) { 384 if (fail_create_channel_) {
406 return -1; 385 return -1;
407 } 386 }
408 Channel* ch = new Channel(); 387 Channel* ch = new Channel();
409 for (int i = 0; i < NumOfCodecs(); ++i) { 388 for (int i = 0; i < NumOfCodecs(); ++i) {
410 webrtc::CodecInst codec; 389 webrtc::CodecInst codec;
411 GetCodec(i, codec); 390 GetCodec(i, codec);
412 ch->recv_codecs.push_back(codec); 391 ch->recv_codecs.push_back(codec);
413 } 392 }
(...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after
1094 } 1073 }
1095 bool WasSendTelephoneEventCalled(int channel, int event_code, int length_ms) { 1074 bool WasSendTelephoneEventCalled(int channel, int event_code, int length_ms) {
1096 return (channels_[channel]->dtmf_info.dtmf_event_code == event_code && 1075 return (channels_[channel]->dtmf_info.dtmf_event_code == event_code &&
1097 channels_[channel]->dtmf_info.dtmf_out_of_band == true && 1076 channels_[channel]->dtmf_info.dtmf_out_of_band == true &&
1098 channels_[channel]->dtmf_info.dtmf_length_ms == length_ms); 1077 channels_[channel]->dtmf_info.dtmf_length_ms == length_ms);
1099 } 1078 }
1100 bool WasPlayDtmfToneCalled(int event_code, int length_ms) { 1079 bool WasPlayDtmfToneCalled(int event_code, int length_ms) {
1101 return (dtmf_info_.dtmf_event_code == event_code && 1080 return (dtmf_info_.dtmf_event_code == event_code &&
1102 dtmf_info_.dtmf_length_ms == length_ms); 1081 dtmf_info_.dtmf_length_ms == length_ms);
1103 } 1082 }
1104 // webrtc::VoEExternalMedia
1105 WEBRTC_FUNC(RegisterExternalMediaProcessing,
1106 (int channel, webrtc::ProcessingTypes type,
1107 webrtc::VoEMediaProcess& processObject)) {
1108 WEBRTC_CHECK_CHANNEL(channel);
1109 if (channels_[channel]->media_processor_registered) {
1110 return -1;
1111 }
1112 channels_[channel]->media_processor_registered = true;
1113 media_processor_ = &processObject;
1114 return 0;
1115 }
1116 WEBRTC_FUNC(DeRegisterExternalMediaProcessing,
1117 (int channel, webrtc::ProcessingTypes type)) {
1118 WEBRTC_CHECK_CHANNEL(channel);
1119 if (!channels_[channel]->media_processor_registered) {
1120 return -1;
1121 }
1122 channels_[channel]->media_processor_registered = false;
1123 media_processor_ = NULL;
1124 return 0;
1125 }
1126 WEBRTC_STUB(GetAudioFrame, (int channel, int desired_sample_rate_hz,
1127 webrtc::AudioFrame* frame));
1128 WEBRTC_STUB(SetExternalMixing, (int channel, bool enable));
1129 int GetNetEqCapacity() const { 1083 int GetNetEqCapacity() const {
1130 auto ch = channels_.find(last_channel_); 1084 auto ch = channels_.find(last_channel_);
1131 ASSERT(ch != channels_.end()); 1085 ASSERT(ch != channels_.end());
1132 return ch->second->neteq_capacity; 1086 return ch->second->neteq_capacity;
1133 } 1087 }
1134 bool GetNetEqFastAccelerate() const { 1088 bool GetNetEqFastAccelerate() const {
1135 auto ch = channels_.find(last_channel_); 1089 auto ch = channels_.find(last_channel_);
1136 ASSERT(ch != channels_.end()); 1090 ASSERT(ch != channels_.end());
1137 return ch->second->neteq_fast_accelerate; 1091 return ch->second->neteq_fast_accelerate;
1138 } 1092 }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1192 webrtc::AecmModes aecm_mode_; 1146 webrtc::AecmModes aecm_mode_;
1193 webrtc::NsModes ns_mode_; 1147 webrtc::NsModes ns_mode_;
1194 webrtc::AgcModes agc_mode_; 1148 webrtc::AgcModes agc_mode_;
1195 webrtc::AgcConfig agc_config_; 1149 webrtc::AgcConfig agc_config_;
1196 webrtc::VoiceEngineObserver* observer_; 1150 webrtc::VoiceEngineObserver* observer_;
1197 int playout_fail_channel_; 1151 int playout_fail_channel_;
1198 int send_fail_channel_; 1152 int send_fail_channel_;
1199 int recording_sample_rate_; 1153 int recording_sample_rate_;
1200 int playout_sample_rate_; 1154 int playout_sample_rate_;
1201 DtmfInfo dtmf_info_; 1155 DtmfInfo dtmf_info_;
1202 webrtc::VoEMediaProcess* media_processor_;
1203 FakeAudioProcessing audio_processing_; 1156 FakeAudioProcessing audio_processing_;
1204 }; 1157 };
1205 1158
1206 #undef WEBRTC_CHECK_HEADER_EXTENSION_ID 1159 #undef WEBRTC_CHECK_HEADER_EXTENSION_ID
1207 1160
1208 } // namespace cricket 1161 } // namespace cricket
1209 1162
1210 #endif // TALK_SESSION_PHONE_FAKEWEBRTCVOICEENGINE_H_ 1163 #endif // TALK_SESSION_PHONE_FAKEWEBRTCVOICEENGINE_H_
OLDNEW
« no previous file with comments | « talk/media/base/voiceprocessor.h ('k') | talk/media/webrtc/webrtcvoe.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698