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

Side by Side Diff: media/audio/fake_audio_output_stream.cc

Issue 922663002: Moved the fake input stream's processing onto the audio worker thread. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 9 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 | « media/audio/fake_audio_output_stream.h ('k') | media/audio/fake_audio_worker.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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "media/audio/fake_audio_output_stream.h" 5 #include "media/audio/fake_audio_output_stream.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/single_thread_task_runner.h" 10 #include "base/single_thread_task_runner.h"
11 #include "media/audio/audio_manager_base.h" 11 #include "media/audio/audio_manager_base.h"
12 12
13 namespace media { 13 namespace media {
14 14
15 // static 15 // static
16 AudioOutputStream* FakeAudioOutputStream::MakeFakeStream( 16 AudioOutputStream* FakeAudioOutputStream::MakeFakeStream(
17 AudioManagerBase* manager, const AudioParameters& params) { 17 AudioManagerBase* manager, const AudioParameters& params) {
18 return new FakeAudioOutputStream(manager, params); 18 return new FakeAudioOutputStream(manager, params);
19 } 19 }
20 20
21 FakeAudioOutputStream::FakeAudioOutputStream(AudioManagerBase* manager, 21 FakeAudioOutputStream::FakeAudioOutputStream(AudioManagerBase* manager,
22 const AudioParameters& params) 22 const AudioParameters& params)
23 : audio_manager_(manager), 23 : audio_manager_(manager),
24 callback_(NULL), 24 callback_(NULL),
25 fake_consumer_(manager->GetWorkerTaskRunner(), params) { 25 fake_worker_(manager->GetWorkerTaskRunner(), params),
26 audio_bus_(AudioBus::Create(params)) {
26 } 27 }
27 28
28 FakeAudioOutputStream::~FakeAudioOutputStream() { 29 FakeAudioOutputStream::~FakeAudioOutputStream() {
29 DCHECK(!callback_); 30 DCHECK(!callback_);
30 } 31 }
31 32
32 bool FakeAudioOutputStream::Open() { 33 bool FakeAudioOutputStream::Open() {
33 DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread()); 34 DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread());
35 audio_bus_->Zero();
34 return true; 36 return true;
35 } 37 }
36 38
37 void FakeAudioOutputStream::Start(AudioSourceCallback* callback) { 39 void FakeAudioOutputStream::Start(AudioSourceCallback* callback) {
38 DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread()); 40 DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread());
39 callback_ = callback; 41 callback_ = callback;
40 fake_consumer_.Start(base::Bind( 42 fake_worker_.Start(base::Bind(
41 &FakeAudioOutputStream::CallOnMoreData, base::Unretained(this))); 43 &FakeAudioOutputStream::CallOnMoreData, base::Unretained(this)));
42 } 44 }
43 45
44 void FakeAudioOutputStream::Stop() { 46 void FakeAudioOutputStream::Stop() {
45 DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread()); 47 DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread());
46 fake_consumer_.Stop(); 48 fake_worker_.Stop();
47 callback_ = NULL; 49 callback_ = NULL;
48 } 50 }
49 51
50 void FakeAudioOutputStream::Close() { 52 void FakeAudioOutputStream::Close() {
51 DCHECK(!callback_); 53 DCHECK(!callback_);
52 DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread()); 54 DCHECK(audio_manager_->GetTaskRunner()->BelongsToCurrentThread());
53 audio_manager_->ReleaseOutputStream(this); 55 audio_manager_->ReleaseOutputStream(this);
54 } 56 }
55 57
56 void FakeAudioOutputStream::SetVolume(double volume) {}; 58 void FakeAudioOutputStream::SetVolume(double volume) {};
57 59
58 void FakeAudioOutputStream::GetVolume(double* volume) { 60 void FakeAudioOutputStream::GetVolume(double* volume) {
59 *volume = 0; 61 *volume = 0;
60 }; 62 };
61 63
62 void FakeAudioOutputStream::CallOnMoreData(AudioBus* audio_bus) { 64 void FakeAudioOutputStream::CallOnMoreData() {
63 DCHECK(audio_manager_->GetWorkerTaskRunner()->BelongsToCurrentThread()); 65 DCHECK(audio_manager_->GetWorkerTaskRunner()->BelongsToCurrentThread());
64 callback_->OnMoreData(audio_bus, 0); 66 callback_->OnMoreData(audio_bus_.get(), 0);
65 } 67 }
66 68
67 } // namespace media 69 } // namespace media
OLDNEW
« no previous file with comments | « media/audio/fake_audio_output_stream.h ('k') | media/audio/fake_audio_worker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698