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

Side by Side Diff: remoting/protocol/webrtc_audio_module.cc

Issue 2653563004: Revert 25680c62320767f590d037d301edfe15e9c55650 (Closed)
Patch Set: . Created 3 years, 10 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 | « remoting/protocol/webrtc_audio_module.h ('k') | remoting/protocol/webrtc_audio_sink_adapter.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 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "remoting/protocol/webrtc_audio_module.h" 5 #include "remoting/protocol/webrtc_audio_module.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/ptr_util.h"
9 #include "base/stl_util.h" 8 #include "base/stl_util.h"
10 #include "base/threading/thread_task_runner_handle.h" 9 #include "base/threading/thread_task_runner_handle.h"
11 #include "base/timer/timer.h"
12 10
13 namespace remoting { 11 namespace remoting {
14 namespace protocol { 12 namespace protocol {
15 13
16 namespace { 14 namespace {
17 15
18 const int kSamplingRate = 48000; 16 const int kSamplingRate = 48000;
19 17
20 // Webrtc uses 10ms frames. 18 // Webrtc uses 10ms frames.
21 const int kFrameLengthMs = 10; 19 const int kFrameLengthMs = 10;
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 495
498 int WebrtcAudioModule::GetRecordAudioParameters( 496 int WebrtcAudioModule::GetRecordAudioParameters(
499 webrtc::AudioParameters* params) const { 497 webrtc::AudioParameters* params) const {
500 NOTREACHED(); 498 NOTREACHED();
501 return -1; 499 return -1;
502 } 500 }
503 #endif // WEBRTC_IOS 501 #endif // WEBRTC_IOS
504 502
505 void WebrtcAudioModule::StartPlayoutOnAudioThread() { 503 void WebrtcAudioModule::StartPlayoutOnAudioThread() {
506 DCHECK(audio_task_runner_->BelongsToCurrentThread()); 504 DCHECK(audio_task_runner_->BelongsToCurrentThread());
507 poll_timer_ = base::MakeUnique<base::RepeatingTimer>(); 505 poll_timer_.Start(
508 poll_timer_->Start(
509 FROM_HERE, kPollInterval, 506 FROM_HERE, kPollInterval,
510 base::Bind(&WebrtcAudioModule::PollFromSource, base::Unretained(this))); 507 base::Bind(&WebrtcAudioModule::PollFromSource, base::Unretained(this)));
511 } 508 }
512 509
513 void WebrtcAudioModule::StopPlayoutOnAudioThread() { 510 void WebrtcAudioModule::StopPlayoutOnAudioThread() {
514 DCHECK(audio_task_runner_->BelongsToCurrentThread()); 511 DCHECK(audio_task_runner_->BelongsToCurrentThread());
515 poll_timer_.reset(); 512 poll_timer_.Stop();
516 } 513 }
517 514
518 void WebrtcAudioModule::PollFromSource() { 515 void WebrtcAudioModule::PollFromSource() {
519 DCHECK(audio_task_runner_->BelongsToCurrentThread()); 516 DCHECK(audio_task_runner_->BelongsToCurrentThread());
520 517
521 base::AutoLock lock(lock_); 518 base::AutoLock lock(lock_);
522 if (!audio_transport_) 519 if (!audio_transport_)
523 return; 520 return;
524 521
525 for (int i = 0; i < kPollInterval.InMilliseconds() / kFrameLengthMs; i++) { 522 for (int i = 0; i < kPollInterval.InMilliseconds() / kFrameLengthMs; i++) {
526 int64_t elapsed_time_ms = -1; 523 int64_t elapsed_time_ms = -1;
527 int64_t ntp_time_ms = -1; 524 int64_t ntp_time_ms = -1;
528 char data[kBytesPerSample * kChannels * kSamplesPerFrame]; 525 char data[kBytesPerSample * kChannels * kSamplesPerFrame];
529 audio_transport_->PullRenderData(kBytesPerSample * 8, kSamplingRate, 526 audio_transport_->PullRenderData(kBytesPerSample * 8, kSamplingRate,
530 kChannels, kSamplesPerFrame, data, 527 kChannels, kSamplesPerFrame, data,
531 &elapsed_time_ms, &ntp_time_ms); 528 &elapsed_time_ms, &ntp_time_ms);
532 } 529 }
533 } 530 }
534 531
535 } // namespace protocol 532 } // namespace protocol
536 } // namespace remoting 533 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/protocol/webrtc_audio_module.h ('k') | remoting/protocol/webrtc_audio_sink_adapter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698