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

Side by Side Diff: media/base/audio_renderer_mixer_input_unittest.cc

Issue 381823003: Allow AudioRendererMixerInputs to be restarted after stopped. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments. Created 6 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « media/base/audio_renderer_mixer_input.cc ('k') | media/base/audio_renderer_mixer_unittest.cc » ('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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/bind_helpers.h" 6 #include "base/bind_helpers.h"
7 #include "media/base/audio_renderer_mixer.h" 7 #include "media/base/audio_renderer_mixer.h"
8 #include "media/base/audio_renderer_mixer_input.h" 8 #include "media/base/audio_renderer_mixer_input.h"
9 #include "media/base/fake_audio_render_callback.h" 9 #include "media/base/fake_audio_render_callback.h"
10 #include "media/base/mock_audio_renderer_sink.h" 10 #include "media/base/mock_audio_renderer_sink.h"
(...skipping 10 matching lines...) Expand all
21 class AudioRendererMixerInputTest : public testing::Test { 21 class AudioRendererMixerInputTest : public testing::Test {
22 public: 22 public:
23 AudioRendererMixerInputTest() { 23 AudioRendererMixerInputTest() {
24 audio_parameters_ = AudioParameters( 24 audio_parameters_ = AudioParameters(
25 AudioParameters::AUDIO_PCM_LINEAR, kChannelLayout, kSampleRate, 25 AudioParameters::AUDIO_PCM_LINEAR, kChannelLayout, kSampleRate,
26 kBitsPerChannel, kBufferSize); 26 kBitsPerChannel, kBufferSize);
27 27
28 CreateMixerInput(); 28 CreateMixerInput();
29 fake_callback_.reset(new FakeAudioRenderCallback(0)); 29 fake_callback_.reset(new FakeAudioRenderCallback(0));
30 mixer_input_->Initialize(audio_parameters_, fake_callback_.get()); 30 mixer_input_->Initialize(audio_parameters_, fake_callback_.get());
31 EXPECT_CALL(*this, RemoveMixer(testing::_));
32 audio_bus_ = AudioBus::Create(audio_parameters_); 31 audio_bus_ = AudioBus::Create(audio_parameters_);
33 } 32 }
34 33
35 void CreateMixerInput() { 34 void CreateMixerInput() {
36 mixer_input_ = new AudioRendererMixerInput( 35 mixer_input_ = new AudioRendererMixerInput(
37 base::Bind( 36 base::Bind(
38 &AudioRendererMixerInputTest::GetMixer, base::Unretained(this)), 37 &AudioRendererMixerInputTest::GetMixer, base::Unretained(this)),
39 base::Bind( 38 base::Bind(
40 &AudioRendererMixerInputTest::RemoveMixer, base::Unretained(this))); 39 &AudioRendererMixerInputTest::RemoveMixer, base::Unretained(this)));
41 } 40 }
42 41
43 AudioRendererMixer* GetMixer(const AudioParameters& params) { 42 AudioRendererMixer* GetMixer(const AudioParameters& params) {
44 if (!mixer_) { 43 if (!mixer_) {
45 scoped_refptr<MockAudioRendererSink> sink = new MockAudioRendererSink(); 44 scoped_refptr<MockAudioRendererSink> sink = new MockAudioRendererSink();
46 EXPECT_CALL(*sink.get(), Start()); 45 EXPECT_CALL(*sink.get(), Start());
47 EXPECT_CALL(*sink.get(), Stop()); 46 EXPECT_CALL(*sink.get(), Stop());
48 47
49 mixer_.reset(new AudioRendererMixer( 48 mixer_.reset(new AudioRendererMixer(
50 audio_parameters_, audio_parameters_, sink)); 49 audio_parameters_, audio_parameters_, sink));
51 } 50 }
51 EXPECT_CALL(*this, RemoveMixer(testing::_));
52 return mixer_.get(); 52 return mixer_.get();
53 } 53 }
54 54
55 double ProvideInput() { 55 double ProvideInput() {
56 return mixer_input_->ProvideInput(audio_bus_.get(), base::TimeDelta()); 56 return mixer_input_->ProvideInput(audio_bus_.get(), base::TimeDelta());
57 } 57 }
58 58
59 MOCK_METHOD1(RemoveMixer, void(const AudioParameters&)); 59 MOCK_METHOD1(RemoveMixer, void(const AudioParameters&));
60 60
61 protected: 61 protected:
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 // Test that Stop() can be called before Initialize() and Start(). 102 // Test that Stop() can be called before Initialize() and Start().
103 TEST_F(AudioRendererMixerInputTest, StopBeforeInitializeOrStart) { 103 TEST_F(AudioRendererMixerInputTest, StopBeforeInitializeOrStart) {
104 // |mixer_input_| was initialized during construction. 104 // |mixer_input_| was initialized during construction.
105 mixer_input_->Stop(); 105 mixer_input_->Stop();
106 106
107 // Verify Stop() works without Initialize() or Start(). 107 // Verify Stop() works without Initialize() or Start().
108 CreateMixerInput(); 108 CreateMixerInput();
109 mixer_input_->Stop(); 109 mixer_input_->Stop();
110 } 110 }
111 111
112 // Test that Start() can be called after Stop().
113 // TODO(dalecurtis): We shouldn't allow this. See http://crbug.com/151051
114 TEST_F(AudioRendererMixerInputTest, StartAfterStop) {
115 mixer_input_->Stop();
116 mixer_input_->Start();
117 mixer_input_->Stop();
118 }
119
112 } // namespace media 120 } // namespace media
OLDNEW
« no previous file with comments | « media/base/audio_renderer_mixer_input.cc ('k') | media/base/audio_renderer_mixer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698