| Index: talk/app/webrtc/test/fakeaudiocapturemodule.cc
|
| diff --git a/talk/app/webrtc/test/fakeaudiocapturemodule.cc b/talk/app/webrtc/test/fakeaudiocapturemodule.cc
|
| index 47f17a1739abe566a38bad9d14ebdfa24b0507d2..321e76ba09ba9a454c4c8bffbbd2efde8a7199a5 100644
|
| --- a/talk/app/webrtc/test/fakeaudiocapturemodule.cc
|
| +++ b/talk/app/webrtc/test/fakeaudiocapturemodule.cc
|
| @@ -54,13 +54,11 @@ static const uint32_t kMaxVolume = 14392;
|
| enum {
|
| MSG_START_PROCESS,
|
| MSG_RUN_PROCESS,
|
| - MSG_STOP_PROCESS,
|
| };
|
|
|
| -FakeAudioCaptureModule::FakeAudioCaptureModule(
|
| - rtc::Thread* process_thread)
|
| +FakeAudioCaptureModule::FakeAudioCaptureModule()
|
| : last_process_time_ms_(0),
|
| - audio_callback_(NULL),
|
| + audio_callback_(nullptr),
|
| recording_(false),
|
| playing_(false),
|
| play_is_initialized_(false),
|
| @@ -68,23 +66,20 @@ FakeAudioCaptureModule::FakeAudioCaptureModule(
|
| current_mic_level_(kMaxVolume),
|
| started_(false),
|
| next_frame_time_(0),
|
| - process_thread_(process_thread),
|
| frames_received_(0) {
|
| }
|
|
|
| FakeAudioCaptureModule::~FakeAudioCaptureModule() {
|
| - // Ensure that thread stops calling ProcessFrame().
|
| - process_thread_->Send(this, MSG_STOP_PROCESS);
|
| + if (process_thread_) {
|
| + process_thread_->Stop();
|
| + }
|
| }
|
|
|
| -rtc::scoped_refptr<FakeAudioCaptureModule> FakeAudioCaptureModule::Create(
|
| - rtc::Thread* process_thread) {
|
| - if (process_thread == NULL) return NULL;
|
| -
|
| +rtc::scoped_refptr<FakeAudioCaptureModule> FakeAudioCaptureModule::Create() {
|
| rtc::scoped_refptr<FakeAudioCaptureModule> capture_module(
|
| - new rtc::RefCountedObject<FakeAudioCaptureModule>(process_thread));
|
| + new rtc::RefCountedObject<FakeAudioCaptureModule>());
|
| if (!capture_module->Initialize()) {
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| return capture_module;
|
| }
|
| @@ -601,9 +596,6 @@ void FakeAudioCaptureModule::OnMessage(rtc::Message* msg) {
|
| case MSG_RUN_PROCESS:
|
| ProcessFrameP();
|
| break;
|
| - case MSG_STOP_PROCESS:
|
| - StopProcessP();
|
| - break;
|
| default:
|
| // All existing messages should be caught. Getting here should never
|
| // happen.
|
| @@ -650,14 +642,22 @@ bool FakeAudioCaptureModule::ShouldStartProcessing() {
|
|
|
| void FakeAudioCaptureModule::UpdateProcessing(bool start) {
|
| if (start) {
|
| + if (!process_thread_) {
|
| + process_thread_.reset(new rtc::Thread());
|
| + process_thread_->Start();
|
| + }
|
| process_thread_->Post(this, MSG_START_PROCESS);
|
| } else {
|
| - process_thread_->Send(this, MSG_STOP_PROCESS);
|
| + if (process_thread_) {
|
| + process_thread_->Stop();
|
| + process_thread_.reset(nullptr);
|
| + }
|
| + started_ = false;
|
| }
|
| }
|
|
|
| void FakeAudioCaptureModule::StartProcessP() {
|
| - ASSERT(rtc::Thread::Current() == process_thread_);
|
| + ASSERT(process_thread_->IsCurrent());
|
| if (started_) {
|
| // Already started.
|
| return;
|
| @@ -666,26 +666,21 @@ void FakeAudioCaptureModule::StartProcessP() {
|
| }
|
|
|
| void FakeAudioCaptureModule::ProcessFrameP() {
|
| - ASSERT(rtc::Thread::Current() == process_thread_);
|
| + ASSERT(process_thread_->IsCurrent());
|
| if (!started_) {
|
| next_frame_time_ = rtc::Time();
|
| started_ = true;
|
| }
|
|
|
| - bool playing;
|
| - bool recording;
|
| {
|
| rtc::CritScope cs(&crit_);
|
| - playing = playing_;
|
| - recording = recording_;
|
| - }
|
| -
|
| - // Receive and send frames every kTimePerFrameMs.
|
| - if (playing) {
|
| - ReceiveFrameP();
|
| - }
|
| - if (recording) {
|
| - SendFrameP();
|
| + // Receive and send frames every kTimePerFrameMs.
|
| + if (playing_) {
|
| + ReceiveFrameP();
|
| + }
|
| + if (recording_) {
|
| + SendFrameP();
|
| + }
|
| }
|
|
|
| next_frame_time_ += kTimePerFrameMs;
|
| @@ -696,7 +691,7 @@ void FakeAudioCaptureModule::ProcessFrameP() {
|
| }
|
|
|
| void FakeAudioCaptureModule::ReceiveFrameP() {
|
| - ASSERT(rtc::Thread::Current() == process_thread_);
|
| + ASSERT(process_thread_->IsCurrent());
|
| {
|
| rtc::CritScope cs(&crit_callback_);
|
| if (!audio_callback_) {
|
| @@ -727,7 +722,7 @@ void FakeAudioCaptureModule::ReceiveFrameP() {
|
| }
|
|
|
| void FakeAudioCaptureModule::SendFrameP() {
|
| - ASSERT(rtc::Thread::Current() == process_thread_);
|
| + ASSERT(process_thread_->IsCurrent());
|
| rtc::CritScope cs(&crit_callback_);
|
| if (!audio_callback_) {
|
| return;
|
| @@ -747,8 +742,3 @@ void FakeAudioCaptureModule::SendFrameP() {
|
| SetMicrophoneVolume(current_mic_level);
|
| }
|
|
|
| -void FakeAudioCaptureModule::StopProcessP() {
|
| - ASSERT(rtc::Thread::Current() == process_thread_);
|
| - started_ = false;
|
| - process_thread_->Clear(this);
|
| -}
|
|
|