Index: talk/media/webrtc/webrtcvoiceengine.cc |
diff --git a/talk/media/webrtc/webrtcvoiceengine.cc b/talk/media/webrtc/webrtcvoiceengine.cc |
index 6157b22c713774835177e2577f7e965788b1dd35..ff5f6d5c07b67329ed703dcf2cf0494f9dbdbc09 100644 |
--- a/talk/media/webrtc/webrtcvoiceengine.cc |
+++ b/talk/media/webrtc/webrtcvoiceengine.cc |
@@ -42,7 +42,6 @@ |
#include "talk/media/base/audiorenderer.h" |
#include "talk/media/base/constants.h" |
#include "talk/media/base/streamparams.h" |
-#include "talk/media/base/voiceprocessor.h" |
#include "talk/media/webrtc/webrtcvoe.h" |
#include "webrtc/base/base64.h" |
#include "webrtc/base/byteorder.h" |
@@ -368,9 +367,7 @@ WebRtcVoiceEngine::WebRtcVoiceEngine() |
tracing_(new VoETraceWrapper()), |
adm_(NULL), |
log_filter_(SeverityToFilter(kDefaultLogSeverity)), |
- is_dumping_aec_(false), |
- tx_processor_ssrc_(0), |
- rx_processor_ssrc_(0) { |
+ is_dumping_aec_(false) { |
Construct(); |
} |
@@ -380,9 +377,7 @@ WebRtcVoiceEngine::WebRtcVoiceEngine(VoEWrapper* voe_wrapper, |
tracing_(tracing), |
adm_(NULL), |
log_filter_(SeverityToFilter(kDefaultLogSeverity)), |
- is_dumping_aec_(false), |
- tx_processor_ssrc_(0), |
- rx_processor_ssrc_(0) { |
+ is_dumping_aec_(false) { |
Construct(); |
} |
@@ -490,10 +485,6 @@ WebRtcVoiceEngine::~WebRtcVoiceEngine() { |
adm_ = NULL; |
} |
- // Test to see if the media processor was deregistered properly |
- RTC_DCHECK(SignalRxMediaFrame.is_empty()); |
- RTC_DCHECK(SignalTxMediaFrame.is_empty()); |
- |
tracing_->SetTraceCallback(NULL); |
} |
@@ -1277,31 +1268,6 @@ bool WebRtcVoiceEngine::FindChannelAndSsrc( |
return false; |
} |
-// This method will search through the WebRtcVoiceMediaChannels and |
-// obtain the voice engine's channel number. |
-bool WebRtcVoiceEngine::FindChannelNumFromSsrc( |
- uint32 ssrc, MediaProcessorDirection direction, int* channel_num) { |
- RTC_DCHECK(channel_num != NULL); |
- RTC_DCHECK(direction == MPD_RX || direction == MPD_TX); |
- |
- *channel_num = -1; |
- // Find corresponding channel for ssrc. |
- for (const WebRtcVoiceMediaChannel* ch : channels_) { |
- RTC_DCHECK(ch != NULL); |
- if (direction & MPD_RX) { |
- *channel_num = ch->GetReceiveChannelNum(ssrc); |
- } |
- if (*channel_num == -1 && (direction & MPD_TX)) { |
- *channel_num = ch->GetSendChannelNum(ssrc); |
- } |
- if (*channel_num != -1) { |
- return true; |
- } |
- } |
- LOG(LS_WARNING) << "FindChannelFromSsrc. No Channel Found for Ssrc: " << ssrc; |
- return false; |
-} |
- |
void WebRtcVoiceEngine::RegisterChannel(WebRtcVoiceMediaChannel *channel) { |
rtc::CritScope lock(&channels_cs_); |
channels_.push_back(channel); |
@@ -1370,158 +1336,6 @@ bool WebRtcVoiceEngine::StartAecDump(rtc::PlatformFile file) { |
return true; |
} |
-bool WebRtcVoiceEngine::RegisterProcessor( |
- uint32 ssrc, |
- VoiceProcessor* voice_processor, |
- MediaProcessorDirection direction) { |
- bool register_with_webrtc = false; |
- int channel_id = -1; |
- bool success = false; |
- uint32* processor_ssrc = NULL; |
- bool found_channel = FindChannelNumFromSsrc(ssrc, direction, &channel_id); |
- if (voice_processor == NULL || !found_channel) { |
- LOG(LS_WARNING) << "Media Processing Registration Failed. ssrc: " << ssrc |
- << " foundChannel: " << found_channel; |
- return false; |
- } |
- |
- webrtc::ProcessingTypes processing_type; |
- { |
- rtc::CritScope cs(&signal_media_critical_); |
- if (direction == MPD_RX) { |
- processing_type = webrtc::kPlaybackAllChannelsMixed; |
- if (SignalRxMediaFrame.is_empty()) { |
- register_with_webrtc = true; |
- processor_ssrc = &rx_processor_ssrc_; |
- } |
- SignalRxMediaFrame.connect(voice_processor, |
- &VoiceProcessor::OnFrame); |
- } else { |
- processing_type = webrtc::kRecordingPerChannel; |
- if (SignalTxMediaFrame.is_empty()) { |
- register_with_webrtc = true; |
- processor_ssrc = &tx_processor_ssrc_; |
- } |
- SignalTxMediaFrame.connect(voice_processor, |
- &VoiceProcessor::OnFrame); |
- } |
- } |
- if (register_with_webrtc) { |
- // TODO(janahan): when registering consider instantiating a |
- // a VoeMediaProcess object and not make the engine extend the interface. |
- if (voe()->media() && voe()->media()-> |
- RegisterExternalMediaProcessing(channel_id, |
- processing_type, |
- *this) != -1) { |
- LOG(LS_INFO) << "Media Processing Registration Succeeded. channel:" |
- << channel_id; |
- *processor_ssrc = ssrc; |
- success = true; |
- } else { |
- LOG_RTCERR2(RegisterExternalMediaProcessing, |
- channel_id, |
- processing_type); |
- success = false; |
- } |
- } else { |
- // If we don't have to register with the engine, we just needed to |
- // connect a new processor, set success to true; |
- success = true; |
- } |
- return success; |
-} |
- |
-bool WebRtcVoiceEngine::UnregisterProcessorChannel( |
- MediaProcessorDirection channel_direction, |
- uint32 ssrc, |
- VoiceProcessor* voice_processor, |
- MediaProcessorDirection processor_direction) { |
- bool success = true; |
- FrameSignal* signal; |
- webrtc::ProcessingTypes processing_type; |
- uint32* processor_ssrc = NULL; |
- if (channel_direction == MPD_RX) { |
- signal = &SignalRxMediaFrame; |
- processing_type = webrtc::kPlaybackAllChannelsMixed; |
- processor_ssrc = &rx_processor_ssrc_; |
- } else { |
- signal = &SignalTxMediaFrame; |
- processing_type = webrtc::kRecordingPerChannel; |
- processor_ssrc = &tx_processor_ssrc_; |
- } |
- |
- int deregister_id = -1; |
- { |
- rtc::CritScope cs(&signal_media_critical_); |
- if ((processor_direction & channel_direction) != 0 && !signal->is_empty()) { |
- signal->disconnect(voice_processor); |
- int channel_id = -1; |
- bool found_channel = FindChannelNumFromSsrc(ssrc, |
- channel_direction, |
- &channel_id); |
- if (signal->is_empty() && found_channel) { |
- deregister_id = channel_id; |
- } |
- } |
- } |
- if (deregister_id != -1) { |
- if (voe()->media() && |
- voe()->media()->DeRegisterExternalMediaProcessing(deregister_id, |
- processing_type) != -1) { |
- *processor_ssrc = 0; |
- LOG(LS_INFO) << "Media Processing DeRegistration Succeeded. channel:" |
- << deregister_id; |
- } else { |
- LOG_RTCERR2(DeRegisterExternalMediaProcessing, |
- deregister_id, |
- processing_type); |
- success = false; |
- } |
- } |
- return success; |
-} |
- |
-bool WebRtcVoiceEngine::UnregisterProcessor( |
- uint32 ssrc, |
- VoiceProcessor* voice_processor, |
- MediaProcessorDirection direction) { |
- bool success = true; |
- if (voice_processor == NULL) { |
- LOG(LS_WARNING) << "Media Processing Deregistration Failed. ssrc: " |
- << ssrc; |
- return false; |
- } |
- if (!UnregisterProcessorChannel(MPD_RX, ssrc, voice_processor, direction)) { |
- success = false; |
- } |
- if (!UnregisterProcessorChannel(MPD_TX, ssrc, voice_processor, direction)) { |
- success = false; |
- } |
- return success; |
-} |
- |
-// Implementing method from WebRtc VoEMediaProcess interface |
-// Do not lock mux_channel_cs_ in this callback. |
-void WebRtcVoiceEngine::Process(int channel, |
- webrtc::ProcessingTypes type, |
- int16_t audio10ms[], |
- size_t length, |
- int sampling_freq, |
- bool is_stereo) { |
- rtc::CritScope cs(&signal_media_critical_); |
- AudioFrame frame(audio10ms, length, sampling_freq, is_stereo); |
- if (type == webrtc::kPlaybackAllChannelsMixed) { |
- SignalRxMediaFrame(rx_processor_ssrc_, MPD_RX, &frame); |
- } else if (type == webrtc::kRecordingPerChannel) { |
- SignalTxMediaFrame(tx_processor_ssrc_, MPD_TX, &frame); |
- } else { |
- LOG(LS_WARNING) << "Media Processing invoked unexpectedly." |
- << " channel: " << channel << " type: " << type |
- << " tx_ssrc: " << tx_processor_ssrc_ |
- << " rx_ssrc: " << rx_processor_ssrc_; |
- } |
-} |
- |
void WebRtcVoiceEngine::StartAecDump(const std::string& filename) { |
if (!is_dumping_aec_) { |
// Start dumping AEC when we are not dumping. |