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

Unified Diff: talk/media/webrtc/webrtcvoiceengine.cc

Issue 1311533009: - Rename VoiceChannel::MuteStream() -> SetAudioSend() (incl. media channel) (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@lj_remove_typingmonitor_files
Patch Set: 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 side-by-side diff with in-line comments
Download patch
Index: talk/media/webrtc/webrtcvoiceengine.cc
diff --git a/talk/media/webrtc/webrtcvoiceengine.cc b/talk/media/webrtc/webrtcvoiceengine.cc
index 93f4b97b14ad38cecf9c0aeedfd732606c5b3624..843cb60761a5f98e26486efbab9e3179b816d669 100644
--- a/talk/media/webrtc/webrtcvoiceengine.cc
+++ b/talk/media/webrtc/webrtcvoiceengine.cc
@@ -2374,6 +2374,67 @@ bool WebRtcVoiceMediaChannel::ChangeSend(int channel, SendFlags send) {
return true;
}
+bool WebRtcVoiceMediaChannel::SetAudioSend(uint32 ssrc, bool mute,
+ const AudioOptions* options,
+ AudioRenderer* renderer) {
+ // SetLocalRenderer
+ {
+ ChannelMap::iterator it = send_channels_.find(ssrc);
+ if (it == send_channels_.end()) {
+ if (renderer) {
+ // Return error if trying to set a valid renderer with an invalid ssrc.
+ LOG(LS_ERROR) << "SetLocalRenderer failed with ssrc "<< ssrc;
+ return false;
+ }
+ // The channel likely has gone away, do nothing.
+ } else {
+ if (renderer) {
+ it->second->Start(renderer);
+ } else {
+ it->second->Stop();
+ }
+ }
+ }
+
+ // MuteStream
+ {
+ int channel = (ssrc == 0) ? voe_channel() : GetSendChannelNum(ssrc);
+ if (channel == -1) {
+ LOG(LS_WARNING) << "The specified ssrc " << ssrc << " is not in use.";
+ return false;
+ }
+ if (engine()->voe()->volume()->SetInputMute(channel, mute) == -1) {
+ LOG_RTCERR2(SetInputMute, channel, mute);
+ return false;
+ }
+ // We set the AGC to mute state only when all the channels are muted.
+ // This implementation is not ideal, instead we should signal the AGC when
+ // the mic channel is muted/unmuted. We can't do it today because there
+ // is no good way to know which stream is mapping to the mic channel.
+ bool all_muted = mute;
+ for (const auto& ch : send_channels_) {
+ if (!all_muted) {
+ break;
+ }
+ if (engine()->voe()->volume()->GetInputMute(ch.second->channel(),
+ all_muted)) {
+ LOG_RTCERR1(GetInputMute, ch.second->channel());
+ return false;
+ }
+ }
+
+ webrtc::AudioProcessing* ap = engine()->voe()->base()->audio_processing();
+ if (ap)
+ ap->set_output_will_be_muted(all_muted);
+
+ if (!mute && options) {
+ return SetOptions(*options);
+ }
+ }
+
+ return true;
pthatcher1 2015/09/09 07:16:12 Similarly, would it make more sense for this CL to
the sun 2015/09/09 09:50:50 Done.
+}
+
// TODO(ronghuawu): Change this method to return bool.
void WebRtcVoiceMediaChannel::ConfigureSendChannel(int channel) {
if (engine()->voe()->network()->RegisterExternalTransport(
@@ -2723,28 +2784,6 @@ bool WebRtcVoiceMediaChannel::SetRemoteRenderer(uint32 ssrc,
return true;
}
-bool WebRtcVoiceMediaChannel::SetLocalRenderer(uint32 ssrc,
- AudioRenderer* renderer) {
- ChannelMap::iterator it = send_channels_.find(ssrc);
- if (it == send_channels_.end()) {
- if (renderer) {
- // Return an error if trying to set a valid renderer with an invalid ssrc.
- LOG(LS_ERROR) << "SetLocalRenderer failed with ssrc "<< ssrc;
- return false;
- }
-
- // The channel likely has gone away, do nothing.
- return true;
- }
-
- if (renderer)
- it->second->Start(renderer);
- else
- it->second->Stop();
-
- return true;
-}
-
bool WebRtcVoiceMediaChannel::GetActiveStreams(
AudioInfo::StreamList* actives) {
// In conference mode, the default channel should not be in
@@ -3032,38 +3071,6 @@ void WebRtcVoiceMediaChannel::OnRtcpReceived(
}
}
-bool WebRtcVoiceMediaChannel::MuteStream(uint32 ssrc, bool muted) {
- int channel = (ssrc == 0) ? voe_channel() : GetSendChannelNum(ssrc);
- if (channel == -1) {
- LOG(LS_WARNING) << "The specified ssrc " << ssrc << " is not in use.";
- return false;
- }
- if (engine()->voe()->volume()->SetInputMute(channel, muted) == -1) {
- LOG_RTCERR2(SetInputMute, channel, muted);
- return false;
- }
- // We set the AGC to mute state only when all the channels are muted.
- // This implementation is not ideal, instead we should signal the AGC when
- // the mic channel is muted/unmuted. We can't do it today because there
- // is no good way to know which stream is mapping to the mic channel.
- bool all_muted = muted;
- for (const auto& ch : send_channels_) {
- if (!all_muted) {
- break;
- }
- if (engine()->voe()->volume()->GetInputMute(ch.second->channel(),
- all_muted)) {
- LOG_RTCERR1(GetInputMute, ch.second->channel());
- return false;
- }
- }
-
- webrtc::AudioProcessing* ap = engine()->voe()->base()->audio_processing();
- if (ap)
- ap->set_output_will_be_muted(all_muted);
- return true;
-}
-
// TODO(minyue): SetMaxSendBandwidth() is subject to be renamed to
// SetMaxSendBitrate() in future.
bool WebRtcVoiceMediaChannel::SetMaxSendBandwidth(int bps) {

Powered by Google App Engine
This is Rietveld 408576698