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

Side by Side Diff: webrtc/media/engine/webrtcvoiceengine.cc

Issue 2062193002: Add AudioReceiveStream::SetGain() method and use that in WVoMC::SetOutputVolume(). (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: bad test Created 4 years, 6 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
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2004 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
(...skipping 1323 matching lines...) Expand 10 before | Expand all | Expand 10 after
1334 int channel() const { 1334 int channel() const {
1335 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); 1335 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
1336 return config_.voe_channel_id; 1336 return config_.voe_channel_id;
1337 } 1337 }
1338 1338
1339 void SetRawAudioSink(std::unique_ptr<webrtc::AudioSinkInterface> sink) { 1339 void SetRawAudioSink(std::unique_ptr<webrtc::AudioSinkInterface> sink) {
1340 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); 1340 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
1341 stream_->SetSink(std::move(sink)); 1341 stream_->SetSink(std::move(sink));
1342 } 1342 }
1343 1343
1344 void SetOutputVolume(double volume) {
1345 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
1346 stream_->SetGain(volume);
1347 }
1348
1344 private: 1349 private:
1345 void RecreateAudioReceiveStream( 1350 void RecreateAudioReceiveStream(
1346 uint32_t local_ssrc, 1351 uint32_t local_ssrc,
1347 bool use_transport_cc, 1352 bool use_transport_cc,
1348 bool use_nack, 1353 bool use_nack,
1349 const std::vector<webrtc::RtpExtension>& extensions) { 1354 const std::vector<webrtc::RtpExtension>& extensions) {
1350 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); 1355 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
1351 if (stream_) { 1356 if (stream_) {
1352 call_->DestroyAudioReceiveStream(stream_); 1357 call_->DestroyAudioReceiveStream(stream_);
1353 stream_ = nullptr; 1358 stream_ = nullptr;
(...skipping 909 matching lines...) Expand 10 before | Expand all | Expand 10 after
2263 2268
2264 bool WebRtcVoiceMediaChannel::SetOutputVolume(uint32_t ssrc, double volume) { 2269 bool WebRtcVoiceMediaChannel::SetOutputVolume(uint32_t ssrc, double volume) {
2265 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); 2270 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
2266 if (ssrc == 0) { 2271 if (ssrc == 0) {
2267 default_recv_volume_ = volume; 2272 default_recv_volume_ = volume;
2268 if (default_recv_ssrc_ == -1) { 2273 if (default_recv_ssrc_ == -1) {
2269 return true; 2274 return true;
2270 } 2275 }
2271 ssrc = static_cast<uint32_t>(default_recv_ssrc_); 2276 ssrc = static_cast<uint32_t>(default_recv_ssrc_);
2272 } 2277 }
2273 int ch_id = GetReceiveChannelId(ssrc); 2278 const auto it = recv_streams_.find(ssrc);
2274 if (ch_id < 0) { 2279 if (it == recv_streams_.end()) {
2275 LOG(LS_WARNING) << "Cannot find channel for ssrc:" << ssrc; 2280 LOG(LS_WARNING) << "SetOutputVolume: no recv stream" << ssrc;
2276 return false; 2281 return false;
2277 } 2282 }
2278 2283 it->second->SetOutputVolume(volume);
2279 if (-1 == engine()->voe()->volume()->SetChannelOutputVolumeScaling(ch_id, 2284 LOG(LS_INFO) << "SetOutputVolume() to " << volume
2280 volume)) { 2285 << " for recv stream with ssrc " << ssrc;
2281 LOG_RTCERR2(SetChannelOutputVolumeScaling, ch_id, volume);
2282 return false;
2283 }
2284 LOG(LS_INFO) << "SetOutputVolume to " << volume
2285 << " for channel " << ch_id << " and ssrc " << ssrc;
2286 return true; 2286 return true;
2287 } 2287 }
2288 2288
2289 bool WebRtcVoiceMediaChannel::CanInsertDtmf() { 2289 bool WebRtcVoiceMediaChannel::CanInsertDtmf() {
2290 return dtmf_payload_type_ ? true : false; 2290 return dtmf_payload_type_ ? true : false;
2291 } 2291 }
2292 2292
2293 bool WebRtcVoiceMediaChannel::InsertDtmf(uint32_t ssrc, int event, 2293 bool WebRtcVoiceMediaChannel::InsertDtmf(uint32_t ssrc, int event,
2294 int duration) { 2294 int duration) {
2295 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); 2295 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
2607 } 2607 }
2608 } else { 2608 } else {
2609 LOG(LS_INFO) << "Stopping playout for channel #" << channel; 2609 LOG(LS_INFO) << "Stopping playout for channel #" << channel;
2610 engine()->voe()->base()->StopPlayout(channel); 2610 engine()->voe()->base()->StopPlayout(channel);
2611 } 2611 }
2612 return true; 2612 return true;
2613 } 2613 }
2614 } // namespace cricket 2614 } // namespace cricket
2615 2615
2616 #endif // HAVE_WEBRTC_VOICE 2616 #endif // HAVE_WEBRTC_VOICE
OLDNEW
« no previous file with comments | « webrtc/media/engine/fakewebrtcvoiceengine.h ('k') | webrtc/media/engine/webrtcvoiceengine_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698